Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
primer_kursovoy.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
950.78 Кб
Скачать

Описание алгоритма

Зарезервируем память для хранения переменных и массивов:

Dim urozhay(6, 5) As Integer - урожай в центнерах за каждый год по всем 6 фруктово-ягодным культурам

Dim cena(6, 5) As Single - закупочные цены каждой культура по всем 5 годам

Dim urozhay_ob(6) As Integer - Общий урожай по каждой культуре за 5 лет

Dim dohod_kultura(6) As Single - доход за все 5 лет по каждой культуре

Dim dohod_god(5) As Single - доход по всем культурам за каждый год

Dim dohod_obschiy As Single - общий доход колхоза за 5 лет

Dim Max As Single - максимум среди дохода за все 5 лет по каждой культуре в дальнейшем понадобится для нахождения наименование культуры принесшей максимальный доход за 5 лет

Dim index1 As Integer - переменная необходима для вывода на экран названия культуры принесшей максимальный доход за 5 лет

Dim Naimenovanie(6) As String - наименование культур для сортировки

Dim naim As String - переменная для упорядочивания наименования

Dim ur As Integer - переменная для упорядочивания общего урожая

Dim i, j As Integer - переменные счетчиков цикла

Прировняем общий доход колхоза за 5 лет нулю. Создаем цикл для всех видов культур что бы обнулить общий урожай. Затем создаем цикл на 5 лет, доход за каждый год обнуляем.

Создаем внешний цикл для 6 видов культур, затем создаем внутренний цикл для 5 лет, занесем данные с экрана в массив об урожае в центнерах за каждый год по всем 6 культурам, занесем данные с экрана в массив о закупочных ценах каждой культуры по всем 5 годам. Одновременно просуммируем общий урожай каждой культуры за 5 лет. Посчитаем доход за все 5 лет по каждой культуре. После вывода из внутреннего цикла выведем на экран в 12 столбец массив UROZHAY_OB. Выходим из внешнего цикла.

Создаем внешний цикл за 5 лет и внутренний для 6 видов культур. Считаем доход за каждый год. Выходим из внутреннего цикла. Выводим доход за каждый год. Доход за 5 лет рассчитываем и выводим его. Выходим из внешнего цикла.

Для расчета самой выгодной культуры назначим максимумом первый элемент массива. Создадим цикл из 6 культур. Если максимум меньше или равен текущему элементу массива, максимумом становится текущий элемент массива, запоминает в переменную index1 номер элемента массива, в котором содержится максимум. Выходим из цикла. Выводим значение самой выгодной культуры.

Очищаем ячейки общего урожая каждой культуры за 5 лет, доход по всем культурам за каждый год, общий доход колхоза за 5 лет и наименование культуры, принесшей максимальный доход за 5 лет.

Очищаем на 0 и 1 закупочные цены и урожаи за все года.

Создаем цикл из 6 культур. Заносим в массив наименование культур и общий урожай по каждой из культур. Покидаем цикл.

Создаем внешний цикл из 5 культур. Создаем внутренний и внешний цикл для сортировки культур по убыванию их урожайности. Если общий урожай одной культуры меньше общего урожая другой культуры то меняем их местами. Выходим из циклов.

Создаем цикл из 6 культур. Выводим наименование и их общего урожая в порядке их убывания.

Листинг программы

Sub kursovoe_zadanie 7()

Dim urozhay(6, 5) As Integer

'урожай в центнерах за каждый год по всем 6 фруктово-ягодным культурам

Dim cena(6, 5) As Single

'закупочные цены каждой культура по всем 5 годам

Dim urozhay_ob(6) As Integer

'Общий урожай по каждой культуре за 5 лет

Dim dohod_kultura(6) As Single

'доход за все 5 лет по каждой культуре

Dim dohod_god(5) As Single

'доход по всем культурам за каждый год

Dim dohod_obschiy As Single

'общий доход колхоза за 5 лет

Dim Max As Single

'максимум среди дохода за все 5 лет по каждой культуре

'в дальнейшем понадобится для нахождения наименование культуры

'принесшей максимальный доход за 5 лет

Dim index1 As Integer

'переменная необходима для вывода на экран названия культуры принесшей максимальный доход за 5 лет

Dim Naimenovanie(6) As String

'наименование культур для сортировки

Dim naim As String

'переменная для упорядочивания наименования

Dim ur As Integer

'переменная для упорядочивания общего урожая

Dim i, j As Integer

'переменные счетчиков цикла

dohod_obschiy = 0

For i = 1 To 6

urozhay_ob(i) = 0

Next i

For i = 1 To 5

dohod_god(i) = 0

Next i

For i = 1 To 6

'внешний цикл для 6 видов культур

For j = 1 To 5

'внутренний цикл для 5 лет

urozhay(i, j) = Cells(i + 3, j + 6)

'занесем данные с экрана в массив об урожае в центнерах за каждый год по всем 6 культурам

cena(i, j) = Cells(i + 3, j + 1)

'занесем данные с экрана в массив о закупочные цены каждой культуры по всем 5 годам

urozhay_ob(i) = urozhay_ob(i) + urozhay(i, j)

'одновременно просуммируем общий урожай каждой культуры за 5 лет

dohod_kultura(i) = dohod_kultura(i) + urozhay(i, j) * cena(i, j)

'доход за все 5 лет по каждой культуре

Next j

Cells(i + 3, 12) = urozhay_ob(i)

'после вывода из внутреннего цикла выведем на экран в 12 столбец массив UROZHAY_OB

Next i

For j = 1 To 5

' внешний цикл за 5 лет

For i = 1 To 6

'внутренний цикл для 6 видов культур

dohod_god(j) = dohod_god(j) + urozhay(i, j) * cena(i, j)

'считаем доход за каждый год

Next i

Cells(10, j + 6) = dohod_god(j)

'выводим доход за каждый год

dohod_obschiy = dohod_obschiy + dohod_god(j)

Cells(11, 12) = dohod_obschiy

Next j

Max = dohod_kultura(1)

'пусть максимумом будет первый элемент массива

For i = 1 To 6

'колисечество сравнивнений равно количеству элементов в массиве,

'на первом шаге сравниваем текущий элемент с самим собой

If Max <= dohod_kultura(i) Then

'тогда если максимум меньше или равно текущему элементу массива

Max = dohod_kultura(i)

'максимумом становится текущий элемент массива

index1 = i

'запоминает в переменную index1 номер элемента массива, в котором содержится максимум

End If

Next i

Cells(12, 12) = Cells(index1 + 3, 1)

'выводим значение самой выгодной культуры

End Sub

Sub ochistka()

Range("G10:K10").Value = " "

Range("L4:L9").Value = " "

Range("L11:L12").Value = " "

End Sub

Sub proverkaNa0()

Range("B4:K9").Value = "0"

End Sub

Sub proverkaNa1()

Range("B4:K9").Value = "1"

End Sub

Sub sortirovka()

For i = 1 To 6

Naimenovanie(i) = Cells(i + 3, 1)

urozhay_ob(i) = Cells(i + 3, 12)

Next i

For i = 1 To 5

For j = i + 1 To 6

If urozhay_ob(i) < urozhay_ob(j) Then

ur = urozhay_ob(i)

naim = Naimenovanie(i)

urozhay_ob(i) = urozhay_ob(j)

Naimenovanie(i) = Naimenovanie(j)

urozhay_ob(j) = ur

Naimenovanie(j) = naim

End If

Next j

Next i

For i = 1 To 6

Cells(i + 15, 1) = Naimenovanie(i)

Cells(i + 15, 2) = urozhay_ob(i)

Next i

End Sub

Sub zapolnit()

For j = 1 To 5

внешний цикл за 5 лет

For i = 1 To 6

'внутренний цикл для 6 видов культур

Cells(i + 3, j + 1) = 200

Next i

Next j

For j = 1 To 5

' внешний цикл за 5 лет

For i = 1 To 6

'внутренний цикл для 6 видов культур

Cells(i + 3, j + 6) = 20

Next i

Next j

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]