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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2011, 21:05   #1
Tagimasad
Пользователь
 
Аватар для Tagimasad
 
Регистрация: 26.10.2011
Сообщений: 17
По умолчанию Файлы. Ведомость школьников

Помогите. Делаю курсовую на завтра. Первую часть благополучно сделал а вот со второй проблемы.
Вот условие задачи:
Сведения об ученике состоят из его имени, фамилии и названии класса в котором он учится. Дан файл h, содержащий сведения об учениках школы.
- выяснить, имеются ли однофамильцы в школеж
- выяснить, имеются ли однофамильцы в каких-либо парралельных классах.
Вот код первого пункта (однофам. в школе):
Код:
Program z;
uses crt;
type
 uch = record
 fam,nam: string;
 klass: char;
 end;
var
h: text;
c: string;
a: array [1..20] of uch;
i,j,n: integer;
b: uch;
begin
 clrscr;
 c:='f:\h.txt';
 assign (h,c);
 rewrite (h);
 write ('Введите кол-во учеников: ');
 readln (n);
 for i:=1 to n do
 with a[i] do
  begin
  writeln ('Данные про ',i,' ученика');
  writeln (' Фамилия: '); readln (fam);
  writeln (' Имя: '); readln (nam);
  writeln (' Класс: '); readln (klass);
end;
close (h);
assign (h,c);
reset (h);
for i:=0 to n do
 begin
 readln (h,a[i].fam);
 readln (h,a[i].nam);
 readln (h,a[i].klass);
 end;
close (h);
for j:=0 to n-1 do
for i:=0 to n-j do
if a[i].fam > a[i+1].fam then
 begin
 b:=a[i];
 a[i]:=a[i+1];
 a[i+1]:=b;
 end;
for i:=1 to n-1 do
 begin
 if a[i].fam = a[i+1].fam then
 with a[i] do
  begin
  writeln;
  wrietln (fam);
  writeln (' ',nam);
  writeln (' ',klass);
 end;
end.
Pascal выдает мне ошибку "File not open for input."
Помогите пожалуйста, решать не надо, просто подскажите как надо.
Заранее благодарен людям которые откликнуться на мой зов.
Tagimasad вне форума Ответить с цитированием
Старый 21.12.2011, 21:08   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
выяснить, имеются ли однофамильцы в каких-либо парралельных классах.
по вашим полям этого не определить klass тоже должен быть
Код:
type  klass = record
num:byte;
let:char;
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 21.12.2011, 21:14   #3
Tagimasad
Пользователь
 
Аватар для Tagimasad
 
Регистрация: 26.10.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
по вашим полям этого не определить klass тоже должен быть
Код:
type  klass = record
num:byte;
let:char;
end;
Это только код первого пункта. Чтобы все было в одной проге, можно ставить в type две записи record?
Tagimasad вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ведомость подписчиков xanderg Microsoft Office Access 7 03.10.2011 20:53
Работа школьников Qaliti Свободное общение 16 09.08.2011 03:12
Работа с файлами. Ведомость Beren42 Помощь студентам 0 11.04.2011 14:38
Оборотная ведомость средствами SQL Dimych SQL, базы данных 11 03.09.2010 13:42
Экзаменационная ведомость (PHP) Light05 Помощь студентам 2 15.03.2010 06:53