
Помогите пожалуйста с двумя программами, на дельфи или на паскале очень нужно, буду очень
благодарен. Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных главной (начиная с одноэлементной диагонали A[1,M]).. Дана матрица размера 5 * 10. Удалить строку, содержащую максимальный элемент матрицы.

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

var n,i,j,l,sum,min:integer;
a:array[1..20,1..20]of integer;
begin
clrscr;
write('n=');
readln(n);
randomize;
Writeln('Ishodnaja matrica:');
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;
writeln;
end;
For l:=1 to 2*n-1 do
begin
sum:=0;
if l<=n then
begin
for i:=1 to l do
for j:=1 to l do
if j=l-i+1 then sum:=sum+a[i,j];
if sum<min then min:=sum;
end
else if l>n then
begin
for i:=l-n+1 to n do
for j:=l-n+1 to n do
if j=l-i+1 then sum:=sum+a[i,j];
if sum<min then min:=sum;
end;
writeln('Summa diagonali ',l,' = ',sum);
end;
writeln;
readln
end.



Конечно, я могу предоставить вам примеры программ на языках Pascal и Delphi для выполнения двух задач.
Задача 1: Найти суммы элементов диагоналей, параллельных главной
Для выполнения этой задачи вы можете использовать два вложенных цикла для перебора элементов матрицы и суммирования элементов на каждой диагонали. Вот пример на Pascal:```pascal program SumParallelDiagonals; const M = 5; N = 10; var matrix: array[1..M, 1..N] of Integer; i, j, diagSum: Integer; begin // Заполнение матрицы (пример) for i := 1 to M do for j := 1 to N do matrix[i, j] := Random(100); // Заполните матрицу данными
// Найдем суммы элементов диагоналей for i := 1 to M do begin diagSum := 0; for j := 1 to Min(M - i + 1, N) do diagSum := diagSum + matrix[i + j - 1, j]; writeln('Сумма элементов диагонали A[', i, ',1]: ', diagSum); end;
for j := 2 to N do begin diagSum := 0; for i := 1 to Min(N - j + 1, M) do diagSum := diagSum + matrix[i, j + i - 1]; writeln('Сумма элементов диагонали A[1,', j, ']: ', diagSum); end; end. ```
Задача 2: Удалить строку, содержащую максимальный элемент матрицы
Для этой задачи, вы также можете использовать два вложенных цикла для поиска максимального элемента и его позиции, а затем удалить строку с этой позицией. Вот пример на Pascal:```pascal program RemoveRowWithMaxElement; const M = 5; N = 10; var matrix: array[1..M, 1..N] of Integer; i, j, maxElement, maxRow: Integer; begin // Заполнение матрицы (пример) for i := 1 to M do for j := 1 to N do matrix[i, j] := Random(100); // Заполните матрицу данными
maxElement := matrix[1, 1]; maxRow := 1;
// Найдем максимальный элемент и его позицию for i := 1 to M do for j := 1 to N do if matrix[i, j] > maxElement then begin maxElement := matrix[i, j]; maxRow := i; end;
writeln('Максимальный элемент: ', maxElement);
// Удаляем строку с максимальным элементом for i := maxRow to M - 1 do for j := 1 to N do matrix[i, j] := matrix[i + 1, j];
// Уменьшаем количество строк в матрице M := M - 1;
// Выводим измененную матрицу for i := 1 to M do begin for j := 1 to N do write(matrix[i, j], ' '); writeln; end; end. ```
Эти программы могут быть адаптированы под Delphi, если у вас есть среда разработки Delphi.


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

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