
Напишите программу, которая заполняет матрицу случайными числами, а затем записывает нули во все
элементы выше главной диагонали. На языке Паскаль. Даю 20 баллов

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

// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк (столбцов) в массиве:');
Writeln('*** Исходный массив ***');
var a:=MatrRandom(n,n,10,99);
a.Println(3); Writeln(3*n*'-');
for var i:=0 to n-2 do
for var j:=i+1 to n-1 do a[i,j]:=0;
Writeln('*** Выходной массив ***'); a.Println(3)
end.



const n=5;
begin
writeln('До:');
var a:=MatrRandom(n,n,-10,10); a.Println(5);
var b:=a.ElementsWithIndexes.Select(k->k[2]>k[1]?0:k[0]).ToArray;
writeln('После:');
a:=MatrGen(n,n,(i,j)->b[i*n+j]); a.Println(5);
end.
Пример:
До:
-7 3 8 -6 -5
-2 6 -1 -6 -8
5 7 2 -10 0
9 3 -8 5 -6
-4 1 1 0 -10
После:
-7 0 0 0 0
-2 6 0 0 0
5 7 2 0 0
9 3 -8 5 0
-4 1 1 0 -10
2.
const n=5;
var
a:array[1..n,1..n] of integer;
i,j:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
for i:=1 to n do
for j:=i+1 to n do a[i,j]:=0;
writeln('Полученный массив:');
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end.
Пример:
Исходный массив:
62 25 21 54 22
71 39 41 49 63
26 93 50 79 35
81 45 40 99 45
46 87 63 36 15
Полученный массив:
62 0 0 0 0
71 39 0 0 0
26 93 50 0 0
81 45 40 99 0
46 87 63 36 15



Конечно, я могу помочь вам написать программу на языке Pascal, которая выполняет указанные действия. Вот пример простой программы:
```pascal program FillMatrix; const N = 5; // размерность матрицы
var matrix: array[1..N, 1..N] of integer; i, j: integer;
begin // Инициализация генератора случайных чисел randomize;
// Заполнение матрицы случайными числами for i := 1 to N do for j := 1 to N do matrix[i, j] := random(100); // генерируем случайные числа от 0 до 99
// Вывод исходной матрицы writeln('Исходная матрица:'); for i := 1 to N do begin for j := 1 to N do write(matrix[i, j]:4); writeln; end;
// Запись нулей в элементы выше главной диагонали for i := 1 to N do for j := 1 to N do if i < j then matrix[i, j] := 0;
// Вывод измененной матрицы writeln('Матрица с нулями выше главной диагонали:'); for i := 1 to N do begin for j := 1 to N do write(matrix[i, j]:4); writeln; end;
readln; end. ```
Программа создает матрицу размерности `N` (в данном случае, 5x5), заполняет ее случайными числами от 0 до 99 и затем записывает нули во все элементы выше главной диагонали. Выводится исходная матрица и измененная матрица.


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







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