Нужно написать программа в Pascal:

1) В двумерном массиве найти произведение элементов главной диагонали

2) В двумерном массиве найти номер строки, в которой наибольшее количество чётных элементов


Очень срочно надо, пожаааалуйста, даю 20 баллов

Ответы

Ответ дал: NaaMan
1

Программа 1:

{Free Pascal Compiler version 3.0.4+dfsg-23 [2019/11/25] for x86_64}

{Copyright (c) 1993-2017 by Florian Klaempfl and others}

{Target OS: Linux for x86-64}

program test;

const

 max_num = 100; {Максимальная величина в массиве}

var

 N : integer; {Размерность массива}

 Massiv : array of array of integer;

 i, j : integer; {Счетчики циклов}

 p : int64; {Произведение элементов}

begin

Randomize;

write('Введите число - размер массива N: ');

readln(N);

{Установка размера массива}

SetLength(Massiv, N, N);

{Формирование случайного двумерного массива с элементами от 1 до 100}

for i := 0 to N-1 do begin

 for j := 0 to N-1 do begin

  Massiv[i, j] := Round(Random * max_num) + 1;

  write(Massiv[i,j]:4)

 end;

 writeln

end;

 

 

p := 1; {Инициализация переменной для подсчета произведения}

{Собственно, сам подсчёт.}

{Для главной диагонали особенность индексов, где i = j}

{Поэтому достаточно одного цикла}

for i := 0 to N-1 do

 p := p * Massiv[i, i];

writeln('Произведение р = ', p)

end.

Программа 2:

{Free Pascal Compiler version 3.0.4+dfsg-23 [2019/11/25] for x86_64}

{Copyright (c) 1993-2017 by Florian Klaempfl and others}

{Target OS: Linux for x86-64}

program test;

const

 max_num = 100; {Максимальная величина в массиве}

var

 N : integer; {Размерность массива}

 Massiv : array of array of integer;

 i, j : integer; {Счетчики циклов}

 c, m, k : integer; {Подсчёт чётных элементов}

begin

Randomize;

write('Введите число - размер массива N: ');

readln(N);

{Установка размера массива}

SetLength(Massiv, N, N);

{Формирование случайного двумерного массива с элементами от 1 до 100}

for i := 0 to N-1 do begin

 for j := 0 to N-1 do begin

  Massiv[i, j] := Round(Random * max_num) + 1;

  write(Massiv[i,j]:4)

 end;

 writeln

end;

{Обнуление счётчиков}

m := 0; k := 0;

for i := 0 to N-1 do begin

 {Подсчёт чётных в строке i}

 c := 0;

 for j := 0 to N-1 do

  if (Massiv[i, j] mod 2 = 0) then Inc(c);

 

 {Если чётных больше, чем в предыдущих строках, то}

 if (c > m ) then begin

  {запоминаем номер строки в переменной k}

  k := i;

  {запоминаем текущее количество чётных}

  m := c

 end

end;

writeln('Чётных чисел больше в строке ', k,'. Их - ', m)

end.

Приложения:

NaaMan: Строки нумеруются с 0.
DashkaDars: А если нужно посчитать в 1 программе также произведение и главной последовательности и второстепенной? (Сумму произведерий)??? Помогиииите
DashkaDars: И столбцы со строчками в 10 элементов с числами от 1 до 100
Вас заинтересует