Консультация № 134220
26.04.2008, 09:29
0.00 руб.
0 1 1
Уважаемые эксперты!!! Помоготе пожалуйста решить задачу в Pascal!!!__ПРЯМ ЖИЗНЕННО НЕОБХОДИМО!!!!(((__
Задача:
В файле прямого доступа хранится информация о судах,находящихся в районе промысла: название, тип судна, обьект промысла, порт приписки, количество членов экипажа на борту, судовые запасы: кол-во груза, топливо, вода. Вывести список судов некоего порта приписки. Определить суда,которым требуется бункировка топлива. Результат запроса сохранить в дркгом текстовом файле.
________Заранее БОЛЬШОЕ спасибо=)__________

Обсуждение

Неизвестный
26.04.2008, 15:00
общий
это ответ
Здравствуйте, LedyAG! Ваша задача решается с помощью записей. В программе я описал записи, но возможно в вашем файле хранятся записи, описанные не так как у меня (разберетесь сами: нужно будет поставить в соответствие полю записи переменные нужного вам типа). Удачи.

Приложение:
Program z1; uses crt; const min_fuel = 1000; {Минимальное количество топлива (Нужно для осуществления поиска)}{Тут описание полей нашей записи} Type sudno=record name:string[40]; tip:string[20]; obj:string[20]; port:string[40]; crew:word; gruz:word; fuel:word; water:word; end; var f,f1:file of sudno;{Файлы куда мы будем сохранять} key:string[40]; s:sudno; way:string;{Вывод считаной записи на экран} Procedure vivod(s:sudno); begin Writeln(‘Название судна - ‘,s.name); Writeln(‘Тип судна - ‘,s.tip); Writeln(‘Объект промысла - ‘,s.obj); Writeln(‘Порт приписки - ‘,s.port); Writeln(‘Количество членов экипажа - ‘,s.crew); Writeln(‘ СУДОВЫЕ ЗАПАСЫ:‘); Writeln(‘ Количество груза - ‘,s.gruz); Writeln(‘ Топливо - ‘,s.fuel); Writeln(‘ Вода - ‘,s.water); end; begin clrscr; Write(‘Введиет путь к файлу: ‘); readln(way); Assign(f,way); {$I-} Reset(f); {$I+} if IoResult<>0 then {Проверяем на ошибку при открытии файла} begin Writeln(‘ERROR‘); ReadKey; Halt; end else begin Writeln(‘Введите путь для сохранения информации: ‘); readln(way); Assign(f,way); {$I-} ReWrite(f); {$I+} if IoResult<>0 then begin Writeln(‘ERROR‘); ReadKey; Halt; end else begin Write(‘Суда какого порта вывести? ‘); readln(key); While not EOF(f) do {Пока не конец файла то: } begin Read(f,s);{Считали запись} if s.port=key then {Проверили соответствует ли поле записи нашему условию} begin vivod(s); Write(f1,s); end end; seek(f,0);{Установили указатель на начало} Writeln(‘Суда которым нужно топливо:‘); While not EOF(f) do {Пока не конец файла то: } begin Read(f,s);{Считали запись} if s.fuel>=min_fuel then {Проверили соответствует ли поле записи нашему условию} BEGIN vivod(s); Write(f1,s); END; end; end; end;end.
Форма ответа