
Вопрос задан 05.03.2021 в 19:26.
Предмет Информатика.
Спрашивает Каспийская Ольга.
2. Даны 3 двумерных массива A, B, C неодинаковой размерности. Разработать 2 процедуры: 1) процедуру
для ввода размеров и элементов массива. 2) процедуру вычисления суммы диагональных элементов в каждом массиве. В программе вычислить общую сумму диагональных элементов 3-х массивов. Результаты выдать на экран. НУЖЕН ПАСКАЛЬ!!!!

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

Отвечает Седлецкий Илья.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
type
Mas=array[,] of integer;
procedure GetMas(s:string; var a:Mas);
begin
Writeln('*** Массив ',s,' ***');
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('Вводите элементы массива');
a:=ReadMatrInteger(n,m)
end;
function SumDiag(a:Mas):integer;
begin
Result:=0;
for var i:=0 to Min(a.RowCount,a.ColCount)-1 do Result+=a[i,i]
end;
begin
var a,b,c:Mas;
GetMas('A',a);
GetMas('B',b);
GetMas('C',c);
Writeln('Общая сумма элементов главных диагоналей равна ',
SumDiag(a)+SumDiag(b)+SumDiag(c))
end.
Пример
*** Массив A ***
Количество строк в массиве: 3
Количество столбцов в массиве: 4
Вводите элементы массива
-33 -50 34 -41
-31 10 37 31
32 -49 -32 -27
*** Массив B ***
Количество строк в массиве: 2
Количество столбцов в массиве: 2
Вводите элементы массива
-22 35
0 11
*** Массив C ***
Количество строк в массиве: 3
Количество столбцов в массиве: 2
Вводите элементы массива
23 38
17 -8
16 -1
Общая сумма элементов главных диагоналей равна -51
// Внимание! Если программа не работает, обновите версию!
type
Mas=array[,] of integer;
procedure GetMas(s:string; var a:Mas);
begin
Writeln('*** Массив ',s,' ***');
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('Вводите элементы массива');
a:=ReadMatrInteger(n,m)
end;
function SumDiag(a:Mas):integer;
begin
Result:=0;
for var i:=0 to Min(a.RowCount,a.ColCount)-1 do Result+=a[i,i]
end;
begin
var a,b,c:Mas;
GetMas('A',a);
GetMas('B',b);
GetMas('C',c);
Writeln('Общая сумма элементов главных диагоналей равна ',
SumDiag(a)+SumDiag(b)+SumDiag(c))
end.
Пример
*** Массив A ***
Количество строк в массиве: 3
Количество столбцов в массиве: 4
Вводите элементы массива
-33 -50 34 -41
-31 10 37 31
32 -49 -32 -27
*** Массив B ***
Количество строк в массиве: 2
Количество столбцов в массиве: 2
Вводите элементы массива
-22 35
0 11
*** Массив C ***
Количество строк в массиве: 3
Количество столбцов в массиве: 2
Вводите элементы массива
23 38
17 -8
16 -1
Общая сумма элементов главных диагоналей равна -51



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно! Вот пример программы на языке Паскаль, реализующий указанные процедуры и вычисляющий сумму диагональных элементов трех массивов:
pascalprogram DiagonalSum; const MAX_SIZE = 100; type TwoDimArray = array[1..MAX_SIZE, 1..MAX_SIZE] of Integer; procedure InputArray(var arr: TwoDimArray; var rows, cols: Integer); var i, j: Integer; begin Write('Введите количество строк: '); Readln(rows); Write('Введите количество столбцов: '); Readln(cols); Writeln('Введите элементы массива:'); for i := 1 to rows do begin for j := 1 to cols do begin Write('A[', i, ',', j, ']: '); Readln(arr[i, j]); end; end; end; function DiagonalSumArray(arr: TwoDimArray; rows, cols: Integer): Integer; var i, sum: Integer; begin sum := 0; for i := 1 to Min(rows, cols) do sum := sum + arr[i, i]; DiagonalSumArray := sum; end; var A, B, C: TwoDimArray; rowsA, colsA, rowsB, colsB, rowsC, colsC: Integer; sumA, sumB, sumC, totalSum: Integer; begin Writeln('--- Ввод массива A ---'); InputArray(A, rowsA, colsA); Writeln; Writeln('--- Ввод массива B ---'); InputArray(B, rowsB, colsB); Writeln; Writeln('--- Ввод массива C ---'); InputArray(C, rowsC, colsC); Writeln; sumA := DiagonalSumArray(A, rowsA, colsA); sumB := DiagonalSumArray(B, rowsB, colsB); sumC := DiagonalSumArray(C, rowsC, colsC); totalSum := sumA + sumB + sumC; Writeln('Сумма диагональных элементов массива A: ', sumA); Writeln('Сумма диагональных элементов массива B: ', sumB); Writeln('Сумма диагональных элементов массива C: ', sumC); Writeln('Общая сумма диагональных элементов трех массивов: ', totalSum); end.
Программа запрашивает у пользователя размеры и элементы трех массивов, вычисляет сумму диагональных элементов каждого массива и выводит результаты на экран.
Обратите внимание, что в примере используется тип TwoDimArray
, который представляет двумерный массив с максимальными размерами 100x100. Вы можете изменить значение константы MAX_SIZE
и использовать большие или меньшие размеры массивов, в зависимости от ваших потребностей.


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

Информатика 565

Информатика 25

Информатика 22

Информатика 27

Информатика 34

Информатика 58

Информатика 63

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