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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2013, 18:02   #1
Vania19961712
Пользователь
 
Регистрация: 23.11.2013
Сообщений: 20
По умолчанию Программа с файлами!

зАДАНИЕ 1
А .Описать запись с именем AEROFLOt, содержащую следующие поля:
• Название пункта назначения рейса;
• Номер рейса;
• Тип самолета.
Ввести с клавиатуры данные о 5-ти рейсах; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения;
Б. Написать программу, выполняющую следующие действия:
• Вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры;
• Если таких рейсов нет, выдать на дисплей соответствующее сообщение.


Используя программу предыдущего задания(1) «Работа с записями», превратить ее таким образом, чтобы данные, которые вводятся с клавиатуры, хранились не у массиве записей, а в файле записей. Для вывода содержимого файла, для сортировки файла, а также для выполнения части задания Б, как и в предыдущем задании, использовать отдельные подпрограммы.
вОТ КОД
Подскажите где ошибки(у меня вобще ничего не работает):
Код:
program p7_8;
Type
znak=record
punkt:string[20];
nomer:integer;
tip:integer;
{znak=record;
    fi:string[15];
    znak_zod:string[20];
    den_rog:array[1..2] of byte;
    end;}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 RAISE');
        writeln('Punkt naznacheniya:');
        readln(res.punkt);
        writeln('nomer reisa:');
        readln(res.nomer);
        writeln('tip samoleta:');
        readln(res.tip);
        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 samolete');
            write('punkt naznacheniya:');
            readln(res.punkt);
            writeln(res.tip);
            write('nomer reysa:');
            readln(res.nomer);
            write('Hotite prodolgit vvod?(y/n):');
            readln(x);
            inc(n);
            until x<>'y';
            close(f);
            readln;
            end;
                procedure shapka;
                begin
                writeln('_____________________________________________');
                 writeln('| # |name punkt  |nomer reysa|   tip samoleta   | ');{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.punkt:20,'   |  ' , res.nomer:5 ,'|',res.tip:5,'|');
                    inc(n);
                    end;
                           Procedure spisok;
                           var n:byte;
                           tip1:integer;
                           pn:integer;
                           begin
                           reset(f);

                           write('Vvedite tip samoleta=');read(tip1);
  i:=3;
  pn:=1;

    begin

      with res do
        if res.tip=tip1 then
          begin
            write(res.punkt);  writeln('|',n:3,'|',res.punkt:20,'   |  ' , res.nomer:5 ,'|',res.tip:5,'|');
            writeln(res.nomer);
            i:=i+1;
            pn:=0;
          end;
    end;
  if not(pn<>0)then write('Samoletov dannogo tipa ne naideno.');
     readln;
     close(f);
   end;
        
             Begin
             assign(f,'D:\znak.txt');
             repeat
             writeln('    Menu:');
             writeln('1.Sozdanie faila');
             writeln('2.Prosmotr faila');
             writeln('3.Poisk reisa');
             writeln('4.Dobavlenie raisa');
             writeln('5.Exit');
             writeln('   Viberite punkt menu');
             readln(p_m);
             case p_m of
             1:create;
             2:viev;
             3:spisok;
             4:add;
             5:writeln('Do vstrechi!');
             else write('Neverno.Povtorite popitku!');
             end;
             until p_m=5;
             readln;
             end.
Vania19961712 вне форума Ответить с цитированием
Старый 08.12.2013, 21:00   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Что-то на меня нашло и я решил немного поработать над этим заданием.
1. Прими файл во вложении, распакуй.
2. Создай папку в корне диска "C:\Raspisanie".
3. Откомпилируй.
4. Запусти.
Можно создавать несколько расписаний для разных аэропортов назначения.

Попробуй разобраться.
В частности с тем, как обрабатываются файлы в этой задаче, а так же, когда необходимо проверить наличие/отсутствие файла.

Процедуры проверяют последовательность действий.
Начинаем с п.0., а затем любой пункт меню.

Внимательно посмотри как формируются и читаются данные типа Запись.
В твоем решении тут много ошибок.
Вложения
Тип файла: rar p7_8.rar (1.4 Кб, 18 просмотров)
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа с файлами .Pascal Aleksandr litvinch Паскаль, Turbo Pascal, PascalABC.NET 3 08.12.2013 21:57
программа с файлами aleksskay Общие вопросы Delphi 2 19.02.2013 10:05
[C++] Работа с файлами. Программа не компилируется M_Asja Помощь студентам 13 12.12.2012 18:50
Работа с файлами на Си, не работает программа ПеПпИ Помощь студентам 0 28.11.2010 22:29
Программа с текстовыми файлами AlDonea Помощь студентам 1 01.06.2010 22:59