1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Если кому несложно - помогите... а вот и сама задача:
Цитата
Постановка задачи Подготовить данные об абитуриентах, поступающих в техникум. Информацию о каждом абитуриенте оформить в виде записи, содержащей следующие поля:
Фамилия, имя, отчество.
Год рождения.
Год окончания школы.
Оценки в аттестате.
Признак - нуждается ли в общежитии.
Оценки вступительных экзаменов.
Разработать программу записи подготовленных данных во внешний файл и программу обработки созданного внешнего файла.
Удалить из внешнего файла все записи, удовлетворяющие условию, заданному в варианте, и распечатать информацию, оставшуюся в файле.
Добавить N записей в начало (конец) внешнего файла и распечатать записи полученного файла согласно конкретному варианту.
Методические указания
При подготовке исходных данных необходимо учесть, что выходная информация программы обработки внешнего файла должна составлять не менее одной четверти от входной.
Варианты задания
I. Из внешнего файла, содержащего исходные данные, удалить записи, соответствующие: 3. Абитуриентам, имеющим средний балл меньше 4 и хотя бы одну оценку 3 в аттестате.Распечатать полученный файл. П. Используя внешний файл, содержащий исходные данные, добавить N записей и распечатать: 3. Список абитуриентов, имеющих средний балл больше 4,5; N=4.
--------------------
Я не люблю, когда мне лезут в душу, Тем более, когда в нее плюют...
uses crt; type ABIT=record FIO:string[30]; GODROG:integer; GODOKON:integer; AT_MAT:integer; AT_RUS:integer; AT_FIZ:integer; OBSHAGA:char; AB_MAT:integer; AB_RUS:integer; AB_FIZ:integer; end; var F:file of ABIT; S:ABIT; ch:char; I:integer; key1,key2:boolean; begin clrscr; I:=1; assign(F,'abitura.dat'); rewrite(F); repeat with S do begin writeln; writeln('-------------------------------------------------------'); writeln('Vvedite dannie o ',I,'-m abituriente:'); writeln('-------------------------------------------------------'); writeln('Vvedite FIO:'); readln(FIO);write(F,FIO); writeln('Vvedite god rogdeniya:'); readln(GODROG);writeln(F,GODROG); writeln('Vvedite god okonchaniya shkoli:'); readln(GODOKON);writeln(F,GODOKON); writeln; writeln('Vvedite ozenki attestata:'); writeln('Matematika:') readln(AT_MAT);writeln(F,AT_MAT); writeln('Russkiy yazik:'); readln(AT_RUS);writeln(F,AT_RUS); writeln('Fizika:'); readln(AT_FIZ);writeln(F,AT_FIZ); writeln; writeln('Vvedite ozenki vstupitelnih ekzamenov:'); writeln('Matematika:') readln(AB_MAT);writeln(F,AB_MAT); writeln('Russkiy yazik:'); readln(AB_RUS);writeln(F,AB_RUS); writeln('Fizika:'); readln(AB_FIZ);writeln(F,AB_FIZ); end; repeat key1:=false;key2:=false; writeln('Prodolgit? [Y/N]'); readln(ch); if (ch:='N') or (ch:='n') then begin key1:=true; key2:=true; end; if (ch:='Y') or (ch:='y') then key2:=true; until key2; until key1; end.
проблема в синтаксисе - где-то я не так что-то написал... помогите найти ошибку...
Добавлено позже: Если кому надо, то выкладываю похожую задачу (единствнное существенное отличие - организация данных не через файл, а через массив записей):
сама задача:
Цитата
Постановка задачи Составить список учебной группы, включающей 25 человек. Для каждого учащегося указать дату рождения, год поступления в техникум, курс, группу, оценки каждого года обучения. Информацию о каждом учащемся оформить в программе в виде записи. Совокупность записей объединить в массив. Составить программу, которая обеспечивает ввод полученной информации, распечатку ее в виде таблицы, а также распечатку информации согласно конкретному варианту. Варианты задания 9. Распечатать оценки в последнюю сессию студентов, фамилии которых начинаются с букв В и Г.
и решение:(Показать/Скрыть)
uses crt; type STUD=record FIO:string[30]; DATAROG:string[10]; GODPOST:integer; KURS:integer; GRUPPA:string[10]; OZENKI:array[1..5,1..3] of integer; end; var STUDS:array[1..25] of STUD; OZENKI:array[1..5,1..3] of integer; I,J,KURS1:integer; S:STUD; key:boolean; begin { ############################### VVOD_DANNIH ############################### } clrscr; for I:=1 to 25 do with S do begin writeln('Vvedite FIO ',I,'-go studenta:'); readln(FIO); writeln('Vvedite datu rogdeniya ',I,'-go studenta:'); readln(DATAROG); writeln('Vvedite god postupleniya ',I,'-go studenta:'); readln(GODPOST); repeat key:=false; writeln('Vvedite kurs ',I,'-go studenta:'); readln(KURS); if (KURS>0) and (KURS<6) then key:=true; until key; KURS1:=KURS; writeln('Vvedite gruppu ',I,'-go studenta:'); readln(GRUPPA); for J:=1 to KURS1 do begin writeln('Vvedite ozenki za ',J,'-i kurs:'); repeat key:=false; writeln('Programmirovanie:'); readln(OZENKI[J,1]); if (OZENKI[J,1]>2) and (OZENKI[J,1]<6) then key:=true; until key; repeat key:=false; writeln('Matanaliz:'); readln(OZENKI[J,2]); if (OZENKI[J,2]>2) and (OZENKI[J,1]<6) then key:=true; until key; repeat key:=false; writeln('Fizika:'); readln(OZENKI[J,3]); if (OZENKI[J,3]>2) and (OZENKI[J,1]<6) then key:=true; until key; end; STUDS[I]:=S; end; { @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ VIVOD_DANNIH @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ } clrscr; for I:=1 to 25 do begin S:=STUDS[I]; with S do begin writeln; writeln('------------------------------------------------------'); writeln('Zapis ',I,'-go studenta:'); writeln('------------------------------------------------------'); writeln('FIO: ',FIO); writeln('Data rogdeniya: ',DATAROG); writeln('God postupleniya: ',GODPOST); writeln('Kurs: ',KURS); writeln('Gruppa: ',GRUPPA); for J:=1 to KURS do begin writeln('Ozenki za ',J,'-i kurs:'); writeln('Programmirovanie: ',OZENKI[J,1]); writeln('Matanaliz: ',OZENKI[J,2]); writeln('Fizika: ',OZENKI[J,3]); end; writeln; end; end; { ???????????????????????????????? VARIANT ?????????????????????????????????? } writeln; writeln('VIVOD DANNIH SOGLASNO VARIANTU:'); for I:=1 to 25 do begin S:=STUDS[I]; with S do begin if (FIO[1]='V') or (FIO[1]='G') then begin writeln; writeln('---------------------------------------------------'); writeln('FIO: ',FIO); writeln('Data rogdeniya: ',DATAROG); writeln('God postupleniya: ',GODPOST); writeln('Kurs: ',KURS); writeln('Gruppa: ',GRUPPA); writeln('Ozenki poslednei sessii:'); writeln('Programmirovanie: ',OZENKI[KURS,1]); writeln('Matanaliz: ',OZENKI[KURS,2]); writeln('Fizika: ',OZENKI[KURS,3]); writeln('---------------------------------------------------'); writeln; end; end; end; end.
--------------------
Я не люблю, когда мне лезут в душу, Тем более, когда в нее плюют...