Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по VB. Часть2.doc
Скачиваний:
23
Добавлен:
02.02.2015
Размер:
870.4 Кб
Скачать

6. Проектирование приложений с циклами

6.1. Назначение операторов цикла

В языке Visual Basic имеется два вида операторов цикла:

  1. условный;

  2. со счетчиком.

Они предназначены для организации в программе циклических вычислительных процессов. С помощью различных модификаций условного цикла реализуются циклы с предусловием и постусловием, а с помощью цикла со счетчиком – цикл с параметром.

Операторы цикла предусматривают повторяющееся выполнение группы операторов (тела цикла).

Если число повторений известно заранее (до начала повторений), то лучше использовать оператор цикла со счетчиком, в противном случае оператор условного цикла.

6.2. Условные циклы

Условный цикл получил свое название в силу того, что при каждом повторении проверяется выполнение условия и в зависимости от результатов проверки принимается решение о дальнейших действиях. Проверка условия может осуществляться как до действий, указанных в теле цикла, так и после них. В соответствии с этим в VB имеется две модификации условного цикла:

  1. с верхним окончанием;

  2. с нижним окончанием.

Условный цикл с верхним окончанием имеет вид

Do {While | Until} <условие>

<операторы тела цикла>

Loop

Конструкция {While | Until} означает, что используется только одно из ключевых слов: либо While (Пока), либо Until (До)

Этот оператор цикла выполняется следующим образом. Вначале проверяется условие. Если оно удовлетворяется и перед ним стоит ключевое слово While, то выполняются операторы тела цикла, после чего весь процесс повторяется. Повторения продолжаются до тех пор, пока условие удовлетворяется. Если условие не удовлетворяется, то происходит переход к оператору, следующему за оператором цикла (после слова Loop).

Ключевое слово Until имеет противоположный смысл. Повторения в цикле продолжаются до удовлетворения условия. Если же оно удовлетворяется, то происходит выход из цикла.

Условный цикл с нижним окончанием имеет вид

Do

<операторы тела цикла>

Loop {While | Until} условие

т.е. в нем условие проверяется после выполнения операторов тела цикла.

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

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

Do While <условие>

<операторы тела цикла>

Loop

а на базе цикла с постусловием – оператором

Do

<операторы тела цикла>

Loop Until <условие>

Среди операторов тела цикла может встретиться оператор Exit Do, который обеспечивает немедленный выход из цикла (до достижения ключевого слова Loop).

6.3. Проектирование приложения на базе условного цикла с верхним окончанием

6.3.1. Постановка задачи

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

6.3.2. Экономико-математическая модель

Стоимость купленного товара определяется по формуле

S = Цена1 * Количество1 + Цена2 * Количество2 + … +

+ Ценаn * Количествоn,

где n=0, 1, 2,…

Количество покупок n заранее не известно и определяется в процессе знакомства с товаром.

Случай, когда не было совершено ни одной покупки, соответствует n = 0.

6.3.3. Алгоритм решение задачи

Решение задачи осуществляется в соответствии с алгоритмом, приведенном на рис. 6.1.

Рис. 6.1. Схема алгоритма определения стоимости покупок

6.3.4. Структура данных

Согласно алгоритму значения цены и количества для каждого вида товара вводятся и сразу же используются при вычислении общей стоимости S, т.е. они не нужны по отдельности для следующих шагов решения задачи. Поэтому значения цены и количества товара текущего вида можно вводить в поля памяти, в которые перед этим вводились данные по товару предыдущего вида. Это позволяет в данной задаче использовать не индексированные переменные Ценаі и Количествоі, а простые переменные Цена и Количество.

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

Переменные, в которых хранятся значения цены (Цена) и общей стоимости (S), должны иметь дробный тип (2 десятичных разряда для копеек). Поэтому в программе им можно задать денежный тип и соответственно имена curЦена и curS.

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

Используемые в программе переменные представлены в табл. 6.1.

Таблица 6.1