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.
--------------------
Я не люблю, когда мне лезут в душу, Тем более, когда в нее плюют...
Прошу помощи. Условие задачи тоже...только нужно за место этого:
Цитата
Варианты задания
I. Из внешнего файла, содержащего исходные данные, удалить записи, соответствующие: 3. Абитуриентам, имеющим средний балл меньше 4 и хотя бы одну оценку 3 в аттестате.Распечатать полученный файл. II. Используя внешний файл, содержащий исходные данные, добавить N записей и распечатать: 3. Список абитуриентов, имеющих средний балл больше 4,5; N=4.
Сделать следующее:
1.Абитуриентам старше восемнадцати лет. 2.Список абитуриентов, нуждающихся в общежитии; N=3.
Попробовав пример приведенный выше и подкорректировав кое что у меня вышло следующее:
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; const N=3; var F,F1:file of ABIT; S:ABIT; ch:char; I,K:integer; key1,key2:boolean; begin {#################################-VVOD_DANNIH-#############################} I:=1; assign(F,'abitura.dat'); rewrite(F); repeat with S do begin clrscr; writeln; writeln('-------------------------------------------------------'); writeln('Vvedite dannie o ',I,'-m abituriente:'); writeln('-------------------------------------------------------'); writeln('Vvedite FIO:'); readln(FIO); writeln('Vvedite god rogdeniya:'); readln(GODROG); writeln('Vvedite god okonchaniya shkoli:'); readln(GODOKON); writeln; writeln('Vvedite ozenki attestata:'); writeln('Matematika:'); readln(AT_MAT); writeln('Russkiy yazik:'); readln(AT_RUS); writeln('Fizika:'); readln(AT_FIZ); writeln; repeat key1:=false; writeln('Nugdaetsya v obshage? [Y/N]'); readln(OBSHAGA); if (OBSHAGA in ['Y','y','N','n']) then key1:=true; until key1; writeln; writeln('Vvedite ozenki vstupitelnih ekzamenov:'); writeln('Matematika:'); readln(AB_MAT); writeln('Russkiy yazik:'); readln(AB_RUS); writeln('Fizika:'); readln(AB_FIZ); Inc(I); end; write(F,S); 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; close(F); {-------------------------------OBRABOTKA_FAILA_1---------------------------} assign(F,'abitura.dat'); assign(F1,'abitura1.dat'); reset(F);rewrite(F1); clrscr; while (not EOF(F)) do begin read(F,S); with S do if ((GODOKON-GODROG)<18) and ((GODOKON-GODROG)<>18) then write(F1,S); end; close(F);close(F1); {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-VIVOD_DANNIH_1-@@@@@@@@@@@@@@@@@@@@@@@@@@@} assign(F1,'abitura.dat'); reset(F1); I:=1; clrscr; while (not EOF(F1)) do begin read(F1,S); with S do begin writeln; writeln('-------------------------------------------------------'); writeln('Dannie o ',I,'-m abituriente:'); writeln('-------------------------------------------------------'); writeln('FIO: ',FIO); writeln('God rogdeniya: ',GODROG); writeln('God okonchaniya shkoli: ',GODOKON); writeln; writeln('Ozenki attestata:'); writeln('Matematika: ',AT_MAT); writeln('Russkiy yazik: ',AT_RUS); writeln('Fizika: ',AT_FIZ); writeln; writeln('Obshegitie: ',OBSHAGA); writeln; writeln('Ozenki vstupitelnih ekzamenov:'); writeln('Matematika: ',AB_MAT); writeln('Russkiy yazik: ',AB_RUS); writeln('Fizika: ',AB_FIZ); Inc(I); end; end; close(F1); {+++++++++++++++++++++++++++++-OBRABOTKA_FAILA_2-+++++++++++++++++++++++++++} assign(F1,'abitura1.dat'); reset(F1); clrscr; writeln('Vvedite eshe ',N,' zapisey...'); I:=1; for K:=1 to N do begin seek(F1,filesize(F1)); with S do begin writeln; writeln('-------------------------------------------------------'); writeln('Vvedite dannie o ',I,'-m abituriente:'); writeln('-------------------------------------------------------'); writeln('Vvedite FIO:'); readln(FIO); writeln('Vvedite god rogdeniya:'); readln(GODROG); writeln('Vvedite god okonchaniya shkoli:'); readln(GODOKON); writeln; writeln('Vvedite ozenki attestata:'); writeln('Matematika:'); readln(AT_MAT); writeln('Russkiy yazik:'); readln(AT_RUS); writeln('Fizika:'); readln(AT_FIZ); writeln; repeat key1:=false; writeln('Nugdaetsya v obshage? [Y/N]'); readln(OBSHAGA); if (OBSHAGA in ['Y','y','N','n']) then key1:=true; until key1; writeln; writeln('Vvedite ozenki vstupitelnih ekzamenov:'); writeln('Matematika:'); readln(AB_MAT); writeln('Russkiy yazik:'); readln(AB_RUS); writeln('Fizika:'); readln(AB_FIZ); Inc(I); clrscr; end; write(F1,S); end; close(F1); {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-VIVOD_DANNIH_2-@@@@@@@@@@@@@@@@@@@@@@@@@@@@} assign(F1,'abitura1.dat'); reset(F1); I:=1; clrscr; while (not EOF(F1)) do begin read(F1,S); with S do if (OBSHAGA='y') then begin writeln; writeln('-----------------------------------------------------'); writeln('Dannie o ',I,'-m abituriente:'); writeln('-----------------------------------------------------'); writeln('FIO: ',FIO); writeln('God rogdeniya: ',GODROG); writeln('God okonchaniya shkoli: ',GODOKON); writeln; writeln('Ozenki attestata:'); writeln('Matematika: ',AT_MAT); writeln('Russkiy yazik: ',AT_RUS); writeln('Fizika: ',AT_FIZ); writeln; writeln('Obshegitie: ',OBSHAGA); writeln; writeln('Ozenki vstupitelnih ekzamenov:'); writeln('Matematika: ',AB_MAT); writeln('Russkiy yazik: ',AB_RUS); writeln('Fizika: ',AB_FIZ); Inc(I); end; end; close(F1); end.
Но прога вылетает на главный экран при выполнении (-OBRABOTKA_FAILA_2-)...и не пойму в чём дело...
Прошу Вас помочь мне и исправить ошибки.
З.Ы. Мне в четверг сдвать, так что завтра крайний срок
Не задавай свои вопросы в чужих темах - создавай свои! На пераый раз прощаю.
Цитата(st3lz @ 19.11.2008 1:51)
прога вылетает на главный экран при выполнении (-OBRABOTKA_FAILA_2-)...и не пойму в чём дело...
А куда она должна вылетать? И что есть "главный" экран?..
Цитата(st3lz @ 19.11.2008 1:51)
З.Ы. Мне в четверг сдвать, так что завтра крайний срок
Тут никого не интересуют твои проблемы с временем - надо было раньше начинать.. Хочешь скорее - задавай вопросы яснее.
Совет: используй отладку (F7,F8,F4,Ctrl-F7...). Совет 2: форматируй код. Я тебе отформатировал, придерживайся этих правил. Совет 3: используй процедуры и/или функции для ввода однотипных данных.
Отформатированный код:
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; const N=3; var F,F1:file of ABIT; S:ABIT; ch:char; I,K:integer; key1,key2:boolean;
begin {###########-VVOD_DANNIH-#############################} I:=1; assign(F,'abitura.dat'); rewrite(F); repeat with S do begin clrscr; writeln; writeln('-------------------------------------------------------'); writeln('Vvedite dannie o ',I,'-m abituriente:'); writeln('-------------------------------------------------------'); writeln('Vvedite FIO:'); readln(FIO); writeln('Vvedite god rogdeniya:'); readln(GODROG); writeln('Vvedite god okonchaniya shkoli:'); readln(GODOKON); writeln; writeln('Vvedite ozenki attestata:'); writeln('Matematika:'); readln(AT_MAT); writeln('Russkiy yazik:'); readln(AT_RUS); writeln('Fizika:'); readln(AT_FIZ); writeln; repeat key1:=false; writeln('Nugdaetsya v obshage? [Y/N]'); readln(OBSHAGA); if (OBSHAGA in ['Y','y','N','n']) then key1:=true; until key1; writeln; writeln('Vvedite ozenki vstupitelnih ekzamenov:'); writeln('Matematika:'); readln(AB_MAT); writeln('Russkiy yazik:'); readln(AB_RUS); writeln('Fizika:'); readln(AB_FIZ); Inc(I); end; write(F,S); 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; close(F); {-------------------------------OBRABOTKA_FAILA_1---------------------------} assign(F,'abitura.dat'); assign(F1,'abitura1.dat'); reset(F);rewrite(F1); clrscr; while (not EOF(F)) do begin read(F,S); with S do if ((GODOKON-GODROG)<18) and ((GODOKON-GODROG)<>18) then write(F1,S); end; close(F);close(F1); {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-VIVOD_DANNIH_1-@@@@@@@@@@@@@@@@@@@@@@@@@@@} assign(F1,'abitura.dat'); reset(F1); I:=1; clrscr; while (not EOF(F1)) do begin read(F1,S); with S do begin writeln; writeln('-------------------------------------------------------'); writeln('Dannie o ',I,'-m abituriente:'); writeln('-------------------------------------------------------'); writeln('FIO: ',FIO); writeln('God rogdeniya: ',GODROG); writeln('God okonchaniya shkoli: ',GODOKON); writeln; writeln('Ozenki attestata:'); writeln('Matematika: ',AT_MAT); writeln('Russkiy yazik: ',AT_RUS); writeln('Fizika: ',AT_FIZ); writeln; writeln('Obshegitie: ',OBSHAGA); writeln; writeln('Ozenki vstupitelnih ekzamenov:'); writeln('Matematika: ',AB_MAT); writeln('Russkiy yazik: ',AB_RUS); writeln('Fizika: ',AB_FIZ); Inc(I); end; end; close(F1); {+++++++++++++++++++++++++++++-OBRABOTKA_FAILA_2-+++++++++++++++++++++++++++} assign(F1,'abitura1.dat'); reset(F1); clrscr; writeln('Vvedite eshe ',N,' zapisey...'); I:=1; for K:=1 to N do begin seek(F1,filesize(F1)); with S do begin writeln; writeln('-------------------------------------------------------'); writeln('Vvedite dannie o ',I,'-m abituriente:'); writeln('-------------------------------------------------------'); writeln('Vvedite FIO:'); readln(FIO); writeln('Vvedite god rogdeniya:'); readln(GODROG); writeln('Vvedite god okonchaniya shkoli:'); readln(GODOKON); writeln; writeln('Vvedite ozenki attestata:'); writeln('Matematika:'); readln(AT_MAT); writeln('Russkiy yazik:'); readln(AT_RUS); writeln('Fizika:'); readln(AT_FIZ); writeln; repeat key1:=false; writeln('Nugdaetsya v obshage? [Y/N]'); readln(OBSHAGA); if (OBSHAGA in ['Y','y','N','n']) then key1:=true; until key1; writeln; writeln('Vvedite ozenki vstupitelnih ekzamenov:'); writeln('Matematika:'); readln(AB_MAT); writeln('Russkiy yazik:'); readln(AB_RUS); writeln('Fizika:'); readln(AB_FIZ); Inc(I); clrscr; end; write(F1,S); end; close(F1); {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-VIVOD_DANNIH_2-@@@@@@@@@@@@@@@@@@@@@@@@@@@@} assign(F1,'abitura1.dat'); reset(F1); I:=1; clrscr; while (not EOF(F1)) do begin read(F1,S); with S do if (OBSHAGA='y') then begin writeln; writeln('-----------------------------------------------------'); writeln('Dannie o ',I,'-m abituriente:'); writeln('-----------------------------------------------------'); writeln('FIO: ',FIO); writeln('God rogdeniya: ',GODROG); writeln('God okonchaniya shkoli: ',GODOKON); writeln; writeln('Ozenki attestata:'); writeln('Matematika: ',AT_MAT); writeln('Russkiy yazik: ',AT_RUS); writeln('Fizika: ',AT_FIZ); writeln; writeln('Obshegitie: ',OBSHAGA); writeln; writeln('Ozenki vstupitelnih ekzamenov:'); writeln('Matematika: ',AB_MAT); writeln('Russkiy yazik: ',AB_RUS); writeln('Fizika: ',AB_FIZ); Inc(I); end; end; close(F1); end.
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой