- •5. Проектирование разветвляющихся вычислительных процессов
- •5.1. Условный оператор
- •5.2. Проектирование приложения, реализующего разветвляющийся вычислительный процесс
- •Используемые переменные
- •5.2.5. Интерфейс с пользователем
- •5.2.6. Код программы
- •5.2.7. Реализация проекта
- •5.2.8. Анализ проекта
- •5.2.9. Выполнение программы и анализ полученных результатов
- •5.4. Пример использования оператора выбора
- •6. Проектирование приложений с циклами
- •6.1. Назначение операторов цикла
- •6.2. Условные циклы
- •6.3. Проектирование приложения на базе условного цикла с верхним окончанием
- •Используемые переменные
- •6.3.5. Интерфейс с пользователем
- •6.3.6. Код программы
- •6.3.7. Анализ проекта
- •6.3.8. Выполнение программы и анализ полученных результатов
- •6.4. Проектирование приложения с использованием условного цикла с нижним окончанием
- •Используемые переменные
- •6.4.5. Интерфейс с пользователем
- •6.4.6. Код программы
- •6.4.7. Анализ проекта
- •6.4.8. Выполнение программы и анализ полученных результатов
- •Планируемые расходы на ремонт офиса
- •6.5. Цикл со счетчиком
- •6.6. Проектирование приложения с использованием цикла со счетчиком
- •6.6.7. Реализация проекта
- •6.6.8. Анализ проекта
- •6.6.9. Выполнение программы и анализ полученных результатов
- •Остаток товаров на 17.09.01
- •7. Массивы данных
- •7.1. Общие сведения о сложных типах
- •Стоимость товаров
- •7.2. Описание и обращение к массивам
- •7.3. Динамические массивы
- •7.4. Использование массивов при решении экономической задачи
- •Используемые данные
- •7.4.5. Интерфейс с пользователем
- •7.4.6. Код программы
- •7.4.7. Реализация проекта
- •7.4.8. Анализ проекта
- •7.4.9. Выполнение программы и анализ полученных результатов
- •Прайс-лист
- •8. Массивы элементов управления
- •8.1. Назначение и создание массивов элементов управления
- •"Группа переключателей"
- •8.2.4. Структура данных
- •Используемые данные
- •8.2.5. Интерфейс с пользователем
- •8.2.6. Код программы
- •8.2.7. Реализация проекта
- •8.2.8. Анализ проекта
- •8.2.9. Выполнение программы и анализ полученных результатов
- •9. Пользовательский тип данных
- •9.1. Определение и обращение
- •9.2. Оператор присоединения With
- •10. Файлы
- •10.1. Назначение файлов
- •10.2. Операции с файлами
- •10.3. Режимы доступа
- •10.4. Файлы с произвольным доступом
- •10.5. Проектирование приложения с файлами
- •10.5.1. Постановка задачи
- •10.5.2. Экономико-математическая модель
- •10.5.3. Алгоритм решения задачи
- •10.5.4. Структура данных
- •10.5.5. Интерфейс с пользователем
- •10.5.6. Код проекта
- •10.5.7. Реализация проекта
- •10.5.8. Анализ проекта
- •9.5.9. Выполнение программы и анализ полученных результатов
- •Данные по заказу на крепежные изделия
- •11. Процедуры и функции
- •11.1. Назначение процедур и их виды
- •11.2. Описание процедур
- •11.3 Вызов процедуры
- •11.4. Функции
- •11.5. Использование процедур и функций при решении экономической задачи
- •11.5.1. Код проекта
- •11.5.2. Реализация проекта
6. Проектирование приложений с циклами
6.1. Назначение операторов цикла
В языке Visual Basic имеется два вида операторов цикла:
условный;
со счетчиком.
Они предназначены для организации в программе циклических вычислительных процессов. С помощью различных модификаций условного цикла реализуются циклы с предусловием и постусловием, а с помощью цикла со счетчиком – цикл с параметром.
Операторы цикла предусматривают повторяющееся выполнение группы операторов (тела цикла).
Если число повторений известно заранее (до начала повторений), то лучше использовать оператор цикла со счетчиком, в противном случае оператор условного цикла.
6.2. Условные циклы
Условный цикл получил свое название в силу того, что при каждом повторении проверяется выполнение условия и в зависимости от результатов проверки принимается решение о дальнейших действиях. Проверка условия может осуществляться как до действий, указанных в теле цикла, так и после них. В соответствии с этим в VB имеется две модификации условного цикла:
с верхним окончанием;
с нижним окончанием.
Условный цикл с верхним окончанием имеет вид
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