0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18

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

19.03.2011, 21:45. Показов 2767. Ответов 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 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru