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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2011, 13:00   #1
Мирзали
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 28
Смущение файлы и строки

Задание 1.
а. Создать файл, содержащий сведения о пассажирах поездов . Каждая запись содержит поля: фамилия пассажира, номер поезда, пункт отправления , пункт прибытия, общий вес багажа. Количество записей - произвольное.
б. Написать программу, выдающую на печать следующую информацию:
фамилию пассажира и общий вес багажа; фамилию пассажира с номером поезда Х и пункт прибытия .
Мирзали вне форума Ответить с цитированием
Старый 07.05.2011, 13:33   #2
Мирзали
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 28
По умолчанию

Код:
Program Examen;
Type passaj=Record
Familiya: String[40];
Np: String[40];
Po:string[40];
pprib:string[40];
allmass:byte;
End;
Var poezd: File Of passaj;
S: passaj;
N,I: Byte;
Begin
Assign(poezd,'FM.DAT'); Rewrite(poezd);
Write('kolihestvo passjirov v poezde?');
ReadLn(N) ;
For I:=1 To N Do
Begin
Write (i:1, '-y,Familiya'); ReadLn(S.Familiya);
Write('Np:'); ReadLn(S.Np);
Write('punkt otpravleniya:'); ReadLn(S.Po);
write('punkt pribitiya:'); readln(S.Pprib);
write('obshiy vas bagaja:'); readln(S.allmass);
Write(poezd,S)
End;
WriteLn('formirovanie fayla zaversheno!');
Close(poezd);
End.

Последний раз редактировалось Serge_Bliznykov; 08.05.2011 в 00:20.
Мирзали вне форума Ответить с цитированием
Старый 07.05.2011, 17:59   #3
Мирзали
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 28
По умолчанию

помогите докончить программу пожалуйста.
Мирзали вне форума Ответить с цитированием
Старый 07.05.2011, 19:21   #4
Мирзали
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 28
По умолчанию

Код:
Program Examen;
 Type passaj=Record
 Familiya: String[40];
 Np: String[40];
 Po:string[40];
 pprib:string[40];
 allmass:byte;

 End;
 Var poezd: File Of passaj;
 S: passaj;
 z:string;
 N,I: Byte;
 Begin
 Assign(poezd,'D:\poezd.txt'); Rewrite(poezd);
 Write('kolihestvo passjirov v poezde?');
 ReadLn(N) ;
 For I:=1 To N Do
 Begin
 Write (i:1, '-y,Familiya'); ReadLn(S.Familiya);
 Write('Np:'); ReadLn(S.Np);
 Write('punkt otpravleniya:'); ReadLn(S.Po);
 write('punkt pribitiya:'); readln(S.Pprib);
 write('obshiy vas bagaja:'); readln(S.allmass);
 Write(poezd,S)
 End;
 WriteLn('formirovanie fayla zaversheno!');
 Close(poezd);
  reset(poezd);
  read(poezd);
writeln('vvedite familiyu passajira:');
readln(z);
write(poezd);
write(poezd,z,':');
for i:=1 to n do  begin
if z=s[i].familiya then    writeln(poezd,'familiya:',s[i].familiya,poezd,'obshiy ves bagaja:',s[i].allmass);
if z=s[i].familiya then    writeln(poezd,'familiya:',s[i].familiya,poezd,'nomer  poezda:',s[i].Np,poezd,'punkt pribitiya:,s[i].Pprib);
close(poezd);
readln;
end.

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 08.05.2011 в 00:20.
Мирзали вне форума Ответить с цитированием
Старый 07.05.2011, 19:27   #5
Мирзали
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 28
По умолчанию

исправь пожалуйста ошибку в этой строке write(poezd,z,':');
Мирзали вне форума Ответить с цитированием
Старый 08.05.2011, 02:06   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
Var poezd: File Of passaj;
файл poezd типизированный (т.е. элементами этого файла являются данные определённого типа (структуры)

Это означает, что писать (и читать) в этот файл можно только данные этого типа. Впрочем, в этой строчке
Код:
Write(poezd,S)
вы так и делаете (это правильно!)

а вот что Вы хотели добиться этой строчкой
write(poezd,z,':');
- непонятно..

окончание должно быть примерно таким:
Код:
  WriteLn('formirovanie fayla zaversheno!');
  Close(poezd);
  Reset(poezd);
  writeln('vvedite familiyu passajira:');
  readln(z);
  while not eof(poezd) do begin
     read(poezd, S);
     if z=S.Familiya then
         Writeln('familiya: ',S.Familiya, ' nomer  poezda: ', S.Np,' punkt pribitiya:', S.pprib);
  end;
  close(poezd);
  readln;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.05.2011, 06:57   #7
Мирзали
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 28
По умолчанию

Спасибо Вам, Сергей.
Мирзали вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файлы и строки Мирзали Паскаль, Turbo Pascal, PascalABC.NET 0 07.05.2011 10:14
Файлы и строки Z_S Помощь студентам 2 30.10.2010 23:15
Строки и файлы в С++ marina_sergina Помощь студентам 5 11.05.2010 00:21
строки и файлы marina_sergina Общие вопросы C/C++ 3 10.05.2010 19:41