Создайте программу, реализующую обработку массива вещественных чисел — Pascal(Паскаль)

Программа должна удовлетворять следующим требованиям:
– в лабораторной работе необходимо реализовать процедуру и функцию, реализующие вычисления, в соответствии с номером варианта, указанным в таблице 2.1;
– в основной программе необходимо ввести значения элементов заданной матрицы с клавиатуры, а другой матрицы – из текстового файла
matrix.txt. Содержимое файла matrix.txt представлено в приложении В.
– в основной программе вызвать разработанные процедуры и функции для заданных матриц. Вычислить A*B и B*A или A+B и B+A, AT и BT в зависимости от варианта.
– программа должна осуществлять вывод полученных результатов в отдельный файл.

Вариант:Процедура (Транспонирование), Функция (Последний положительный среди элементов ниже главной диагонали), Матрицы А,В, Ввести с клавиатуры А.

uses crt;
type matr=array[1..50,1..50] of integer;
procedure Trans(m:matr;x:byte; var mt:matr);
var i,j:byte;
begin
for i:=1 to x do
for j:=1 to x do
mt[i,j]:=m[j,i];
end;
function Poloz(m:matr;x:byte):integer;
var i,j,k:byte;
    p:integer;
begin
p:=0;
for i:=x downto 2 do
 begin
  k:=0;
  for j:=i-1 downto 1 do
  if m[i,j]>0 then
    begin
     p:=m[i,j];
     k:=1;
     break;
    end;
  if k=1 then break;
 end;
Poloz:=p;
end;
var a,b,at,bt:matr;
    n,i,j:byte;
    f,g:text;
    s:string;
begin
clrscr;
assign(f,'matrix.txt');
{I-}reset(f);{I+}
if IOResult<>0 then
 begin
  writeln('Файл с именем matrix.txt не найден, программа будет закрыта.');
  write('Нажмите Enter.');
  readln;
  exit;
 end;
assign(g,'result.txt');
rewrite(g);
read(f,n);
for i:=1 to n do
for j:=1 to n do
read(f,b[i,j]);
close(f);
writeln('Введите ',n*n,' элементов матрицы A:');
for i:=1 to n do
for j:=1 to n do
 begin
  write('a[',i,',',j,']=');
  readln(a[i,j]);
 end;
writeln(g,'Ishodnaya matrica A::');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(g,a[i,j]:4);
  writeln(g,'');
 end;
if Poloz(a,n)=0 then writeln(g,'Polozitelnyh net!')
else writeln(g,'Poslednij polozitelnyj nize glavnoj diagonali=',Poloz(a,n));
writeln(g,'');
Trans(a,n,at);
writeln(g,'Trasponirovannaya matrica AT:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(g,at[i,j]:4);
  writeln(g,'');
 end;
writeln(g,'');
writeln(g,'Ishodnaya matrica B::');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(g,b[i,j]:4);
  writeln(g,'');
 end;
if Poloz(b,n)=0 then writeln(g,'Polozitelnyh net!')
else writeln(g,'Poslednij polozitelnyj nize glavnoj diagonali=',Poloz(b,n));
writeln(g,'');
Trans(b,n,bt);
writeln(g,'Trasponirovannaya matrica BT:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(g,bt[i,j]:4);
  writeln(g,'');
 end;
write('Результаты записаны в файл result.txt');
close(g);
readln
end.

Leave a Comment

+ 78 = 82