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

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

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

> Задача по формированию файлов, Помогите найти ошибку
Nolan
сообщение 30.11.2005 0:08
Сообщение #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

 

- Текстовая версия 10.08.2025 3:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"