Добавлен: 12.01.2024
Просмотров: 106
Скачиваний: 3
СОДЕРЖАНИЕ
3.Блок-схема алгоритма решения варианта задания 4
4. Описание алгоритма общего варианта задания
5. Листинг программы общего варианта задания
'Всем данным, которые рассчитывались на листе Excel по формулам, 'присваивается нулевое значение
'Выполнение расчетов, 'которые проводились на листе Excel по формулам
'Вывод результатов расчетов 'на лист с надписью "Результат" и именем "Лист2"
'Выполнение расчетов, 'которые проводились на листе Excel по формулам
'Вывод результатов расчетов 'на листе с надписью "Результат" и именем "Лист3"
'Выполнение расчетов, 'которые проводились на листе Excel по формулам
'Вывод результатов расчетов 'на листе с надписью "Результат" и именем "Лист3"
'Выполнение расчетов, 'которые проводились на листе Excel по формулам
'Вывод результатов расчетов 'на листе с надписью "Результат" и именем "Лист2"
'Выполнение расчетов, 'которые проводились на листе Excel по формулам
'Вывод результатов расчетов 'на листе с надписью "Результат" и именем "Лист2"
МИНИСТЕРСТВО ОБОРОНЫ РОССИЙСКОЙ ФЕДЕРАЦИИ ВОЕННЫЙ ИНСТИТУТ (ИНЖЕНЕРНО-ТЕХНИЧЕСКИЙ) ВОЕННОЙ АКАДЕМИИ МАТЕРИАЛЬНО-ТЕХНИЧЕСКОГО ОБЕСПЕЧЕНИЯ им. ГЕНЕРАЛА АРМИИ А.В.ХРУЛЕВА Курсовая работа по дисциплине «Информатика» Задание: 4 Группа: 385 Курсант: Газенкампф Герман Юрьевич Преподаватель: Тарасов Анатолий Владимирович Санкт-Петербург 2020 |
Содержание
-
Задание на курсовую работу -
Описание переменных -
Блок-схема -
Описание алгоритма -
Листинг программы -
Описание входных данных и результат вычислений -
Проверка -
Использованная литература
1.Задание на курсовую работу
Задание 4
В течение 6 дней (рабочая неделя) рабочий изготавливает кровельные материалы трех различных типов. Известно количество изготовленных им кровельных материалов за каждый день и стоимость изготовления одного кровельного материала каждого типа.
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
-
исходные данные в виде таблицы, где перечислены наименования кровельных материалов, стоимость их изготовления, количество кровельных материалов, изготовленных за каждый день; -
количество каждого типа кровельных материалов, изготовленных за неделю; -
заработок за каждый день; • заработок за неделю;
наименование кровельного материала, от которого получен наименьший заработок за неделю.
2.Описание переменных
В программе по общему варианту задания переменные описаны следующим образом:
-
name_type (3) – наименование каждого материала представляет массив строк:
Dim name_type(3) As String;
-
price (3) – стоимость изготовления одной единицы каждого материала представляет массив дробных чисел:
Dim price(3) As Double;
-
kol (3,6) – количество материалов каждого вида, проданных в каждый из рабочих дней, представляет двумерный массив целых чисел:
Dim kol(3,6) As Integer;
-
money_week(3) – заработок за неделю по материалам каждого вида представляет массив дробных чисел:
Dim money_week(3) As Double;
-
kol_week(3) – количество материалов каждого вида изготовленных за неделю представляет массив целых чисел:
Dim kol_week(3) As Integer;
-
money_day(7, 5) – заработок за каждый день по материалам каждого вида представляет массив дробных чисел:
Dim money_day (7, 5) As Double;
-
all_money_day – заработок по всем видам материалов за каждый день представляет массив дробных чисел:
Dim all_money_day (5) As Double;
-
all_money– общий заработок по всему производству (по всем изготовленным материалам) – дробная переменная:
Dim all_money As Double;
-
max_type– название материала, который принесет наибольший заработок за неделю – переменная строкового типа:
Dim max_type As String;
-
max_money_week – наибольший заработок за неделю – дробная переменная:
Dim max_money_week As Double;
В программе также были использованы вспомогательные переменные, счетчики циклов, iи j, являющиеся целыми числами:
Dim i, j As Integer.
Если внимательно изучить приведенные выше операторы Dim, исходные данные и результаты работы программы, то можно увидеть, что данные размещаются в одномерных массивах и матрицах.
3.Блок-схема алгоритма решения варианта задания 4
Блоки используются для обозначения действий, которые производит алгоритм, представленный блок-схемой, а также для внесения дополнительных пояснений по работе алгоритма или улучшения читаемости схемы.
Общая структура курсовой работы имеет вид, показанный на рис. __ и ___. Рассмотрим некоторые типы блоков:
-
квадрат – блок решения; -
эллипс – данный блок используется для обозначения начала и конца алгоритма; -
ромб – данный блок используется для обозначения условного оператора; -
пятиугольник – данный блок используется для обозначения оператора цикла.
Лист2.Cells(3 + i, 9) = kol_week(i)
Лист2.Cells(3 + i, 2 + j) = kol(i, j)
Лист2.Cells(3 + i, 2) = price(i)
Price(i)=Cells(3+i, 2)
max_money_week=money_week(i)
money_day(i, j) = kol(i, j) * price(i)
Лист2.Cells(15 + i, j + 2) = money_day(i, j)
money_week(i) = money_week(i) + money_day(i, j)
all_money_day(j) = all_money_day(j) + money_day(i, j)
Рис. 2. Блок-схема алгоритма
4. Описание алгоритма общего варианта задания
Начало программы.
Ввод начальных (нулевых) значений для расчетных величин (количество изготовленных материалов за неделю, зарплата по дням и общая, день с наибольшим заработком и величина максимальной зарплаты).
Открытие листа с начальными данными (надпись «Нач_д») и получение этих данных в рабочие переменные (массивы сеnа(3) и kol(3, 6)).
Открытие листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (по каждому материалу и дню). Во внутреннем цикле (по дням, расчет по одному изделию) суммируется количество изготовленных материалов, после выхода из внутреннего цикла выводится результат по материалу.
Расчет сумм заработков по изделиям за каждый день, количество изготовленных материалов и вывод результатов. Организуется два вложенных цикла: внешний по изделиям, внутренний по дням. Для оптимизации процесса расчетная часть совмещена с выводом: во внутреннем цикле происходит вычисление суммы заработка по i-му изделию в j-й день с выводом результата, во внешнем цикле (после получения результатов внутреннего цикла) – вывод стоимости одного материала и по всем материалам. Расчет заработной платы за каждый день организован в этом же внутреннем цикле.
Определение дня с максимальной заработной платой. Используется алгоритм сравнения. При равенстве двух и более дневных сумм результативной считается первая сумма.
5. Листинг программы общего варианта задания
Для написания курсовой работы необходимо сначала открыть редактор Microsoft Visual Basic (рис. ___ … ___). Ниже приведено объяснение некоторых блоков кода программы, которые следует написать, используя комментарии Visual Basic.
Private Sub Расчет_Click()
Dim i, j As Integer
Dim name_type(3) As String 'наименование материала
Dim price(3) As Double 'цена материала
Dim kol(3, 6) As Integer 'материалов каждый день
Dim kol_week(3) As Integer 'материалов за неделю
Dim all_money_day(3, 6) As Double 'доход за день
Dim money_day(3) As Double 'заработок за неделю по деталям каждого вида
Dim all_money_week As Double 'доход за неделю
Dim all_money As Double
Dim max_type_week As String 'принесет наибольший заработок за неделю
Dim all_money_day (6) As Double
'Всем данным, которые рассчитывались на листе Excel по формулам, 'присваивается нулевое значение
For i = 1 To 3
kol_week (i) = 0 'количество деталей за неделю
Next i
For i = 1 To 3
money_week (i) = 0 'заработано за неделю
Next i
For i = 1 To 3 For j = 1 To 6
money_day (i, j) = 0 'заработано за каждый день
Next j
Next i For i = 1 To 3
money_day(i) = 0 'заработано всего по всем типам деталей за день Next i
all_money= 0 'заработок по всему производству
max_type= "" 'название детали с наиб. заработком за неделю
For i = 1 To 3
name_type(i) = Лист1.Cells(3 + i, 1)
'Считывается одномерный массив из 3 названий деталей,
'начиная со строки 4 (3 + i), столбец 1 price(i) = Лист1.Cells(3 + i, 2)
'Считывается одномерный массив из семи стоимостей деталей,
'начиная со строки 4 (3 + i), столбец 2
Next i
For i = 1 To 3 For j = 1 To 6
kol(i, j) = Лист1.Cells(3 + i, 2 + j)
' Считывается двумерный массив (матрица) из 18 количеств деталей по дням,
' начиная со строки 3 (2 + i), столбец 3 (2 + j)
Next j
Next i
Лист3.Cells(1, 1) = "Количество изготовленных деталей"
Лист3.Cells(2, 1) = "Наименование изделия"
Лист3.Cells(2, 2) = "Стоимость 1 шт., руб"
Лист3.Cells(2, 3) = "Изготовлено, шт."
Лист3.Cells(3, 3) = "1-й день"
Лист3.Cells(3, 4) = "2-й день"
Лист3.Cells(3, 5) = "3-й день"
Лист3.Cells(3, 6) = "4-й день"
Лист3.Cells(3, 7) = "5-й день"
Лист3.Cells(3, 8) = "6-й день"
Лист3.Cells(3, 9) = "Всего изготовлено за неделю, шт."
' вывод на рабочий лист с надписью "Результат" и именем "Лист3"
' считанных исходных данных For i = 1 To 3
Лист3.Cells(3 + i, 1) = name_type(i)
' выводится одномерный массив с именем name_type из семи названий деталей,
' начиная со строки 4 (3 + i), столбец 1
Лист3.Cells(3 + i, 2) = price(i)
' выводится одномерный массив с именем price из семи стоимостей дета-лей,
' начиная со строки 4 (3 + i), столбец 2
Next i
For i = 1 To 3
For j = 1 To 6
Лист3.Cells(3 + i, 2 + j) = kol(i, j)
' выводится двумерный массив (матрица) kol из 35 количеств деталей по дням,
' начиная со строки 4 (3 + i), столбец 3 (2 + j)
Next j
Next i
Далее производятся расчеты в соответствии с поставленными в задании вопросами и вывод результатов на рабочий лист (с надписью «Результат» и именем «Лист3»).
'Выполнение расчетов, 'которые проводились на листе Excel по формулам
For i = 1 To 3 kol_week(i) = 0 ' Обнуление суммы (Можно пропустить, так как данные
уже обнулялись!) For j = 1 To 6
kol_week(i) = kol_week(i) + kol(i, j)
' Подсчет количества деталей каждого вида за неделю
' одномерный массив из семи значений с именем kol_week
' Суммируются строки двумерного массива (матрицы) с именем
kol(7, 5)
Next j
Next i
'Вывод результатов расчетов 'на лист с надписью "Результат" и именем "Лист2"
For i = 1 To 3
For j = 1 To 6
Лист3.Cells(3 + i, 9) = kol_week(i)
' выводится одномерный массив из семи сумм (количество деталей за неделю) начиная со строки 4 (3 + i), столбец 8
Next j
Next i
' на листе с надписью "Результат" и именем "Лист2"
' в ячейку с определенным номером выводится ее подпись
Лист3.Cells(13, 1) = "Результат в денежном эквиваленте"
Лист3.Cells(14, 1) = "Наименование "
Лист3.Cells(14, 2) = "Стоимость 1 шт., руб." Лист3.Cells(14, 3) = "Заработано, руб."
Лист3.Cells(15, 3) = "1-й день"
Лист3.Cells(15, 4) = "2-й день"
Лист3.Cells(15, 5) = "3-й день"
Лист3.Cells(15, 6) = "4-й день"
Лист3.Cells(15, 7) = "5-й день"
Лист3.Cells(15, 8) = "6-й день"
Лист3.Cells(15, 9) = "Заработано за неделю, руб."
Лист3.Cells(23, 1) = "Заработано за каждый день, руб."
Лист3.Cells(24, 1) = "Заработано по всему производству, руб." ' вывод на рабочий лист с надписью "Результат" и именем "Лист3" считанных исходных данных
For i = 1 To 3
Лист3.Cells(15 + i, 1) = name_type(i)
' выводится одномерный массив с именем name_detali из семи названий деталей, начиная со строки 16 (15 + i), столбец 1
Лист3.Cells(15 + i, 2) = price(i)
' выводится одномерный массив с именем price из семи стоимостей дета-лей начиная со строки 16 (15 + i), столбец 2
Next i
'Выполнение расчетов, 'которые проводились на листе Excel по формулам
For i = 1 To 3 For j = 1 To 6
money_day(i, j) = kol(i, j) * price(i)
' Подсчет заработка за кaждый день (стоимость детали умножается
' на изготовленное количество) двумерный массив (матрица) с именем money_day(3, 6)
Next j
Next i
'Вывод результатов расчетов 'на листе с надписью "Результат" и именем "Лист3"
For i = 1 To 3
For j = 1 To 6
Лист3.Cells(15 + i, j + 2) = money_day(i, j)
' выводится двумерный массив (матрица) money_day из 35 заработков за кaждый день, начиная со строки 16 (15 + i), столбец 3 (j + 2)
Next j
Next i
'Выполнение расчетов, 'которые проводились на листе Excel по формулам
For i = 1 To 3
money_week (i) = 0 ' Обнуление суммы (Можно пропустить, так как данные
уже обнулялись!) For j = 1 To 6
money_week (i) = money_week (i) + money_day(i, j)
' Подсчет заработка за неделю по каждому виду деталей
' Суммируются строки двумерного массива (матрицы) с именем money_day(3, 6)
Next j
Next i
'Вывод результатов расчетов 'на листе с надписью "Результат" и именем "Лист3"
For i = 1 To 3
Лист3.Cells(15 + i, 9) = money_week (i)