|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.11.2006, 19:37 | #1 |
Регистрация: 30.11.2006
Сообщений: 5
|
задача по строкам
выручайте! нужно написать следующюю прогу.
"вводится строка из слов. слова разделены одним или более пробелом. после последнего слова - точка. в слове от 1 до 8 английских символов. всего слов до 50 штук. вывести те, которые являются симметричными и не совпадают с последним словом" |
30.11.2006, 19:46 | #2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,758
|
алгоритм:
1)создаёшь слово-буфер, обнуляешь его. 2)добавляешь побуквенно в слово-буфер, если следующий символ пробел, то добавляешь слово в массив слов. обнуляешь слово-буфер 3)ищешь символ отличный от пробела и начинаешь с пункта 2 и так до точки. 3)прогоняешь через цикл массив полученных слов, сравнивая первую и последнюю букву, вторую и предпоследнюю и т.д. тоже лучше в цикле. 4)если слово семметричное выводишь его в memo, например. какой из пунктов не понятен? или нужен код? |
30.11.2006, 19:51 | #3 |
Регистрация: 30.11.2006
Сообщений: 5
|
лучше код... если не затруднит... спасибо.
|
30.11.2006, 19:54 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
1. Выделяем последнее слово и сохраняем в переменной.
2. Поочередно выделяем слова, создаем их "перевертыши" (если я правильно понял выражение "симметричные слова"). 3. Проверяем "перевертыша" и оригинал на совпадение с последним словом. Если нет совпадения - п.4. 4. Осуществляем поиск "перевертыша" в оставшейся части строки. 5. Опять на п.2. Основной оператор - CompareStrings Или опять готовый листинг требуется? |
30.11.2006, 20:22 | #5 |
Регистрация: 30.11.2006
Сообщений: 5
|
mihali4
Алгоритм я и сам примерно так представлял. Только вот как его оформить в коде - увы. В Дельфях не силен (знаю на уровне начальной школы: циклы, массивы и т.п.), а прога нужна моему знакомому. Поэтому самому сидеть и листать доки, вспоминая правила записи команд некогда. Если можешь - дай готовый листинг. |
30.11.2006, 20:38 | #6 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,758
|
перевёртыши это что?
deged - перевёртышь? я так понял задачу. |
30.11.2006, 21:32 | #7 |
Регистрация: 30.11.2006
Сообщений: 5
|
Ага. Оно же abccba, abbba. Хотя уже самого начали брать сомнения в значении этого термина. Первое слово вроде как симметрично относительно промежутка между буквами сс. А второе - относительно самой буквы, хотя тоже по идее симметрично.
В общем пусть симметричные те, которые читаются одинаково справа налево и слева направо. |
01.12.2006, 12:43 | #8 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
И опять под листинг попадаю я...
Я беру за основу то, что пользователь вводит всю эту беду в memo... На форме - 2 memo, 1 Button. Код:
Познавая других, мы познаем себя.
С'est la vie... |
01.12.2006, 19:25 | #9 |
Регистрация: 30.11.2006
Сообщений: 5
|
SuperVisor
Благодарю! Только для полного выполнения условия задачи "...и не совпадают с последним словом" следует написать так: Код:
|
01.12.2006, 20:13 | #10 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
Странно, вроде-бы писал.. Но это не столь важно, если ты это заметил, а еще лучше немного поправить сторку: из
Код:
Код:
Обращайся, если что.
Познавая других, мы познаем себя.
С'est la vie... Последний раз редактировалось SuperVisor; 01.12.2006 в 20:20. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
пара вопросов по строкам | Ravenbird | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 03.11.2006 22:55 |