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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2014, 18:02   #1
робокоп
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 17
По умолчанию помогите закончить программу с файлами

ЗАДАЧА!!!

Создать файл, содержащий сведения о студентах (фамилия, адрес, дата рождения). Вывести фамилию и адреса тех, у кого день рождения весной.

РЕШЕНИЕ!!

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

Первая программа!

program primer1;
type
anketa=record
num:byte;
fio: string[20];
dat_r: string[5];
adres: string[20];
end;
var F: file of anketa;
R:anketa;
begin
Assign(F,'H:\Новая папка\anketa.txt');
Rewrite(F);
repeat
writeln ('введи номер-');
readln (R.num);
writeln ('введите фамилию');
readln (R.fio);
writeln ('введите дату рождения');
readln (R.dat_r);
writeln ('введите адрес');
readln(R.adres);
writeln ('ввод закончен');
writeln ;
writeln ('фамилия студента: ', R . fio );
writeln(' дата рождения : ', R.dat_r);
writeln('адрес : ', R.adres);
write(F,R);
until R.num=5; close (F);halt; end.

во второй программе я не могу вывести фамилию и адреса тех, у кого день рождения весной.
Вторая программа!

Program Info_zapis_ch;
type anketa=record
num:byte;
fio: string[5];
dat_r: string[5];
adres: string[5];
end;
var F: file of anketa;
R: anketa;
a,i: real;
begin
assign(F,'H:\Новая папка\anketa.txt');
reset(F);
while not EOF(F) do
begin
read (F,R);
writeln ('фамилия студента: ', R . fio );
writeln(' дата рождения : ', R.dat_r);
writeln('адрес : ', R.adres);
end;
begin
assign (F,'H:\Новая папка\anketa.txt');
reset(F);
writeln ('-----------------------');

Последний раз редактировалось робокоп; 27.05.2014 в 18:28.
робокоп вне форума Ответить с цитированием
Старый 27.05.2014, 18:24   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Замечательно!
Забыли теги code!!
Вторая программа не до конца!!!
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 27.05.2014, 18:26   #3
робокоп
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 17
По умолчанию

извините если что то не правильно написал. я в первые на это форуме. мне вот бы закончить вторую программу)))
робокоп вне форума Ответить с цитированием
Старый 27.05.2014, 18:28   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Дата рождения в каком формате?
11.05 - 11 мая?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 27.05.2014, 18:29   #5
робокоп
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 17
По умолчанию

11.05 желательно
робокоп вне форума Ответить с цитированием
Старый 27.05.2014, 18:59   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Дык разбирай на число и месяц
если месяц>2 и месяц <6 выводи
но я б еще 1 тип ввел
Код:
Type Tdat = record
d:1..31;
m:1..12
end;
и его использовал
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 27.05.2014, 19:01   #7
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

1-я
Код:
program primer1;
type
  anketa=record
    num:byte;
    fio: string[20];
    dat_r: string[5];
    adres: string[20];
  end;
var
  F: file of anketa;
  R:anketa;
begin
  Assign(F,'anketa.dat');
  Rewrite(F);
  repeat
    writeln ('введи номер-');
    readln (R.num);
    writeln ('введите фамилию');
    readln (R.fio);
    writeln ('введите дату рождения');
    readln (R.dat_r);
    writeln ('введите адрес');
    readln(R.adres);
{writeln ('ввод закончен');
writeln ;
writeln ('фамилия студента: ', R . fio );
writeln(' дата рождения : ', R.dat_r);
writeln('адрес : ', R.adres);}
    write(F,R);
  until R.num=5;
  close (F);
{  halt;}
end.
2-я
Код:
Program Info_zapis_ch;
type
  anketa=record
    num:byte;
    fio: string[20];
    dat_r: string[5];
    adres: string[20];
  end;
var
  F: file of anketa;
  R: anketa;
  a,i: real;
  month:integer;
  code:byte;
  s:string;
begin
  assign(F,'anketa.dat');
  reset(F);
  while not EOF(F) do
    begin
      read (F,R);
      s:=R.dat_r[4]+R.dat_r[5];
      val(s,month,code);

      if (month>=3) and (month<=5) then
        begin
          write ('фамилия студента: ', R . fio,' ' );
          write(' дата рождения : ', R.dat_r,' ');
          writeln('адрес : ', R.adres);
        end;
    end;
  close(f);
  readln;
end.
Изображения
Тип файла: jpg 2014-05-27 19-00-57 Free Pascal IDE.jpg (28.6 Кб, 134 просмотров)
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 27.05.2014, 19:10   #8
робокоп
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 17
По умолчанию

спасибо вам большое))))
робокоп вне форума Ответить с цитированием
Старый 27.05.2014, 19:13   #9
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Нет проверки на корректность месяца из считанной даты. Это желательно делать при вводе данных.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 27.05.2014, 19:14   #10
робокоп
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 17
По умолчанию

а вы онлайн не помогаете на зачетах?
робокоп вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закончить программу... Ilya_tb4 Общие вопросы C/C++ 3 09.12.2010 23:16
Нужно закончить программу! Sem3109 Общие вопросы C/C++ 4 10.05.2010 10:44
ЗАКОНЧИТЬ ПРОГРАММУ! 4ika Общие вопросы C/C++ 3 10.02.2010 02:20
Надо закончить программу KsarK Общие вопросы C/C++ 2 15.01.2010 01:12
Как закончить программу? Cry Помощь студентам 0 21.10.2009 09:28