
Информатика. В Паскале!!! «Составить программу, которая формирует двумерную матрицу случайных
чисел, имеющих N строк и N столбцов, а затем формирует два одномерных массива. Причём в один записываются элементы матрицы, расположенные на главной диагонали и выше, а в другой - элементы матрицы, лежащие ниже главной диагонали и выводит все массивы на экран.» Хоть кто-нибудь помогите, ну всё запущено :(

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

Ответ:
Объяснение:
program matic1;
const z=100;
type mas=array[1..z] of integer;
type mas2=array[1..z,1..z] of integer;
var
u :mas2;
u1, u2: mas;
n,k,m:integer;
procedure ch1(n:integer);
var i,j:integer;
begin
j:=0;k:=0;m:=0;
randomize;
for i:=1 to n do
for j:=1 to n do
u[i,j]:= random(20+j)+20;
for i:=1 to n do
for j:=1 to n do
begin
if j>=i then begin k:=k+1;u1[k]:=u[i,j] end
else begin m:=m+1;u2[m]:=u[i,j] end;
end;
end;
// Вывод 2 мерного массива на экран
// a -массив n-размер,text - что хотим написать
procedure showmas2(b:mas2;n:integer;text:string);
var
i,j:integer;
begin
writeln(text);
for i:=1 to n do
for j:=1 to n do
if j<>n then write(b[i,j],' ') else writeln(b[i,j],' ');
readln;
end;
// Вывод 1 мерного массива на экран
// a -массив nn-размер,text - что хотим написать
procedure showmas(b:mas;nn:integer;text:string);
var
i:integer;
begin
writeln(text);
for i:=1 to nn do
write(b[i],' ');
readln;
end;
begin
Write('Введите размер массива N= ');
readln(n);
ch1(n);
showmas2(u,n,'Исходная матрица NxN u');
showmas(u1,k,'Элементы главной диагонали и выше u1');
showmas(u2,m,'Элементы ниже главной диагонали u2');
readln;
end.
end.



Конечно, я помогу! Вот пример программы на языке Паскаль, которая решает данную задачу:
pascalprogram RandomMatrix; const N = 5; // Задайте значение N здесь, можно изменить на нужное число type Matrix = array[1..N, 1..N] of Integer; DiagonalArray = array[1..N] of Integer; procedure GenerateRandomMatrix(var mat: Matrix); var i, j: Integer; begin Randomize; for i := 1 to N do for j := 1 to N do mat[i, j] := Random(100); // Генерируем случайное число от 0 до 99 end; procedure SplitMatrix(var mat: Matrix; var aboveDiagonal, belowDiagonal: DiagonalArray); var i, j, aboveIndex, belowIndex: Integer; begin aboveIndex := 1; belowIndex := 1; for i := 1 to N do for j := 1 to N do begin if i <= j then begin aboveDiagonal[aboveIndex] := mat[i, j]; Inc(aboveIndex); end else begin belowDiagonal[belowIndex] := mat[i, j]; Inc(belowIndex); end; end; end; procedure DisplayArray(arr: DiagonalArray); var i: Integer; begin for i := 1 to N do Write(arr[i], ' '); Writeln; end; var matrix: Matrix; aboveDiagonalArray, belowDiagonalArray: DiagonalArray; begin GenerateRandomMatrix(matrix); Writeln('Сгенерированная матрица:'); for i := 1 to N do begin for j := 1 to N do Write(matrix[i, j]:4); Writeln; end; SplitMatrix(matrix, aboveDiagonalArray, belowDiagonalArray); Writeln('Массив элементов выше и на главной диагонали:'); DisplayArray(aboveDiagonalArray); Writeln('Массив элементов ниже главной диагонали:'); DisplayArray(belowDiagonalArray); end.
Здесь N
задает размер матрицы NxN, которая заполняется случайными числами от 0 до 99. Затем матрица разбивается на два одномерных массива: aboveDiagonalArray
для элементов на главной диагонали и выше нее, и belowDiagonalArray
для элементов ниже главной диагонали. Оба массива выводятся на экран после заполнения.
Программа должна работать для любого значения N
, которое вы установите. Просто замените значение N
в коде на то, которое вам необходимо, и запустите программу на выполнение.


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