IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Интересная задача с заменой букв в определенных условиях
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: valerii

Репутация: -  0  +


Задачка непростая.

Итак, вот что надо сделать: программа должна в вводимом тексте искать каждое 5 слово и заменять только одну найденную букву в слове: "а" на %, а если буквы "а" нету, тогда букву "о" на *.

Хоть с паскалем знаком, но как организовать подобное не знаю.

Что посоветуйте?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Для такой непростой задачи советую сделать конечный автомат. smile.gif


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: valerii

Репутация: -  0  +


Цитата(Unconnected @ 10.10.2010 23:14) *

Для такой непростой задачи советую сделать конечный автомат. smile.gif


и как его сделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


А как вводится текст, строкой, файлом, или каждое слово отдельно?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: valerii

Репутация: -  0  +


Цитата(Unconnected @ 10.10.2010 23:32) *

А как вводится текст, строкой, файлом, или каждое слово отдельно?


Строкой, string
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
заменять только одну найденную букву в слове: "а" на %, а если буквы "а" нету, тогда букву "о" на *.
Задачу уточни... Допустим, слово №10 = это "мама". Что должно быть заменено? Только одна буква (какая именно?) или все буквы? Или вообще замена должна производиться только если в таких словах ВСЕГО одна заданная буква?

Цитата
Для такой непростой задачи
Я тебя умоляю. Метод разбиения строки на слова от klem4 (только не в виде функции, а в основной программе) решает эту задачу максимум в 40 строк. Со всеми описаниями переменных smile.gif Ничего непростого в ней нет.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Unconnected @ 11.10.2010 0:14) *
Для такой непростой задачи советую сделать конечный автомат. smile.gif
lol.gif Замысловато шутишь.. Ты хоть сам знаешь, что это такое? ))

2 valerii:
Если с Паскалем знаком (лично?smile.gif), труда не составит.
Примерно так:

1. организуешь поток символов данного текста;
2. обнуляешь счетчик слов n;
3. опустошаешь строку для будущего слова w;
4. из потока берешь следующий символ c;
5. если поток был пуст и слово w пусто - выходишь из программы;
6. если с - буква, добавляешь ее к w и преходишь к 4;
7. если w пусто, переходишь к 4;
8. увеличиваешь счетчик слов n;
9. если n<5, переходишь к 3;
10. выставляешь флаг f в true;
11. проходишь в цикле по слову w, если встречаешь "a" - заменяешь его на % и сбрасываешь f в false (и либо подолжаешь цикл, либо обрываешь, в зависимости от того, что ты ответишь на вопрос volvo);
12. если f, то проходишь в цикле по слову w, если встречаешь "o" - заменяешь его на * (и либо подолжаешь цикл, либо обрываешь, в зависимости от того, что ты ответишь на вопрос volvo);
13. переходишь к 2.

Разберешься? Когда переведешь алгоритм в код, показывай.
Успехов.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.05.2024 9:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name