Вопрос № 178427: Добрый день. Помогите мне пожалуйста с задачкой. Дан файл в котором содержиться данные о студенте. ФИО(символов).первая оценка,вторая оценка,третья оценка (по 1 символу),номер зачетки(4символа). Нужно найти 1) колличество неуспевающих и проце...
Вопрос № 178427:
Добрый день. Помогите мне пожалуйста с задачкой. Дан файл в котором содержиться данные о студенте. ФИО(символов).первая оценка,вторая оценка,третья оценка (по 1 символу),номер зачетки(4символа). Нужно найти 1) колличество неуспевающих и процент успеваимости. 2) с помощью Seek, по номеру зачетки, нужно изменить оценки.
я сделал,но по поиску 2 условия у меня не получается. помогите пожалуйста.
Исправленная программа — в приложении. Я изменил описание записи, чтобы сделать возможным использование цикла при вводе оценок. (Вывод на экран я не изменял, там по-прежнему без циклов.)
Кстати, структура создаваемого Вашей программой файла не соответствует описанию в задаче: поле имени предваряется байтом длины (в условии про это ничего не сказано), номер зачетки — 2 байта (бинарное представление типа integer), порядок полей иной. Если требуется точное соответствие
условию — обращайтесь в мини-форум, можно исправить.
Кроме того, подправлено вычисление процента успеваемости: кол-во студентов определяется по размеру файла, нет обращения к неопределенному файлу f1; у Вас вычислялся процент НЕуспеваемости; сообщение вида 'Процент успеваимости:50 %' — корявое, исправил (если Вы пишете "Процент успеваемости", то знак '%' в конце является лишним, если хотите его использовать,
то достаточно написать "Успеваемость".
Еще несколько замечаний:
Старайтесь свести к минимуму использование глобальных переменных. Если Вы пытаететсь сэкономить память таким образом, то эффект получается обратный. Локальные переменные размещаются в стеке и освобождаются при выходе из процедуры (функции). По возможности, переменные должны быть локальными. Не бойтесь, что их имена повторяются.
Используйте оператор WITH, если многократно обращаетесь к членам записи.
Если
Вы выводите несколько строк подряд, особенно в одном операторе write[ln], то лучше их объединить.
В сообщениях старайтесь использовать вежливое обращение: "Введи" — это слишком грубо.
Программа протестирована в Borland Pascal 7.0
Успехов!
Приложение:
Ответ отправил: amnick, Студент
Ответ отправлен: 17.05.2010, 19:01
Номер ответа: 261454
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261454
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.