Задание 1 Урок 19
Primary tabs
Получите случайный набор из 5 чисел, величиной от 1 до 50.
Рассчитайте для каждого числа два его наибольших делителя, число и два делителя храните как запись, а для всего набора используйте массив записей.
Используйте в коде do with
Выведите на экран результаты расчетов для каждого из исходных значений
type TDel = record
value, min, max : integer;
end;
var i, temp: integer;
del: TDel;
dataRec: array[1..5] of TDel;
function find2Del(a: integer; Del: TDel): TDel;
var
i, delMax, delMin, delMidl: integer;
begin
delMax := a;
delMidl := 0;
delMin := 1;
i := 1;
while (i <= a) do
begin
if (a mod i = 0) then
begin
delMin := delMidl;
delMidl := delMax;
delMax := i;
end;
i := i + 1;
end;
with Del do begin
value := a;
if (delMidl = 1) then
begin
min := delMidl;
max := delMax;
end
else
begin
min := delMin;
max := delMidl;
end;
end;
result := Del;
end;
begin
randomize;
for i:=1 to 5 do
begin
temp := 1+random(50);
dataRec[i] := find2Del(temp, Del);
writeln('for value = ', dataRec[i].value, '; max del 1 = ', dataRec[i].min, '; max del 2 =', dataRec[i].max);
end;
readln();
end.
консоль:
for value = 32; max del 1 = 8; max del 2 =16 for value = 34; max del 1 = 2; max del 2 =17 for value = 23; max del 1 = 1; max del 2 =23 for value = 4; max del 1 = 1; max del 2 =2 for value = 19; max del 1 = 1; max del 2 =19
- Log in to post comments
- 545 reads