![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
-=Считывающий=- |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Доброе время суток!
Вот значится какая проблемма, есть файл следующе структуры: <Фамилия_1> <Ответ1> <Ответ2> ... <Фамилия_n> <Ответ1> <Ответ2> , причем у каждого человека по два РАЗНЫХ ответа. Нужно найти все разные ответы, и найти кол-во повторов каждого из них. В принципе уже понял как что делать, но, неповерите, запоролся в самом начале))) Решил создать массив строк, чисто для удобства и вот тут я появилась проблемма. Происходит следующее, в процессе формирования - все ок, но как только процедура по созданию массива заканчивает работу, весь массив смещается на одну позицию вниз, т.е. 1 становится 2, 2 -3 и т.д. Вот код и файл БД)), подскажите, в чем проблемма? Прикрепленные файлы ![]() ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Во-первых, ты неправильно делаешь проверку... Я бы делал так:
Procedure Proverka(buf:string;var flag:boolean);(зачем менять глобальную переменную дважды, если можно один раз поменять локальную?) Второе - печать списка, совершенно аналогично, не меняй глобальные переменные (ими вообще лучше не пользоваться, но это - отдельная тема для разговора): Procedure PrintSl(Sl:NSl);(естественно, что вызывать печать списка в главном Case придется по-другому: 2: PrintSl(Head);) Ну, и самое главное, ты неправильно конструируешь список... Прежде всего, при инициализации нового элемента, его Next нужно об-Nil-ить: Procedure NewSl(var Sl:NSl);Ну, и основная ошибка - ты зачем меняешь Head^? Не проще ли сделать так: If flag=false then? |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 15:56 |