Содержание
Содержание
1. Задание на курсовую работу3
2. Описание переменных3
3. Блок-схемы4
3.1. Блок-схема алгоритма процедуры «Вычислить»4
3.2. Блок-схема алгоритма процедуры «Заполнить случайными числами»5
3.3. Блок-схема алгоритма процедуры «Заполнить единицами»6
4. Описание алгоритма7
4.1. Кнопка «Вычислить»7
4.2 Кнопка «Заполнить случайными числами»8
4.3. Кнопка «Заполнить единицами»9
5. Листинг программы10
6. Описание входных данных и результат вычислений13
Литература15
Выдержка из текста работы
Магазин компьютерных игр продал за полгода (2 квартала) различное количество компьютерных игр шести наименований по цене, устанавливаемой в начале каждого квартала (каждый квартал цены на компьютерные игры менялись).
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
— исходные данные в виде таблицы, где указаны наименования игр, их цена в каждом квартале, количество проданных игр за каждый квартал;
— доход от каждой игры за полгода;
— доход за каждый квартал по всем играм;
— общий доход от всех игр за полгода;
— наименование игры, принесший наименьший доход за полгода.
2. Описание переменных
Исходные данные находятся на листе «Нач_д» (рис. 1) и содержат следующую информацию:
1) наименования игр;
2) цена каждой игры в каждом квартале;
3) количество проданных игр за каждый квартал.
Рисунок 1 – Исходные данные
В программе переменные описаны следующим образом:
1) game (1 To 6) — наименования игр, представляет собой массив строкового типа
Dim game (1 To 6) As String
2) cena(1 To 6, 1 To 2) — цена каждой игры в каждом квартале, представляет собой двумерный массив дробных чисел
Dim cena(1 To 6, 1 To 2) As Double
3) koll(1 To 6, 1 To 2) — кол-во проданных игр в каждом квартале, представляет собой двумерный массив целых чисел
Dim koll(1 To 6, 1 To 2) As Integer
4) dohod (1 To 6, 1 To 2) — доход каждой игры в каждом квартале, представляет собой двумерный массив дробных чисел
Dim dohod (1 To 6, 1 To 2) As Double
5) dohod_2 (1 To 6) – доход от каждой игры за полгода, представляет собой массив дробных чисел
Dim dohod_2 (1 To 6) As Double
6) dohod_za_kvartal (1 To 2) – доход за каждый квартал по всем играм, представляет собой массив дробных чисел
Dim dohod_za_kvartal (1 To 2) As Double
7) dohod_itogo — дробное число — общий доход от всех игр за полгода
Dim dohod_itogo As Double
8) nom – целочисленная переменная — номер игры, принесший наименьший доход за полгода
Dim nom As Integer
9) game_min – строковая переменная — наименование игры, принесшей наименьший доход за полгода
Dim game_min As String
10) i, j — счетчики циклов — целые числа
Dim i As Integer, j As Integer
3. Блок схема
Рисунок 2 – Блок схема (начало)
Рисунок 3 – Блок схема (продолжение)
Рисунок 4 – Блок схема (окончание)
4. Описание алгоритма
Начало программы.
Ввод начальных (нулевых) значений для расчетных величин (доход каждой игры в каждом квартале, доход от каждой игры за полгода, доход за каждый квартал по всем играм, общий доход от всех игр за полгода).
Открываем лист с начальными данными («Нач_д») и получаем эти данных в рабочие переменные (массивы game (1 to 6) – наименования игр, cena(1 To 6, 1 To 2) — цена каждой игры в каждом квартале, koll(1 To 6, 1 To 2)- кол-во проданных игр в каждом квартале). Здесь же рассчитываем доход каждой игры в каждом квартале и доход от каждой игры за полгода, результат запоминаем в массивах dohod(1 To 6, 1 To 2) и dohod_2 (1 To 6).
Открываем лист с результатами, формируем матрицу входных данных
Вычисляем доход за каждый квартал по всем играм — результат сохраняем в массиве dohod_za_kvartal (1 To 2). Для этого организуем внешний цикл по кварталам (по j) и внутренний цикл – по играм (по i). Во внутреннем цикле вычисляем доход за j –й квартал по всем играм. После выхода из внутреннего цикла накапливаем в переменной dohod_itogo общий доход от всех игр за полгода.
Определим наименование игры, принесший наименьший доход за полгода. Вначале предположим, что самая первая игра принесла минимальный доход, поэтому переменной nom присвоим значение 1, а переменной game_min наименование первой игры.
Организуем цикл по i от 1 до 6. На каждом шаге цикла будем сравнивать доход i-й игры с доходом игры под номером nom, и если доход i-й игры окажется меньше, то переменной nom присвоим значение i, а в переменной game_min запомним наименование i-й игры. При одинаковой доходности 2 и более игр результативной считается первая. После выхода из цикла выведем полученные данные на лист «Результат».
5. Листинг программы
Sub Вычислить()
объявляем переменные
Dim game(1 To 6) As String наименования игр
Dim cena(1 To 6, 1 To 2) As Double цена каждой игры в каждом квартале
Dim koll(1 To 6, 1 To 2) As Integer кол-во проданных игр в каждом квартале
Dim dohod(1 To 6, 1 To 2) As Double доход каждой игры в каждом квартале
Dim dohod_2(1 To 6) As Double доход от каждой игры за полгода
Dim dohod_za_kvartal(1 To 2) As Double доход за каждый квартал по всем играм
Dim dohod_itogo As Double общий доход от всех игр за полгода
Dim nom As Integer номер игры, принесший наименьший доход за полгода
Dim game_min As String наименование игры, принесший наименьший доход за полгода
Dim i As Integer, j As Integer
присваиваем всем переменным нулевое значение
For i = 1 To 2
dohod_za_kvartal(i) = 0
Next i
For i = 1 To 6
dohod_2(i) = 0
For j = 1 To 2
dohod(i, j) = 0
Next j
Next i
dohod_itogo = 0
Sheets(«Нач_д»).Select
считываем начальные данные из листа «Нач_д» в массив game(1 To 6), cena(1 To 6, 1 To 2), koll(1 To 6, 1 To 2)
рассчитываем доход каждой игры в каждом квартале и доход от каждой игры за полгода и запоминаем результат в массивах dohod(1 To 6, 1 To 2) и dohod_2(1 To 6)
For i = 1 To 6
game(i) = Cells(3 + i, 1)
For j = 1 To 2
cena(i, j) = Cells(3 + i, 1 + j)
koll(i, j) = Cells(3 + i, 3 + j)
dohod(i, j) = cena(i, j) * koll(i, j) доход от i-й игры в j-м квартале
dohod_2(i) = dohod_2(i) + dohod(i, j) доход от i-й игры за полгода
Next j
Next i
переходим на лист «Результат»
Sheets(«Результат»).Select
Cells(1, 1) = «РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ»
Cells(3, 1) = «Наименование игры»
Cells(2, 2) = «Цена»
Cells(2, 4) = «Кол-во проданных игр»
Cells(3, 2) = «1 квартал»
Cells(3, 3) = «2 квартал»
Cells(3, 4) = «1 квартал»
Cells(3, 5) = «2 квартал»
Cells(13, 1) = «Наименование игры»
Cells(12, 2) = «Доход»
Cells(13, 2) = «1 квартал»
Cells(13, 3) = «2 квартал»
Cells(13, 4) = «Доход за полгода»
Cells(20, 1) = «Доход по кварталам»
вычисляем доход за каждый квартал по всем играм — результат запомним в массиве dohod_za_kvartal()
в переменной dohod_itogo запоминаем общий доход от всех игр за полгода
For j = 1 To 2 цикл по кварталам
For i = 1 To 6 цикл по играм
Cells(i + 3, j + 1) = cena(i, j) записываем цену каждой игры в каждом квартале
Cells(i + 3, j + 3) = koll(i, j) записываем кол-во проданных игр в каждом квартале
Cells(i + 13, j + 1) = dohod(i, j) записываем доход каждой игры в каждом квартале
dohod_za_kvartal(j) = dohod_za_kvartal(j) + dohod(i, j) доход за j квартал по всем играм
Next i
Cells(20, j + 1) = dohod_za_kvartal(j)
dohod_itogo = dohod_itogo + dohod_za_kvartal(j)
Next j
nom = 1
game_min = game(1)
определяем наименование игры, принесшей наименьший доход за полгода
For i = 1 To 6
Cells(i + 3, 1) = game(i)
Cells(i + 13, 1) = game(i)
Cells(i + 13, 4) = dohod_2(i)
If dohod_2(i) < dohod_2(nom) Then
nom = i
game_min = game(i)
End If
Next i
Cells(20, 4) = dohod_itogo
Cells(22, 1) = «Общий доход от всех игр за полгода:»
Cells(22, 3) = dohod_itogo
Cells(23, 1) = «Игра, принесшая наименьший доход за полгода:»
Cells(23, 4) = game_min
Cells(23, 5) = «доход:»
Cells(23, 6) = dohod_2(nom)
End Sub
6. Описание входных данных и результат вычислений
6.1. Проверка работы программы на всех нулях
Рисунок 5 – Лист «Нач_д» — исходные данные (нули)
Рисунок 6 – Результат работы программы (исходные данные — нули)
6.2. Проверка работы программы на всех единицах
Рисунок 7 – Лист «Нач_д» — исходные данные (единицы)
Рисунок 8 – Результат работы программы (начальные данные — единицы)
6.3. Произвольная проверка
Рисунок 9 – Лист «Нач_д» — исходные данные (произвольные значения)
Рисунок 10 – Результат работы программы (произвольная проверка)
7. Список использованной литературы
1. MS Office XP, 2003 Word, Excel, Access, Outlook, PowerPoint, FrontPage, MS Project/ А. К. Гультяев: Корона-Век, 2006
2. Измерение, управление и регулирование с помощью макросов VBA в Word и Excel/ Берндт Г.-Й.: КОРОНА-Век, 2008
3. Информатика. Методические указания по выполнению практических работ в компьютерном классе (Access, Internet) / Гришин М.П., Юрасов А.Б. М.: МГИУ, 2003.
4. Информатика. Методическое пособие по выполнению практических работ в компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005.
5. Информатика. Часть 1. Введение в информатику: учебное пособие / Гришин М.П., Иванов М.Н., Носова Т.К., Суворов С.В. М.: МГИУ, 2008.
6. Информатика. Часть 2. Программирование: Учебно-методическое пособие / Иванов М.Н., Суворов С.В. М.: МГИУ. 2006.