Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2013, 21:36   #1
Vania96
Пользователь
 
Регистрация: 13.07.2013
Сообщений: 61
По умолчанию Помогите исправить ошибки

Вот код ,помогите исправить ошибки
Код:
program p7_8;
Type
znak=record;
fi:string[15];
znak_zod:string[20];
den_rog:array[1..3] of byte;
end;
    Var
    res:znak;
    f:file of znak;
    n,i:byte;
    p_m:byte;
        Procedure create;
        Var x:char;
        begin
        write('Vi deistvitelno hotite ydalit stariy fail i sozdat noviy?y/n:');
        readln(x);
        if(x='n') then writeln('Sozdanie otmeneno!')
        else
        begin
        rewrite(f);
        n:=1;
        repeat
        writeln('Vvedite dannue o',n,'m cheloveke');
        writeln('Name:');
        readln(res.fi);
        writeln('znak zodiaka:');
        readln(res.znak_zod);
        writeln('data rogdeniya:');
        readln(res.den_rog[1],res.den_rog[2]);
        write(f,res);
        write('Hotite prodolgit vvod dannih?y/n:');
        readln(x);
        inc(n);
        until x<>'y';
        close (f);readln;
        end;
            procedure add;{Пишет требуется оператор!КАКОЙ ОПЕРАТОР Я НЕ МОГУ ПОНЯТЬ?}
            Var
            len:lougint;
            begin
            reset(f);
            len:=files size (f);
            sak(f,len);
            n:=1;
            repeat
            writeln('Vvedite dannie o ',n,'m cheloveke');
            write('fi:');
            readln(res.fi);
            writeln(res.den_rog[1],res.den_rog[2]);
            write('znak zodiaka:');
            readln(res.znak_zod);
            write('Hotite prodolgit vvod?(y/n):');
            readln(x);
            inc(x);
            until<>'y';
            else(f)
            readln;
            end;
                procedure shapka;
                begin
                writeln('_____________________________________________');
                writeln('| # |name|znak zodiaka|   data rogdeniya   |');
                writeln('_____________________________________________');
                end;
                    Procedure view;
                    var
                    n:byte;
                    begin
                    read(f);
                    n:=1;
                    shapka;
                    while not(eof(f)) do
                    read(f,res):
                    writeln('|',n:3,'res.fi:15,'|    ',res.znak_zod:20,'|',res.data_rog[1]:2,' ',res.data_rog[2]:2,'|');
                    inc(n);
                           Procedure spisok;
                           var n:byte;
                           begin
                           reset(f);
                           znak_zod1 : string[20];
                           writeln('Vvedite imena ludei');
                           readln(znak_zod1);
                           n:=1;
                           Shapka;
                           read(f,res):
                           writeln('|',n:3,'res.fi:15,'|    ',res.znak_zod:20,'|',res.data_rog[1]:2,' ',res.data_rog[2]:2,'|');
                           inc(n);
                           while not(eof(f)) do
                           begin
                           read(f,res);
                           if(znak_zod1[20]>res.znak_zod) or(znak_zod1=res.znal_zod) and(znak_zod1>res.znak_zod[20]) then
                           begin
                           read(f,res):
                           writeln('|',n:3,'res.fi:15,'|    ',res.znak_zod:20,'|',res.data_rog[1]:2,' ',res.data_rog[2]:2,'|');
                           inc(n);
                           end;
                           end;
                           if n=1 then write('   net cheloveka');
                           writeln('_____________________________________________');
                           close(f)
                           readln;
                           end;
                           
        
        
             Begin
             assing(f,'D:\znak');
             repeat
             writeln('    Menu:');
             writeln('1.Sozdanie faila');
             writeln('2.Prosmotr faila');
             writeln('3.Poisk znaka');
             writeln('4.Dobavlenie znaka');
             writeln('5.Exit');
             writeln('   Viberite punkt menu');
             readln(p_m);
             case p_m of
             '1':create;
             '2':view;
             '3':spisok;
             '4':add;
             '5':writeln('Do vstrechi!');
             else write('Neverno.Povtorite popitku!');
             end;
             until p_m='5';
             readln;
             end.
Vania96 вне форума Ответить с цитированием
Старый 14.11.2013, 21:46   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

У процедуры create нет end'а. То есть, процедура еще не закончилась, а уже идет новая - add.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 14.11.2013, 21:54   #3
Vania96
Пользователь
 
Регистрация: 13.07.2013
Сообщений: 61
По умолчанию

Спасибо,сейчас еще ошибки найду.
Vania96 вне форума Ответить с цитированием
Старый 14.11.2013, 21:57   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Проверьте текст внимательно, в некоторых местах пропущена ; и стоит : вместо ;
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 14.11.2013, 22:11   #5
Vania96
Пользователь
 
Регистрация: 13.07.2013
Сообщений: 61
По умолчанию

Код:
program p7_8;
Type
znak=record;
fi:string[15];
znak_zod:string[20];
den_rog:array[1..2] of byte;
end;
    Var
    res:znak;
    f:file of znak;
    n,i:byte;
    p_m:byte;
        Procedure create;
        Var x:char;
        begin
        write('Vi deistvitelno hotite ydalit stariy fail i sozdat noviy?y/n:');
        readln(x);
        if(x='n') then writeln('Sozdanie otmeneno!')
        else
        begin
        rewrite(f);
        n:=1;
        repeat
        writeln('Vvedite dannue o',n,'m cheloveke');
        writeln('Name:');
        readln(res.fi);
        writeln('znak zodiaka:');
        readln(res.znak_zod);
        writeln('data rogdeniya:');
        readln(res.den_rog[1],res.den_rog[2]);
        write(f,res);
        write('Hotite prodolgit vvod dannih?y/n:');
        readln(x);
        inc(n);
        until x<>'y';
        close (f);readln;
        end;
        end;
            procedure add;
            Var
            len:longint;
            x:char;
            begin
            reset(f);
            len:=filesize (f);
            seek(f,len);
            n:=1;
            repeat
            writeln('Vvedite dannie o ',n,'m cheloveke');
            write('fi:');
            readln(res.fi);
            writeln(res.den_rog[1],res.den_rog[2]);
            write('znak zodiaka:');
            readln(res.znak_zod);
            write('Hotite prodolgit vvod?(y/n):');
            readln(x);
            inc(n);
            until x<>'y';
            close(f);
            readln;
            end;
                procedure shapka;
                begin
                writeln('_____________________________________________');
                writeln('| # |name|znak zodiaka|   data rogdeniya   |');
                writeln('_____________________________________________');
                end;
                    Procedure viev;
                    var
                    n:byte;
                    begin
                    read(f);
                    n:=1;
                    shapka;
                    while not(eof(f)) do
                    read(f,res);
                    writeln('|',n:3,',res.fi:15,'   |  ',res.znak_zod:20,'|',res.data_rog[1]:2,' ',res.data_rog[2]:2,'|');  {ПОДСКАЖИТЕ ГДЕ СДЕСЬ НЕ ПРАВИЛЬНОЕ ВЫРАЖЕНИЕ?}
                    inc(n);
                           Procedure spisok;
                           var n:byte;
                           begin
                           reset(f);
                           znak_zod1 : string[20];
                           writeln('Vvedite imena ludei');
                           readln(znak_zod1);
                           n:=1;
                           Shapka;
                           read(f,res):
                           writeln('|',n:3,'res.fi:15,'|    ',res.znak_zod:20,'|',res.data_rog[1]:2,' ',res.data_rog[2]:2,'|');
                           inc(n);
                           while not(eof(f)) do
                           begin
                           read(f,res);
                           if(znak_zod1[20]>res.znak_zod) or(znak_zod1=res.znal_zod) and(znak_zod1>res.znak_zod[20]) then
                           begin
                           read(f,res):
                           writeln('|',n:3,'res.fi:15,'|    ',res.znak_zod:20,'|',res.data_rog[1]:2,' ',res.data_rog[2]:2,'|');
                           inc(n);
                           end;
                           end;
                           if n=1 then write('   net cheloveka');
                           writeln('_____________________________________________');
                           close(f)
                           readln;
                           end;
                           
        
        
             Begin
             assing(f,'D:\znak');
             repeat
             writeln('    Menu:');
             writeln('1.Sozdanie faila');
             writeln('2.Prosmotr faila');
             writeln('3.Poisk znaka');
             writeln('4.Dobavlenie znaka');
             writeln('5.Exit');
             writeln('   Viberite punkt menu');
             readln(p_m);
             case p_m of
             '1':create;
             '2':view;
             '3':spisok;
             '4':add;
             '5':writeln('Do vstrechi!');
             else write('Neverno.Povtorite popitku!');
             end;
             until p_m='5';
             readln;
             end.
Vania96 вне форума Ответить с цитированием
Старый 14.11.2013, 22:30   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

А вас компилятор в 3-й строке не отругал?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 14.11.2013, 22:37   #7
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Точку с запятой в третьей строке после record убрать.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 14.11.2013, 23:11   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Ваня, очень-очень рекомендую серьёзнее относится к изучению языка.
То, что Вы выложили - это либо результат сканирования и распознавания, либо, набор текста человеком, которые понятия о Паскаль не имеет...
Так ошибок и опечаток - вагон и маленькая тележка!!
Ну уж, по крайней мере, точки с запятой вместо двоеточий можно было поставить.

ладно. причесал ваш код.
дальше самостоятельно добивайте:
Код:
program p7_8;
type
  znak = record 
    fi: string[15];
    znak_zod: string[20];
    den_rog: array[1..2] of byte;
  end;

var
  res: znak;
  f: file of znak;
  n, i: byte;
  p_m: byte;


procedure create;
var x: char;
begin
  write('Vi deistvitelno hotite ydalit stariy fail i sozdat noviy?y/n:');
  readln(x);
  if (x = 'n') then writeln('Sozdanie otmeneno!')
  else
  begin
    rewrite(f);
    n := 1;
    repeat
      writeln('Vvedite dannue o', n, 'm cheloveke');
      writeln('Name:');
      readln(res.fi);
      writeln('znak zodiaka:');
      readln(res.znak_zod);
      writeln('data rogdeniya:');
      readln(res.den_rog[1], res.den_rog[2]);
      write(f, res);
      write('Hotite prodolgit vvod dannih?y/n:');
      readln(x);
      inc(n);
    until x <> 'y';
    close(f); readln;
  end;
end;

procedure add;
var
  len: longint;
  x: char;
begin
  reset(f);
  len := filesize(f);
  seek(f, len);
  n := 1;
  repeat
    writeln('Vvedite dannie o ', n, 'm cheloveke');
    write('fi:');
    readln(res.fi);
    writeln(res.den_rog[1], res.den_rog[2]);
    write('znak zodiaka:');
    readln(res.znak_zod);
    write('Hotite prodolgit vvod?(y/n):');
    readln(x);
    inc(n);
  until x <> 'y';
  close(f);
  readln;
end;

procedure shapka;
begin
  writeln('_____________________________________________');
  writeln('| # |name|znak zodiaka|   data rogdeniya   |');
  writeln('_____________________________________________');
end;

procedure viev;
var
  n: byte;
begin
  read(f);
  n := 1;
  shapka;
  while not (eof(f)) do 
  begin
    read(f, res);
    writeln('|', n: 3, ',res.fi:15,' | ',res.znak_zod:20,' | ',res.data_rog[1]:2,' ',res.data_rog[2]:2,' |');  {ондяйюфхре цде ядеяэ ме опюбхкэмне бшпюфемхе?}
    inc(n);
  end;
end;

procedure spisok;
var n: byte;
begin
  reset(f);
  znak_zod1: string[20];
  writeln('Vvedite imena ludei');
  readln(znak_zod1);
  n := 1;
  Shapka;
  read(f, res):
  writeln('|', n: 3, 'res.fi:15,' | ',res.znak_zod:20,' | ',res.data_rog[1]:2,' ',res.data_rog[2]:2,' |');
    inc(n);
    while not (eof(f)) do
    begin
      read(f, res);
      if (znak_zod1[20] > res.znak_zod) or (znak_zod1 = res.znal_zod) and (znak_zod1 > res.znak_zod[20]) then
      begin
        read(f, res):
        writeln('|', n: 3, 'res.fi:15,' | ',res.znak_zod:20,' | ',res.data_rog[1]:2,' ',res.data_rog[2]:2,' |');
          inc(n);
      end;
    end;
    if n = 1 then write('   net cheloveka');
    writeln('_____________________________________________');
    close(f)
    readln;
end;


begin
  assing(f, 'D:\znak');
  repeat
    writeln('    Menu:');
    writeln('1.Sozdanie faila');
    writeln('2.Prosmotr faila');
    writeln('3.Poisk znaka');
    writeln('4.Dobavlenie znaka');
    writeln('5.Exit');
    writeln('   Viberite punkt menu');
    readln(p_m);
    case p_m of
      '1': create;
      '2': view;
      '3': spisok;
      '4': add;
      '5': writeln('Do vstrechi!');
    else write('Neverno.Povtorite popitku!');
    end;
  until p_m = '5';
  readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки kristi5570 Помощь студентам 0 08.10.2013 22:08
Помогите исправить ошибки witek HTML и CSS 0 12.12.2009 17:39
помогите исправить ошибки Euforia_PZAS09_1 Паскаль, Turbo Pascal, PascalABC.NET 0 19.10.2009 21:41
Помогите исправить ошибки Satorin Общие вопросы Delphi 4 25.12.2008 21:35
Помогите исправить ошибки ...С++ Настенька Помощь студентам 1 25.03.2007 23:30