
Нужно написать программа в Pascal: 1) В двумерном массиве найти произведение элементов главной
диагонали 2) В двумерном массиве найти номер строки, в которой наибольшее количество чётных элементов Очень срочно надо, пожаааалуйста, даю 20 баллов

Ответы на вопрос

Программа 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.





Конечно, я помогу вам написать программу на Pascal. Вот код для вашей задачи:
pascalprogram Main; const N = 3; // Задайте размерность массива (3 для примера, но вы можете изменить) type Matrix = array[1..N, 1..N] of integer; var A: Matrix; i, j, maxEvenCount, maxEvenCountRow, diagonalProduct: integer; // Процедура для ввода элементов массива procedure ReadMatrix(var A: Matrix); begin writeln('Введите элементы массива:'); for i := 1 to N do for j := 1 to N do read(A[i, j]); end; // Процедура для вывода элементов массива procedure PrintMatrix(var A: Matrix); begin writeln('Массив:'); for i := 1 to N do begin for j := 1 to N do write(A[i, j], ' '); writeln; end; end; // Функция для поиска произведения элементов главной диагонали function DiagonalProduct(var A: Matrix): integer; begin DiagonalProduct := 1; for i := 1 to N do DiagonalProduct := DiagonalProduct * A[i, i]; end; // Функция для поиска строки с наибольшим количеством чётных элементов function MaxEvenCountRow(var A: Matrix): integer; var evenCount, maxEvenCount, rowWithMaxEvenCount: integer; begin maxEvenCount := 0; for i := 1 to N do begin evenCount := 0; for j := 1 to N do if A[i, j] mod 2 = 0 then evenCount := evenCount + 1; if evenCount > maxEvenCount then begin maxEvenCount := evenCount; rowWithMaxEvenCount := i; end; end; MaxEvenCountRow := rowWithMaxEvenCount; end; begin ReadMatrix(A); PrintMatrix(A); diagonalProduct := DiagonalProduct(A); writeln('Произведение элементов главной диагонали: ', diagonalProduct); maxEvenCountRow := MaxEvenCountRow(A); writeln('Номер строки с наибольшим количеством чётных элементов: ', maxEvenCountRow); end.
Программа принимает ввод элементов матрицы, затем выводит саму матрицу и результаты обоих заданий. Надеюсь, это поможет вам! Если у вас есть дополнительные вопросы, пожалуйста, дайте знать.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili