на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Написание программы на языке VBA

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

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

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

ИДО ГОУ МГИУ

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

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

Задание:№ 93

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

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

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

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

Содержание

  • 1. Задание на курсовую работу
  • 2. Описание переменных
  • 3. Блок схема
  • 4. Описание алгоритма
  • 5. Листинг программы
  • 6. Описание входных данных и результат вычислений
  • 7. Список использованной литературы
1. Задание на курсовую работу

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

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

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

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

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

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

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

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

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

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

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

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

Результаты работы программы оформляются на листе «Результат» (рис. 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. Блок-схема (окончание)

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

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



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.