Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Поиск слова с условием


Автор: Zina 11.3.2006, 11:10
Сама задача:
Дан массив из 10 слов. Среди слов, в к-рых буква "в" встречается более одного раза, найти слово наибольшей длины.

Решите, пожалуйта, срочно нужно. Заранее спасибо за помощь!

Автор: MAKCim 11.3.2006, 11:36
QBasic не знаю, но алгоритм такой
перебираешь в цикле строки массива, для каждой строки запускаешь цикл, который перебирает буквы строки, заводишь счетчик, на каждой итерации if-ом проверяешь равенство очередной буквы и "в", в случае совпадения увеличиваешь счетчик; после просмотра очередного слова сравниваешь значение счетчика с 1, если больше сравниваешь с максимальным до этого значением счетчика (хранится например в max), если опять больше
max приравниваешь к текущему значению счетчика, индекс приравниваешь к текущему индексу массива строк (в начале индекс например равен -1), в конце возвращаешь этот индекс

написал очень подробно, надеюсь помого

Автор: Zina 11.3.2006, 14:02
Код

 dim x$(9)
 for i=0 to 9
 read x$(i)
 next i
 for i=0 to 9
 for j=1 to len(x$(i))
 for a= j+1 to len(x$(i))
 if mid$(x$(i),j,1)="b" and mid$(x$(i),a,1)="b" then goto 12
 next a
 next j
 next i
 max=len(x$(i)):k=i
 for v=i+1 to 9
 if len(x$(v))> max then max=len(x$(v)): k=v
 next v
 print max, x$(k),k
 data 


Вот то, что я сама написала, но она работает только если такие слова существуют. Если же их нет, то выдает ошибку. Может посмотрите что не так, а то у меня уже нет идей, как сделать по-другому
MAKCim, спасибо за помощь, но не мог бы ты объяснить, как "завести счетчик"? Хотя я попробую разобраться, если получится

Автор: Zina 11.3.2006, 19:12
MAKCim, еще раз спасибо! Ура! Я все решила!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)