Заполнение строкового массива случайными буквами - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д