![]() |
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
|
Гость ![]() |
Ты приведи свою процедуру для создания "массива" (может, все-таки, списка?) в ЧИСТОМ виде, без наворотов интерфейса... А то смотреть на АЛГОРИТМ невозможно, все твои "рюшечки" его закрывают... А толку от них? Если программа НЕ РАБОТАЕТ.
Приводи программу, которая реализует логику, и не вылетает в Segmentation Fault после того, как был выбран первый пункт меню, и нажат Enter (таким образом, я физически не могу перейти ко второму пункту, и посмотреть, что же программа печатает, компиляцию и тестирование в Turbo Pascal не предлагать, если FPC показывает мне ошибки и недочеты, то TP просто "замалчивает" их, и веры программе еще меньше) |
мисс_граффити |
![]()
Сообщение
#3
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
а ради чего нужно затевать извращения с текстовым файлом?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Чисто сама процедура:
Прикрепленные файлы ![]() |
-=Считывающий=- |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
убито почти все оформление
Прикрепленные файлы ![]() |
мисс_граффити |
![]()
Сообщение
#6
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
На вопросы принципиально не отвечаешь?...
И цикл while тоже принципиально не используешь? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
работа с файлом - требование заказчика) а вот на счет while...
|
мисс_граффити |
![]()
Сообщение
#8
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
именно с текстовым? типизированные он не любит?
Сообщение отредактировано: мисс_граффити - 19.10.2006 20:06 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Так, вобщемто я забил на масссив. Вот примерный скелет решения через список. Умоляю, посмотрите!... там трабл с пролистыванием второго. Оч надо...
Прикрепленные файлы ![]() |
мисс_граффити |
![]()
Сообщение
#10
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
С какой стати мы должны помогать и вникать в твой код, если ты не удосуживаешься даже отвечать на поставленные вопросы, напрямую относящиеся к делу?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Извиняюсь. Честно. Просто все в торопях делаю. На счет текстового файла. Да) Т.е. работать надо именно с тектовым файлом.
И еще раз прошу прощения... |
-=Считывающий=- |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Ну правда, умоляю, помогиите разобраться... если бы мне нужно было просто сделать, я бы так и сказал. А хочется понять... по этому и выклыдываю всякую дребедень. ПЛЗ, помогите....
|
мисс_граффити |
![]()
Сообщение
#13
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
если читать задачу, то вообще пофиг, какие студенты дали тот или иной ответ говорили.
чтобы добиться того, что написано, нужно: 0. создаем список ответов. запись будет содержать 3 поля - информационное, куда записывается "булка", "сдоба" и т.д.; количество таких ответов; указатель на след. эл-т. 1. читаем строку из файла 2. "выдергиваем" из нее первый ответ. 3. проходим по списку. если такой ответ уже был, прибавляем единичку к количеству, если не было - добавляем новый элемент. 4. "выдергиваем" второй ответ. 5. идем на п.2 и так, пока не кончатся строки. чем тебя не устраивает этот алгоритм? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
кстати мысль... спасибки! попробую, как зделаю, выложу)
|
-=Считывающий=- |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Только одно но:
3. проходим по списку. если такой ответ уже был, прибавляем единичку к количеству, если не было - добавляем новый элемент. Нет. Если ответ уникален - тогда новый элемент списка, если нет, то просто ничего не делать, т.е. пропустить его. А вот там где мы создали новый элемент, там поставить доп. процедуру для анализирования всего файла на предмет повторов в нем ответа схожего с полем нашего элемента. Вроде так... хотя могу ошибаться.... Ваше мнение?) |
мисс_граффити |
![]()
Сообщение
#16
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
делай как хочешь.
твоя программа. сам только не запутайся: доступ к файлу только последовательный, тебе придется каждый раз переходить на начало, проходить весь файл, а потом искать, на чем остановился в прошлый раз. пройти список намного проще. Сообщение отредактировано: мисс_граффити - 22.10.2006 11:40 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Просто вопрос в том, как будет работать.... Если предположить:
3. проходим по списку. если такой ответ уже был, прибавляем единичку к количеству, если не было - добавляем новый элемент, то имея файл Иванов 1 2 Петров 3 1 Сидоров 2 1 Получаем: Сначала, по алгоритму создаемтся новый эл. с полями 1,1(ну, предположим, что число повторов по умолчанию 1); Затем создается 2,1; 3,1, а вот потом, к какому числу повторов будет прибывлена едицица? Получается надо тогда дописывать поиск элемента списка с заданным информационным поме 1 равным 1 и во второе(количество) делать плюс один? или как?... Вот поэтому и спрашиваю.... а на счет файла - да)... это весело) |
мисс_граффити |
![]()
Сообщение
#18
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
смотри, что мы должны делать:
1. По моей задумке. Читаем ответ из файла. Сравниваем его с первым значением из списка. Совпало? +1 во второе поле. Не совпало? Переходим на следующий элемент. Совпало?... Список кончился (т.е. в поле Next нуль-указатель), а элемент так и не нашелся? Добавляем новый такой элемент. Читаем следующий ответ из файла. Для реализации потребуется: цикл while, выход из которого происходит в случае окончания списка или нахождения элемента; рабочий указатель на текущий элемент, указатель на начало списка. 2. что предлагаешь ты. Читаем ответ. Проходим список в поиске его. Если не нашли, добавляем и ищем по всему файлу вниз. Доходим до конца файла. Закрываем файл. Открываем файл. Перематываем до исследованного элемента. Идем вниз. Читаем следующий элемент. Опять изучаем список.... Что больше нравится - то и реализуй. Я не вижу смысла в таких сложностях - ходить по списку ведь приходится не меньше... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#19
|
Гость ![]() |
Цитата Получается надо тогда дописывать поиск элемента списка с заданным информационным поме 1 равным 1 Зачем? Ты же все равно проходишь по списку... Вот нашел ты ответ. Он уже есть в списке... Прибавь 1 к счетчику, и все... Зачем еще один поиск элемента? |
-=Считывающий=- |
![]()
Сообщение
#20
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Аааааа!!!! Вот теперь я понял, ссори, тупой))
![]() Попробую) |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:27 |