Заполнение строкового массива случайными буквами - Visual Basic .NET
Формулировка задачи:
Всем доброго здоровичка!!! Помогите пожалуйста с задачкой:
VB2008
Есть текстовый массив. Его размер указывается через рэндом от 4 до 7. Этот массив надо заполнить буквами русского алфавита рэндомно (коды от 192 до 223), но чтобы пару-тройку гласных букв (в зависимости от размера массива), остальные согласные. В переменные k1 - колич гласных в массиве, k2 - колич согласных. Спасибо заранее!!!
Решение задачи: «Заполнение строкового массива случайными буквами»
textual
Листинг программы
- Module Module1
- 'ТОЛЬКО ПОД ТЕКУЩИЕ ТРЕБОВАНИЯ
- Sub Main()
- Dim charsG As String = "аеийоуэюя"
- Dim charsS As String = "бвгджзклмнпрстфхцчшщ"
- Dim k1, k2 As Integer
- Dim rand As New Random()
- Dim tmpStr As String
- Dim arr(rand.Next(3) + 4) As String
- k1 = Math.Ceiling(arr.Length \ 2) ' по логике получается, что приоритет на большее числов элементов имеют согласные из диапазона 4-7
- k2 = arr.Length - k1
- 'последовательно заполняем гласными
- For i As Integer = 0 To k1 - 1
- Do
- tmpStr = charsG(rand.Next(charsG.Length))
- Loop While arr.Contains(tmpStr)
- arr(i) = tmpStr
- Next
- 'далее последовательно заполняем согласными
- For i As Integer = k1 To arr.GetUpperBound(0)
- Do
- tmpStr = charsS(rand.Next(charsS.Length))
- Loop While arr.Contains(tmpStr)
- arr(i) = tmpStr
- Next
- Dim ri As Integer
- 'перемешиваем массив
- For i As Integer = 0 To arr.GetUpperBound(0)
- ri = rand.Next(arr.Length)
- tmpStr = arr(ri)
- arr(ri) = arr(i)
- arr(i) = tmpStr
- Next
- Console.WriteLine("Результат: " & String.Join(String.Empty, arr))
- Console.WriteLine("k1: " & k1.ToString)
- Console.WriteLine("k2: " & k2.ToString)
- Console.ReadLine()
- End Sub
- End Module
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д