Описание входных данных и результат вычислений
Содержание 1. Задание. 6 2. Описание переменных. 7 3. Блок схема. 10 4. Описание алгоритма. 17 5. Листинг программы.. 18 6. Описание входных данных и результат вычислений. 23 7. Список использованной литературы.. 26
Задание
Молокозавод в течение 3 месяцев упаковывал молоко в пакеты емкостью 0,5 литров и 1 литр и поставлял свою продукцию в 5 различных магазинов. Цена на пакет молока устанавливалась в начале каждого месяца и не менялась. Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран: исходные данные в виде таблицы, где указаны наименование магазинов, количество пакетов молока емкостью 0,5 и 1 литр соответственно, ежемесячно поставляемых в каждый магазин, цены на продукцию в текущем месяце; · общее количество литров молока, поставленных заводом в магазины за все время; · общее количество пакетов молока, поставленных заводом в магазины в каждом месяце; · доход завода за 3 месяца за молоко, упакованное в пакеты емкостью 0,5 литров; · наименование магазина, в который было поставлено наибольшее количество пакетов молока Описание переменных Исходные данные находятся на листе «Нач_д» (рис. 1) и содержат следующую информацию: 1) Количество пакетов молока емкостью 0,5 и 1 литр, ежемесячно поставляемых в каждый магазин. 2) Цены на продукцию в текущем месяце. Результаты работы программы оформляются на листе «Результат» (рис. 2).
Рис.1. Лист с начальными данными Рис.2. Полученные результаты В программе переменные описаны следующим образом:
1) kol_paketov(4, 5) - двумерный массив, предназначенный для хранения значений о количестве пакетов молока поставленных в магазины. Dim kol_paketov(4, 5) As Integer 2) kol_lit(5) - массив, предназначенный для хранения количества литров молока поставленного заводом каждому магазину. Dim kol_lit(5) As Single 3) obch_kol_litr - переменная для хранения общего количества литров молока поставленного заводом. Dim obch_kol_litr As Single 4) kol_pak(2) - массив для хранения количество пакетов поставляемых заводом в каждом месяце. Dim kol_pak(2) As Integer 5) obch_kol_paketov - переменная для хранения общего количества пакетов молока поставленного заводом за 3 месяца. Dim obch_kol_paketov As Integer 6) kol_pak05 - переменная для хранения количества пакетов по 0,5 л. Dim kol_pak05 As Integer 7) cena(4, 5) - массив для хранения цен на молоко упакованное в пакеты по 0,5 л. Dim cena(4, 5) As Single 8) dohod - переменная для хранения дохода завода от проданных за 3 месяца пакетов молока по 0,5 л. Dim dohod As Single 9) mag_kol_pak(4) - массив для хранения количества пакетов молока поставленных заводом каждому магазину. Dim mag_kol_pak(4) As Integer 10) name - массив для хранения названий магазинов. Dim name 11) ind() - массив для хранения индексов массива mag_kol_pak которые хранят нибольшие значения. Dim ind() As Integer В программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами. Были также использованы переменные max, col, r-целого типа, для определения количества чисел и максимального числа. Dim i, j, max, col, r As Integer Промежуточные переменные c и d –вещественного типа. Dim c, d As Single Массивы kol_paketov(4, 5), kol_pak(2), mag_kol_pak(4) и переменные obch_kol_paketov, kol_pak05 имеют целый тип т.к. количество пакетов измеряется в единицах. Массивы kol_lit(5), cena(4, 5) и переменные obch_kol_litr, dohod имеют вещественный тип, т. к. литры и цена могут иметь как целую так и дробную часть значения.
Блок схема
Рис.3. Блок-схема (продолжение)
Рис.3. Блок-схема (продолжение)
Рис.3. Блок-схема (продолжение)
Рис.3. Блок-схема (продолжение)
Рис.3. Блок-схема (продолжение)
Рис.3. Блок-схема (окончание) Описание алгоритма
Начало программы. Ввод начальных (нулевых) значений для расчетных величин (количество пакетов молока емкостью 0,5 и 1 литр, ежемесячно поставляемых в каждый магазин и цены на продукцию в текущем месяце). Открытие листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (массивы kol_paketov(i, j) и cena(i, j) ). Находим количество литров молока поставляемого заводом в каждый магазин. Определяем общее количество литров молока поставляемого заводом, количество пакетов поставляемых заводом в каждом месяце, общее количество пакетов молока поставленных заводом за 3 месяца, доход завода за 3 месяца за молоко, упакованное в пакеты по 0,5 л., кол-во пакетов поставленных каждому магазину. Для определения этих значений используется одномерные и вложенные циклы, условные переходы, в некоторых случаях и безусловные переходы, встроенная функция листа Excel (Sum) и динамический массив ind. Заполняем массив name названиями магазинов. Определяем магазин с наибольшим кол-вом поставленных заводом пакетов молока. Используется алгоритм сравнения, при равенстве двух и более значений (количества пакетов молока), выведены будут оба названия магазина. Открытие листа с результатами, вывод в его ячейки текстовой информации (названия столбцов, наименования магазинов) и вывод всех найденных значений. Листинг программы Option Explicit Private Sub CB1_Click() 'массив для хранения количества пакетов поставленных в магазины Dim kol_paketov(4, 5) As Integer 'массив для хранения кол-ва литров молока поставленного каждому магазину(1-5) 'c и d -переменные для хранения промежуточных значений Dim kol_lit(5), c, d As Single 'переменная для хранения общего количества литров молока поставляемого заводом Dim obch_kol_litr As Single 'массив для хранения количество пакетов поставляемых заводом в каждом месяце Dim kol_pak(2) As Integer 'переменная для хранения общего количества пакетов молока поставленного заводом за 3 месяца Dim obch_kol_paketov As Integer 'переменная для хранения кол-ва пакетов по 0,5 л Dim kol_pak05 As Integer 'массив для хранения цен на молоко упакованное в пакеты по 0,5 л Dim cena(4, 5) As Single 'переменная для хранения дохода завода от проданных за 3 месяца пакетов молока по 0,5 л Dim dohod As Single 'массив для хранения кол-ва пакетов поставленных заводом каждому магазину Dim mag_kol_pak(4) As Integer 'массив для хранения названий магазинов Dim name 'переменные i,j для организации циклов, max-макс. значение пакетов поставленных в магазин и промеж. переменные-col и r Dim i, j, max, col, r As Integer 'массив для хранения индексов массива mag_kol_pak которые хранят наибольшие значения Dim ind() As Integer
'обнуление ячеек предназначенных для вывода наименования магазина(ов) с максимальным значением For i = 0 To 4 Worksheets(2).Cells(13 + i, 2).Clear Next i 'считывание начальных данных Sheets("Нач_д").Select 'считывание кол-ва поставляемых пакетов в матрицу For i = 0 To 4 For j = 0 To 5 kol_paketov(i, j) = Worksheets(1).Cells(i + 4, j + 2) Next j Next i 'находим количество литров молока поставляемого заводом в (1-5) магазины For i = 0 To 4 For j = 0 To 5 Step 2 c = kol_paketov(i, j) * 0.5 + kol_paketov(i, j + 1) * 1 d = d + c Next j kol_lit(i) = d c = 0 d = 0 Next i 'определяем общее количество литров молока поставляемого заводом obch_kol_litr = WorksheetFunction.Sum(kol_lit) 'определяем количество пакетов поставляемых заводом в каждом месяце c = 0 For j = 0 To 5 For i = 0 To 4 c = c + kol_paketov(i, j) Next i If (j = 1) Then kol_pak(0) = c c = 0 End If If (j = 3) Then kol_pak(1) = c c = 0 End If If (j = 5) Then kol_pak(2) = c c = 0 End If Next j 'определение общего количества пакетов молока поставленных заводом за 3 месяца obch_kol_paketov = WorksheetFunction.Sum(kol_pak) 'определение дохода завода за 3 месяца, за молоко упакованное в пакеты по 0,5 л 'кладём значения цен в массив cena For i = 0 To 4 For j = 0 To 5 cena(i, j) = Worksheets(1).Cells(i + 4, j + 8) Next j Next i 'перемножаем количество пакетов по 0,5 л определённого магазина и месяца с соответствующей ценой на это молоко For i = 0 To 4 For j = 0 To 5 Step 2 dohod = dohod + kol_paketov(i, j) * cena(i, j) Next j Next i 'определение кол-ва пакетов поставленных каждому магазину(1-5) For i = 0 To 4 For j = 0 To 5 mag_kol_pak(i) = mag_kol_pak(i) + kol_paketov(i, j) Next j Next i 'заполнение массива name названиями магазинов name = Array("Пятёрочка", "Перекрёсток", "Копейка", "Каравай", "Никольский") 'определяем магазин с наибольшим кол-вом поставленных пакетов молока max = mag_kol_pak(0) For i = 0 To 4 If (max < mag_kol_pak(i)) Then max = mag_kol_pak(i) End If Next i 'подсчёт кол-ва магазинов с максимальным кол-вом пакетов col = 0 For i = 0 To 4 If (max = mag_kol_pak(i)) Then col = col + 1 Next i 'определяем размерность массива ReDim ind(col - 1) 'определяем индексы массива с максимальными значениями c = 0 For i = 0 To 4 If ((max = mag_kol_pak(i))) Then ind(c) = i c = c + 1 End If Next i 'определение магазина в который было поставлено наибольшее кол-во пакетов c = 0 r = 0 For i = 0 To 4 If (ind(c) = i) Then Worksheets(2).Cells(12 + r, 2) = name(i) r = r + 1 c = c + 1 If (col = c) Then GoTo m2 End If Next i m2: Sheets("Результат").Select 'вывод наименования магазинов For i = 0 To 4 Worksheets(2).Cells(13 + i, 10) = name(i) Next i 'вывод кол-ва поставленных пакетов в каждый магазин For i = 0 To 4 Worksheets(2).Cells(13 + i, 11) = mag_kol_pak(i) Next i 'на листе "Результат" создаются ячейки с определенными названиями Worksheets(2).Cells(3, 1) = "Наименование магазина" Worksheets(2).Cells(4, 1) = "Пятёрочка" Worksheets(2).Cells(5, 1) = "Перекрёсток" Worksheets(2).Cells(6, 1) = "Копейка" Worksheets(2).Cells(7, 1) = "Каравай" Worksheets(2).Cells(8, 1) = "Никольский" Worksheets(2).Cells(1, 3) = "Количество поставляемых пакетов молока" Worksheets(2).Cells(2, 2) = "1-ый месяц" Worksheets(2).Cells(2, 4) = "2-ой месяц" Worksheets(2).Cells(2, 6) = "3-ий месяц" Worksheets(2).Cells(3, 2) = "0,5 л" Worksheets(2).Cells(3, 3) = "1 л" Worksheets(2).Cells(3, 4) = "0,5 л" Worksheets(2).Cells(3, 5) = "1 л" Worksheets(2).Cells(3, 6) = "0,5 л" Worksheets(2).Cells(3, 7) = "1 л" Worksheets(2).Cells(1, 8) = "Цена на продукцию в каждом месяце" Worksheets(2).Cells(2, 8) = "1-ый месяц" Worksheets(2).Cells(2, 10) = "2-ой месяц" Worksheets(2).Cells(2, 12) = "3-ий месяц" Worksheets(2).Cells(3, 8) = "0,5 л" Worksheets(2).Cells(3, 9) = "1 л" Worksheets(2).Cells(3, 10) = "0,5 л" Worksheets(2).Cells(3, 11) = "1 л" Worksheets(2).Cells(3, 12) = "0,5 л" Worksheets(2).Cells(3, 13) = "1 л" Worksheets(2).Cells(9, 1) = "Количество поставленных пакетов молока в месяц:" Worksheets(2).Cells(10, 1) = "Общее количество пакетов:" Worksheets(2).Cells(3, 14) = "Объём поставленного молока" Worksheets(2).Cells(9, 11) = "Итого общее кол-во литров:" Worksheets(2).Cells(11, 1) = "Доход завода за 3 месяца за молоко в 0,5 пакетах:" Worksheets(2).Cells(12, 1) = "Магазин(ы) с максимальным кол-вом пакетов молока:" Worksheets(2).Cells(12, 10) = "Наименование" Worksheets(2).Cells(12, 11) = "Кол-во поставленных пакетов" 'заполняем созданную таблицу значениями 'кол-вом пакетов For i = 0 To 4 For j = 0 To 5 Worksheets(2).Cells(i + 4, j + 2) = kol_paketov(i, j) Next j Next i 'ценами на пакеты For i = 0 To 4 For j = 0 To 5 Worksheets(2).Cells(i + 4, j + 8) = cena(i, j) Next j Next i 'вывод на лист "Результат" рассчитанных данных c = 2 For i = 0 To 2 Worksheets(2).Cells(9, i + c) = kol_pak(i) c = c + 1 Next i 'вывод общего количества пакетов Worksheets(2).Cells(10, 2) = obch_kol_paketov 'вывод количества литров поставленных заводом каждому магазину For i = 0 To 4 Worksheets(2).Cells(i + 4, 14) = kol_lit(i) Next i 'вывод общего количества литров поставленных заводом Worksheets(2).Cells(9, 14) = obch_kol_litr 'вывод общего дохода завода за 0,5 пакеты Worksheets(2).Cells(11, 2) = dohod End Sub Описание входных данных и результат вычислений
Проверка программы на всех единицах:
Проверка на всех нулях:
Проверка на произвольных данных:
Исходные данные представлены на Рис.№1., решение – на Рис.№2.
Список использованной литературы 1. MS Office XP, 2003 Word, Excel, Access, Outlook, PowerPoint, FrontPage, MS Project/ А. К. Гультяев: Корона-Век, 2006 2. VBA. Практическое программирование/ Туркин Олег: Солон-пресс,2007 3. VBA/ Кузьменко В.Г.: Бином,2008. 4. Измерение, управление и регулирование с помощью макросов VBA в Word и Excel/ Берндт Г.-Й.: КОРОНА-Век, 2008 5. Информатика. Методические указания по выполнению практических работ в компьютерном классе (Access, Internet) / Гришин М.П., Юрасов А.Б. М.: МГИУ, 2003. 6. Информатика. Методическое пособие по выполнению практических работ в компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005. 7. Информатика. Часть 1. Введение в информатику: учебное пособие / Гришин М.П., Иванов М.Н., Носова Т.К., Суворов С.В. М.: МГИУ, 2008. 8. Информатика. Часть 2. Программирование: Учебно-методическое пособие / Иванов М.Н., Суворов С.В. М.: МГИУ. 2006. 9. Моделирование с помощью Microsoft Excel и VBA. Разработка систем поддержки принятия решений/ Кристиан Олбрайт: Вильямс, 2005 10. Профессиональная разработка приложений Excel/ Стивен Буллен, Роб Боуви, Джон Грин: Вильямс, 2005 11. Самоучитель VBA/ Андрей Гарнаев: БХВ-Петербург,2004 12. Самоучитель программирования на VBA в Microsoft Office/В. Д. Хореев: Юниор, 2001 13. Электронные таблицы Microsoft Excel. Проблемы и решения/ Лори Анн Ульрих: Эком, 2002
Популярное: Почему стероиды повышают давление?: Основных причин три... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (386)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |