Задание 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
- 229 reads