Вопрос задан 09.05.2019 в 12:49. Предмет Информатика. Спрашивает Яковлева Яна.

Напишите программу, которая заполняет матрицу случайными числами, а затем записывает нули во все

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

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

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

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.

0 0
Отвечает Конюхов Егор.
1. PascalABC.NET 3.3
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
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я могу помочь вам написать программу на языке 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 и затем записывает нули во все элементы выше главной диагонали. Выводится исходная матрица и измененная матрица.

0 0

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

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

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