![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Вот такая вот задача стоит предо мной:
описать структуру с именем MARSH, содержащую поля: • BEGST – название начального пункта маршрута; • TERM – название конечного пункта маршрута; • NUMER – номер маршрута. Написать программу, выполняющую следующие действия: • ввод из файла данных в массив TRAFFIC, состоящий из десяти структур типа MARSH; записи должны быть упорядочены по номерам маршрутов; • вывод на дисплей информации о маршрутах, которые начинаются или кончаются в пункте, введенном с клавиатуры; • если таких маршрутов нет, вывести соответствующее сообщение. Кто осилит?:) |
|||
|
||||
| Xenon |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Непонятка - бинарный файл со структруми уже есть? Если да, то :
Если нет - файл нужно сначала чем-то заполнить ... Как-нибудь вот так:
|
||||
|
|||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Вместо "std::" нужно что-то подставить или что? Иначе компиллятор отказывается переваривать эту программу=)
|
|||
|
||||
| zkv |
|
||||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
в следующий раз указывайте компилятор. std:: просто убрать (это пространство имен такое, если что
заменить на:
Это сообщение отредактировал(а) zkv - 19.5.2007, 14:00 |
||||||
|
|||||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
zkv, когда же наконец-то в институты/универы поставят нормальные компиляторы ... спасибо за поправку
|
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
||||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Самое смешное, что дело удалением "std::" не закончилось. Компиллятор выдал целый букет ошибок;))) Ну, к примеру, Borland не признает тип string и тд. Может есть возможность у тов. Xenon'a переделать прогу под Borland C++ 3.1? А то остальные ошибки вообще не понятны=)) Буду оч благодарен)
З.Ы. а про универы верно подмечено;)) Это сообщение отредактировал(а) Goth - 19.5.2007, 18:57 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Хм.. насколько я знаю в Borland C++ 3.1 нет поддержки STL. Так что работать не будет
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Вот я и говорю, что много непонятных мне и компиллятору "ошибок". Поэтому взываю к добрым людям;))
|
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Не дай бог у меня в универе будет борланд
|
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
И опять компиллятор выдает море ошибок. Сейчас посмотрим, что там....
|
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
вот прога Xenon'a, которая точно(нашел даже этот раритет
Это сообщение отредактировал(а) zkv - 19.5.2007, 21:42 |
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Эта программа ничуть не лучше=) Может я, конечно, чего-то недопонимаю, но компиллятор опять же выводит несуразные замечание (хотч их всего 2!), а именно "undefined symbols ..." ... Даже не знаю, что с этим можно сделать ;)
|
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
Goth, этот код я проверял на Borland C++ Version 3.1, он только два ворнинга выдает несущественных (обеспокоен тем что не пользуемся argc и argv). Так что показывай на какие выдает ошибки, и в каких строках.
|
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Компилится нормально, но .EXE файл не линкуется... Привожу точный текст ошибки "Linker error: Undefined symbol _vector_new_(void far*, unsigned int, unsigned long, unsigned int,...) in module <имя файла с текстом программы>.CPP"
И вот эта: "Linker error: Undefined istream::getline(char far*, int, unsigned char) in module <имя файла с текстом программы>.CPP" Никогда с таким не сталкивался. Может я что-то не так делаю? :) |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
Goth, к либ файлам в директориях пути нормально прописаны? Посмотри в файловом менеджере (проводнике например) сначала, где папка с файлами у тебя с расширениями lib, по идее она LIB должна называться, потом пропиши путь к этим файлам в Directories, если не получится, то тебе не повезло
|
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Папка с .lib файлами так и называется. В Directories путь прописан к этой папке. Все остальные проги нормально компиллятся. Ничего не понимаю...
|
|||
|
||||
| dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Options->Linker->Libraries->Standart Run-time Libraries вместо None поставить Static
Такой, какой мы ее знаем на текущий день нет - но было некое подобие. Были все потоковые классы - fstream, iostream. Существовали контейнерные классы - Array(теперь vector), Queue, List, правда они не были шаблонными. Различия по примеру Xenona. std нет, т.к нет концепции о пространстве имен. Типа string нет, зато есть тип String, правда с другими методами. Нет типа bool и ключевых слов false и true reinterpret_cast и иже с ним также отсутствуют Все остальное портабельно Это сообщение отредактировал(а) dizzy1984 - 23.5.2007, 13:18 |
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
так, действительно запускается (видимо уж совсем устарел мой С++, скачал с бОльшим кол-вом библиотек). Но вот что должен из себя представлять файл для считывания? Какова должна быть структура записи информации в нем? Перепробовал уже множество вариантов. И как можно вывести на экран уже отсортированный массив структур?
Это сообщение отредактировал(а) Goth - 23.5.2007, 18:17 |
|||
|
||||
| Xenon |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Goth, я уже приводил функцию формированию файла на основе данных. Иначе никак, ведь формат данных бинарен, поэтому ручками не получится.
Вот та самая функция:
Вывод? Везде, где угодно после функции sort():
|
||||
|
|||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Понятно. Только проблема вот в чем: мой компиллятор не признает 11ую строку первого кода (что не удивительно). Чем можно заменить её в Borland?
|
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
||||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Всё равно не то... Но уже хотя бы запускается. Файл создается криво, далее не читается. А я уж думал сегодня отмечу задачу " как решенную" =))
|
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Не знаю как ты делал, но у меня все работает:
|
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Ну чтож, могу отчитаться. Немного поразмыслив над всеми представленными кодами, я добавил кое-что в последний код тов. Xenon (а именно сделал поиск номера маршрута по начальному или конечному пути, т.к. предоставленный код отказывался всё это осуществлять), и в результате получилось нечто следующее:
В связи с этим выражаю благодарность следующим личностям: Xenon, zkv. =))) |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Goth,
Так работает? |
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Это чисто из спортивного интереса?
З.Ы. Xenon, опять хромает поиск номера маршрута по началу и концу пути... Это сообщение отредактировал(а) Goth - 26.5.2007, 15:03 |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Goth, чего- то у меня даже в голове не укладывается ... вроде же правильно все: если результат первого или второго сравнения равно -1 или 1, то уже автоматом выражение в скобках принимает true, а операцией инверсии '!' получается false. А если и то и другое сравнение вернуло 0, значит и та и другая строка равны, в скобках получится false, а из-за '!' получится true ... Ну правильно кажись все.
|
|||
|
||||
| lrad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 20.1.2007 Где: Ленинградская обл асть Репутация: 2 Всего: 2 |
У меня была похожая задача
1. Структура с именем MARSH содержит следующие поля: - название начального пункта маршрута; - название конечного пункта маршрута; - номер маршрута. 2. Условие поиска – вывод на экран информации о маршруте, номер которого введен с клавиатуры. вот решение а под твой вариант переделать элементарно
|
|||
|
||||
| Goth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Xenon, насколько я понял, сравнить начало и конец пути можно только с помощью strcmpi, точную формулировку не помню, но вроде как в таком случае не учитывается "как" мы записывали поля структуры в файл (что-то там с двоичной системой связано). А вот насчет strcmp, которую используешь, не уверен.
Irad, вся проблема заключалась как раз в записи в файл и считывании с файла полей структуры, а остальное не так уж проблемно=))) |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Goth, strcmp(const char* str1, const char* str2) стандартная функция сравнивающая две строки: если она вернет -1, значит st1 меньше st2, если 0, то они равны, если 1, то st1 больше st2.
Это сообщение отредактировал(а) Xenon - 27.5.2007, 15:33 |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |