Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 54
от 11.05.2005, 08:50

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 1


Вопрос № 20479: Не силен в бейсике, особенно в работе с файлами, а тут попросили задачку решить: Сведения об ученике состоят из его имени, фамилии и названия класса (год обучения и буква), в котором он учиться. Дан файл f, содержащий сведения об учениках школы....

Вопрос № 20479
Не силен в бейсике, особенно в работе с файлами, а тут попросили задачку решить:
Сведения об ученике состоят из его имени, фамилии и названия класса (год обучения и буква), в котором он учиться. Дан файл f, содержащий сведения об учениках школы.
а) выяснить имеются ли в школе однофамильцы
б) выяснить в каких классах насчитываеться более 35 учащихся.
Подскажите пожалуйста решение или хотя бы дайте направление... Заранее благодарен всем ответившим...
Отправлен: 05.05.2005, 10:56
Вопрос задал: Sniffer (статус: Студент)
Всего ответов отправлено: 1

Отвечает: Licvidator
Здравствуйте, Sniffer!
Попробую описать примерный алгоритм возможного решения:
1. Имеем обычный текстовый файл (f), в котором ученики расположены в виде
имя1 фамилия1 1А
имя2 фамилия2 1Б
имя3 фамилия3 2А
и т.д.
--
Как видно, каждый ученик занимает одну строку, данные по нему разделены пробелом.
2. Читаем файл целиком и загоняем его в массив
3. Пытаемся выяснить ответ на вопрос а). Для этого делаем цикл от 0 до верхней границы массива, берем первую строку выдираем оттуда только фамилию (я бы делал через Split() ) и начинаем сравнивать с каждой последующей (второй, вложенный цикл), из которой оставляем так же только фамилию. Если находим совпадение - увеличиваем переменную-счетчик на 1, а найденную строку "обнуляем", проще говоря приравниваем к "". Это нужно для того чтобы в последующем не возникало повторов. По окончании прогона по вложенному циклу, выводим результат в виде "фамилия такая-то встречается столько-то раз", после чего переменную счетчик обнуляем и начинаем проверку второй строки (перед этим проверяем, не равна ли она "", т.е. может эта фамилия уже проверялась)
4. Пытаемся выяснить ответ на вопрос б). Для этого выполняем те же самые действия, что и выше, но уже считаем и проверяем не по фамилии, а по классу и выводить только в случае если переменная-счетчик больше 35.
Если нужна реализация на ВБ 6.0, обращайтесь.. помогу:)
Ответ отправил: Licvidator (статус: Профессор)
Отправлен: 05.05.2005, 14:18


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Посетителей: сейчас / за сутки / всего Яндекс


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.basicvba
Отписаться

В избранное