Составьте программу, которая выполняет чертеж детали и вычисляет ее площадь. маштаб 1 клетка - 20 пикселей, 1 клетка - 1 см. радиусы отверстий и вырезок (r1,r2,r3 и r4) вводятся с клавиатуры.
Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл For и расчет процентов.
FOR i = 1 TO 100 percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round) x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет END 'завершаем программу END IF NEXT i ' конец цикла Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.
Var f,h:text; i,maxi:integer; ar:array[1..n] of real; begin ar[6]:=real.MinValue; assign(f,'text.txt'); rewrite(f); for i:=1 to n-1 do begin readln(ar[i]); if ar[i]>ar[6] then begin ar[6]:=ar[i]; maxi:=i; end; end; ar[maxi]:=ar[maxi]/2; writeln('F:'); for i:=1 to n do begin write(f,ar[i],' '); write(ar[i],' '); end; close(f); writeln; i:=0; writeln('H:'); assign(h,'text1.txt'); rewrite(h); while i<n do begin i:=i+2; write(h,ar[i],' '); write(ar[i]:4); end; close(h); end.
Пример ввода: 1 2 3 4 5 Пример вывода: F: 1 2 3 4 2.5 5 H: 2 4 5
FOR i = 1 TO 100
percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round)
x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу
IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму
PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет
END 'завершаем программу
END IF
NEXT i ' конец цикла
Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.
Const
n=6;
Var
f,h:text;
i,maxi:integer;
ar:array[1..n] of real;
begin
ar[6]:=real.MinValue;
assign(f,'text.txt');
rewrite(f);
for i:=1 to n-1 do
begin
readln(ar[i]);
if ar[i]>ar[6] then
begin
ar[6]:=ar[i];
maxi:=i;
end;
end;
ar[maxi]:=ar[maxi]/2;
writeln('F:');
for i:=1 to n do
begin
write(f,ar[i],' ');
write(ar[i],' ');
end;
close(f);
writeln;
i:=0;
writeln('H:');
assign(h,'text1.txt');
rewrite(h);
while i<n do
begin
i:=i+2;
write(h,ar[i],' ');
write(ar[i]:4);
end;
close(h);
end.
Пример ввода:
1
2
3
4
5
Пример вывода:
F:
1 2 3 4 2.5 5
H:
2 4 5