Сформировать массив К из положительных отношений элементов n-го и s-го столбцов массива.
program Lab_6;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
s = 1; //s и n столбцы, которые нужно переместить
n = 4;
MaxDim = 5; // максимальный размер матрицы
type
arr=array[1.. MaxDim,1.. MaxDim] of integer; // тип arr для массива А
arr2=array[1..MaxDim] of real;
var
A:arr; // массив А
K:arr2; //массив K, тобишь куда будем записывать положительное часное от деления
i,j:integer; // счетчики по строкам, столбцам
m:integer; // размер квадратной матрицы
fi,fo:text; // файловые переменные
//-------------------------------------------------------------
// Описание процедуры чтения массива из файла
// f, a1, MaxD, m1 - формальные параметры
//
// Исходные данные:
// f - файл исходных данных,
// MaxD - максимальная размерность массива a1
//
// Результат:
// заполненный массив a1 и его реальный размер - m1
//-------------------------------------------------------------
Procedure ReadFromFile(var f:text;var A1:arr;MaxD:integer; var m1:integer);
Var
i,j:integer; // счетчики по строкам, столбцам - локальные переменные
begin
Readln(f,m1); // чтение размера матрицы из первой строки файла
if m1>MaxD then // проверка размера матрицы
begin
m1:=MaxD;
Writeln('Матрица из файла урезана до размера массива');
end;
for i:=1 to m1 do // чтение из файла матрицы А
begin
for j:=1 to m1 do Read(f,A1[i,j]);
Readln(f); // перевод указателя файла на новую строку
end;
end;
//-------------------------------------------------------------
// заполнение массива K
//
// Исходные данные: массив a1 и его реальный размер - m1.
//-------------------------------------------------------------
Procedure Schet(Var a1:arr; m1:word; s1,n1:integer; var k: arr2);
Var
i: word;// счетчик по строкам
begin
For i:=1 to m1 do //проверка условия и заполнение массива k
if (a1[s1,i]/a1[n1,i])>0 then k[i]:=(a1[s1,i]/a1[n1,i]);
end;
//-------------------------------------------------------------
// описание процедуры вывода результата в файл и на экран
//
// Исходные данные:
// f - файл для сохранения результата,
// Результат - вывод результатов программы в файл и на экран
//-------------------------------------------------------------
Procedure SaveToFile(var f:text; var m1:integer; var k:arr2);
Var i:integer;
begin
For i:=1 to m1 do begin
Writeln(f,'k[',k[i],']=') end;
For i:=1 to m1 do begin
Writeln('k[',k[i],']=') end;
end;
begin
AssignFile(fi,'matr.txt'); // Файловой переменной fi назначается файл matr.txt
Reset(fi); // Текстовый файл открывается для чтения
// чтение данных из файла fi;
// A, MaxDim, m - фактические параметры
ReadFromFile(fi,A,MaxDim,m);
CloseFile(fi); // Закрывается прочитанный файл fi
// вызов процедуры решения основной задачи
Schet(A,m,s,n,k);
// Файловой переменной fo назначается файл matr.out
AssignFile(fo,'matr.out');
Rewrite(fo); // Текстовый файл fo открывается для записи
// вызов процедуры вывода результатов в файл
SaveToFile(fo,m,k);
CloseFile(fo); // Закрывается файл fo,созданный программой
WriteLn('***** Press <ENTER> to finish *****');
Readln; // задержка экрана
end.