IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача по формированию файлов, Помогите найти ошибку
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Помогите пожалуйста найти ошибку в исходнике такой задачи:
Ввести целую квадратную матрицу A (N,N) (N<=10) Из положительных ее элементов сформировать файл F. Из файла F сформировать файл G, в который сначала записать сумму всех элементов файла F, затем максимальное значение файла F, затем все его компоненты в обратном порядке. Файл G выдать на печать.


program Project3;
const
Nmax = 10;
Kmax = Nmax*Nmax;
type
MATRIX = array[1..Nmax,1..Nmax] of integer;
aFile = File of integer;
VECTOR = array[1..Kmax] of integer;
var
A : matrix;
N : integer;
F : aFile;
G : aFile;
procedure EnterMatrix(var X : matrix; var aN : integer; ch : char);
var
i,j : integer;
begin
write('Vvedite razmernost matrizi: ');
readln(aN);
for i := 1 to aN do
for j := 1 to aN do
begin
write(ch,'[',i,',',j,']=');
readln(X[i,j]);
end;
end;
Procedure CreateF(Const x : Matrix; aN : integer; var aF : aFile);
Var
i:integer;
j:integer;
Begin
Rewrite (aF);
for i:=1 to N do
begin
for j:=1 to N do
if x[i,j]>0 then
Write (aF,A[i,j]);
end;
Close (aF);
end;
function Sum(var aF : aFile): integer;
var
S,X : integer;
begin
Reset(aF);
S:=0;
while not EOF(aF) do
begin
read(aF,X);
S:=S+X;
end;
Sum:=S;
close(aF);
end;
function Maximum(var aF : aFile): integer;
var
Y,x,max : integer;
begin
Reset(aF);
read(aF,Y);
max:=Y;
while not EOF(aF) do
begin
read(aF,x);
if Y<x
then begin
max:=x;
end;
Y:=x;
end;
Maximum:=max;
Close(aF);
end;
procedure Preobr(var aF,aG : aFile);
var
X,i,S,max : integer;
begin
Reset(aF);
ReWrite(aG);
S:=Sum(aF);
max:=Maximum(aF);
write(aG,S);
write(aG,Max);
for i := FileSize(aF)-1 downto 0 do
begin
read(aF,X);
write(aG,X);
end;
Close(aF);
Close(aG);
end;
procedure OutFile(var aG : aFile; ch : char);
var
X1 : integer;
begin
Reset(aG);
while not EOF(aG) do
begin
read(aG,X1);
writeln(ch,'[',FilePos(aG),']=',X1:4);
end;
Close(aG);
end;
begin
Assign(F,'F.dat');
Assign(G,'G.txt');
EnterMatrix(A,N,'A');
CreateF(A,N,F);
Preobr(F,G);
OutFile(G,'G');
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.09.2025 9:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name