Главная страница

Введение 8 Этапы создания Windowsприложения 8


Скачать 6.98 Mb.
НазваниеВведение 8 Этапы создания Windowsприложения 8
АнкорVisual Basic 2005 (word97).doc
Дата22.12.2017
Размер6.98 Mb.
Формат файлаdoc
Имя файлаVisual Basic 2005 (word97).doc
ТипРеферат
#12532
страница40 из 63
1   ...   36   37   38   39   40   41   42   43   ...   63

9.4. Формирование строки из массива слов


Из массива слов всегда можно сформировать строку, которая будет отличаться от исходной строки только количеством пробелов между словами. Эта задача имеет два различных решения.

Способ 1.

Строка формируется по алгоритму вычисления суммы всех элементов одномерного массива. Перед началом цикла результирующая строковая переменная очищается, в нее записывается пустая строка. На каждом шаге цикла к строке добавляется очередной элемент массива слов и один пробел. При этом пробел обязательно берется в кавычки. После завершения цикла в строковой переменной хранится уже сформированная строка, за последним словом которой стоит один пробел. Его можно удалит с помощью функции Strings.RTrim. Рассмотрим особенности программной реализации этого алгоритма.

Объявляем переменную, в которой будет формироваться строка.

Dim s as String

Для работы с массивом слов необходимо использовать цикл. Для его организации нам потребуется целочисленный счетчик i.

Dim i As Integer

Очищаем результирующую строку. До начала обработки массива слов в ней ничего нет.

s = ""

Организуем цикл для обработки всех элементов массива слов. Обратите внимание, что элементы массива слов нумеруются с нуля.

For i = 0 To n

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

s += slova(i) + " "

Next

После завершения цикла строка уже полностью сформирована. Нам остается только удалить пробел, стоящий за последним словом.

s = Strings.RTrim(s)

Полученную строку выводим в окно списка.

lstText.Items.Add(s)
Способ 2.

Второй способ формирования строки из массива слов основан на использовании стандартной функции Visual Basic 2005 Strings.Join, которая описана в разделе 9.1. Эта функция формирует строку из массива слов, разделяя слова указанной подстрокой – разделителем. Разделитель можно и не указывать, тогда слова будут разделены ровно одним пробелом. За последним словом разделитель не ставится. Рассмотрим пример использования функции Strings.Join.

Объявляем переменную, в которой будет храниться результирующая строка.

Dim s as String

Вызываем функцию Strings.Join для формирования строки из массива слов. Так как разделитель не указан, то слова будет разделены одним пробелом.

s = Strings.Join(slova)

Полученную строку выводим в окно списка.

lstText.Items.Add(s)

Пример использования функции рассмотрен в разделе 9.7 и проиллюстрирован на рис. 64.

9.5. Слова-палиндромы


Палиндромом называется слово, которое одинаково читается как слева направо, так и наоборот. Рассмотрим фрагмент программы, которая в произвольной строке ищет самое длинное слово-палиндром.

В начале программы вводится строка текста. Затем из нее удаляются лишние пробелы, и формируется массив слов. Массив называется slova(), номер последнего элемента в этом массиве хранится в переменной n.

Для решения задачи нам потребуется дополнительная переменная max, в которой будет храниться самое длинное слово-палиндром. Очевидно, что эта переменная будет иметь строковый тип.

Dim max As String

В качестве начального значения максимума возьмем пустую строку, так как это самое короткое из всех слов.

max = ""

Организуем цикл по всем словам строки. Слова в массиве нумеруются с нуля.

For i = 0 To n

Анализируем очередное слово.

If slova(i) = Strings.StrReverse(slova(i)) _

And Len(slova(i)) > Len(max) Then

С помощью функции Strings.StrReverse записываем буквы слов в обратном порядке. Если получившееся слово совпадает с исходным, значит, текущее слово является палиндромом. Если при этом длина слова больше длины ранее найденного максимума, значит, значение максимума надо обновить, записав в него анализируемое слово.

max = slova(i)

End If

Next

После завершения цикла в переменной max будет храниться самое длинное слово–палиндром. Нам остается только распечатать результаты. Сначала выведем горизонтальную черту, чтобы зрительно отделить результаты работы программы от исходных данных.

lstText.Items.Add("-------------------------------")

Теперь анализируем полученный результат.

If max <> "" Then

Если значение переменной max отличается от пустой строки, значит, в исходной строке были слова-палиндромы. Выводим поясняющий текст и найденное слово.

lstText.Items.Add("Самое длинное слово-палиндром")

lstText.Items.Add(max)

Else

Иначе, если в переменной max записана пустая строка, мы делаем вывод, что в строке не было ни одного слова-палиндрома. Следовательно, нет и самого длинного палиндрома. В этом случае мы выводим поясняющее сообщение.

lstText.Items.Add("В строке нет слов-палиндромов")

End If

Полный текст программы представлен в приложении 45. Пример работы программы приведен на рис. 62.


Рис. 62. Пример работы программы обработки слов-палиндромов

1   ...   36   37   38   39   40   41   42   43   ...   63


написать администратору сайта