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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2013, 06:16   #1
ччч1
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 35
По умолчанию сформировать файл

Сформировать файл Rasp, вводя с клавиатуры следующие сведения – предмет, преподаватель, день недели, время занятия, группа, аудитория.
Написать следующие подпрограммы:
1. Вывести все занятия заданной группы в указанный день:
время предмет аудитория преподаватель.
Код:
Program file11;
uses crt;
Type rasp = record
      fio: string [5];
      group,aud: integer;
      conk: string[10];
      ins: string[20];
      zan: string[10];
end;
var
     f: file of rasp;
     name: string;
     uch: array[1..4] of rasp;
     i:integer;
     n:char;
     s1:rasp;
begin
clrscr;
Writeln ('Задайте имя файла');
Readln (name);
Assign (f, name);
Rewrite (f);
Writeln ('Введите фамилию и инициалы преподавателя ');
Readln (s1.fio);
While s1.fio <> ' ' do
      Begin
           Writeln ('Введите номер группы ');
           Readln (s1.group);
           writeln ('Введите предмет ');
           readln (s1.conk);
           writeln ('Введите день недели ');
           readln (s1.ins);
           writeln ('Введите время занятия ');
           readln (s1.zan);
           writeln ('Введите аудиторию ');
           readln (s1.aud);
           write (f,s1);
           Writeln ('Введите фамилию и инициалы следующего преподавателя ');
           Readln (name);
           s1.fio:=name;
             End;
 End;
      Writeln ('Файл создан');
         Close(f);reset(f);
      writeln (' Pokazat spisok ');
       while not Eof(f) do
       begin
             read (f,s1);
не знаю как сделать,чтобы выводило по группе и дню

Последний раз редактировалось Stilet; 13.03.2013 в 09:25.
ччч1 вне форума Ответить с цитированием
Старый 13.03.2013, 06:57   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
Reset(f);
ReadLn(gruppa);
While not Eof(F) do begin
  Read(f,s1);
  if s1.group=gruppa then begin
    {Здесь пишем вывод полей записи}
  end;
end;
Close(F);
По аналогии делается вывод по дню - меняется только сравнение
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 13.03.2013, 15:25   #3
ччч1
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 35
По умолчанию

а почему gruppa неизвестный идентификатор?
ччч1 вне форума Ответить с цитированием
Старый 13.03.2013, 15:34   #4
ччч1
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 35
По умолчанию

Код:
Program file11;
uses crt;
Type rasp = record
      fio: string [5];
      group,aud,gruppa: integer;
      conk: string[10];
      ins: string[20];
      zan: string[10];
end;
var
     f: file of rasp;
     name: string;
     uch: array[1..4] of rasp;
     i:integer;
     n:char;
     s1:rasp;
begin
clrscr;
Writeln ('Задайте имя файла');
Readln (name);
Assign (f, name);
Rewrite (f);
Writeln ('Введите фамилию и инициалы преподавателя ');
Readln (s1.fio);
While s1.fio <> ' ' do
      Begin
           Writeln ('Введите номер группы ');
           Readln (s1.group);
           writeln ('Введите предмет ');
           readln (s1.conk);
           writeln ('Введите день недели ');
           readln (s1.ins);
           writeln ('Введите время занятия ');
           readln (s1.zan);
           writeln ('Введите аудиторию ');
           readln (s1.aud);
           write (f,s1);
           Writeln ('Введите фамилию и инициалы следующего преподавателя ');
           Readln (name);
           s1.fio:=name;
             End;
      Writeln ('Файл создан');
         Close(f);reset(f);
      writeln (' Pokazat spisok ');
       while not Eof(f) do
       begin
             read (f,s1);
             Reset(f);
ReadLn(group);
While not Eof(F) do begin
  Read(f,s1);
  if s1.group=gruppa then begin
    readln (s1.zan);
    readln (s1.conk);
    readln (s1.aud);
    readln (s1.fio);
  end;
end;
Close(F);reset(f);
  ReadLn(ins);
While not Eof(F) do begin
  Read(f,s1);
  if s1.ins=day then begin
    readln (s1.zan);
    readln (s1.conk);
    readln (s1.aud);
    readln (s1.fio);
     end;
end;
Close(F);reset(f);
вот так?только пишет,что идентификаторы неизвестные



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

Последний раз редактировалось Serge_Bliznykov; 13.03.2013 в 16:15.
ччч1 вне форума Ответить с цитированием
Старый 13.03.2013, 16:33   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну и правильно пишет..
Паскаль, так же, как и мы, не понимает, что вы хотите сказать этими строчками:
Цитата:
Код:
    read(f, s1);
    Reset(f);
    ReadLn(group);
    while not Eof(F) do begin
      Read(f, s1);
      if s1.group = gruppa then begin
Если это переменные, то их нужно описать в секции var программы.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.03.2013, 16:41   #6
ччч1
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 35
По умолчанию

я описала,а теперь пишет,что операнда имеет не приводимый тип
ччч1 вне форума Ответить с цитированием
Старый 13.03.2013, 16:58   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
я описала,а теперь пишет,что операнда имеет не приводимый тип
показывайте, как и где описали..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.03.2013, 17:01   #8
ччч1
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 35
По умолчанию

Код:
Program file11;
uses crt;
Type rasp = record
      fio: string [5];
      group,aud: integer;
      conk: string[10];
      ins: string[20];
      zan: string[10];
end;
var
     f: file of rasp;
     name: string;
     uch: array[1..4] of rasp;
     i:integer;
     n,gruppa,group,day:char;
     s1:rasp;
begin
clrscr;
Writeln ('Задайте имя файла');
Readln (name);
Assign (f, name);
Rewrite (f);
Writeln ('Введите фамилию и инициалы преподавателя ');
Readln (s1.fio);
While s1.fio <> ' ' do
      Begin
           Writeln ('Введите номер группы ');
           Readln (s1.group);
           writeln ('Введите предмет ');
           readln (s1.conk);
           writeln ('Введите день недели ');
           readln (s1.ins);
           writeln ('Введите время занятия ');
           readln (s1.zan);
           writeln ('Введите аудиторию ');
           readln (s1.aud);
           write (f,s1);
           Writeln ('Введите фамилию и инициалы следующего преподавателя ');
           Readln (name);
           s1.fio:=name;
             End;
      Writeln ('Файл создан');
         Close(f);reset(f);
      writeln (' Pokazat spisok ');
       while not Eof(f) do
       begin
             read (f,s1);
             Reset(f);
ReadLn(group);
While not Eof(F) do begin
  Read(f,s1);
  if s1.group=gruppa then begin
    readln (s1.zan);
    readln (s1.conk);
    readln (s1.aud);
    readln (s1.fio);
  end;
end;
Close(F);reset(f);
  ReadLn(ins);
While not Eof(F) do begin
  Read(f,s1);
  if s1.ins=day then begin
    readln (s1.zan);
    readln (s1.conk);
    readln (s1.aud);
    readln (s1.fio);
     end;
end;
Close(F);reset(f);
ччч1 вне форума Ответить с цитированием
Старый 13.03.2013, 18:32   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Вам нужно было объявить только gruppa, так как group - это поле записи. Типы этой переменной и поля должны совпадать. Аналогично и для дней.

Я просто выше не стал приводить весь код, надеясь, что Вы и так поймете, что переменную надо объявлять. А Сергей, думаю, просто напутал слегка
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 13.03.2013, 19:16   #10
ччч1
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 35
По умолчанию

var
f: file of rasp;
name: string;
uch: array[1..4] of rasp;
i:integer;
n,gruppa,day:char;
s1:rasp;
не так?
ччч1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сформировать файл записей Дэнчик Паскаль, Turbo Pascal, PascalABC.NET 0 17.05.2012 23:42
сформировать текстовый файл Артл Паскаль, Turbo Pascal, PascalABC.NET 4 02.05.2011 21:34
сформировать текстовый файл Артл Помощь студентам 1 10.04.2011 22:02
Сформировать файл Захар28 Помощь студентам 3 05.09.2010 21:27
Сформировать и записать в файл Tykon Фриланс 9 27.03.2010 19:33