В той из двух матриц, которая не содержит ни одного нулевого элемента, изменить её элементы путём вычитания из них среднего арифметического отрицательных элементов этой матрицы.
Разработать программу для обработки двух матриц разного размера с использованием подпрограмм. При разработке программ необходимо выбрать подходящий тип подпрограммы – процедура или функция. Процедуры ввода и вывода считать «стандартными». Модули использовать не нужно. Для каждой матрицы использовать своё заданное значение. Осуществлять досрочный выход из цикла. Необходимо разработать программу. Ввод и вывод из файлов. Программа на паскале
стандартными способами ввода/вывода считались клавиатура/монитор, а файловый ввод/вывод то уже плюшки
Стандартные текстовые файлы Input и Output.
В Паскале существуют два стандартных текстовых файла: Input и Output. Эти файлы считаются известными в любой Pascal-программе (иными словами, они описаны в стандартном модуле System). Они обозначают (по терминологии MS-DOS), соответственно, стандартный файл ввода и стандартный файл вывода. Обычно эти стандартные файлы связаны с конкретными физическими устройствами компьютера. Так, файловая переменная Input связана с клавиатурой, файловая переменная Output - с экраном дисплея. Эти файлы считаются заранее открытыми, а соответствующие идентификаторы можно использовать в операциях ввода-вывода.
интересно, если ТС не получил ответ в первых 2 сообщениях и его уже сутки не видно, зайдет он сюда еще?
пускай висит код, всеравно тс он уже без надобности
{
input_1.dat sample:
3
-12
32
27
}
program Hello;
const
A_SIZE = 100;
type
ar = array [1..A_SIZE] of real;
var
a : array [1..2] of ar;
n : integer;
i : byte;
s_i : string;
filename : string;
Function CheckZeroElements(a : ar; n : integer) : boolean;
var
i : integer;
begin
CheckZeroElements := false;
for i := 1 to n do
if(a[i]=0) then
begin
CheckZeroElements := true;
break
end
end;
Function GetAverageOfNegatives(a : ar; n : integer) : real;
var
i : integer;
sum : real;
count : integer;
begin
count := 0;
sum := 0;
for i := 1 to n do
if a[i] < 0 then
begin
inc(count);
sum := sum + a[i]
end;
if count > 0 then
GetAverageOfNegatives := sum / count
else
GetAverageOfNegatives := 1
end;
Function SubstractAverage(a : ar; n : integer) : ar;
var
avg : real;
i : integer;
begin
avg := GetAverageOfNegatives(a, n);
writeln('average of negatives : ', avg:2:2);
for i := 1 to n do
a[i] := a[i] - avg;
SubstractAverage := a
end;
Function ReadData(InputFileName : string) : ar;
var
i : integer;
a : ar;
f : text;
begin
assign(f,InputFileName);
reset(f);
readln(f,n);
for i := 1 to N do
readln(f, a[i]);
close(f);
ReadData := a
end;
Procedure PrintData(a : ar; n : integer; OutputFileName:string);
var
i : integer;
f : text;
begin
assign(f,OutputFileName);
rewrite(f);
for i := 1 to N do
writeln(f, a[i]:2:2);
close(f)
end;
begin
for i := 1 to 2 do
begin
writeln('Array #',i,' performing...');
str(i, s_i);
filename := 'input_' + s_i + '.dat';
a[i] := ReadData(filename);
if CheckZeroElements(a[i],n) then
begin
a[i] := SubstractAverage(a[i],n);
filename := 'output_' + s_i + '.dat';
PrintData(a[i],n,filename);
writeln('done. Check <<' + filename + '>>');
end
else
writeln('array has zerovalued elements. Stop execution!')
end
end.