Вопрос № 172922: Здравствуйте уважаемые эксперты Файл f содержит записи следующей структуры: - имя студента; - пол; - рост; - оценки по трем экзаменам. Написать процедуру TASK_3_5 (f), выводящую имена девушек одного роста. натолкните пожа...
Вопрос № 172922:
Здравствуйте уважаемые эксперты
Файл f содержит записи следующей структуры: - имя студента; - пол; - рост; - оценки по трем экзаменам. Написать процедуру TASK_3_5 (f), выводящую имена девушек одного роста.
натолкните пожалуйста на алгоритм прохода файла за как можно меньшее количество раз для определения девушек одного роста, код можно не писать. Большое спасибо.
Отвечает Максим Юрьевич, 5-й класс :
Здравствуйте, Евгений Викторович.
Первое, что приходит в голову, - создать массив записей (Stud) размерностью от 1 до N (кол-во записей в файле) с полями Len: byte (рост), Sex: boolean (пол - если девушка = true), Eq: boolean (есть ли такого роста - если есть = true). При первом чтении из файла занести Len, Sex из файла, Eq инициализировать false. После, пробежаться по этому массиву (см. фрагмент кода ниже) и записать в Eq true для соответствующих персон. При втором чтении файла вывести на
печать тех, для кого поле Eq=true. Недостаток метода: Если есть несколько девушек с ростом, например, 160 см. и несколько с ростом 170 см, выводиться имена будут "вразнобой" (несортировано по росту)
Приложение:
Ответ отправил: Максим Юрьевич, 5-й класс
Ответ отправлен: 05.10.2009, 13:38
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 255024
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает leonid59, 10-й класс :
Здравствуйте, Евгений Викторович. Примем допущения. 1. Рост измеряется целым числом сантиметров. 2. Максимальный рост 250 см. 3.Список имен девушек одного роста не длинней 255 символов.
Дальше создаем arr[1..250] of string[255]; Читаем файл последовательно. Если у какой-то девушки рост, допустим, 153 см, ее имя (с запятой впереди) надо добавить к элементу массива с номером 153. Дальше просто распечатываем непустые элементы массива с их индексами. { Кстати, в ЕГЭ (часть C) именно такие
задачки. }
Исправлено по просьбе автора.
-----
∙ Отредактировал: sir Henry, Модератор
∙ Дата редактирования: 05.10.2009, 15:11 (время московское)
Ответ отправил: leonid59, 10-й класс
Ответ отправлен: 05.10.2009, 14:58
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 255029
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.