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

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

10.03.2012, 01:12. Показов 5570. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru