powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / напечатать все согласные буквы, которые входят только в одно слово
28 сообщений из 28, показаны все 2 страниц
напечатать все согласные буквы, которые входят только в одно слово
    #38860106
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дан текст из цифр и строчных английских букв, за которыми следует точка. Определить, каких букв – гласных или согласных – больше в этом тексте; напечатать все согласные буквы, которые входят только в одно слово.
Первую часть я сделал а вот вторую (делалось в vb.net 2010)
Код: vbnet
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.
36.
37.
38.
39.
40.
41.
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim stroka As String
        Dim g, s, i, j As Integer
        Dim vowel As String = "aieouy"
        Dim consonant As String = "bcdfghjklmnpqrstvwxz"
 
        stroka = TextBox1.Text
 
        For i = 1 To Len(stroka)
            If InStr(1, consonant, Mid(stroka, i, 1)) Then
                s = s + 1
                Label4.Text = s
            ElseIf InStr(1, vowel, Mid(stroka, i, 1)) Then
                g = g + 1
                Label3.Text = g
            End If
 
            If s - g >= 1 Then
                Label5.Text = "Согласных больше"
            ElseIf s - g <= -1 Then
                Label5.Text = "Гласных больше"
            ElseIf s - g = 0 Then
                Label5.Text = "Одинаково"
            End If
 
        Next i
        For j = 0 To Len(consonant) - 1
            For w = 0 To Len(stroka) - 1
 
                If stroka.Chars(w) = consonant.Chars(j) Then Label6.Text += stroka.Chars(w)
 
            Next
        Next j
        
 
 
    End Sub
End Class



Попробовал через массив, чето не выходит, посмотрите, подскажите
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 Dim stroka As String = TextBox1.Text
       
        Dim consonant1() As String = {"b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z"}
       
        Dim stroka1() As String
        stroka1 = stroka.Split(" ")
 
        Dim a, i, w As Integer
        a = 0
        For Each i In consonant1
            For Each w In stroka1
 
                If w = i Then
                    a += 1
                End If
 
 
            Next
            If a = 1 Then Label6.Text += i
        Next



Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38860131
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13а вот вторую.... Попробовал через массив, чето не выходит....сначала возьми ручку и бумажку и напиши алгоритм общими словами, как именно будет происходить обработка массива, чтобы придти к нужному результату, а ПОТОМ уже можно писать это на каком-то языке (не важно, в общем, на каком)
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863133
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
' текст
 Dim stroka As String = TextBox1.Text
'согласные
 Dim consonant1() As String = {"b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z"} 


 'выделяем слова из текста 

        Dim stroka1() As String
        stroka1 = stroka.Split(" ")
 
        Dim a As Integer
        a = 0
        For Each i As Char In consonant1 'сравниваем с согласными , i - первая согласная
            For Each w As Char In stroka1 'cравниваем согласную i c словом из текста
 
                If w = i Then ' если в слове (w) есть согласная (i) то
                    a += 1 'к а прибовляем  1
                End If
 
 
            Next
            If a = 1 Then Label6.Text += i ' если а равен 1 то в слове толко 1 согласная , выводим эту согласную.
        Next


к сожалению не работает...
Скорее всего что у меня нет еще одного массива где слова уже разбиваются на буквы, пытался сделать не получается...
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863168
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13Скорее всего что у меня нет еще одного массиваеще раз.

Представь себе, что у тебя НЕТ КОМПЬЮТЕРА.
Приходит к тебе начальник, дает БУМАЖКУ с длинной английской фразой и просит "Выпиши мне все согласные буквы, которые входят только в одно слово."

Опиши алгоритм, как ТЫ будешь решать это НА БУМАЖКЕ.

Потом это можно будет перенести на комп.


по проге:
desant13
Код: vbnet
1.
For Each w As Char In stroka1

посмотри, как у тебя объявлены элементы массива stroka1
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863401
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть тест, есть набор букв , мне надо у знать есть ли эти буквы в словах . Беру текст и делаю массив1 из слов(каждый индекс массива это слово Dim stroka1() As String stroka1 = stroka.Split(" ") ) Беру это слово и делаю массив2 этого слова (где каждый индекс это буква этого слова), пока как это делать не знаю!!!. Сравниваю букву(в данном случае согласную) есть ли эта буква в буквах слова масива2, если есть то считаю как много этих букв, если букв 1 то вывожу эту букву.
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863424
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13Беру это слово и делаю массив2 этого слова (где каждый индекс это буква этого слова), пока как это делать не знаю!!!.в принципе, слова и так является массивом букв. Но для того, чтобы проверить, есть ли эта буква в слове, массив не нужен, у строки есть специальный метод для этого.

Но в третий раз повторяю - забудь, что у тебя есть компьютер. Не думай о том, что ты знаешь или не знаешь в языке программирования (это мы тебе подскажем, когда придет время). Пока что у тебя нет алгоритма решения этой задачи БЕЗ компьютера.


desant13если есть то считаю как много этих букв, если букв 1 то вывожу эту букву.может ты неправильно понял задачу? Не буквы, которые входят в слово один раз, а буквы, которые входят только в одно слово (из всех слов)
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863508
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProПока что у тебя нет алгоритма решения этой задачи БЕЗ компьютера. Я с Вами не согласен, он есть, или по крайней мери я считаю что это и есть алгоритм. Форма его описания, не где не устанавливается, это же не программный код . Правильный он или нет, это другое.
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863523
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок! Хорошо! Алгоритм у тебя есть.

Проверить, если ли некий символ в слове можно с помощью метода строки .Contains(), для этого необязательно из слова делать массив
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863537
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О , спс большое, я про Contains(), не чего не знал...
И тогда второй вопрос у меня большие сомнения , о правильности понимания вопроса, такие большие, что я теперь еще сильнее стал его не понимать))) ... а как вы думаете, об его интерпретации.
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863542
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13о правильности понимания вопроса
"напечатать все согласные буквы, которые входят только в одно слово ."

На мой взгляд тут не может быть разночтений.
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863617
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, решаю пока со старым моим вариантом.
Но опять же из за не знания много возникли проблемы.
Как было ранее сказано я делаю перебор массива согласных,
Код: vbnet
1.
 For Each i As Char In consonant1

первый "перебор" первая согласная буква, сравниваю ее со словом
Код: vbnet
1.
 For Each w As String In stroka1

если в слове "w" присутствует согласная "i" то тогда выполняется действие
Код: vbnet
1.
If w.Contains(i) = True Then a += 1
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863623
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13,
Тупо в лоб:
1. выделить все слова
2. для каждого слова набор согласных
3. для каждого слова проверить не пересекается ли его список согласных с объединенным набором согласных из других слов
4. показать все слова не имеющие таких пересечений
5. ... оптимизировать до потери пульса
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863629
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13 если в слове "w" присутствует согласная "i" то тогда выполняется действие
Код: vbnet
1.
If w.Contains(i) = True Then a += 1

Вот у тебя есть алгоритм (ну это ты сказал, не я).
Для чего ты в своем алгоритме делаешь подсчет количества вхождений какой-то буквы в какое-то слово? Какой смысл это несет для решения задачи?

Повторяю в N+1 -й раз. Пока у тебя нет алгоритма НА БУМАГЕ - не пиши программу, ты ее не напишешь, потому что ты не понимаешь, какие действия и для чего ты хочешь выполнить.
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863636
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserdesant13,
Тупо в лоб:
1. выделить все слова
2. для каждого слова набор согласных
3. для каждого слова проверить не пересекается ли его список согласных с объединенным набором согласных из других слов
4. показать все слова не имеющие таких пересечений
5. ... оптимизировать до потери пульса


В принципе, эта задача несколько иначе лёгким движением руки решается на LinQ:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
      string.Join(",",
        "happy birthday to you!"
          .Split(' ')
          .Select(n => n.Distinct())
          .SelectMany(n => n)
          .GroupBy(n => n)
          .Where(n => n.Count() == 1)
          .Select(n => n.Key)
          .Join("bcdfghjklmnpqrstvwxz", n => n, n => n, (k, l) => k)
          )
        );

результат:
Код: c#
1.
p,b,r,d


(код для C#, не знаю, как записать лямбды на VB.NET, правда, автору это не поможет, преподаватель ни за что не поверит, что он это сам написал, так что вперед - в циклы, по крайней мере, радует, что автор пытается разобраться и что-то написать самостоятельно, правда, советов не слушает ))))
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863655
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, Ok! Уговорил...

Берем текст, (используем пока 1 вариант с моим не правильным вопросом)нужно узнать согласную которая появляется 1 раз в слове и вывести на экран. Для этого необходимо каждую букву согласных проверить с словом в тексте(ибо нужно узнать именно в слове встречается эта буква и какое количество раз) зная это количество можно выводить ее если встречается 1 раз.
Почти что написал ручкой , без использования компьютера )))
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863698
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок.
ты берешь каждую букву по очереди из слова - это у тебя есть.

Далее, нужно проверить, сколько раз она встречается в слове. Есть несколько разных способов. Я не знаю, чем вас ограничивает преподаватель, допустим отбросим linq. Есть интересный способ посчитать количество букв в строке - удалить букву из строки и сравнить длину строки до и после удаления буквы. Если это тоже отбрасываем, тогда - просматриваем в цикле. Но тогда это ЕЩЕ один цикл, а ты пытаешься все сделать в одном, сечешь? ))

Shocker.Pro
Код: c#
1.
.Join("bcdfghjklmnpqrstvwxz", n => n, n => n, (k, l) => k)

нафиг тут Join, когда есть Intersect? ))) да и применить его логично до начала обработки строки, а не после (только пробел учесть)
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863711
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro Но тогда это ЕЩЕ один цикл, а ты пытаешься все сделать в одном, сечешь? )) Лудче цикл, мне и так нужно объяснять от куда я взял Contains )))
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
   Dim stroka As String = TextBox1.Text
        ' Dim g, s, i, j, u As Integer
       ' Dim vowel As String = "aieouy"
       ' Dim consonant As String = "bcdfghjklmnpqrstvwxz"
        Dim consonant1() As String = {"b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z"}
        Dim vowel1() As String = {"a", "i", "e", "o", "u", "y"}
       
       
        Dim stroka1() As String
        stroka1 = stroka.Split(" ")

        Dim a As Integer
        a = 0
        For Each i As Char In consonant1
            For Each w As String In stroka1
                If w.Contains(i) = True Then a += 1

                If a = 1 Then Label6.Text += i

            Next

        Next


Ну у меня и так два цикла , чтоб найти количество букв и соответствуют ли то количество одному.
Или я понять не могу или ... кто придумал эту информатику.
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863725
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самое интересное на слово test работает, а на другие ерунду показывает )))
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863791
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я никак не пойму, какую задачу ты решаешь.
Если эту:
нужно узнать согласную которая появляется 1 раз в словето Contains тебе никак не подойдет, так как он только определяет - есть/нет, но ничего не говорит о количестве.

Если же ты решаешь определить, какая согласная встречается 1 раз во всех словах, тогда ход мыслей верный, но две ошибки по неопытности:
Код: c#
1.
If a = 1 Then Label6.Text += i

это строка должна быть не внутри цикла по словам, а снаружи. ведь тебе надо сначала перебрать все слова, а потом уже проанализировать переменную а, чтобы понять, сколько раз встретилась буква, верно?
строка
Код: c#
1.
a = 0

должна быть внутри главного цикла. А то верно будет посчитана только первая буква "b". Для всех остальных переменная a будет только расти и расти, она никогда уже не станет равна 1
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863925
Фотография Дикий Билл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13For i = 1 To Len(stroka)
If InStr(1, consonant, Mid(stroka, i, 1)) Then

На всякий.
1. В vb.net string это итак массив символов.
2. Массив начинается с индекса 0.

Код: vbnet
1.
2.
3.
Dim s As String = "это строка"
Console.WriteLine(s(0))
Console.WriteLine(s(s.Length - 1))
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38863961
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro так как он только определяет - есть/нет, но ничего не говорит о количестве.

но зная, что объект есть , я присваиваю один символу а и потом просто сравниваю количество а и вывожу значение i
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38864185
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13О , спс большое, я про Contains(), не чего не знал...
И тогда второй вопрос у меня большие сомнения , о правильности понимания вопроса, такие большие, что я теперь еще сильнее стал его не понимать))) ... а как вы думаете, об его интерпретации.

ОФФ. Ничего личного.
Но я вот до сих пор не пойму: если человек что-то программирует, значит он учился в каком-нибудь высшем учебном заведении, пусть занюханном, но учился же или учится.
Как можно было туда поступить и там учиться, если писать " не чего не знал", "по крайней мери я считаю что это и есть алгоритм. Форма его описания, не где не устанавливается"
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38864191
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

социальные сети портят почерк
кроме того, не для всех людей русский язык является родным )
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38864201
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13самое интересное на слово test работает, а на другие ерунду показывает )))

Можно захардкодировать и не забудь сделать проверку:
Код: c#
1.
2.
3.
4.
5.
if( textBoxWord.Text!=@"test")
{
MessageBox.Show(@"Error: povtorite vvod slova!");
goto enterWord;
}
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38864203
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProWinnipuh,

социальные сети портят почерк
кроме того, не для всех людей русский язык является родным )

по п.2 согласен 100%
а вот по п.1 - тут ведь дело не в почерке, а в шальном детстве скорее.
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38864205
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

goto лучше заменить на
while или do loop
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38864254
desant13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Winnipuh, молча, ибо при поступлении в аудитории все молчали!
...
Рейтинг: 0 / 0
напечатать все согласные буквы, которые входят только в одно слово
    #38864264
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
desant13Winnipuh, молча, ибо при поступлении в аудитории все молчали!

да ладно, то всё *****, не принимайте близко к сердцу
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / напечатать все согласные буквы, которые входят только в одно слово
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]