Смекни!
smekni.com

Характеристика программы на языке VBA, которая вводит исходные данные, выполняет расчеты и вывод (стр. 1 из 2)

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

РОССИЙСКОЙ ФЕДЕРАЦИИ

ИДО ГОУ МГИУ

Курсовая работа

По дисциплине «Информатика»

Задание:№ 38

Группа: № П09Б22п

Студент: Булдыгина Н.В.

Руководитель: Иванов М.Н.

Москва 2010


Содержание

1. Задание на курсовую работу. 3

2. Описание переменных. 4

3. Блок схема. 6

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

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

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

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

1. Задание на курсовую работу

Магазин велосипедов продал за год разное количество велосипедов (10 наименований) по цене, устанавливаемой в начале каждого месяца.

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

· исходные данные в виде таблицы, где перечислены наименования велосипедов и цены на них, количество проданных велосипедов в течение каждого месяца;

· доход от каждого вида велосипеда за год;

· доход от всех велосипедов за каждый месяц;

· общий доход от всех велосипедов за год;

· наименование велосипеда, принесшего наибольший доход за год.

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

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

1) Количество велосипедов каждого из 10 типов, изготовленных за год (12 месяцев).

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

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

Рис.1. Лист с начальными данными

Рис.2. Полученные результаты

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

1) cena(10) — деньги, вырученные от продажи одного велосипеда,
представляет массив дробных чисел

Dim cena(10) As Double

2) koll(10,12) — количество велосипедов каждого вида, проданных за каждый месяц, представляет двумерный массив целых чисел

Dim koll(10,12) As Integer

3) zar(13) — заработок за каждый месяц (от января до декабря) и общий заработок за год представляет массив дробных чисел

Dim zar(13) As Double

4) koll_n(12) — количество проданных велосипедов каждой модели за год представляет массив целых чисел

Dim kol_n(12) As Integer

5) num— порядковый номер модели велосипеда, принесшей наибольший доход, представляет целое число

Dim den As Integer

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

Dim i As Integer, j As Integer

Переменные cena(10), zar(13), могут быть и не целыми числами, поэто­му они объявлены как действительные. Переменные koll(10,12) koll_n(12), den целые числа, так как мы считаем, что расчетный период составляет полный месяц, и производители могут продать только полностью собранный велосипед.


3. Блок схема


Рис.3. Блок-схема (продолжение)

Рис.3. Блок-схема (продолжение)

Рис.3. Блок-схема (окончание)

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

Начало программы.

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

Открытие листа с начальными данными («Лист1») и получение этих данных в рабочие переменные (массивы сеnа(10) и kоll(12, 10)).

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

Расчет величины выручки от продажи велосипедов за каждый месяц, количество проданных велосипедов и вывод результатов. Организуется два вложенных цик­ла: внешний по моделям, внутренний по месяцам. Для оптимизации процесса расчетная часть совмещена с выводом: во внутреннем цикле происходит вы­числение выручки от продажи i-ого велосипеда в j-й месяц с выводом результата, во внешнем цикле (после получения результатов внутреннего цикла) — вы­вод стоимости одного велосипеда и по всем велосипедам. Расчет выручки за каждый месяц организован в этом же внутреннем цикле.

Определение наименования велосипеда, принесшего наибольший доход за год. Используется алго­ритм сравнения, при равенстве двух и более годовых доходов результативным считается последний доход.

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

Private Sub CommandButton1_Click()

'Сначала объявляем переменные, используемые в программе.

'счетчики циклов

Dim i, j As Integer

'количество проданных велосипедов (по месяцам)

Dim koll(10, 12) As Integer

'выручка за месяц

Dim zar(13) As Double

'количество проданных велосипедов (за год)

Dim koll_n(12) As Integer

'велосипед, принесший наибольший доход за год

Dim num As Integer

'стоимость велосипеда

Dim cena(10) As Double

'переменные, нужные для предварительных расчетов

Dim zarpl As Double

Dim pic As Double

Dim comb(10) As Double

‘Далее всем переменным присваивается нулевое значение.

For i = 1 To 10

koll_n(i) = 0

comb(i) = 0

Next

For j = 1 To 13

zar(j) = 0

Next

pic = 0

zarpl = 0

num = 0

'В этом фрагменте кода происходит считывание начальных данных с листа «Лист1», и в каждую ячейку массива cena(10) записывается стоимость каждой марки велосипеда, а в ячейках двумерного массива koll(10,12) теперь находится количество велосипедов каждого вида, проданных в каждый месяц.

Sheets("Лист1").Select

For i = 1 To 10

cena(i) = Cells(3 + i, 2)

Next

For i = 1 To 10

For j = 1 To 12

koll(i, j) = Cells(3 + i, 2 + j)

Next j

Next i

'Далее на листе «Лист2» в ячейку с определенным номером вводится ее название.

Sheets("Лист2").Cells(2, 1) = "Модель"

Sheets("Лист2").Cells(2, 2) = "Стоимость 1 шт."

Sheets("Лист2").Cells(2, 3) = "Продано"

Sheets("Лист2").Cells(3, 3) = "Январь"

Sheets("Лист2").Cells(3, 4) = "Февраль"

Sheets("Лист2").Cells(3, 5) = "Март"

Sheets("Лист2").Cells(3, 6) = "Апрель"

Sheets("Лист2").Cells(3, 7) = "Май"

Sheets("Лист2").Cells(3, 8) = "Июнь"

Sheets("Лист2").Cells(3, 9) = "Июль"

Sheets("Лист2").Cells(3, 10) = "Август"

Sheets("Лист2").Cells(3, 11) = "Сентябрь"

Sheets("Лист2").Cells(3, 12) = "Октябрь"

Sheets("Лист2").Cells(3, 13) = "Ноябрь"

Sheets("Лист2").Cells(3, 14) = "Декабрь"

Sheets("Лист2").Cells(3, 15) = "Всего"

Sheets("Лист2").Cells(4, 1) = "Школьник"

Sheets("Лист2").Cells(5, 1) = "Дружба"

Sheets("Лист2").Cells(6, 1) = "Аист"

Sheets("Лист2").Cells(7, 1) = "Самара"

Sheets("Лист2").Cells(8, 1) = "Next"

Sheets("Лист2").Cells(9, 1) = "Honda"

Sheets("Лист2").Cells(10, 1) = "Урал"

Sheets("Лист2").Cells(11, 1) = "Салют"

Sheets("Лист2").Cells(12, 1) = "Орленок"

Sheets("Лист2").Cells(13, 1) = "Forward"

'В этом фрагменте происходит вывод на рабочий лист выручку по моделям за месяц и количество проданных велосипедов за год.

For i = 1 To 10

Sheets("Лист2").Cells(3 + i, 2) = cena(i)

For j = 1 To 12

Sheets("Лист2").Cells(3 + i, 2 + j) = koll(i, j)

koll_n(i) = koll_n(i) + koll(i, j)

Next j

Sheets("Лист2").Cells(3 + i, 15) = koll_n(i)

Next i

'Ниже происходит ввод названий соответствующих столбцов и строк.

Sheets("Лист2").Select

Sheets("Лист2").Cells(17, 1) = "Модель"

Sheets("Лист2").Cells(17, 2) = "Стоимость 1 шт."

Sheets("Лист2").Cells(17, 3) = "Заработано"

Sheets("Лист2").Cells(18, 3) = "Январь"

Sheets("Лист2").Cells(18, 4) = "Февраль"

Sheets("Лист2").Cells(18, 5) = "Март"

Sheets("Лист2").Cells(18, 6) = "Апрель"

Sheets("Лист2").Cells(18, 7) = "Май"

Sheets("Лист2").Cells(18, 8) = "Июнь"

Sheets("Лист2").Cells(18, 9) = "Июль"

Sheets("Лист2").Cells(18, 10) = "Август"

Sheets("Лист2").Cells(18, 11) = "Сентябрь"

Sheets("Лист2").Cells(18, 12) = "Октябрь"

Sheets("Лист2").Cells(18, 13) = "Ноябрь"

Sheets("Лист2").Cells(18, 14) = "Декабрь"

Sheets("Лист2").Cells(18, 15) = "Всего"

Sheets("Лист2").Cells(19, 1) = "Школьник"

Sheets("Лист2").Cells(20, 1) = "Дружба"

Sheets("Лист2").Cells(21, 1) = "Аист"

Sheets("Лист2").Cells(22, 1) = "Самара"

Sheets("Лист2").Cells(23, 1) = "Next"

Sheets("Лист2").Cells(24, 1) = "Honda"

Sheets("Лист2").Cells(25, 1) = "Урал"

Sheets("Лист2").Cells(26, 1) = "Салют"

Sheets("Лист2").Cells(27, 1) = "Орленок"

Sheets("Лист2").Cells(28, 1) = "Forward"

Sheets("Лист2").Cells(29, 1) = "ИТОГО"

'Во внутреннем цикле происходит вычисление выручки по i-му велосипеду в j-й месяц с выводом результата, а во внешнем цикле (после получения результатов внутреннего цикла) происходит вывод стоимости одного велосипеда и по всем велосипедам. Расчет выручки за каждый месяц организован в этом же внутреннем цикле.