РефератыИнформатикаНаНаписание программы на языке VBA

Написание программы на языке VBA

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


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


ИДО ГОУ МГИУ


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


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


Задание:№ 93


Группа: № Жл09Ф22п


Студент: Соколова Виктория Игоревна


Руководитель: Ф.И.О. Левкова Анна Витальевна


Железнодорожный 2010


Содержание


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


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


3. Блок схема


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


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


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


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


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

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


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


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


• общее количество букетов за 3 года;


• доход по всем цветам за каждый год;


• общий доход колхоза за 3 года;


• вид цветов, принесший максимальный доход за 2 года.


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

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


1) Наименование цветов.


2) Количество проданных букетов в год (количество не меняется).


3) Закупочные цены букетов каждого вида.


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



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



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


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


1) cena(6,3)
— закупочные цены каждого вида цветов


Dim cena(6,3) As Integer


2) koll
(6)
— количество букетов каждого вида


Dim koll(6) As Integer


3) zar
(6,3)
— доход за каждый год (от 1 до 3)


Dim
zar
(6,3)
As
Integer


4) koll
_
n
(6)
— количество букетов каждого вида за 3 года представляет массив целых чисел


Dim kol_n(6) As Integer


5)
den
— доход колхоза за 3 года


Dim
den
As
Long


6)Koll
_
i
-
Итоговое количество букетов за 3 года


Dim Koll_i As Integer


7)zarpl
(6)
— доход за 3 года


Dim zarpl(6) As Integer


8) sum
(6.3)-
вид цветов принесший максимальный доход за 2 года.


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


Dim i As Integer, j As Integer


Переменные для расчета я взяла целые числа


3. Блок схема


J=j=


Рис3. Блок- схема






Рис.3. Блок-схема




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


Рис.3. Блок-схе









Рис.3. Блок-схема




Рис.3. Блок-схема (окончание) 4. Описание алгоритма

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


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


Открытие листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (массивы сеnа(7) и kоll(7, 5)).


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


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


Определение вида цветов принесшего максимальный доход за 2 года.


Сравниваем доход за 2 года(1-й год+ 2-й год; 1-й год+ 3-й год; 2-й год+ 3-й год) сумма двух с наибольшим показателем складывается и выводится вид цветов.


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

Sub Function()


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


Sub Funct()


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


Dim i As Integer, j As Integer, min As Integer, z As Integer 'счетчики циклов


Dim cena(6, 3) As Integer ' закупочные цены каждого вида


Dim zar(6, 3) As Integer 'доход за каждый год


Dim koll_n(6) As Integer 'количество букетов каждого вида вида за 3 года


Dim den As Long 'доход колхоза за 3 года


Dim zarpl(6) As Integer 'доход за 3 года


Dim koll(6) As Integer 'количество букетов каждого вида


Dim koll_i As Integer 'итоговое количество букетов за 3 года


Dim sum(6, 3) As Integer


'в начале программы все переменные равны нулям


'
создаем
цикл
,


For i = 1 To 6


koll_n(i) = 0


Next


koll_i = 0


den = 0


'считываем начальные данные


Sheets("Нач_д").Select


'в каждую ячейку массива koll(i) записывается количество букетов каждого вида


'для этого используем цикл


For i = 1 To 6

p>

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


koll_n(i) = koll(i) * 3


koll_i = koll_i + koll_n(i)


zarpl(i) = 0


Next i


'в каждую ячейку массива cena(i, j) записывается закупочные цены каждого вида за год


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


For i = 1 To 6


For j = 1 To 3


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


zar(i, j) = 0


Next j


Next i


'на листе "Результат" создаются ячейки с определенными названиями


Sheets("Результат").Cells(1, 1) = "Закупочные цены за год"


Sheets("Результат").Cells(2, 1) = "Наименование букетов"


Sheets("Результат").Cells(2, 2) = "Количество букетов"


Sheets("Результат").Cells(2, 3) = "Закуплено"


Sheets("Результат").Cells(3, 3) = "1-й год"


Sheets("Результат").Cells(3, 4) = "2-й год"


Sheets("Результат").Cells(3, 5) = "3-й год"


Sheets("Результат").Cells(3, 6) = "Всего"


Sheets("Результат").Cells(4, 1) = "розы"


Sheets("Результат").Cells(5, 1) = "гвоздики"


Sheets("Результат").Cells(6, 1) = "лилии"


Sheets("Результат").Cells(7, 1) = "ромашка"


Sheets("Результат").Cells(8, 1) = "хризантема"


Sheets("Результат").Cells(9, 1) = "тюльпан"


Sheets("Результат").Cells(10, 1) = "Итого"


Sheets("Результат").Cells(10, 6) = koll_i


'в соответствующие ячейки записываются количество букетов


For i = 1 To 6


Sheets ("Результат").Cells(3 + i, 2) = koll(i)


Sheets ("Результат").Cells(3 + i, 6) = koll_n(i)


For j = 1 To 3


'в соответствующие ячейки записываются закупочные цены за год


Sheets("Результат").Cells(3 + i, 2 + j) = cena(i, j)


'рассчитывается закупочные цены каждого вида за год


Next j


'результат записывается в соответствующие ячейки


Next i


'на листе "Результат" создаются ячейки с определенными названиями


Sheets("Результат").Select


Sheets("Результат").Cells(12, 1) = "Результат в денежном эквиваленте"


Sheets("Результат").Cells(13, 1) = "Наименование букетов"


Sheets("Результат").Cells(13, 2) = "количество букетов в каждом году."


Sheets("Результат").Cells(13, 3) = "Заработано"


Sheets("Результат").Cells(14, 3) = "1-й год"


Sheets("Результат").Cells(14, 4) = "2-й год"


Sheets("Результат").Cells(14, 5) = "3-й год"


Sheets("Результат").Cells(14, 6) = "Всего"


Sheets("Результат").Cells(15, 1) = "роза"


Sheets("Результат").Cells(16, 1) = "гвоздики"


Sheets("Результат").Cells(17, 1) = "лилии"


Sheets("Результат").Cells(18, 1) = "ромашка"


Sheets("Результат").Cells(19, 1) = "хризантема"


Sheets("Результат").Cells(20, 1) = "тюльпан"


Sheets("Результат").Cells(21, 1) = "ИТОГО"


Sheets("Результат").Cells(22, 1) = "Вид цветов принесший макс доход за 2 года"


'производится вывод количества букетов в каждом году


For i = 1 To 6


Sheets ("Результат").Cells (14 + i, 2) = koll (i)


Next i


'расчет сумм: проданных букетов, за 3 года каждого вида цветов, общего дохода за 3 года;


'вывод: проданных букетов, за 3 года каждого вида цветов


For i = 1 To 6


For j = 1 To 3


zar (i, j) = koll(i) * cena(i, j)


Sheets ("Результат").Cells (14 + i, 2 + j) = zar(i, j)


zarpl (i) = zarpl(i) + zar(i, j)


Next j


Sheets ("Результат").Cells (14 + i, 6) = zarpl (i)


den = den + zarpl (i)


Next i


'вывод общего дохода за 3 года


Sheets("Результат").Cells(21, 6) = den


'расчет вида цветов за 2 года принесших максим доход


min = 0


For i = 1 To 6


sum (i, 1) = zar (i, 1) + zar (i, 2)


sum (i, 2) = zar (i, 2) + zar (i, 3)


sum (i, 3) = zar (i, 1) + zar (i, 3)


For j = 1 To 3


If sum (i, j) > min Then


z = i


min = sum(i, j)


End If


Next j


Next i


Sheets ("Результат").Cells (22, 6) = Sheets ("Результат").Cells (14 + z, 1)


End Sub


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


Проверка программы на всех единицах:




Проверка на всех нулях:




Проверка на произвольных данных:




Исходные данные для задания № представлены на Рис.№1., решение – на Рис.2..



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

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


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


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


4. Моделирование с помощью Microsoft Excel и VBA. Разработка систем поддержки принятия решений/ Кристиан Олбрайт: Вильямс, 2005


5. Профессиональная разработка приложений Excel/ Стивен Буллен, Роб Боуви, Джон Грин: Вильямс, 2005


6. Самоучитель VBA/ Андрей Гарнаев: БХВ-Петербург,2004


7. Самоучитель программирования на VBA в Microsoft Office/В. Д. Хореев: Юниор, 2001

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Написание программы на языке VBA

Слов:1474
Символов:13397
Размер:26.17 Кб.