![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Voovan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.12.2009 Репутация: нет Всего: -2 |
Вечер добрый.
Нужна помощь. Задача такова: Написать программу, которая циклически выводит ФИО со смещением на один символ (бегущая строка): Тоесть получается что-то вида: " Иванов Иван Иванович чИванов Иван Иванови ичИванов Иван Иванов ........ вановичИванов Иван И " Необходимо все это реализовать с помощью зацикленного односвязного списка. Заранее благодарен хоть в малейшей помощи. |
|||
|
||||
world |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: 6 Всего: 12 |
Держи.
Это сообщение отредактировал(а) world - 27.3.2010, 15:02 --------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
|||
|
||||
Voovan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.12.2009 Репутация: нет Всего: -2 |
Спасибо, но чето она у меня не копилится пишет:
error: '_TCHAR' has not been declared error: ISO C++ forbids declaration of 'argv' with no type Это сообщение отредактировал(а) Voovan - 27.3.2010, 12:02 |
|||
|
||||
world |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: 6 Всего: 12 |
Забыл, что писал в MSVS с подключённым tchar.h.
Исправь 7 строчку на
Исправил в первом посте --------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
|||
|
||||
Voovan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.12.2009 Репутация: нет Всего: -2 |
Спасибо огромнейшее добряк=))) надеюсь не показаться совсем обнаглевшим, если тебя конечно же это не затруднит, не мог бы ты раскоментировать каждую строчку?)))
|
|||
|
||||
world |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: 6 Всего: 12 |
Та ладно, привык уже объяснять каждую строчку программы
![]() первые 4 строчки подключение заголовочных файлов (буду объяснять только те методы, кот. используются в программе) 1. list заголовочній файл, который содержит описание списка и методы для работы с ним 2. iostream заголовочный файл, который обеспечивает потоковый ввод-вывод(cin, cout) 3. conio.h заголовочный файл для работы с консольным вводом, нам из него понадобилась функция getch() 4. cstdlib стандартная библиотека С, нам из неё понадобилась функция strlen(char*) 5. Указываем, что будем работать в пространстве имён std 7. Объявление главной функции программы Подробней про 5 и 7 строчки отправлю тебя опять к моему посту в http://forum.vingrad.ru/index.php?showtopi...t&p=2081939 9. Объявляем переменную x типа list<char> (список в котором каждый элемент имеет тип char) 10. Выводим строку-приглашение к работе (Vvedite text) 11. Создаём указатель на массив символов размером 80 элементов (в этот указатель мы считаем строку введённую пользователем, а 80 элементов выбрано потму, что имено столько символов может поместиться в строке стандартного консольного окна) 12. Вобщем-то считываем строку(но не более 80 символов!) 13. Создаём переменную length в которой будем хранить РЕАЛЬНОЕ количество считанных элементов (длина строки записаной по адресу указателя а) 14. Обрабатываем строку посимвольно, порка не дойдём до признака конца строки (символ '\0') 16. Записываем очередной символ в конец списка 18. Выполняем цикл, количество элементов в строке + 1 раз(можно менять, тогда изменяется количество шагов, кот. делает бегущая строка). 20. Создаём указатель на начало массива и перемещаемся по одному жэлементу пока, не дойдём до последнего элемента списка 22. Выводим символ, на который указывает указатель (фактически выводим всю строку по-символьно) 24. Совершаем переход на новую строку. 25. Сохраняем значение первого элемента списка. 26. Удаляем первый элемент списка. 27. Записываем соранённое значение бывшего первого элемента списка в конец списка (да масло маслянное получилось, но по-другому объяснить не могу) 29. Освобождаем память из-под массива в котором мы хранили значение, которое считали из строки(при завершении работы функции это произойдёт автоматически, но удаление динамически созданных объектов памяти(через new) програмистом является хорошим тоном програмирования) 30. Делаем задержку консольного окна (что-бы не закрывалось сразу после завершения работы функции). Сама функция getch() принимает один символ введённый с клавиатуры. 31. Возвращаем код возврата 0, и завершаем работу. Это сообщение отредактировал(а) world - 27.3.2010, 16:49 --------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
|||
|
||||
fantazer3333 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.3.2010 Репутация: нет Всего: нет |
А можете написать такую же программу только на простом С?
|
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
"Бегущая строка" должна, как минимум, "бежать"...
![]()
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |