ТИПИЗИРОВАННЫЕ ФАЙЛЫ - нужна помощь..., ТИПИЗИРОВАННЫЕ ФАЙЛЫ - нужна помощь... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
ТИПИЗИРОВАННЫЕ ФАЙЛЫ - нужна помощь..., ТИПИЗИРОВАННЫЕ ФАЙЛЫ - нужна помощь... |
LLIRIKS |
18.12.2004 17:34
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Если кому несложно - помогите...
а вот и сама задача: Цитата Постановка задачи Подготовить данные об абитуриентах, поступающих в техникум. Информацию о каждом абитуриенте оформить в виде записи, содержащей следующие поля:
Разработать программу записи подготовленных данных во внешний файл и программу обработки созданного внешнего файла.
Методические указания
Варианты задания I. Из внешнего файла, содержащего исходные данные, удалить записи, соответствующие: 3. Абитуриентам, имеющим средний балл меньше 4 и хотя бы одну оценку 3 в аттестате.Распечатать полученный файл. П. Используя внешний файл, содержащий исходные данные, добавить N записей и распечатать: 3. Список абитуриентов, имеющих средний балл больше 4,5; N=4. -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
LLIRIKS |
18.12.2004 17:44
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Вот что я пока осилил:
uses crt; проблема в синтаксисе - где-то я не так что-то написал... помогите найти ошибку... Добавлено позже: Если кому надо, то выкладываю похожую задачу (единствнное существенное отличие - организация данных не через файл, а через массив записей): сама задача: Цитата Постановка задачи Составить список учебной группы, включающей 25 человек. Для каждого учащегося указать дату рождения, год поступления в техникум, курс, группу, оценки каждого года обучения. Информацию о каждом учащемся оформить в программе в виде записи. Совокупность записей объединить в массив. Составить программу, которая обеспечивает ввод полученной информации, распечатку ее в виде таблицы, а также распечатку информации согласно конкретному варианту. Варианты задания 9. Распечатать оценки в последнюю сессию студентов, фамилии которых начинаются с букв В и Г. и решение: (Показать/Скрыть)
-------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
volvo |
18.12.2004 17:51
Сообщение
#3
|
Гость |
LLIRIKS
Цитата проблема в синтаксисе Ни в коем случае... Проблема в логике - файл F описан как файл с элементами типа ABIT, поэтому в него нельзя писать числа и строки. Решение - сначала заполняй переменную S полностью, а уж потом пиши ее в файл... |
LLIRIKS |
18.12.2004 18:42
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Цитата(volvo @ 18.12.04 17:51) Решение - сначала заполняй переменную S полностью, а уж потом пиши ее в файл... спасибо! все пошло! запись в файл организовал... -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
LLIRIKS |
18.12.2004 19:41
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
еще вопрос: как удалить запись из типизированного файла?
Код {-------------------------------OBRABOTKA_FAILA_1---------------------------} reset(F); clrscr; while (not EOF(F)) do begin read(F,S); with S do if ((AB_MAT+AB_RUS+AB_FIZ)/3<4) and ((AT_MAT=3) or (AT_RUS=3) or (AT_FIZ=3)) then [здесь надо бы удалить запись...]; end; close(F); и вообще кому несложно посмотрите, правильно ли я организовал обработку? спасибо заранее... -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
murphy |
18.12.2004 20:09
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Цитата как удалить запись из типизированного файла? на сколько я знаю надо что-то вроде этого:
Сообщение отредактировано: murphy - 18.12.2004 20:12 -------------------- collect the infotrons and find Exit
|
murphy |
18.12.2004 20:17
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Для твоего случая очевидно легче переписать в новый файл записи
для Код not(((AB_MAT+AB_RUS+AB_FIZ)/3<4) and ((AT_MAT=3) or (AT_RUS=3) or AT_FIZ=3))) -------------------- collect the infotrons and find Exit
|
volvo |
18.12.2004 20:19
Сообщение
#8
|
Гость |
LLIRIKS
Можно, как посоветовал murphy, можно по-другому: 1. Определяешь, сколько записей осталось от текущей позиции в файле до его конца; 2. Выделяешь с помощью GetMem динамическую память, достаточную для размещения в ней тех записей, которые нужно сохранить, и заносишь эти записи в дин. память; 3. Обрезаешь файл на текущей позиции (Truncate), при этом ненужная запись тоже удаляется; 4. Из дин. памяти записываешь сохраненные данные назад в файл, и освобождаешь память (FreeMem) Выбирай ;) |
murphy |
18.12.2004 20:34
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Можно еще в массиве или еще где-нибудь отметить те номера записей которые надо удалить. А потом одним проходом по файлу все записи кроме этих перенестив др. файл...
Так рациональнее чем первое что я предложил. -------------------- collect the infotrons and find Exit
|
LLIRIKS |
18.12.2004 22:20
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
фуф....
хе-хе-хе... Я ЭТО СДЕЛАЛ! не дай бог кому такого (если, конечно, не программеры, как будущий я (если не вылечу...) ... а допустим студенты с какого-нибудь филфака )... Вот оно твореньице: (Показать/Скрыть)
если у меня есть какие-нибудь ошибки, то плиз, скажите где чего не так... буду безумно счастлив каждой найденной ошибке... -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
volvo |
18.12.2004 22:26
Сообщение
#11
|
Гость |
LLIRIKS
я бы поменял на:
и т.д. |
LLIRIKS |
18.12.2004 22:30
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Да, действительно...
fanks! -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
st3lz |
19.11.2008 1:51
Сообщение
#13
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: 0 |
Прошу помощи. Условие задачи тоже...только нужно за место этого:
Цитата Варианты задания I. Из внешнего файла, содержащего исходные данные, удалить записи, соответствующие: 3. Абитуриентам, имеющим средний балл меньше 4 и хотя бы одну оценку 3 в аттестате.Распечатать полученный файл. II. Используя внешний файл, содержащий исходные данные, добавить N записей и распечатать: 3. Список абитуриентов, имеющих средний балл больше 4,5; N=4. Сделать следующее: 1.Абитуриентам старше восемнадцати лет. 2.Список абитуриентов, нуждающихся в общежитии; N=3. Попробовав пример приведенный выше и подкорректировав кое что у меня вышло следующее: uses crt; Но прога вылетает на главный экран при выполнении (-OBRABOTKA_FAILA_2-)...и не пойму в чём дело... Прошу Вас помочь мне и исправить ошибки. З.Ы. Мне в четверг сдвать, так что завтра крайний срок Сообщение отредактировано: st3lz - 19.11.2008 1:53 |
Lapp |
19.11.2008 5:24
Сообщение
#14
|
|||
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
прога вылетает на главный экран при выполнении (-OBRABOTKA_FAILA_2-)...и не пойму в чём дело... А куда она должна вылетать? И что есть "главный" экран?..З.Ы. Мне в четверг сдвать, так что завтра крайний срок Тут никого не интересуют твои проблемы с временем - надо было раньше начинать.. Хочешь скорее - задавай вопросы яснее. Совет: используй отладку (F7,F8,F4,Ctrl-F7...). Совет 2: форматируй код. Я тебе отформатировал, придерживайся этих правил. Совет 3: используй процедуры и/или функции для ввода однотипных данных. Отформатированный код: uses crt; -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Account |
21.11.2008 23:32
Сообщение
#15
|
Бывалый Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: 0 |
volvo спасибо за
Цитата 2. Выделяешь с помощью GetMem динамическую память, достаточную для размещения в ней тех записей, которые нужно сохранить, и заносишь эти записи в дин. память; Так и сделал. Мне конечно не требуеться по заданию но на всякий случай вписал процедуру) На будущее пригодиться думаю) |
Текстовая версия | 28.04.2024 0:45 |