Самого задания я точно не помню,но смысл был примерно такой:нужно было создать файл с номерами рейсов и кол-ом свободных мест на них, а так же надо было чтобы программа при вводе номера рейса выводила кол-во свободных мест. вот что у меня получилось:
var r:byte; f:text; begin writeln('vvedite nomer reisa'); readln®; assign(f,'C:\mesta.txt'); rewrite(f); case r of 1:writeln('svobonih mest 5'); 2:writeln('svobonih mest 4'); 3:writeln('svobonih mest 8'); 4:writeln('svobonih mest 3'); 5:writeln('svobonih mest 6'); else writeln('na dannom reise net svobodnih mest'); read; end; write; read®; begin write(f,r); close(f); end; end.
у меня получилось только внести в файл номер рейса подскажите пожалуйста как сделать так ,чтобы в текстовом файле были номера рейсов и кол-во свободных мест
Client
25.06.2010 14:52
для текстового можно в одну строчку записывать номер и количество. Потом по файлу пройти, читая строки и сравнивая, есть ли указанный номер или нет.
Lapp
26.06.2010 10:00
Цитата(PUMA @ 25.06.2010 13:37)
Самого задания я точно не помню,но смысл был примерно такой:нужно было создать файл с номерами рейсов и кол-ом свободных мест на них, а так же надо было чтобы программа при вводе номера рейса выводила кол-во свободных мест.
Мне почему-то кажется, что смысл не в создании файла программно, а в выдаче инфы по нему. То есть, файл ты можешь создать, например, в Блокноте, назови его типа "flight_info.txt", а внутренности набери типа так:
567 5 768 3 843 10 123 0 234 2 987 25
(учти, что ни в начале, ни в конце файла не должно быть пустых строк!!) Тогда твоя прога будет примерно такой:
Write('введите номер рейса: '); ReadLn®; Assign(f,'flight_info.txt); n:=-1; Reset(f); while not EoF(f) and (n<0) do begin ReadLn(f,r1,n1); if r=r1 then n:=n1 end; Close(f); if n>=0 then WriteLn('на рейсе ',r,' есть ',n,' свободных мест') else WriteLn('рейс ',r,' не найден');
Но ты лучше все-таки уточни задание, чтоб не гадать ). Но делать выбор рейса в операторе case - это в любом случае неправильно..
PUMA
27.06.2010 11:14
а N для чего нужна? что это такое? P.S:уточнить задачу не получится,наверное...я ее никуда не записала.это было на экзамене
Добавлено через 8 мин. выводит ошибку №2,фаил не найден
var r,n,n1,r1:integer; f:text; begin Write('vvedite nomer reisa: '); ReadLn®; Assign(f,'D:\flight_info.txt'); n:=-1; Reset(f); {вот сюда указывает} while not EoF(f) and (n<0) do begin ReadLn(f,r1,n1); if r=r1 then n:=n1 end; Close(f); if n>=0 then WriteLn('na reise ',r,' est ',n,' svobodnih mest') else WriteLn('na reise',r,' net svobodnih mest'); readln; end.
Client
27.06.2010 16:42
а создать файлик не судьба? ))
PUMA
27.06.2010 21:39
Судьба)создала)я уж не совсем того что ж я по вашему путь просто так указала)
Lapp
28.06.2010 8:52
Цитата(PUMA @ 27.06.2010 12:14)
а N для чего нужна? что это такое?
это количество мест на ЗАДАННОМ рейсе. Сначала в него кладем -1 - это как бы признак того, что рейс еще не найден. Если введенного номера рейса нет в файле, то в n так и останется -1. Значит, если значение n больше либо равно 0, то рейс найден, а n - это количество свободных мест на нем. Угу?
Цитата
выводит ошибку №2,фаил не найден
Насколько я понимаю, ТР не умеет работать с именами файлов длиннее 8 символов. Переназови файл, сделай его типа fli_info.txt . Поскольку я давно не имею дела с ТР, то и забыл об этом, извини..
PUMA
28.06.2010 14:57
спасибо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.