Вопрос задан 23.06.2023 в 23:50. Предмет Информатика. Спрашивает Туганова Виктория.

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

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Горбунова Дарья.

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



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я помогу вам написать программу на Pascal. Вот код для вашей задачи:

pascal
program 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.

Программа принимает ввод элементов матрицы, затем выводит саму матрицу и результаты обоих заданий. Надеюсь, это поможет вам! Если у вас есть дополнительные вопросы, пожалуйста, дайте знать.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос