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

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

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

 
 Ответить  Открыть новую тему 
> файл как параметр подпрограммы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский
Реальное имя: света

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


помогите пжалста найти ошибку... не компиллируется код.
задача такая. создать файл типа integer. в него записать n целыx чисел. потом переписать их в другой файл в такой последовательности: а1,а2,а3,а2,а1,а4,а5,а6,а5,а4.. и так до конца, используя подпрограммы.
вот что получилось:
Код

program l9;
uses crt;
var f,g:file of integer;
    n,c,d,i:byte;
    b:integer;
procedure to_g(const p,c,d:byte; var f,g:file of integer); {ошибку выдаёт здесь.компиллятор требует скобку после слова file... что ему не нравится?}
var m,s:integer;
begin
m:=p;
while m<>c do
   begin
     seek(f,m);
     read(f,s);
     write(g,s);
     m:=m+1;
   end;
m:=m-1;
while m<>p do
   begin
     seek(f,m-1);
     read(f,s);
     write(g,s);
     m:=m-1;
    end;
end;

procedure kratn(n:byte; const c,d:byte;var f,g:file of integer);
var j,p:byte;
begin
  p:=0;
  while p<>n do
   begin
    for j:=1 to n/c do to_n(p,c,d,f,g);
    p:=p+d;
   end;
end;

procedure ne_kratn(n:byte; const c,d:byte;var f,g:file of integer);
var j,p:byte; s:integer;
begin
  p:=0;
  while p<>n do
   begin
    for j:=1 to n/c do to_n(p,c,d,f,g);
    p:=p+d;
   end;
  while not eof(f) do
   begin
    read(f,s);
    write(g,s);
   end;
end;

begin
  clrscr;
  assign(f,'f.dat');
  assign(g,'g.dat');
  writeln('vvedite N - koli4estvo 4isel v ishodnoi posledovatelnosti'); read(n);
  writeln('vvedite eti 4isla');
  rewrite(f);
  for i:=1 to n do
   begin
    read(b);
    write(f,b);
   end;
  close(f);
  writeln('vvedite C');read(c); {в моей задаче с дано и равно 3-после каждого третего эл-та записаны два предыдущих, я решила обобщить}
  d:=2*c-1; {это сумма эл-тов напр а1,а2,а3,а2,а1.тоже для обобщения}
  reset(f);
  rewrite(g);
  if (n mod c)=0 then kratn(n,c,d,f,g)
                 else ne_kratn(n,c,d,f,g);
  close(g);
  reset(g);
  reset(f);
  writeln('ishodnii fail:');
  while not eof(f) do
    begin
      read(f,b);
      write(b,' ');
    end;
  writeln;
  writeln('polu4ennii fail:');
  while not eof(g) do
    begin
      read(g,b);
      write(b,' ');
    end;
  close(f);
  close(g);
  readkey;
end.


в каждой подпрограмме такая ошибка. без них всё работает, но код настолько больше! да и по требованиям подпрограммы нужны.
пробовала передать как параметр-значение, тоже ошибка(
что здесь может быть не так?

Сообщение отредактировано: svetkom -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(svetkom @ 14.12.2006 8:41) *

помогите пжалста найти ошибку... не компиллируется код.
procedure to_g(const p,c,d:byte; var f,g:file of integer); {ошибку выдаёт здесь.компиллятор требует скобку после слова file... что ему не нравится?}

Попробуй описать тип
type
fInt=file of integer;

и используй его дальше.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский
Реальное имя: света

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


спасибо!! помогло)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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