Сформировать двумерный целочисленный массив, используя генератор случайных чисел на интервале - Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Прошу подправить ошибки ,если не сложно. Задание звучит так: I Сформировать двумерный целочисленный массив П(4 \ S) исиольпц txmeparop случайных чисел на интервале (-7, Элементы массива вывести на экран в виде матрицы. 2. Преобразовать массив I) в одномерный массив К* 1 (олученный массив вынести на экран» 3. Вычислить среднеарифметическое значение нечетных элементов третьей четверти массива К. 4. Определить два наибольших элемента среди ненулевых элементов второй половины массива К. 5. Упорядочить четные но номеру элементы первой четверги одномерного массива по убыванию квадратов значений
Листинг программы
  1. const
  2. N=32; { кратно 4 }
  3. MIN=-7; MAX=8;
  4. var
  5. a: array [0..N-1] of integer;
  6. Y:array[1..32] of integer;
  7. i, j, s, c,k: integer;
  8. begin
  9. Randomize;
  10. Write('A=');
  11. for i:=0 to N-1 do begin
  12. if i mod (N div 4)=0 then WriteLn;
  13. a[i]:=MIN+Random(MAX-MIN+1);
  14. Write(a[i]:4);
  15. end; WriteLn;
  16. writeln('Zadacha 2:');
  17. k:=1;
  18. for i:=1 to 4 do begin
  19. for j:=1 to 8 do begin
  20. Y[k]:=a[i];
  21. Write('Y[',k,']=',Y[k]:2,' ');
  22. inc(k);
  23. end;
  24. end;
  25. writeln('Zadacha 3:');
  26. Write('Ср. арифм. нечетных 3-й четверти: ');
  27. for i:=N div 4 * 2 to N div 4 * 3 - 1 do
  28. if odd(a[i]) then begin
  29. inc(c); inc(s,a[i]);
  30. end;
  31. if c>0 then WriteLn(s/c) else WriteLn('нет подходящих элементов.');
  32. Write('2 наибольших среди ненулевых 2-й половины: ');
  33. for i:=N div 4 * 2 to N-1 do
  34. for j:=N div 4 * 2 to N-i-1 do
  35. if a[j+1]>a[j] then begin
  36. s:=a[j+1]; a[j+1]:=a[j]; a[j]:=s;
  37. end;
  38. c:=0;
  39. for i:=N div 4 * 2 to N-1 do
  40. if a[i]<>0 then begin
  41. Write(a[i]:4); inc(c);
  42. if c=2 then break;
  43. end;
  44. for c:=c to 2 do Write('*':4);
  45. WriteLn;
  46. WriteLn('Четные по номеру 1-й четверти по убыванию квадратов: ');
  47. for i:=0 to N div (4*2)-1 do
  48. for j:=0 to N div (4*2)-i-1 do
  49. if sqr(a[j*2+3])>sqr(a[j*2+1]) then begin
  50. s:=a[j*2+3]; a[j*2+3]:=a[j*2+1]; a[j*2+1]:=s;
  51. end;
  52. for i:=0 to N div (4*2)-1 do Write(a[i*2+1]:4); WriteLn;
  53. end.

Решение задачи: «Сформировать двумерный целочисленный массив, используя генератор случайных чисел на интервале»

textual
Листинг программы
  1. const
  2.   n = -7; //интервал
  3.   m = 8;// от -7 до 8
  4.   maxRow = 4;  
  5.   maxCol = 8;
  6.   RC = maxRow * maxCol;
  7.  
  8. type
  9.   mas = array [0..RC - 1] of integer;
  10.   arr = array [1..maxRow, 1..maxCol] of integer;
  11.  
  12. var
  13.   D: arr;
  14.   K: mas;
  15.   i, j, c, m1, m2,max: integer;
  16.   s: real;
  17.  
  18. begin
  19.   Randomize;
  20.   writeln('Задача 1.');
  21.   writeln('D=');  
  22.   for i := 1 to maxRow do
  23.   begin
  24.     for j := 1 to maxCol do
  25.     begin
  26.       D[i, j] := n + random(m + m);
  27.       write(D[i, j]:3);
  28.     end;
  29.     writeln;
  30.   end;    
  31.   writeln('Задача 2.');
  32.   write('K =');  
  33.   for i := 0 to RC - 1 do
  34.     begin
  35.       K[i] := D[(i div maxCol) + 1, (i mod maxCol) + 1];
  36.       write(K[i]:3);    
  37.     end;
  38.   writeln;
  39.   s := 0;c := 0;
  40.   writeln('Задача 3.');
  41.   Write('Ср. арифм. нечетных 3-й четверти = ');
  42.   for i := RC div 4 * 2 to RC div 4 * 3 - 1 do
  43.     if odd(K[i]) then
  44.       begin
  45.         inc(c);s := s + K[i];
  46.       end;  
  47.   if c = 0 then Writeln('нет подходящих элементов.') else Writeln(s / 4);
  48.  
  49.   writeln('Задача 4.');
  50.   m1 := RC div 4 * 2;
  51.   m2 := RC div 4 * 2 + 1;
  52.   write('2 наибольших среди ненулевых 2-й половины: ');
  53.   for i := RC div 4 * 2 + 2 to RC - 1 do    
  54.     if (K[m1] < K[i]) and (K[i] <> 0) then    
  55.       m1 := i;
  56.   m2 := integer(m1 < m2) + 1;
  57.   for i := RC div 4 * 2 + 2 to RC - 1 do
  58.     if (K[m2] < K[i]) and (m1 <> i) and (K[i] <> 0) then m2 := i;
  59.   writeln(K[m1], ' и ', K[m2]);  
  60.  
  61.   writeln('Задача 5.');
  62.   WriteLn('Отсортированные по убыванию квадратов четные по номеру элементы 1-й четверти: ');
  63.   for i := 0 to RC div 4   - 1 do
  64.     for j := i to RC div 4   - 1 do
  65.       if ((i+1)mod 2=0) and (sqr(K[i]) < sqr(K[j])) then
  66.         begin
  67.           max:=K[i];K[i]:=K[j];K[j]:=max;
  68.         end;
  69.   for i := 0 to RC - 1 do    
  70.     write(K[i]:3);  
  71. 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы