Top.Mail.Ru
Ответы

Помогите составить программу, пожалуйста 🙏

Квадратная матрица. Создаём и заполняем рандомный двухмерный массив, организуем в конце программы диалог (продолжить, закончить), считаем сумму крайних элементов
Язык программирования - турбо паскаль

По дате
По рейтингу
Аватар пользователя
Просветленный
10мес

на пример
program massiv;
uses crt;
var
i,n:integer;
b:array[1..100] of integer;
BEGIN
randomize;
clrscr;
writeln;
write('Vvesti N: ');
readln(n);
writeln('Vektor B: ');
for i:=1 to n do begin
b[i]:=random(101); write(b[i]:3);
end;
writeln;
end. }
program massiv;
uses crt;
type matr= array[1..100,1..100] of integer;
procedure vvod(var c:matr; n,m:integer); //---------------------------------
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
c[i,j]:=random(101);
end; //----------------------------------------------------
procedure vivod( c:matr; n,m:integer);
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to m do
write(c[i,j]:3);
writeln; end;
end; //-------------------------------------------------
var
i,j,n,m:integer;
a:matr;
BEGIN
randomize;
clrscr;
writeln('Zadacha na massiv ');
writeln('---------------------------');
writeln;
write('Vvesti N and M: ');
readln(n,m);
writeln('Massiv A: ');
{ for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(101);
write(a[i,j]:3);
end;
writeln; end; }
vvod(a,n,m);
vivod(a,n,m);
end.

Аватар пользователя
Ученик
10мес
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
 program RandomMatrixEdgeSum; 
 
uses 
  SysUtils, Math; 
 
const 
  MinVal = 0; 
  MaxVal = 10; 
 
type 
  TIntMatrix = array of array of Integer; 
 
function CreateRandomMatrix(n: Integer; minVal, maxVal: Integer): TIntMatrix; 
var 
  i, j: Integer; 
begin 
  Randomize; 
  SetLength(Result, n, n); 
  for i := 0 to n - 1 do 
    for j := 0 to n - 1 do 
      Result[i][j] := Random(maxVal - minVal + 1) + minVal; 
end; 
 
procedure PrintMatrix(const matrix: TIntMatrix); 
var 
  i, j, n: Integer; 
begin 
  n := Length(matrix); 
  for i := 0 to n - 1 do 
  begin 
    for j := 0 to n - 1 do 
      Write(matrix[i][j]:4); 
    Writeln; 
  end; 
end; 
 
function SumEdgeElements(const matrix: TIntMatrix): Integer; 
var 
  n, i: Integer; 
  total: Integer; 
begin 
  n := Length(matrix); 
  total := 0; 
 
  // Суммируем первую и последнюю строки 
  for i := 0 to n - 1 do 
  begin 
    total := total + matrix[0][i];       // первая строка 
    total := total + matrix[n - 1][i];   // последняя строка 
  end; 
 
  // Суммируем первые и последние элементы остальных строк (без первой и последней) 
  for i := 1 to n - 2 do 
  begin 
    total := total + matrix[i][0] + matrix[i][n - 1]; 
  end; 
 
  Result := total; 
end; 
 
var 
  n, edgeSum: Integer; 
  matrix: TIntMatrix; 
  input: string; 
  continueProgram: Boolean; 
 
begin 
  continueProgram := True; 
  while continueProgram do 
  begin 
    Write('Введите размер квадратной матрицы (целое число > 1): '); 
    Readln(input); 
    if not TryStrToInt(input, n) or (n <= 1) then 
    begin 
      Writeln('Размер должен быть целым числом больше 1.'); 
      Continue; 
    end; 
 
    matrix := CreateRandomMatrix(n, MinVal, MaxVal); 
 
    Writeln('Сгенерированная матрица:'); 
    PrintMatrix(matrix); 
 
    edgeSum := SumEdgeElements(matrix); 
    Writeln('Сумма крайних элементов матрицы: ', edgeSum); 
 
    Write('Хотите продолжить? (да/нет): '); 
    Readln(input); 
    input := LowerCase(Trim(input)); 
    if not ((input = 'да') or (input = 'д') or (input = 'yes') or (input = 'y')) then 
    begin 
      Writeln('Программа завершена.'); 
      continueProgram := False; 
    end 
    else 
      Writeln(StringOfChar('-', 40)); 
  end; 
end. 
 
Аватар пользователя
Просветленный
10мес

никуясе портянка, а в попугаях-то (в маткаде, например) она (портянка) гораздо меньше.



Видео по теме