Проектирование алгоритмов решения экономических задач в курсе «Информатика и компьютерная техника»

 

 

Источник:

Федько В.В., Плоткин В.И. Проектирование алгоритмов решения экономических задач в курсе «Информатика и компьютерная техника». Учебное пособие – Харьков: Изд. ХГЭУ, 2002.

 


Введение

Настоящее учебное пособие посвящено изучению одного из самых популярных алгоритмических языков современных компьютеров – языку Visual Basic (VB). При разработке языка корпорацией Microsoft в нем с одной стороны были оставлены из языка Basic принципы, обеспечивающие простоту, и следовательно, популярность, а с другой – добавлены все самые последние достижения современного программирования.

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

Мы считаем основным заданием при изучении информатики дать представление о том, как, используя компьютер, экономист может решать свои профессиональные задачи.

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

Изучение материала учебного пособия позволит в дальнейшем создавать собственные приложения среднего уровня сложности для работы с базами данных в среде СУБД Access, а также другими приложениями Microsoft Office (Word, Excel и т.п.). При этом будут использоваться только такие общие понятия как алгоритм, интерфейс с пользователем, тип данных, объект, свойство, событие.

Изучение основных понятий проиллюстрировано примерами различных экономических задач, рассмотрена технология их решения, дано подробное объяснение.

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

Общая характеристика языка Visual Basic

Назначение языка

Программы на языке Basic писались для личного использования. Жизнь их была непродолжительной. Упрощенные средства программирования не могли… Несмотря на свои недостатки Basic продолжал жить и развиваться благодаря… Поскольку VB представляет собой конгломерат различных средств, то он позволяет постоянно совершенствовать личные…

Свойства языка

VB имеет следующие свойства: 1. Описание переменных. Для избежания ошибок, которые появляются вследствие описок, все переменные в программе лучше описывать явно. Но в VB…

Основные понятия

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

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

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

На форме располагаются элементы управления (текстовые поля и подписи к ним, кнопки, списки, полосы прокрутки и т.д.). С их помощью осуществляется управление процессом решения задачи.

Как форма, так и элементы управления (объекты) являются заранее подготовленными в VB частями программы. Поэтому при разработке программ достаточно просто указать, какие объекты нужны в программе. Это так называемые визуальные средства, благодаря которым процесс составления интерфейса сводится только к его проектированию.

Каждый объект (форма и элементы управления на ней) имеет свои свойства: размер, цвет, вид шрифта, имя, заголовок, значение и т.д. Эти свойства могут задаваться объектам заранее (до выполнения программы) при проектировании формы, а также изменяться уже в процессе ее выполнения с помощью операторов кода программы.

Операции, выполняемые объектами, называются методами. Каждый объект имеет свои методы. Например, перемещение текстового поля по форме осуществляется методом Move, а печать на ней – методом Print.

Каждое действие, происходящее в компьютере, называется событием (например, щелчок мышью на командной кнопке, загрузка формы, изменение содержимого в текстовом поле и т. д.). С любым событием можно связать какие-либо действия. Для этого пишется процедура на языке VB, в заголовке которой указывается имя события, а в ее теле – действия, вызываемые этим событием. Для каждого обрабатываемого события составляется отдельная процедура. Описание процессов обработки данных в процедурах называется кодом.

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

Каждый объект и каждая переменная в коде имеет имя, которое состоит из букв, цифр, символа подчеркивания и начинается с буквы. Максимальная длина имени элемента управления составляет 40 символов, а переменной – 255. В тексте программы они представляются черным цветом. Ключевые слова (например, Is, For, Dim и т.д.) имеют фиксированное написание и значение. В тексте программы они выделяются, синим цветом.

В именах и ключевых словах можно использовать как строчные, так и прописные буквы. Для VB они считаются одинаковыми. Прописные буквы используются для улучшения удобства чтения программы. Например, имя «ЦенаТовара» читается легче, чем эквивалентное ему имя «ценатовара», которое записано только строчными буквами.

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

Для чисел используется десятичная форма записи, которая принята в большинстве языков программирования. Буква «Е», за которой следует масштабный множитель, читается как "умножить на 10 в степени". Примеры записи чисел:

3; 0,3; -25678; 1,6; 5Е-8; 2Е15.

Строка представляет собой последовательность символов, заключенных в двойные кавычки.

Примеры строк:

"а", "Улица", "Кинофильм".

Для пояснения назначения отдельных фрагментов кода используются комментарии (примечания), которые состоят из произвольной последовательности символов и начинаются одиночной кавычкой. Компьютером они не воспринимаются, т.е не вызывают никаких действий. В тексте программы комментарии выделяются зеленым цветом.

Примеры комментариев:

'Описание переменных,

'Вычисление налогов.

Среда разработки Visual Basic

Начало работы в среде

Microsoft Visual Studio 6.0 Tools; Microsoft Visual C++ 6.0; Microsoft Visual FoxPro 6.0.

Структура главного окна

   

Панель элементов управления

   

Окно формы (Form)

   

Окно свойств (Properties)

   

Окно кода

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

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

 

 

Рис. 2.6.Окно кода формы (заготовка процедуры обработки

События загрузки формы Form_Load)

В заголовке процедуры указывается имя соответствующего элемента управления и связанного с ним события, которое чаще всего встречается при работе с… Кроме текста текущей процедуры в рабочей области окна кода отображаются тексты… Текст создаваемой процедуры вводится, как правило, с клавиатуры. Можно также копировать отдельные фрагменты текста из…

Окно проекта (Project)

Поскольку проект может состоять из многих компонентов (форм, модулей, классов и т.д.), увидеть иерархию этих компонентов и перейти непосредственно к работе с нужными можно с помощью окна проекта (рис. 2.7). Для этого достаточно щелкнуть на значке компонента, выделив его на иерархическом дереве в рабочей области окна.

 

 

Рис. 2.7.Окно проекта Project

Под полосой заголовка размещены три кнопки, которые имеют следующее назначение:

– переход в окно кода для выделенной компоненты (View Code);

– переход в окно формы (View Object);

– изменение режима просмотра (Toggle Folders).

Окна расположения формы (Form Layout) и просмотра объектов (Object Browser)

Окно расположения формы (Form Layout) используется для определения размеров формы и ее положения на экране (рис. 2.8).

Окно просмотра объектов (Object Browser) служит для просмотра свойств, методов, констант, типов и переменных всех объектов в данном проекте (рис. 2.9).

 

Рис. 2.8.Окно расположения формы Form Layout Рис. 2.9.Окно просмотра объектов Object Browser

 

На стадии начального изучения VB эти окна, как правило, не используются. Поэтому не рекомендуется выводить их на экран, чтобы не загромождать рабочую область главного окна VB.

Выполнение программы

Если требуется внести какие либо изменения в программу, которая выполняется, нужно временно остановить ее, нажав на панели инструментов кнопку… После внесения изменений работу программы можно продолжить, нажав кнопку… Для снятия программы с выполнения достаточно нажать на панели инструментов кнопку «End» ( ).

Сохранение проекта

1. Файл для каждой формы (имеет расширение .frm и значок ); 2. Файл проекта, содержащий ссылки на свои компоненты (имеет расширение .vbp и… 3. Файл сохранения установок проекта (имеет расширение .ini и значок ).

Save File As Save Project As

 

Для сохранения отдельной формы или проекта в новом файле нужно использовать команду File – Save Form1.frm As или File – Save Project As соответственно (при этом открываются диалоговые окна, похожие на окна на рис. 2.10 и 2.11).

Примечание. Сохранение проекта в новом файле не приводит к автоматическому сохранению формы в новом файле. В этом случае будет два проекта (старый и новый), которые используют старую форму. Если требуется создать новый проект с новой формой, то вначале нужно сохранить форму с новым именем, а затем уже проект тоже с новым именем.

 

Настройка среды VB

 

В начале работы над проектом следует настроить рабочую область главного окна VB так, чтобы было удобно в нем работать. На практике чаще всего панель элементов управления помещают у левой границы рабочей области, окно формы и окно кода – в центральной (так чтобы они замещали друг друга), окно проекта – в правой верхней части, а окно свойств – в правой нижней части. Другие окна открываются и удаляются по мере необходимости. Для открытия нужного окна можно воспользоваться соответствующей командой из меню View, а чтобы удалить окно из рабочей области, достаточно его закрыть.

Реализация линейного алгоритма в среде Visual Basic

Порядок решения экономических задач в визуальной среде

1) постановка задачи; 2) построение экономико-математической модели; 3) построение алгоритма;

Имена элементов управления

Такие имена являются маловыразительными, поскольку в них не отражена предметная область решаемой задачи. В настоящее время очень широко…   <Префикс><Базовое имя>

Общепринятые префиксы

Имя объекта управления не должно превышать 40 символов. Если базовое имя образуется из нескольких слов, то каждое из них можно начинать с прописной… Имя элемента управления задается в свойстве Name. При обращении к любому свойству элемента управления указывается имя, а затем через точку нужное свойство, т.е. имеет…

Проектирование решения линейной задачи средствами Visual Basic

 

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

Рассмотрим реализацию линейного алгоритма на конкретном примере.

 

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

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

 

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

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

 

Стоимость = Цена *Количество

 

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

Алгоритм решения задачи приведен на рис. 3.1.

 

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

При решении задачи используются следующие данные:

Цена – дробное число;

Количество – целое число;

Стоимость – дробное число.

 

 
 

 

 


Рис. 3.1. Алгоритм вычисления стоимости товара

 

Данные Цена и Количество являются исходными и вводятся с клавиатуры в текстовые поля. Поэтому в программе им присвоим имена txtЦена и txtКоличество соответственно.

Результат «Стоимость» выводится на форму. Он зависит от исходных данных и не может быть произвольно изменен пользователем. Поэтому в программе он представлен надписью с именем lblрзтСтоимость.

Структура данных задачи представлена в табл. 3.2.

 

Таблица 3.2

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

Реквизит Имя Назначение
Цена txtЦена Цена товара
Количество txtКоличество Количество товара
Стоимость lblрзтСтоимость Стоимость товара

 

Интерфейс с пользователем

Решение задачи производится с помощью формы, приведенной на рис. 3.2. В заголовке формы указано название приложения «Касса».

 

Рис. 3.2. Форма для вычисления стоимости товара

 

На форме слова «Цена», «Количество» и «Стоимость» представляются надписями. Исходные значения цены и количества вводятся в текстовые поля. Вычисления производятся при нажатии кнопки «Вычислить». Результат помещается в вогнутую область рядом с надписью «Стоимость». Вогнутая область в форме представляется надписью.

Код программы

В процедуре, которая обрабатывает событие "Щелчок на кнопке «Вычислить»", должен быть только один оператор:

 

lbрзтlСтоимость.Caption = txtЦена.Text * txtКоличество.Text

 

Поскольку свойство Caption является свойством-значением для надписи, а свойство Text – для текстового поля, сами свойства указывать не обязательно. Поэтому оператор для вычисления стоимости можно записать в виде:

 

lblрзтСтоимость = txtЦена * txtКоличество

 

Процедура, которая обрабатывает событие "Щелчок на кнопке «Вычислить»", представлена ниже.

Private Sub cmdВычислить_Click()

lblрзтСтоимость = txtЦена * txtКоличество

End Sub

Реализация проекта

1. Загрузить VB командой Пуск – Программы – Microsoft Visual Studio 6.0 – Microsoft Visual Basic 6.0. 2. Выбрать в диалоговом окне New Project (Создание проекта) во вкладке New тип… 3. Задать имя и заголовок формы. Для этого при выделенной форме (отображаются маркеры по границе формы) необходимо: …

Анализ проекта

  lblрзтСтоимость = txtЦена * txtКоличество  

Выполнение программы и анализ полученных результатов

На рис. 3.4 показано использование разработанного приложения «Касса» для расчета стоимости товара при цене 5,2 грн. и количестве 4 шт. Полученный результат (20,8 грн.) совпадает с ожидаемым, который был вычислен без данного приложения. Это приложение может использоваться в качестве простейшего кассового аппарата.

 

Рис. 3.4. Вычисление стоимости товара

Типы данных

Константы и переменные

Если значение, которое хранится в поле памяти не изменяется в процессе выполнения программы, то оно называется константой и объявляется в операторе… Оператор объявления константы имеет следующий формат:  

Некоторые константы среды VB

Если же значение в поле может изменяться в процессе выполнения программы, то такое поле памяти объявляют как переменную в операторе Dim. Он имеет…   [Private|Public] Dim Имя_переменной [As Тип _данных]

Название типов данных и имена переменных

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

 

Таблица 4.2

Некоторые типы данных

Переменные типа Variant могут хранить значения различных типов. На практике не рекомендуется пользоваться этим типом без особой необходимости,… Каждой переменной при объявлении присваивается имя, которое рекомендуется…  

Целые типы

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

 

Таблица 4.3

Целые типы

Величины, которые участвуют в различных операциях (сложение, деление и т. п.) называются операндами. При применении к целым операндам следующие операции дают целые значения: + – сложение;

Вещественные типы

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

 

Таблица 4.4

Вещественные типы

При условии, что хотя бы один из операндов относится к вещественному типу (другой может быть и целым), следующие операции дают вещественный… + – сложение; - – вычитание;

Булевский тип (Boolean). Алгебра высказываний

Высказывание – это предложение, относительно которого можно утверждать истинно оно или ложно. Так, предложения “6>2” и ”13=5” являются… Если высказывание истинно (ложно) всегда, то оно называется тождественно… Высказывания истинные в одних ситуациях и ложные в других называются переменными высказываниями. Например,…

Тип даты и времени (Date)

Дата и время могут задаваться по формату m/d/yy h:mm:ss. В памяти компьютера дата представляется в целой части числа, а время – в дробной. Для того,… Время можно задавать также и в 12-часовом формате, указывая буквы AM (ante… Выше указан формат представления даты, принятый в США. В ОС Windows имеется возможность установки национального…

Некоторые функции для работы с датами

Примечание. В функциях DateAdd и DateDiff временной интервал задается строковым выражением и может принимать значения, приведенные в табл.4.6. Таблица 4.6 Допустимые значения аргумента "интервал" Значение Описание Значение …

Строковый тип (String)

Над строковыми данными определена операция сцепления, которая обозначается знаком "&". Ее результатом является первое слагаемое, к… Длину строки (количество символов в строке) можно определить с помощью функции… Значение текстового поля на форме имеет строковый тип. Поскольку текстовые поля используются для ввода данных (в…

Старшинство операций

Вычисление выражения производится слева направо с учетом круглых скобок, а при их отсутствии определяется следующим старшинством групп операций: первыми выполняются арифметические операции, следом за ними – операции сравнения, а последними – логические операции.

Все операции сравнения имеют одинаковый приоритет, т.е. выполняются в порядке их записи слева направо.

Арифметические операции имеют следующий приоритет:

1) возведение в степень (^);

2) изменение знака (-);

3) умножение и деление (*,/);

4) целое деление (\);

5) деление по модулю (Mod);

6) сложение и вычитание;

7) слияние строк.

Логические операции имеют следующий приоритет:

1) отрицание (Not);

2) логическое умножение (And);

3) логическое сложение (Or).

Оператор присваивания

Вычисленное значение выражения можно записать в поле памяти переменной с помощью оператора присваивания. Он обозначается символом "=" и имеет следующий вид:

<Переменная> = <Выражение>

 

Символ "=" делит оператор на левую и правую части.

Действие оператора заключается в следующем. Вначале вычисляется выражение, записанное в правой части оператора, а затем полученное значение заносится в поле памяти переменной, которая указана в левой части оператора.

Оператор присваивания уже использовался ранее в задаче о вычислении стоимости купленного товара:

lblрзтСтоимость = txtЦена * txtКоличество

 

Здесь результат умножения значений текстовых полей txtЦена и txtКоличество помещается в поле памяти надписи lblрзтСтоимость, которое затем выводится на форме.

Поскольку оператор присваивания и операция равно обозначаются одним и тем же символом "=", то в коде они различаются следующим образом.

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

blnДа = a = b * c

 

первый символ "=" обозначает оператор присваивания, а второй – операцию равно.

Действие оператора присваивания в данном случае состоит в следующем. В соответствии со старшинством выполнения операций в выражении вначале вычисляется произведение b*c и полученное значение сравнивается со значением переменной a. Если они равны, то в поле переменной булевского типа blnДа заносится значение True, в противном случае – значение False.

Явное и неявное объявление переменных

Каждая переменная, используемая в коде программы, имеет определенный тип. Этот тип может быть указан в операторе Dim. Объявление переменной в операторе Dim называется явным. Помимо явного объявления тип переменной может быть задан с помощью суффикса. Суффикс представляет собой специальный символ, который ставится в конце имени переменной. Он определяет тип данных, которые могут храниться в этой переменной. Суффиксы типов данных представлены в табл. 4.8.

Суффикс достаточно задать один раз, когда переменная встречается в программе первый раз.

Таблица 4.8

Суффиксы типов данных

Во избежание таких ситуаций рекомендуется все переменные объявлять явно. Чтобы в программе жестко выдерживалась такая дисциплина, нужно в коде перед… Для того чтобы VB автоматически устанавливал оператор Option Explicit перед…

Проектирование решения задачи с различными типами данных

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

Цена на товар установлена производителем на период одной недели. Определить стоимость товара с учетом налога на добавленную стоимость (НДС) по известной цене производителя и количеству. По заданной дате начала периода указать начальную и конечную даты действия установленной цены.

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

Вычисление стоимости товара с учетом НДС производится по формуле:

 

Стоимость = Ценандс * Количество,

 

где Ценандс – цена с учетом НДС определяется по формуле:

 

Ценандс = Цена + Цена * Ставкандс/100

 

Ставка НДС в настоящее время составляет 20%.

Конечная дата действия цены вычисляется по формуле:

 

Окончание = Начало + КД,

 

где Начало и Окончание – соответственно даты начала и окончания периода; КД – количество дней в периоде (в данном случае КД = 7 – неделя).

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

Алгоритм решения задачи приведен на рис. 4.1.

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

Начало, Окончание – данные типа дата/время; КД, Количество – целые числа; Ставка НДС – дробное число;

Используемые данные

Реквизит Имя Назначение
Начало txtНачало Начало периода
Окончание lblрзтОкончание Окончание периода
КД КД Количество дней
Ставка НДС СтавкаНДС Ставка налога на добавленную стоимость
Цена txtЦена Цена производителя
Ценандс curЦенаНДС Цена с учетом НДС
Стоимость curСтоимость Стоимость товара
Результат lblРезультат Результат решения задачи

 

Интерфейс с пользователем

На форме слова "Начало", "Цена" и "Количество" представляются надписями и соответствующие исходные данные вводятся в… Слово "Окончание" и соответствующее вычисленное значение…

Код программы

1) загрузка формы; 2) потеря фокуса текстовым полем "Начало"; 3) щелчок на кнопке "Вычислить".

Реализация проекта

2. Построить форму согласно проекту. 3. Дважды щелкнуть на форме и в открывшемся окне кода в заготовку процедуры…  

Анализ проекта

В двух процедурах Form_Load и txtНачало_LostFocus используется константа «КД». Для того чтобы она была доступна в обеих процедурах, константу… В коде приложения применяется принцип явного описания переменных. Для того… В процедуре Form_Load использована встроенная функция Date, с помощью которой определяется текущая дата.

Выполнение программы и анализ полученных результатов

Требуется решить задачу 23.10.01 при цене изделия 5,2 грн. и количестве 4 шт. Цена действует, начиная с 30.10.01. На рис. 4.3. показана форма с данными начала и окончания периода, которые появляются в ней при запуске приложения. В качестве начальной даты отображается текущая дата (т.е. решение задачи происходит 23.10.01).

На рис. 4.4. представлена форма с введенной нужной датой начала периода 30.10.01 и вычисленной датой его окончания 06.11.01.

 

 

Рис.4.3. Внешний вид формыРис. 4.4. Внешний вид формы

При ее загрузке после ввода начальной

(текущая дата 23.10.01) даты 30.10.01

 

После ввода цены и количества, а также нажатия кнопки «Вычислить» в поле результата под ней выводится результат вычислений (рис. 4.5).

Разработанное приложение может использоваться при планировании стоимости товара в маркетинговых исследованиях предприятия.

 

 

Рис. 4.5. Результат вычисления стоимости товара с учетом НДС


Проектирование разветвляющихся вычислительных процессов

Условный оператор

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

В VB имеются две формы условных операторов – однострочная и блочная. Однострочная форма используется в простейших случаях, когда в каждой ветви имеется не более одного оператора, и имеет вид:

 

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

 

Действие этого оператора состоит в следующем. Вначале проверяется условие. Если оно удовлетворяется, то выполняется оператор, стоящий после слова Then, в противном случае – оператор, после слова Else. Условие задается выражением булевского типа, т.е. результат его вычисления принимает значение True или False.