![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Sqrin |
![]()
Сообщение
#1
|
Гость ![]() |
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами – запятая или не менее одного пробела, за последним словом - точка.
Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: - в слове гласные чередуются с согласными; Напечатать те слова последовательности, которые отличны от последнего слова, предварительно преобразовав каждое из них по следующему правилу: - если слово нечетной длины, то удалить его среднюю букву. напишите плиз |
![]() ![]() |
Archon |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
1. не 50 символов в строке, а 50 слов. Поставь просто string.
2. создай wrds : array [1..50] of string[8]; 3. загоняй слова в массив. Перебирай все символы(при этом wrds[j]:=wrds[j]+Stroka[i], i - счётчик цикла, j - счётчик слов), если символ не в множестве гласных и не в множестве согласных, значит разделитель(j++ :D ). добавлено: Начало должно выглядеть так Код Uses crt; Const Glas = ['A','E','I','O','U','Y']; Sogl = ['A'..'Z'] - Glas; Var S : string; words : array [1..50] of string[8]; I,j : integer; old : char; Begin ClrScr; Write('Введите строку : '); Readln(S); old := ' '; {Тута пробел} j := 1; {Первое слово} For i := 1 to length(S) do {Сканируем строку} Begin if UpCase(S[i]) in Sogl + Glas then words[j] := words[j] + S[i]{если буква, добавляем к текущему слову} else if UpCase(old) in Sogl + Glas then Inc(j);{Если не буква, а предыдущий символ - буква, увеличиваем номер слова} old := S[i]; {Сохраняем символ, на следующем шаге он станет предыдущим} End; Сообщение отредактировано: Archon - 15.06.2005 14:41 -------------------- Close the World...txeN eht nepO
|
Malice |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если я все правильно понял, то 50 слов * (8 символов +1 разделитель) = 450 символов максимум. Стрингом никак
![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 19:41 |