Задача на списки, Создание из файла списка |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на списки, Создание из файла списка |
-=Считывающий=- |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
Доброе время суток!
Вот значится какая проблемма, есть файл следующе структуры: <Фамилия_1> <Ответ1> <Ответ2> ... <Фамилия_n> <Ответ1> <Ответ2> , причем у каждого человека по два РАЗНЫХ ответа. Нужно найти все разные ответы, и найти кол-во повторов каждого из них. В принципе уже понял как что делать, но, неповерите, запоролся в самом начале))) Решил создать массив строк, чисто для удобства и вот тут я появилась проблемма. Происходит следующее, в процессе формирования - все ок, но как только процедура по созданию массива заканчивает работу, весь массив смещается на одну позицию вниз, т.е. 1 становится 2, 2 -3 и т.д. Вот код и файл БД)), подскажите, в чем проблемма? Прикрепленные файлы L_2_41.PAS ( 5.02 килобайт ) Кол-во скачиваний: 326 1.TXT ( 61 байт ) Кол-во скачиваний: 296 |
volvo |
Сообщение
#2
|
Гость |
Ты приведи свою процедуру для создания "массива" (может, все-таки, списка?) в ЧИСТОМ виде, без наворотов интерфейса... А то смотреть на АЛГОРИТМ невозможно, все твои "рюшечки" его закрывают... А толку от них? Если программа НЕ РАБОТАЕТ.
Приводи программу, которая реализует логику, и не вылетает в Segmentation Fault после того, как был выбран первый пункт меню, и нажат Enter (таким образом, я физически не могу перейти ко второму пункту, и посмотреть, что же программа печатает, компиляцию и тестирование в Turbo Pascal не предлагать, если FPC показывает мне ошибки и недочеты, то TP просто "замалчивает" их, и веры программе еще меньше) |
мисс_граффити |
Сообщение
#3
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
а ради чего нужно затевать извращения с текстовым файлом?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
Чисто сама процедура:
Прикрепленные файлы 01.PAS ( 311 байт ) Кол-во скачиваний: 274 |
-=Считывающий=- |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
убито почти все оформление
Прикрепленные файлы 002.PAS ( 3.68 килобайт ) Кол-во скачиваний: 300 |
мисс_граффити |
Сообщение
#6
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
На вопросы принципиально не отвечаешь?...
И цикл while тоже принципиально не используешь? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
работа с файлом - требование заказчика) а вот на счет while...
|
мисс_граффити |
Сообщение
#8
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
именно с текстовым? типизированные он не любит?
Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
Так, вобщемто я забил на масссив. Вот примерный скелет решения через список. Умоляю, посмотрите!... там трабл с пролистыванием второго. Оч надо...
Прикрепленные файлы 002.PAS ( 5.1 килобайт ) Кол-во скачиваний: 281 |
мисс_граффити |
Сообщение
#10
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
С какой стати мы должны помогать и вникать в твой код, если ты не удосуживаешься даже отвечать на поставленные вопросы, напрямую относящиеся к делу?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
Извиняюсь. Честно. Просто все в торопях делаю. На счет текстового файла. Да) Т.е. работать надо именно с тектовым файлом.
И еще раз прошу прощения... |
-=Считывающий=- |
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
Ну правда, умоляю, помогиите разобраться... если бы мне нужно было просто сделать, я бы так и сказал. А хочется понять... по этому и выклыдываю всякую дребедень. ПЛЗ, помогите....
|
мисс_граффити |
Сообщение
#13
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
если читать задачу, то вообще пофиг, какие студенты дали тот или иной ответ говорили.
чтобы добиться того, что написано, нужно: 0. создаем список ответов. запись будет содержать 3 поля - информационное, куда записывается "булка", "сдоба" и т.д.; количество таких ответов; указатель на след. эл-т. 1. читаем строку из файла 2. "выдергиваем" из нее первый ответ. 3. проходим по списку. если такой ответ уже был, прибавляем единичку к количеству, если не было - добавляем новый элемент. 4. "выдергиваем" второй ответ. 5. идем на п.2 и так, пока не кончатся строки. чем тебя не устраивает этот алгоритм? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
кстати мысль... спасибки! попробую, как зделаю, выложу)
|
-=Считывающий=- |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
Только одно но:
3. проходим по списку. если такой ответ уже был, прибавляем единичку к количеству, если не было - добавляем новый элемент. Нет. Если ответ уникален - тогда новый элемент списка, если нет, то просто ничего не делать, т.е. пропустить его. А вот там где мы создали новый элемент, там поставить доп. процедуру для анализирования всего файла на предмет повторов в нем ответа схожего с полем нашего элемента. Вроде так... хотя могу ошибаться.... Ваше мнение?) |
мисс_граффити |
Сообщение
#16
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
делай как хочешь.
твоя программа. сам только не запутайся: доступ к файлу только последовательный, тебе придется каждый раз переходить на начало, проходить весь файл, а потом искать, на чем остановился в прошлый раз. пройти список намного проще. Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-=Считывающий=- |
Сообщение
#17
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
Просто вопрос в том, как будет работать.... Если предположить:
3. проходим по списку. если такой ответ уже был, прибавляем единичку к количеству, если не было - добавляем новый элемент, то имея файл Иванов 1 2 Петров 3 1 Сидоров 2 1 Получаем: Сначала, по алгоритму создаемтся новый эл. с полями 1,1(ну, предположим, что число повторов по умолчанию 1); Затем создается 2,1; 3,1, а вот потом, к какому числу повторов будет прибывлена едицица? Получается надо тогда дописывать поиск элемента списка с заданным информационным поме 1 равным 1 и во второе(количество) делать плюс один? или как?... Вот поэтому и спрашиваю.... а на счет файла - да)... это весело) |
мисс_граффити |
Сообщение
#18
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
смотри, что мы должны делать:
1. По моей задумке. Читаем ответ из файла. Сравниваем его с первым значением из списка. Совпало? +1 во второе поле. Не совпало? Переходим на следующий элемент. Совпало?... Список кончился (т.е. в поле Next нуль-указатель), а элемент так и не нашелся? Добавляем новый такой элемент. Читаем следующий ответ из файла. Для реализации потребуется: цикл while, выход из которого происходит в случае окончания списка или нахождения элемента; рабочий указатель на текущий элемент, указатель на начало списка. 2. что предлагаешь ты. Читаем ответ. Проходим список в поиске его. Если не нашли, добавляем и ищем по всему файлу вниз. Доходим до конца файла. Закрываем файл. Открываем файл. Перематываем до исследованного элемента. Идем вниз. Читаем следующий элемент. Опять изучаем список.... Что больше нравится - то и реализуй. Я не вижу смысла в таких сложностях - ходить по списку ведь приходится не меньше... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#19
|
Гость |
Цитата Получается надо тогда дописывать поиск элемента списка с заданным информационным поме 1 равным 1 Зачем? Ты же все равно проходишь по списку... Вот нашел ты ответ. Он уже есть в списке... Прибавь 1 к счетчику, и все... Зачем еще один поиск элемента? |
-=Считывающий=- |
Сообщение
#20
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Михаил Репутация: -1 |
Аааааа!!!! Вот теперь я понял, ссори, тупой))
Попробую) |
Текстовая версия | 22.12.2024 8:13 |