forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Pascal, сложный алгоритм (http://forum.boolean.name/showthread.php?t=18783)

Okay 13.12.2013 20:27

Pascal, сложный алгоритм
 
Всем привет. С алгоритмами не очень дружу, поэтому прошу помощи здесь.
Задача такая. С клавиатуры вводится текст, определить сколько слов содержится в этом тексте, которые имеют три буквы "А"

Mr_F_ 13.12.2013 20:35

Ответ: Pascal, сложный алгоритм
 
а что сложного
идешь по символам - считаешь буквы А
доходишь до пробела/знака препинания - конец слова

Okay 13.12.2013 20:43

Ответ: Pascal, сложный алгоритм
 
Цитата:

Сообщение от Mr_F_ (Сообщение 271388)
а что сложного
идешь по символам - считаешь буквы А
доходишь до пробела/знака препинания - конец слова

я думал об этом, но не знаю как вот распределять концы слов и так далее

Nikich 13.12.2013 20:54

Ответ: Pascal, сложный алгоритм
 
Цитата:

доходишь до пробела/знака препинания - конец слова
же

Жека 14.12.2013 19:36

Ответ: Pascal, сложный алгоритм
 
Можно две переменные счётчика использовать.
aCount:Int - количество букв А в слове.
wordsCount:Int - количество слов с 3 буквами А
Алгоритм:
Код:

проходим в цикле посимвольно по строке,
если (символ == А) то
    aCount = aCount+1
    если aCount == 3 то
        wordsCount = wordsCount+1
    конец если
иначе
    если (символ == ПРОБЕЛ) то
        aCount = 0
    конец если
конец иначе


genroelgvozo 15.12.2013 23:40

Ответ: Pascal, сложный алгоритм
 
Цитата:

Сообщение от Жека (Сообщение 271417)
Можно две переменные счётчика использовать.
aCount:Int - количество букв А в слове.
wordsCount:Int - количество слов с 3 буквами А
Алгоритм:
Код:

проходим в цикле посимвольно по строке,
если (символ == А) то
    aCount = aCount+1
    если aCount == 3 то
        wordsCount = wordsCount+1
    конец если
иначе
    если (символ == ПРОБЕЛ) то
        aCount = 0
    конец если
конец иначе


Не будет работать. посчитает все слова в которых символов А больше или равно чем три. Надо проверку на равность трем засунуть в условие пробела, мол если дошли до конца слова и к этому моменту у нас 3 то увеличиваем счетчик. ну а счетчик А обнуляем в любом случае, в общем то как у тебя и есть

ПС. Хотя тут непонятно по формулировке. Понятие "имеют" означает что в слове ровно три буквы А или что хотя бы. так что может и как у тебя надо


Часовой пояс GMT +4, время: 19:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot