Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Text m@sturb@ti()n :) Добавлено: 19.11.05 19:37  

Автор вопроса:  LoveSan
Нигде не могу найти кода для нахождения самого короткого слова и подсчете в нем кол-ва гласных. (сообщение Help ME!!!) Я уже с этими Len'ами и Mid'ами замучился,-не прет:( Помогите пожалуйста!!!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 19.11.05 22:48
Dim arrWords(1 to 20000) as String,i as long, letters(1 to 20000) as long, result as long,j as long,result2 as long

for i=1 to 20000
    for j=1 to len(arrWords(i))
        if CheckOnLetter(arrWords(i),j) then letters(i)=letters(i)+1
    next
next
for i=1 to 20000
    if letters(i)>result then
        result=letters(i)
        result2=i
    end if
next
msgbox arrWords(result2)
Советую проверить мои напечатанный прямо тут, в окошке, текст...

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 19.11.05 22:54
Ой,забыл...
Function CheckOnLetter(st as string, position as long) as boolean
'Я думаю, тут нетрудно разместить кодик... мне просто лень... прости... надо... ...поспать... немного поспать... чуть-чуть... ...надо... совсем..немного... совсем... поспа.......
end function

Ответить

Номер ответа: 3
Автор ответа:
 POST



Вопросов: 14
Ответов: 269
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 20.11.05 00:13
надо поспать, надо чуть-чуть
надо найти.. правильный путь.
(c) Агата Кристи

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 20.11.05 04:57
Самое короткое слово
min = 0
for i=1 to ubound(split(s, " ";))
if len(split(s, " ";)(i)) < len(split(s, " ";)(min)) then min = i
next
shortest_word = split(s, " ";)(min)
Число гласных
res = 0
g = "аоуиыэяёюе"
for i=1 to len(s)
if instr(mid(s, i, 1), g) <> 0 then res = res + 1
next

Ответить

Номер ответа: 5
Автор ответа:
 LoveSan



Вопросов: 10
Ответов: 4
 Профиль | | #5 Добавлено: 20.11.05 11:34
Hi dude! Sorry that i'm noob in VB. Но я че-то никак не втяну,- я должен вводить текст в поле Text1, а затем при нажатии Command1 проходят все подсчеты. Не получается совместить этот код с Command1. Можно в данном случае без Check0nLetter обойтись? А то я не знаю каким боком его уже туда запихнуть:)...

Ответить

Номер ответа: 6
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #6
Добавлено: 21.11.05 00:53

Private sub Command1_click
...
End sub

'Сюда суй Function CheckOnLetter (...)

Вот так. Надеюсь, заполнить все пропуски проблемой не будет.

Для разбивки на слова:

Dim sArr() As String 'Массив строк для хранения слов
Dim Max as long
sarr=split(text1.text," ";)

Цикл по всем словам.

Max = 0
For i = 0 to UBound(sArr)
    If Len(sArr(i))<Len(sArr(Max)) then
        'Это слово короче
        Max = i
    End If
Next i
'Самое короткое слово = sArr(Max)


Для подсчета гласных в нем:

Cnt = 0
For i = 1 to Len(sArr(Max))
   If CheckOnLetter(Mid(sArr(Max), i, 1)) then
       Cnt = Cnt + 1
   end if
Next i
'Cnt содержит колво гласных в слове sArr(Max)


Если я нигде не ошибся, то должно работать (реализацию CheckOnLetter см. ответ 4)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам