|
Составление и описание программы по заданным параметрам
Составление и описание программы по заданным параметрам
Содержание - 1. Задание на курсовую работу
- 2. Описание переменных
- 3. Блок схема
- 4. Описание алгоритма
- 5. Листинг программы
- 6. Описание входных данных и результат вычислений
- Список использованной литературы
- 1. Задание на курсовую работу
В коллективном хозяйстве имеются цветочные оранжереи (розы, гвоздики, лилии - всего 6 видов цветов). Каждый год в течение 3 лет колхоз собирал букеты с каждой оранжереи и продавал их по закупочным ценам, которые были различны в разные годы. Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран: - исходные данные в виде таблицы, где указаны наименования цветов, закупочные цены букетов каждого вида и количество букетов в каждом году; - общее количество букетов за 3 года; - доход по всем цветам за каждый год; - общий доход колхоза за 3 года; - вид цветов, принесший максимальный доход за 2 года. 2. Описание переменныхИсходные данные находятся на листе «Начальные данные» («Нач_д» (рис. 1) и содержат следующую информацию:количество букетов из 6 видов, выращенных за год.закупочные цены букетов каждого вида.Результаты работы программы оформляются на листе «Результат» (рис. 2).Рис.1. Лист с начальными даннымиРис.2. Полученные результатыВ программе переменные описаны следующим образом:1) koll(7,5) -- количество букетов за каждый годDim koll(7,5) As Integer3) zar(6) -- доход по всем цветам за каждый годDim zar(6) As Double4) koll_n(7) -- общее количество букетов за3 годаDim kol_n(7) As Integer5) vid -- вид цветов принесший максимальный доходDim vid As Integer6) zarpl -- сумма максимального доходаDim zarpl As Double7) cena(7) -- общий доход колхоза за 3 годаDim cena(7) As DoubleВ программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами.Dim i As Integer, j As IntegerПеременные cena(7), zar(6), zarpl могут быть и не целыми числами, поэтому они объявлены как действительные. Переменные koll(7,5) koll_n(7) целые числа, так как мы считаем, что смена рабочего составляет полный день, и он не может изготовить за смену половину детали.3. Блок схемаРис.3. Блок-схема Рис.3. Блок-схема (окончание)4. Описание алгоритмаНачало программы.Ввод начальных (нулевых) значений для расчетных величин (общее количество букетов за 3 года, доход по всем цветам за каждый год и доход по всем цветам за каждый год и общее количество букетов за 3 года, вид цветов, принесший максимальный доход за 2 года).Открытие листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (массивы сеnа(7) и kоll(7, 5)).Открытие листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (доход по всем цветам за каждый год и общее количество букетов за 3 года). Во внутреннем цикле (по годам, расчет по одному виду цветов) суммируется количество собранных букетов, после выхода из внутреннего цикла выводится результат собранных букетов.Расчет сумм дохода по каждому виду цветов за каждый год, количество собранных букетов и вывод результатов. Организуется два вложенных цикла: внешний по цветам, внутренний по годам. Для оптимизации процесса расчетная часть совмещена с выводом: во внутреннем цикле происходит вычисление суммы дохода по i-му виду букетов в j-й год с выводом результата, во внешнем цикле (после получения результатов внутреннего цикла) -- вывод стоимости одного букета и по всем видам цветов. Доход за каждый год организован в этом же внутреннем цикле.Определение вида цветов, принесший максимальный доход за 2 года. Используется алгоритм сравнения, после выводиться результат вида цветов, принесший максимальный доход за 2 года5. Листинг программыСначала объявляем переменные, используемые в программе.Private Sub CommandButton1_Click()'назначаю переменныеDim i As Integer, j As Integer 'счетчики цикловDim koll(7, 5) As Integer 'количество букетов за каждый годDim zar(6) As Double 'доход по всем цветам за каждый годDim koll_n(7) As Integer 'общее количество букетов за 3 годаDim vid As Integer 'вид цветов принесший максимальный доходDim zarpl As Double 'сумма макимального доходаDim cena(7) As Double 'общий доход колхоза за 3 года'в начале программы все переменные равны нулям'создаем цикл, который считает количество букетов за 3 годаFor i = 1 To 5koll_n(i) = 0Next'создаем цикл, который считает доход по всем цветам за периодFor j = 1 To 6zar(j) = 0Nextzarpl = 0den = 0'считываем начальные данныеSheets("Нач_д").Select'в каждую ячейку массива cena(i) записывается цена каждого букета'для этого используем циклFor i = 1 To 6cena(i) = Cells(3 + i, 2)Next'в каждую ячейку массива koll(i, j) записывается количество букетов за период'так как массив двумерный цикл проходит по двум счетчикамFor i = 1 To 6For j = 1 To 5koll(i, j) = Cells(3 + i, 2 + j) Next jNext i'на листе "Результат" создаются ячейки с определенными названиямиSheets("Результат").Cells(1, 1) = "Количество букетов"Sheets("Результат").Cells(2, 1) = "Наименование цветов"Sheets("Результат").Cells(2, 2) = "Цена 1-го букета"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) = "Хризантемы"'в соответсвующие ячейки записываются цены собранных букетовFor i = 1 To 6Sheets("Результат").Cells(3 + i, 2) = cena(i)For j = 1 To 4'в соответсвующие ячейки записываются количество собранных букетов за каждый годSheets("Результат").Cells(3 + i, 2 + j) = koll(i, j)'рассчитывается количество собранных букетов каждого вида за 3 годаkoll_n(i) = koll_n(i) + koll(i, j)Next j'результат записывается в соответствующие ячейкиSheets("Результат").Cells(3 + i, 6) = koll_n(i)Next i'на листе "Результат" создаются ячейки с определенными названиямиSheets("Результат").SelectSheets("Результат").Cells(12, 1) = "Доход в денежном эквиваленте"Sheets("Результат").Cells(13, 1) = "Наименования цветов"Sheets("Результат").Cells(13, 2) = "Цена 1-го букета"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) = "Доход по всем цветам за каждый год"'во внешнем цикле происходит вывод дохода по всем цветам за каждый год и общий доход колхоза, собранных в данный периодFor i = 1 To 7'в этом цикле вычисляется общее количество букетов за 3 года'доход по всем цветам за каждый год и общий доход колхоза за 3 годаFor j = 1 To 4Sheets("Результат").Cells(14 + i, 2 + j) = koll(i, j) * cena(i)zar(j) = zar(j) + koll(i, j) * cena(i)zar(6) = zar(6) + koll(i, j) * cena(i)Next jSheets("Результат").Cells(14 + i, 2) = cena(i)Sheets("Результат").Cells(14 + i, 6) = cena(i) * koll_n(i)Next i'в данном цикле происходит выбор суммы наибольшего заработка и соответственно'день с максимальным заработком становится день j (день, в который был получен максимальный доход)For j = 1 To 4Sheets("Результат").Cells(21, 2 + j) = zar(j)If zar(j) > zarpl Thenzarpl = zar(j)Sheets("Результат").Cells(23, 6) = vidvid = розыEnd IfNext'в соответствующие ячейки выводятся заработок рабочего за неделю, день с максимальным доходом и размер дохода в этот деньSheets("Результат").SelectSheets("Результат").Cells(22, 1) = "Общий доход колхоза за 3 года"Sheets("Результат").Cells(22, 6) = zar(6)Sheets("Результат").Cells(23, 1) = "Вид цветов, принесший максимальный доход за 2 года"Sheets("Результат").Cells(23, 6) = "Розы"End Sub6. Описание входных данных и результат вычисленийПроверка программы на всех единицах:Проверка на всех нулях:Проверка на произвольных данных:Исходные данные для задания № представлены на Рис.№1., решение - на Рис.2.Список использованной литературы1. Информатика. Часть 2. Программирование: Учебно-методическое пособие / Иванов М.Н., Суворов С.В. М.: МГИУ. 2006. 2. Информатика. Методические указания по выполнению практических работ в компьютерном классе (Access, Internet) / Гришин М.П., Юрасов А.Б. М.: МГИУ, 2003. 3. Информатика. Методическое пособие по выполнению практических работ в компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005. 4. Информатика. Часть 1. Введение в информатику: учебное пособие / Гришин М.П., Иванов М.Н., Носова Т.К., Суворов С.В. М.: МГИУ, 2008. 5. Практическая информатика, Часть 1 Н.А. Роганова, С.В. Андреев 6. Практическая информатика, Часть 1 Н.А. Роганова, С.В. Андреев
|
|