. Программирование на Визуал Бейсик
Программирование на Визуал Бейсик

Программирование на Визуал Бейсик

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

Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:

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

- стоимость остатка от предыдущих суток;

- остаток каждого вида изделий на начало следующего рабочего дня;

- стоимость остатка в конце каждой смены;

- наименование изделия, пользовавшегося в течение 3-х смен наибольшим спросом.

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

Исходные данные находятся на листе «Нач_д» (рис. 1) и содержат следующую информацию:

1) Наименование изготавливаемых деталей (9 типов).

2) Стоимость одной детали каждого наименования.

3) Остаток изделий от прошлых суток.

4) Поступления на склад за каждую смену изделий.

5) Отпуск со склада изделий за каждую смену.

Результаты работы программы оформляются на листе «Результат» (рис. 2).

В программе переменные описаны следующим образом:

1) Ostatok – стоимость остатка от предыдущих суток представляет дробное число

Dim Ostatok As Double

2) Ost_izd(9) – остаток каждого вида изделий на начало следующего рабочего дня представляет массив целых чисел

Dim Ost_izd(9) As Integer

3) Ost_smena(3) – стоимость остатка в конце каждой смены представляет массив дробных чисел

Dim Ost_smena(3) As Double

вспомогательные переменные для определения наименования изделия, пользовавшегося в течение 3-х смен наибольшим спросом

4) Otpusk(9) – отпуск каждого вида изделия за 3 смены представляет массив целых чисел

Dim Otpusk(9) As Integer

5) Ind – индекс элемента в массиве Otpusk(9), соответствующего изделию с максимальным спросом представляет целое число

Dim Ind As Integer

6) MaxSp – максимальное значение отпуска в массиве Otpusk(9) представляет целое число

В программе так же были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами

Dim i As Integer, j As Integer

Переменные Ostatok, Ost_smena(3), могут быть и не целыми числами, поэтому они объявлены как действительные. Переменные - Ost_izd(9), Otpusk(9), MaxSp – целые числа, так как мы считаем что склад принимает и отпускает целые детали, а не их части.

Описание алгоритма

Открытие листа «Нач_д» для ввода исходных данных.

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

Запуск расчета необходимых данных посредством нажатия на кнопку «Рассчитать».

Первый этап расчетов проводится на основе двух вложенных циклов. Порядок расчета необходимых данных следующий: расчет стоимости остатка (Ostatok); расчет остатка каждого вида изделия за сутки (Ost_izd(9)) с вяводом результатов расчета в лист «Результаты»; расчет отпуска каждого из видов изделия за сутки (Otpusk(9)); расчет стоимости остатка в конце каждой смены (Ost_smena(3)).

Вывод рассчитанных данных в лист «Результаты».

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

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

Программное открытие листа «Результаты».

Кнопка «Очистить поля» необходима для очистки рассчитанных полей.

Листингпрограммы

Листинг программы расчета, запускаемой по нажатию кнопки «Рассчитать» приведен ниже.

Private Sub CommandButton1_Click()

Dim Ostatok As Double

Dim Ost_izd(9) As Integer

Dim Ost_smena(3) As Double

Dim Otpusk(9) As Integer

Dim Ind As Integer

Dim MaxSp As Integer

Dim i As Integer, j As Integer

Ostatok = Ostatok + Cells(3 + i, 2) * Cells(3 + i, 3)

Ost_izd(i) = Cells(3 + i, 3) + Cells(3 + i, 4) + Cells(3 + i, 5) + Cells(3 + i, 6) - Cells(3 + i, 7) - Cells(3 + i, 8) - Cells(3 + i, 9)

Sheets("Результаты").Cells(4 + i, 2) = Ost_izd(i)

Otpusk(i) = Cells(3 + i, 7) + Cells(3 + i, 8) + Cells(3 + i, 9)

'стоимость остатка в конце каждой смены

Ost_smena(j) = Ost_smena(j) + (Cells(3 + i, 3 + j) - Cells(3 + i, 6 + j)) * Cells(3 + i, 2)

Sheets("Результаты").Cells(1, 2) = Ostatok

Sheets("Результаты").Cells(16, 2) = Ost_smena(1)

Sheets("Результаты").Cells(17, 2) = Ost_smena(2)

Sheets("Результаты").Cells(18, 2) = Ost_smena(3)

'поиск изделия с максимальным спросом

If Otpusk(i) > MaxSp Then

Sheets("Результаты").Cells(21, 2) = Sheets("Нач_д").Cells(3 + Ind, 1)

Листинг программы очистки рассчитанных полей листа «Результаты» по нажатию кнопки «Очистить поля» приведен ниже.

Private Sub CommandButton1_Click()

Dim i As Integer

Описание входных данных и результат вычислений

1. Проверка работы программы на всех нулях

2. Проверка работы программы на всех единицах

3. Произвольная проверка

Список использованной литературы

1. Информатика. Часть 1. Введение в информатику: учебное пособие / Гришин М.П., Иванов М.Н., Носова Т.К., Суворов С.В. М.: МГИУ, 2008.

2. Информатика. Методическое пособие по выполнению практических работ в компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005.

3. Информатика. Часть 2. Программирование: Учебно-методическое пособие / Иванов М.Н., Суворов С.В. М.: МГИУ. 2006

4. Батищев П.С. Основы программирования на Visual Basic 6.0. Электронный учебник.

📎📎📎📎📎📎📎📎📎📎