1. Для цикла For есть решение выложенное выше от Srzontmp.
2. Почти ничего не меня получим код для цикла while: var i, n, k: integer; begin i := 2; readln(n); while i <= n div 2 do begin if (n mod i) = 0 then k := i; i:=i+1; end; writeln('наибольший делитель ', n, ' = ', k); end.
3. Аналогично для цикла Repeat: var i, n, k: integer; begin i := 2; readln(n); repeat if (n mod i) = 0 then k := i; i:=i+1; until i> n div 2; writeln('наибольший делитель ', n, ' = ', k); end.
2. Почти ничего не меня получим код для цикла while:
var
i, n, k: integer;
begin
i := 2;
readln(n);
while i <= n div 2 do begin
if (n mod i) = 0 then k := i;
i:=i+1;
end;
writeln('наибольший делитель ', n, ' = ', k);
end.
3. Аналогично для цикла Repeat:
var
i, n, k: integer;
begin
i := 2;
readln(n);
repeat
if (n mod i) = 0 then k := i;
i:=i+1;
until i> n div 2;
writeln('наибольший делитель ', n, ' = ', k);
end.
program Multi3;
var
A: array [1..3] of Double;
i: Integer;
p: Double;
b: Boolean;
begin
Randomize;
Write ('Исходные числа:');
WriteLn;
for i := 1 to 3 do begin
A [i] := Random (4000) / 1000 - 1; // заполняем числами, чтоб были и положительные и отрицательные
Write (A[i] :10 :3, ' ');
end;
b := False;
p := 1;
for i := 1 to 3 do begin
if Abs (A [i]) < 1 then begin
b := True; // включаем флаг, если найдено хотя бы одно подходящее число
p := p * A [i];
end;
end;
WriteLn;
if b then
WriteLn ('Произведение = ', p :10 :3)
else
WriteLn ('Произведение не определено.');
ReadLn;
end.