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

В заданной строке определить количество слов, начинающихся и заканчивающихся на одну и ту же букву

10.03.2012, 01:12. Показов 5627. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
"В заданной строке определить количество слов, начинающихся и заканчивающихся на одну и ту же букву"
и
"В заданном массиве строк определить количество строк, у которых первый и последний символы совпадают."
Сделать нужно через простейшие функции аля substring mid и тп
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.03.2012, 01:12
Ответы с готовыми решениями:

Как определить количество слов в строке, начинающихся и заканчивающихся на одну и ту же букву
Здравствуйте. Помогите пожалуйста с программным кодом задания: В заданной строке, состоящей из слов, разделенных одним или более пробелами,...

Дан текст. Определить количество слов начинающихся и заканчивающихся на одну и ту же букву
Да текст. определить количество слов начинающихся и заканчивающихся на одну и ту же букву

В текстовом файле определить количество слов начинающихся и заканчивающихся на одну и ту же букву
Программа предназначена для подсчитывания в текстовом файле количества слов начинающихся и заканчивающихся на одну и ту же букву. ...

21
 Аватар для Dimon_bogoduhov
127 / 62 / 2
Регистрация: 15.02.2012
Сообщений: 127
10.03.2012, 12:32
Цитата Сообщение от molinenhard Посмотреть сообщение
"В заданной строке определить количество слов, начинающихся и заканчивающихся на одну и ту же букву"
эта тема на форуме уже была вот здесь
1
670 / 163 / 22
Регистрация: 27.01.2012
Сообщений: 372
10.03.2012, 13:30
Лучший ответ Сообщение было отмечено как решение

Решение

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
24
25
26
27
28
29
30
31
32
33
34
35
Dim a(), s, b As String
Dim k, l, m, n, p As Integer
 List1.Clear
Randomize
k = Int(Rnd(1) * 30 + 1) 'ñîçäàåì ñòðîêó ñëîâà ðàçäåëåíû ","
For i = 1 To k
l = Int(Rnd(1) * 5 + 2)
For j = 1 To l
 s = s & Chr(Int(Rnd(1) * 12 + 97))
Next j
s = s & ","
Next i
Text1.Text = s
 
List1.AddItem "ñëîâà"
ReDim a(1 To k)                 'ïðåâðàùàåì ñòðîêó â ìàññèâ, ñëîâo ýëåìåíò ìàññèâà
For i = 1 To Len(s)
n = n + 1
 If Mid(s, i, 1) = "," Then
  m = m + 1
  a(m) = Mid(s, i + 1 - n, n - 1)
  List1.AddItem a(m)
  n = 0
 End If
Next i
 
List1.AddItem "îäèíàêîâûå áóêâû "
For i = 1 To k             'èùåì ñëîâà ñ îäèíàêîâîé ïåðâîé è ïîñëåäíåé áóêâîé
 If Left(a(i), 1) = Right(a(i), 1) Then
  p = p + 1
 List1.AddItem a(i)
 End If
Next i
List1.AddItem "÷èñëî ñëîâ "
List1.AddItem p
3
2 / 2 / 0
Регистрация: 10.03.2012
Сообщений: 11
10.03.2012, 14:18  [ТС]
Спасибо вам огромное, а как насчет"В заданном массиве строк определить количество строк, у которых первый и последний символы совпадают."?
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
10.03.2012, 14:19
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
List1.AddItem "слова"
ReDim a(1 To k)                 'превращаем строку в массив, словo элемент массива
For i = 1 To Len(s)
n = n + 1
 If Mid(s, i, 1) = "," Then
  m = m + 1
  a(m) = Mid(s, i + 1 - n, n - 1)
  List1.AddItem a(m)
  n = 0
 End If
Next i
=
Visual Basic
1
2
3
4
5
List1.AddItem "слова"
 a = Split(s, ",")            'превращаем строку в массив, словo элемент массива
For i = 1 To k
  List1.AddItem a(i - 1)
Next i
2
670 / 163 / 22
Регистрация: 27.01.2012
Сообщений: 372
10.03.2012, 14:47
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
24
25
Dim a() As String
Dim k, l, p As Integer
 List1.Clear
Randomize
k = Int(Rnd(1) * 30 + 1) 'ñîçäàåì ìàññèâ ñòðîê
ReDim a(1 To k)
List1.AddItem "ñòðîêè"
ReDim a(1 To k)
For i = 1 To k
 l = Int(Rnd(1) * 15 + 3)
For j = 1 To l
  a(i) = a(i) & Chr(Int(Rnd(1) * 15 + 97))
Next j
List1.AddItem a(i)
Next i
 
List1.AddItem "îäèíàêîâûå áóêâû "
For i = 1 To k             'èùåì ñòðîêè ñ îäèíàêîâîé ïåðâîé è ïîñëåäíåé áóêâîé
 If Left(a(i), 1) = Right(a(i), 1) Then
  p = p + 1
 List1.AddItem a(i)
 End If
Next i
List1.AddItem "÷èñëî ñòðîê "
List1.AddItem p
Добавлено через 1 минуту
Visual Basic
1
 a = Split(s, ",")
Прикольная функция)))
2
2 / 2 / 0
Регистрация: 10.03.2012
Сообщений: 11
10.03.2012, 17:27  [ТС]
А как заставить VB читать строку введенную с клавиатуры, мне постоянно выдает выход за массив сколько бы redim и прочего я бы не делал.(желательно к обоим заданиям)
1
670 / 163 / 22
Регистрация: 27.01.2012
Сообщений: 372
10.03.2012, 17:50
Просто в форме создаешь текстовое окошко, имя text1 присваивается автоматически.
Создаешь кнопку, щелкаешь по ней два раза. Пишешь внутри процедуры код:
d=text1.text
Запускаешь эту прогу, вводишь в текстовое окошко текст, щелкаешь кнопку.
Переменной d будет приваиваться тескт, который в это окошко ввел.
Чтоб проверить текст, можно команду добавить после оператора d=text1.text:
msgbox d - появится сообщение после щелчка на кнопку со значением переменной d.
.......................
1
2 / 2 / 0
Регистрация: 10.03.2012
Сообщений: 11
10.03.2012, 20:39  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 Dim a(), s As String
        Dim k, l, p As Integer
        List1.Items.Clear()
        p = -1
        k = TextBox3.Text 'кол-во слов
        s = Text1.Text
 
        List1.Items.Add("слова")
        a = Split(s, " ")            'превращаем строку в массив, словo элемент массива
        For i = 1 To k
            List1.Items.Add(a(i - 1))
        Next i
 
        List1.Items.Add("одинаковые буквы ")
        For i = 1 To k             'ищем слова с одинаковой первой и последней буквой
            If Microsoft.VisualBasic.Left(a(i), 1) = Microsoft.VisualBasic.Right(a(i), 1) Then 'выход за пределы массива блаблабла...
                p = p + 1
                List1.Items.Add(a(i))
            End If
        Next i
        List1.Items.Add("число слов ")
        List1.Items.Add(p)
Я так и делал, но ошибку победить не получается

Добавлено через 27 минут
Проблема решена

Добавлено через 1 час 30 минут
Цитата Сообщение от sco43 Посмотреть сообщение
Просто в форме создаешь текстовое окошко, имя text1 присваивается автоматически.
Создаешь кнопку, щелкаешь по ней два раза. Пишешь внутри процедуры код:
d=text1.text
Запускаешь эту прогу, вводишь в текстовое окошко текст, щелкаешь кнопку.
Переменной d будет приваиваться тескт, который в это окошко ввел.
Чтоб проверить текст, можно команду добавить после оператора d=text1.text:
msgbox d - появится сообщение после щелчка на кнопку со значением переменной d.
.......................
Во второй задаче со строками вроде как так легко не получится?

Добавлено через 31 минуту
Так вот, подскажите как можно текст введенный с клавиатуры содержащий несколько строк впихнуть в массив?
1
670 / 163 / 22
Регистрация: 27.01.2012
Сообщений: 372
10.03.2012, 21:15
Лучший ответ Сообщение было отмечено как решение

Решение

Думаю что так:
Visual Basic
1
2
3
4
5
6
7
List1.Clear
Dim a() As String
ReDim a(1 To Val(Text1.Text))
For i = 1 To Val(Text1.Text)
 a(i) = InputBox("Ââeäè ñòðîêó")
 List1.AddItem a(i)
Next i
3
2 / 2 / 0
Регистрация: 10.03.2012
Сообщений: 11
10.03.2012, 21:30  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Dim a() As String
        Dim k, p As Integer
        ListBox1.Items.Clear()
        ReDim a(0 To Val(TextBox1.Text))
        For i = 1 To Val(TextBox1.Text)
            a(i) = InputBox("Ввeди строку")
            ListBox1.Items.Add(a(i))
        Next i
        For i = 1 To k             'ищем строки с одинаковой первой и последней буквой
            If Microsoft.VisualBasic.Left(a(i), 1) = Microsoft.VisualBasic.Right(a(i), 1) Then
                p = p + 1
                ListBox1.Items.Add(a(i))
            End If
        Next i
        ListBox1.Items.Add("число строк ")
        ListBox1.Items.Add(p)
получилось как то так, но в итоге выдает 0 даже если есть строки с одинаковыми буквами
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
10.03.2012, 21:42
Цитата Сообщение от molinenhard Посмотреть сообщение
For i = 1 To k
к чему равно? У тебя цикла проверки вообще нет. к=Val(TextBox1.Text)


или
Visual Basic
1
 For i = 1 To Val(TextBox1.Text)
1
2 / 2 / 0
Регистрация: 10.03.2012
Сообщений: 11
10.03.2012, 21:45  [ТС]
Ой ужс, проглядел такую глупость, извиняюсь, проблема решена
0
670 / 163 / 22
Регистрация: 27.01.2012
Сообщений: 372
10.03.2012, 21:50
Цитата Сообщение от molinenhard Посмотреть сообщение
Visual Basic
1
2
3
 Dim a() As String
        
        For i = 1 To k             'ищем строки с одинаковой первой и последней буквой
получилось как то так, но в итоге выдает 0 даже если есть строки с одинаковыми буквами
k - не определно.
Думаю
Visual Basic
1
k=val(textbox1.text)
1
10.03.2012, 21:51

Не по теме:

sco43, :D

1
2 / 2 / 0
Регистрация: 10.03.2012
Сообщений: 11
14.03.2012, 12:10  [ТС]
Нужно подредактировать эти две задачи:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Public Class Form1
    Dim a() As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        ListBox1.Items.Clear()
        ReDim a(0 To Val(TextBox1.Text))
        For i = 1 To Val(TextBox1.Text)        'Вводим строки в массив
            a(i) = InputBox("Ввeдите строку")
            ListBox1.Items.Add(a(i))
        Next i
    End Sub
    Sub opr(ByVal a() As String)
        Dim p As Integer
        For i = 1 To Val(TextBox1.Text) 'Ищем строки с одинаковой первой и последней буквой
            If Microsoft.VisualBasic.Left(a(i), 1) = Microsoft.VisualBasic.Right(a(i), 1) Then
                p = p + 1
            End If
        Next i
        TextBox2.Text = p 'Выводим результат 
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        opr(a)
    End Sub
End Class
1)Не обьявлять массив глобально, а передавать его с помощью byval byref
2)Сделать ввод массива не через импат бокс, а через процедуры\фунции типо:
VB.NET
1
2
3
    Function vvod(ByVal T As TextBox) As Double
        Return Val(T.Text)
    End Function
во второй задаче:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim s As String
        Dim k As Integer
        List1.Items.Clear()
        k = TextBox3.Text
        s = Text1.Text
        Обработка(s, k)
    End Sub
 
    Sub Обработка(ByVal s As String, ByVal k As Integer)
        Dim a() As String
        Dim p As Integer
        a = Split(s, " ")
        For i = 1 To k
            If Microsoft.VisualBasic.Left(a(i), 1) = Microsoft.VisualBasic.Right(a(i), 1) Then
                p = p + 1
            End If
        Next i
        List1.Items.Add("Кол-во слов начинающихся и заканчивающихся")
        List1.Items.Add("на одну и ту же букву")
        List1.Items.Add(p)
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub
End Class
1)Сделать работу не через элементы массива, а с целой строкой....Как я понимаю придется посимвольно проверять всю строку
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
14.03.2012, 12:36
Была уже такая тема
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Compare Text
Sub Command1_Click()
 Dim s As Variant, kol As Integer
 
 
  For Each s In Split(Replace(InputBox("Введите текст", _
                      "Ввод текста для обработки", _
                      "Это строка для обработко. Итоги."), _
                                                  ".", " "))
    If Left(s, 1) = Right(s, 1) And Len(s) > 1 Then
      Print s: kol = kol + 1
    End If
  Next s
  
  Print
  Print "Kоличество слов, у которых первый и последний " & vbCrLf _
        & "символы совпадают между собой = "; kol
End Sub
Это по второй задаче.

Добавлено через 8 минут
Или тебе надо без Сплит?
1
2 / 2 / 0
Регистрация: 10.03.2012
Сообщений: 11
14.03.2012, 12:38  [ТС]
Во второй задаче как раз без сплит
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
14.03.2012, 13:43
Без Сплит вторая задача
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
Option Compare Text
Sub Command1_Click()
 Dim s As Variant, kol As Integer, n As String, k As String
  s = Trim(Replace(Replace(InputBox("Введите текст", _
      "Ввод текста для обработки", _
      " Это строка для обработко. Итоги."), _
      ".", " "), ",", " ")) & Space(1) 'Убир.проб.спр.-слева, заменяем точ.и зап.на проб., в конце ставим пробел.
   While InStr(1, s, "  ")
     s = Replace(s, "  ", " ") ' Тут убираем длинные пробелы
   Wend
   n = Mid(s, 1, 1)     ' Переменной n присваиваем значение первого символа
   For i = 1 To Len(s)
       If Mid(s, i, 1) = " " Then ' Если встречается пробел, то
        k = Mid(s, i - 1, 1)        'Переменной k присваивается значение предыдущего символа
        If n = k Then kol = kol + 1 ' Если переменные начала и конца совпадают, то увеличиваем kol
            ' Print n & k
            ' k = 0:  n = 0 '         Обнуляем переменные начала и конца
            n = Mid(s, i + 1, 1) 'Переменной присваиваем значение первого символа
        End If
    Next i
  Print "Kоличество слов, у которых первый и последний " & vbCrLf _
        & "символы совпадают между собой = "; kol
End Sub
1
2 / 2 / 0
Регистрация: 10.03.2012
Сообщений: 11
14.03.2012, 14:50  [ТС]
Да, все отлично
а в первой задачке как можно ввести эти строки через лист бокс, без импата
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2012, 14:50
Помогаю со студенческими работами здесь

Количество слов начинающихся и заканчивающихся на одну и ту же букву
Разработайте программу для поиска количества слов, начинающихся и заканчивающихся на, одну и ту же букву в строке Str Слова в строке...

Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву
Дана строка, содержащая текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву.

Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву
Дан текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву. Начал решать ничего не...

Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву.
Дан файл , содержащий текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву. Реализовать...

Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву
Дан файл, содержащий текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву и выдать эти...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru