1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
| Drenchick |
25.05.2006 18:57
Сообщение
#1
|
|
Гость |
вводим слова через пробел. найти количество слов которые вмещают 3 буква "а"
|
| TS* |
25.05.2006 19:31
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 71 Пол: Мужской Реальное имя: Max Репутация: 0 |
вводим слова через пробел. найти количество слов которые вмещают 3 буква "а" var |
| volvo |
25.05.2006 19:45
Сообщение
#3
|
|
Гость |
TS*, не-а...
Введи строку 'dda abbaa defaaa noneeaaaa', и посмотри что выводит программа... (под Турбо-Паскалем вообще виснет, если не завершить строку пробелом...) Я бы делал так: var |
| Bokul |
26.05.2006 6:34
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Вот чуть-чуть подравил код TS*.
Тепер программа правильно находит число слов, но всеравно виснет, если строка не кончается пробелом, хотя я добавил проверку на конец строки... Почему? Код var s:string; i,count_a,count_words:byte; begin readln(s); i:=0; count_a:=0; count_words:=0; while i<=length(s) do begin inc(i); if s[i]='a' then begin inc(count_a); repeat inc(i); if s[i]='a' then inc(count_a); until (s[i]=' ') or (i=length(s)); {Добавлен оператор or и еще одно условие} if count_a=3 then inc(count_words);{Перемещено} count_a:=0; dec(i); end; end; writeln('Koluchestvo slov s 3 bykvamu a = ',count_words); end. Сообщение отредактировано: Bokul - 26.05.2006 6:41 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
| Malice |
26.05.2006 8:34
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
| volvo |
26.05.2006 8:45
Сообщение
#6
|
|
Гость |
все равно виснет, если строка не кончается пробелом, хотя я добавил проверку на конец строки... Почему? А потому, что здесь: if s[i]='a' then begin ... ты уменьшаешь i безусловно (!!!)... А если i уже достигло значения конца строки? Сделай так: ... и все будет работать... |
| Bokul |
27.05.2006 1:08
Сообщение
#7
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата А не проще ли в начале добавить строчку "if s[length(s)]<>' ' then s:=s+' ';" ? ;) Если длина строки уже максимальная, то ничего не получится -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
|
Текстовая версия | 13.12.2025 5:52 |