Сформировать двумерный целочисленный массив, используя генератор случайных чисел на интервале - Pascal
Формулировка задачи:
const N=32; { кратно 4 } MIN=-7; MAX=8; var a: array [0..N-1] of integer; Y:array[1..32] of integer; i, j, s, c,k: integer; begin Randomize; Write('A='); for i:=0 to N-1 do begin if i mod (N div 4)=0 then WriteLn; a[i]:=MIN+Random(MAX-MIN+1); Write(a[i]:4); end; WriteLn; writeln('Zadacha 2:'); k:=1; for i:=1 to 4 do begin for j:=1 to 8 do begin Y[k]:=a[i]; Write('Y[',k,']=',Y[k]:2,' '); inc(k); end; end; writeln('Zadacha 3:'); Write('Ср. арифм. нечетных 3-й четверти: '); for i:=N div 4 * 2 to N div 4 * 3 - 1 do if odd(a[i]) then begin inc(c); inc(s,a[i]); end; if c>0 then WriteLn(s/c) else WriteLn('нет подходящих элементов.'); Write('2 наибольших среди ненулевых 2-й половины: '); for i:=N div 4 * 2 to N-1 do for j:=N div 4 * 2 to N-i-1 do if a[j+1]>a[j] then begin s:=a[j+1]; a[j+1]:=a[j]; a[j]:=s; end; c:=0; for i:=N div 4 * 2 to N-1 do if a[i]<>0 then begin Write(a[i]:4); inc(c); if c=2 then break; end; for c:=c to 2 do Write('*':4); WriteLn; WriteLn('Четные по номеру 1-й четверти по убыванию квадратов: '); for i:=0 to N div (4*2)-1 do for j:=0 to N div (4*2)-i-1 do if sqr(a[j*2+3])>sqr(a[j*2+1]) then begin s:=a[j*2+3]; a[j*2+3]:=a[j*2+1]; a[j*2+1]:=s; end; for i:=0 to N div (4*2)-1 do Write(a[i*2+1]:4); WriteLn; end.
Решение задачи: «Сформировать двумерный целочисленный массив, используя генератор случайных чисел на интервале»
const n = -7; //интервал m = 8;// от -7 до 8 maxRow = 4; maxCol = 8; RC = maxRow * maxCol; type mas = array [0..RC - 1] of integer; arr = array [1..maxRow, 1..maxCol] of integer; var D: arr; K: mas; i, j, c, m1, m2,max: integer; s: real; begin Randomize; writeln('Задача 1.'); writeln('D='); for i := 1 to maxRow do begin for j := 1 to maxCol do begin D[i, j] := n + random(m + m); write(D[i, j]:3); end; writeln; end; writeln('Задача 2.'); write('K ='); for i := 0 to RC - 1 do begin K[i] := D[(i div maxCol) + 1, (i mod maxCol) + 1]; write(K[i]:3); end; writeln; s := 0;c := 0; writeln('Задача 3.'); Write('Ср. арифм. нечетных 3-й четверти = '); for i := RC div 4 * 2 to RC div 4 * 3 - 1 do if odd(K[i]) then begin inc(c);s := s + K[i]; end; if c = 0 then Writeln('нет подходящих элементов.') else Writeln(s / 4); writeln('Задача 4.'); m1 := RC div 4 * 2; m2 := RC div 4 * 2 + 1; write('2 наибольших среди ненулевых 2-й половины: '); for i := RC div 4 * 2 + 2 to RC - 1 do if (K[m1] < K[i]) and (K[i] <> 0) then m1 := i; m2 := integer(m1 < m2) + 1; for i := RC div 4 * 2 + 2 to RC - 1 do if (K[m2] < K[i]) and (m1 <> i) and (K[i] <> 0) then m2 := i; writeln(K[m1], ' и ', K[m2]); writeln('Задача 5.'); WriteLn('Отсортированные по убыванию квадратов четные по номеру элементы 1-й четверти: '); for i := 0 to RC div 4 - 1 do for j := i to RC div 4 - 1 do if ((i+1)mod 2=0) and (sqr(K[i]) < sqr(K[j])) then begin max:=K[i];K[i]:=K[j];K[j]:=max; end; for i := 0 to RC - 1 do write(K[i]:3); end.
Объяснение кода листинга программы
const n = -7; // интервал m = 8; // от -7 до 8 maxRow = 4; maxCol = 8; RC = maxRow maxCol; type mas = array [0..RC — 1] of integer; arr = array [1..maxRow, 1..maxCol] of integer; var D: arr; K: mas; i, j, c, m1, m2,max: integer; s: real; begin Randomize; writeln('Задача 1.'); writeln('D='); for i := 1 to maxRow do begin for j := 1 to maxCol do begin D[i, j] := n + random(m + m); write(D[i, j]:3); end; writeln; end; writeln('Задача 2.'); write('K ='); for i := 0 to RC — 1 do begin K[i] := D[(i div maxCol) + 1, (i mod maxCol) + 1]; write(K[i]:3); end; writeln; s := 0;c := 0; writeln('Задача 3.'); Write('Ср. арифм. нечетных 3-й четверти = '); for i := RC div 4 2 to RC div 4 3 - 1 do begin if odd(K[i]) then begin inc(c);s := s + K[i]; end; if c = 0 then Writeln('нет подходящих элементов.') else Writeln(s / 4); end; writeln('Задача 4.'); m1 := RC div 4 2; m2 := RC div 4 2 + 1; write('2 наибольших среди ненулевых 2-й половины: '); for i := RC div 4 2 + 2 to RC — 1 do begin if (K[m1] < K[i]) and (K[i] <> 0) then begin m1 := i; m2 := integer(m1 < m2) + 1; end; if (K[m2] < K[i]) and (m1 <> i) and (K[i] <> 0) then m2 := i; writeln(K[m1], ' и ', K[m2]); end; writeln('Задача 5.'); WriteLn('Отсортированные по убыванию квадратов четные по номеру элементы 1-й четверти: '); for i := 0 to RC div 4 — 1 do begin for j := i to RC div 4 — 1 do begin if ((i+1)mod 2=0) and (sqr(K[i]) < sqr(K[j])) then begin max:=K[i];K[i]:=K[j];K[j]:=max; end; end; for i := 0 to RC — 1 do begin write(K[i]:3); end; end; end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д