Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18

В заданной строке определить длину самого короткого слова

19.03.2011, 21:45. Показов 2755. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В заданной строке, состоящей из "слов", разделенных одним или более пробелами, определить длину самого короткого "слова".
есть такой вариант, но нужен другой
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sStr As String, sWord As String, iMin As Integer, iLen As Integer, oObj
        sStr = TextBox1.Text
 
        iMin = Len(sStr)
        For Each oObj In Split(sStr)
            iLen = Len(Trim(oObj))
            If iLen <> 0 Then
                If iLen < iMin Then iMin = iLen : sWord = oObj
            End If
        Next
        TextBox2.Text = sWord & " состоит из " & iMin & " букв."
 
    End Sub
вот такой еще сделал
VB.NET
1
2
3
4
5
6
7
8
9
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sStr As String, sWord As String, Imin As Integer, minSlovo As String
        sStr = TextBox1.Text
        Imin = Len(sStr)
 
        Dim s() As String = Split(sStr, " ")
        If Len(s(0)) < Len(s(1)) Then Imin = Len(s(0)) : minSlovo = s(0) Else Imin = Len(s(1)) : minSlovo = s(1)
        MsgBox("Самое короткое слово '" & minSlovo & "' состоит из " & Imin & " букв.")
    End Sub
Но тут еще надо куда-то Trim всунуть и если слов в строке больше чем два то получается надо сравнивать все S()?!
Вообщем помогите второй дороботать пожлуйсто
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.03.2011, 21:45
Ответы с готовыми решениями:

В заданной строке, состоящей из "слов", разделенных одним или более пробелами, определить длину самого короткого "слова"
В заданной строке, состоящей из &quot;слов&quot;, разделенных одним или более пробелами, определить длину самого короткого &quot;слова&quot;. ...

Определить длину самого короткого слова
В заданной строке, состоящей из &quot;слов&quot;, разделенных одним или более пробелами, определить длину самого короткого &quot;слова&quot;. ...

Определить длину самого короткого слова
Помогите пожалуйста с програмой. Вот задание: Для заданной строки символов, который содержит украинские слова, разделенные пробелами (одним...

9
16 / 16 / 1
Регистрация: 08.03.2011
Сообщений: 37
19.03.2011, 23:16
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim sStr As String, Imin As Integer, minSlovo As String
Dim s() As String
Dim i As Long
 
s() = Split(TextBox1.Text, " ")
Debug.Print UBound(s())
 
Imin = Len(s(0))
minSlovo = s(0)
 
For i = 1 To UBound(s())
     If Len(s(i - 1)) < Imin Then
          Imin = Len(s(i - 1))
          minSlovo = s(i - 1)
     End If
Next i
MsgBox ("Самое короткое слово '" & minSlovo & "' состоит из " & Imin & " букв.")
Добавлено через 32 минуты
Что за хня с сайтом ("Bad Gateway")?

Второй вариант.

Результаты разные, т.к. первый вариант берёт показывает первое попавшееся самое короткое слово.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim sStr As String, Imin As Integer, minSlovo As String
Dim s() As String
Dim i As Long
Dim j As Long
 
s() = Split(TextBox1.Text, " ")
 
' Сортировка.
For i = 0 To UBound(s()) - 1 Step 1
    For j = 0 To UBound(s()) - 2 - i Step 1
        If s(j) > s(j + 1) Then
            sStr = s(j)
            s(j) = s(j + 1)
            s(j + 1) = sStr
        End If
    Next j
Next i
 
' В результате сортировки самое короткое слово будет находиться в самом верху массива.
Imin = Len(s(0))
minSlovo = s(0)
 
MsgBox ("Самое короткое слово «" & minSlovo & "». Количество букв: " & Imin)
1
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18
20.03.2011, 11:29  [ТС]
For i = 1 To UBound(s())
s() подчеркивет Число индексов меньше числа измерений индексированного массива.
0
16 / 16 / 1
Регистрация: 08.03.2011
Сообщений: 37
20.03.2011, 12:51
Версия Basic?
0
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18
20.03.2011, 13:05  [ТС]
Еще попробовал вот так сделать чтобы не сравнивать все Len(s) но теперь не работает
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sStr As String, sWord, s1 As String, Imin As Integer, minSlovo As String, n As Short
        Imin = Len(sStr)
 
        Dim s() As String = Split(sStr, " ")
        s1 = s(n).Trim
        For n = 1 To 100 Step 1
            If Len(s(n)) < Imin Then Imin = Len(s(n)) : minSlovo = s(n) Else Imin = Imin : minSlovo = sStr
        Next n
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub
помогите доделать(

Добавлено через 1 минуту
vs.net 2003, думаешь в более поздней все норм будет?
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
20.03.2011, 14:35
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
st = Trim(TextBox1.Text)
If Len(st) > 0 Then
Do While InStr(1, st, "  ") > 0
st = Replace(st, "  ", " ")
Loop
sm = Split(st, " ")
d = Len(sm(LBound(sm)))
For i = LBound(sm) + 1 To UBound(sm)
If d > Len(sm(i)) Then d = Len(sm(i))
Next i
MsgBox d
End If
1
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18
20.03.2011, 14:58  [ТС]
спасибо огромное запарился уже мучится с этим заданием!
можешь еще немного обьяснить что в этих 3ех строчках происходит
Цитата Сообщение от gaw Посмотреть сообщение
d = Len(sm(LBound(sm)))
For i = LBound(sm) + 1 To UBound(sm)
If d > Len(sm(i)) Then d = Len(sm(i))
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
20.03.2011, 15:08
Visual Basic
1
2
3
4
5
6
7
d = Len(sm(LBound(sm)))'длина эл.массива sm с нижним индексом (LBound(sm) -первый 
                                         'индекс  массива sm)
For i = LBound(sm) + 1 To UBound(sm)' цикл от второго по порядку (первый +1) до последнего 
                                                       '(UBound) индекса массива sm
If d > Len(sm(i)) Then d = Len(sm(i))' если имеющаяся  длина (d) слова больше длины (Len) 
                                                     'текущего по циклу слова (эл массива sm(i)), то
                                                    'принимаем за новую длину это (меньшее значение)
1
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18
20.03.2011, 16:09  [ТС]
спасибо

Добавлено через 53 минуты
gaw, а если еще самое короткое слово вывести этж поидее sm(i)? но эт получается самое длнное
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
20.03.2011, 16:22
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
st = Trim(TextBox1.Text)
If Len(st) > 0 Then
Do While InStr(1, st, "  ") > 0
st = Replace(st, "  ", " ")
Loop
sm = Split(st, " ")
d = Len(sm(LBound(sm))): st1 = sm(LBound(sm))
For i = LBound(sm) + 1 To UBound(sm)
If d > Len(sm(i)) Then
d = Len(sm(i))
st1 = CStr(sm(i))
End If
Next i
MsgBox st1 & "  " & d
End If
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.03.2011, 16:22
Помогаю со студенческими работами здесь

Найти длину самого длинного слова в строке
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова..Ещё надо решать в...

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

Задан список из десяти городов. Поменять в списке местами названия самого длинного и самого короткого
Помогите написать программу! . Задан список из десяти городов. Поменять в списке местами названия самого длинного и самого короткого....

Дана строка, состоящей из слов, слова отделены друг от друга одним пробелом. Определить длину каждого слова
Дана строка, состоящей из слов, слова отделены друг от друга одним пробелом. Определить длину каждого слова.

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru