Написание программы на языке VBA
Программа на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран. Лист с начальными данными. Ввод начальных (нулевых) значений для расчетных величин. Вспомогательные переменные, счетчики циклов. Формирование матрицы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 01.12.2010 |
Размер файла | 2,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ИДО ГОУ МГИУ
Курсовая работа
По дисциплине «Информатика»
Задание:№ 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
Подобные документы
Разработка программы на языке VBA для управления деятельностью птицеводческой фермы, которая вводит исходные данные, выполняет расчеты и выводит на экран расчет данных по уходу за гусями и показатели оценки эффективности организации птицеводства.
курсовая работа [1,8 M], добавлен 19.04.2011Характеристика программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит результаты на экран. Описание переменных в программе, ее блок-схема и алгоритм работы. Листинг программы. Описание входных данных и результат вычислений.
курсовая работа [721,4 K], добавлен 10.11.2010Разработка программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран заданную информацию. Типы блок-схем и их использование при написании программы. Описание входных данных и результат вычислений, листинг программы.
курсовая работа [680,3 K], добавлен 03.08.2009Написание программы, которая вводит исходные данные, выполняет расчет и выводит на экран. Использование вспомогательных переменных и счетчиков циклов в программе. Расчет сумм заработков по каждому виду одежды за день, количества изготовленных деталей.
курсовая работа [2,4 M], добавлен 17.01.2015Программа на языке VBA, которая выводит исходные данные на экран и выполняет расчеты и предназначена для учета на складе мастерской индивидуального пошива. Описание переменных и алгоритма программы. Листинг программы, примеры произведенных расчетов.
реферат [25,4 K], добавлен 10.12.2010Написание программы "телеграф", который принимает от пользователя сообщения и выводит его на экран в виде последовательности точек и тире. Их вывод сортируется звуковым сигналом соответствующей длительности. Программа написана на языке Turbo Pascal.
курсовая работа [565,6 K], добавлен 18.08.2008Написание программы, которая выполняет лексический и синтаксический анализ входного языка программирования, порождает таблицу лексем с указанием их типов и значений, а также строит синтаксическое дерево; текст входного языка вводится с клавиатуры.
курсовая работа [761,5 K], добавлен 23.02.2012Структура записей входного массива. Описание основных типов данных. Алгоритм программы: присвоение начальных значений переменных, чтение списка из файла, вывод данных на экран, выполнение обработки данных, сохранение списка в файл. Листинг программы.
курсовая работа [325,2 K], добавлен 28.12.2012Написание модуля на языке Ассемблер для вычисления значения выражения. Составление программы корректного ввода исходных данных в таблицу и вывода результата в виде таблицы. Создание модуля для обработки строк и программы корректного ввода исходных данных.
курсовая работа [36,8 K], добавлен 18.09.2010Написание программы для генерации случайных чисел, в которой реализуются возможности генерации абсолютно случайных чисел. Приложение на языке С/С++. Описание узла, содержащего данные; функций и методов работы; чтения данных из памяти и вывода их на экран.
курсовая работа [172,4 K], добавлен 23.05.2012