Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР №2 Э11-21.doc
Скачиваний:
0
Добавлен:
03.08.2019
Размер:
218.62 Кб
Скачать

Лабораторная работа №2

Программирование разветвляющихся алгоритмов.

Работа с массивами

Цель работы

Закрепить практические навыки работы с системой Visual Basic. Изучить типы и объявление массивов, методику работы с ними при написании программы. Научиться правильно использовать различные операторы ветвления: условные операторы и операторы цикла.

Программа работы

1. Ознакомиться с описанием лабораторной работы.

2. В соответствии с вариантом задания (табл. 2.1) создать программу генерирования массива и выборки его элементов в среде Visual Basic с использованием операторов цикла и условия.

Основные сведения

Операторы условного перехода

В Visual Basic есть две формы оператора If: однострочная (строчная) и многострочная (блочная).

Формат записи однострочного оператора If:

If условие Then оператор[ы] [ Else оператор[ы] ]

Операторы внутри однострочного оператора If, если их несколько, отделяются друг от друга двоеточием.

Часто возникают задачи, когда необходимо проверять одно за другим несколько условий. Тогда количество операторов после Then и Else бывает гораздо большим, да и сами эти операторы бывают гораздо более сложными и длинными. В результате строка становится неудобочитаемой и не умещается на экране. В этом случае применяется многострочный (или блочный) оператор If.

Формат записи многострочного оператора If:

If условие Then

операторы

операторы

…………….

[ ElseIf условие Then

операторы

операторы

……………. ]

……………………….….

[ Else

операторы

операторы

……………. ]

End If

Здесь нужно заметить, что команда ElseIf в пишется без пробела, а End If — с пробелом. Частей ElseIf может быть сколько угодно или совсем не быть. Если имеется часть Else, то одна и стоит последней. Конструкция End If означает, что в этом месте оператор If заканчивается.

Ни в коем случае нельзя, экономя место по вертикали экрана, объединять строки многострочного If.

Сложность поставленного условия задачи может за собой вести применение многочисленных «иначе если», что делает понимание программы и поиск в ней ошибок трудоемким занятием. В этом случае становится полезным использование более простых структур, подобных оператору If.

Формат оператора выбора варианта Select Case:

Select Case проверяемое_выражение

[ Case значение, значение……

[ операторы

операторы

……………...]]

[Case значение, значение……

[ операторы

операторы

……………...]]

…………………….……………….

[ Case Else

[ операторы

операторы

……………...]]

End Select

Логика работы Select Case абсолютно такая же, как и у блочного If. В процессе исполнения оператора компьютер сравнивает значение проверяемой переменной или выражения по очереди со всеми значениями, перечисленными в вариантах. Встретив совпадающее значение, он выполняет операторы, стоящие в этом варианте. На этом исполнение оператора Select Case завершается. Если же совпадающего значения так и не нашлось, то выполняются операторы, стоящие в блоке Else.

Операторы цикла

Формат оператора For:

For переменная = выражение1 To выражение2 [ Step выражение3 ]

операторы

операторы

……………..

Next [ переменная ]

Применение устаревшего оператора GoTo

Пример.

n=n1

1: If n>n2 Then GoTo 2

Тело цикла

n=n+n3

GoTo 1

2: …………….

В большинстве случаев частое применение GoTo для создания цикла является неудобным, и сейчас уже этот оператор используется в программировании крайне редко, т.к. поиск меток в тексте программы отнимает много времени, а также GoTo нарушает идеологию «структурного программирования». Структурная схема программы (а сама программа и подавно) в этом случае из-за обилия переходов становится похожей на паутину, в которую попадает даже опытный программист, т.е. не видит ошибки, очевидные при структурном программировании, при котором не должен использоваться оператор GoTo.

Иногда оператор GoTo не нарушает принципа структурного программирования, например, если он один, в конце программы (подпрограммы), а переход на него осуществляется в случае ошибки, например, для закрытия файлов и завершения прграммы. Здесь оператор GoTo не ухудшает удобочитаемости программы.

Формат оператора Do ….. Loop:

Do

операторы

операторы

…………….

Loop

Do подобен метке, на которую происходит возврат Loop — как возврат назад к метке Do. Строки операторов между Do и Loop — тело цикла.

Формат оператора Do .…. Loop While:

Do

операторы

операторы

…………..

Loop While условие_продолжения_работы_цикла

Loop While является руководством возврата к метке Do, пока выполняется условие продолжения работы цикла.

Формат оператора Do ….. Loop Until:

Do

операторы

операторы

…………..

Loop Until условие_завершения_работы_цикла

Loop Until в данной структуре означает возврат к метке Do, пока не выполняется условие продолжения работы цикла.

Формат оператора Do While .…. Loop:

Do While условие_продолжения_работы_цикла

операторы

операторы

…………..

Loop

Do While следует понимать следующим образом: пока выполняется условие, выполнять нижестоящие операторы вплоть до Loop.

Формат оператора Do Until ….. Loop:

Do Until условие_завершения_работы_цикла

операторы

операторы

…………..

Loop

Выполняются все операторы тела цикла вплоть до Loop, пока не выполнится условие завершения работы цикла.

Разница между применениями того или иного оператора Do заключается в удобстве указания, когда цикл нужно продолжать или когда заканчивать.

Exit Do — оператор выхода из цикла не в начале или конце цикла, а в середине.

Пример.

Do

операторы

If f>9 Then Exit Do

операторы

Loop

Заметим, что если в случае ошибки в условии операторов Do условие продолжения цикла всегда будет истинным, происходит так называемое зацикливание (бесконечный цикл), приводящий к зависанию программы.

Чтобы этого избежать, при прочих равных условиях рекомендуется применять циклы типа For, в которых такая ситуация невозможна, по крайней мере, с целыми положительными числами, если приращение больше нуля.

Если же с оператором Do участок программы существенно «прозрачнее», чем с оператором For, или применение оператора For невозможно либо затруднительно, то рекомендуется, если возможно, дополнять условие продолжения цикла условием, что число повторов не превышает некоторого наперед заданного значения (если оно хотя бы примерно известно), а тело цикла дополнить счетчиком повторов.