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