Составление программы "Определение фруктово-ягодной культуры, приносящей хозяйству максимальный доход в течении 5 лет" (49093)

Посмотреть архив целиком

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РОССИЙСКОЙ ФЕДЕРАЦИИ

ИДО ГОУ МГИУ











Курсовая работа

по дисциплине

«Информатика»













Жуков 2009


Задание


В коллективном хозяйстве имеются фруктово-ягодные сады (яблоня, вишня, слива, черная смородина, крыжовник, клубника – всего 6 фруктово-ягодных культур). Каждый год в течение 5 лет колхоз собирал урожай с каждого сада и продавал урожай по закупочным ценам, которые различались по годам.

Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:

  • Исходные данные в виде таблицы, где указаны наименования фруктово-ягодных культур, закупочные цены каждой культуры и урожай в центнерах в каждом году;

  • Общий урожай каждой культуры за 5 лет;

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

  • Общий доход колхоза за 5 лет;

  • Наименование культуры, принесший максимальный доход за 5 лет.


Описание переменных


Исходные данные находятся на листе «Нач_д» (рис. 1) и содержат следующую информацию:

  1. Наименование фруктово-ягодных культур, которые колхоз собрал в течение 5 лет.

  2. Закупочные цены фруктово-ягодных культур и их вес в центнерах.

Результат работы программы оформляются на листе «Результат» (рис. 2).



Рис. 1. Лист с начальными данными


Рис. 2. Лист с результата программы


В программе переменные описаны следующим образом:

1) zakup_ceni(6, 5) – закупочные цены фруктово-ягодных культур представляет двухмерный массив дробных чисел

Dim zakup_ceni(6, 5) As Double

2) urozhai(6, 5) – урожай в центнерах каждой фруктово-ягодных культур в течение 5 лет представляет двухмерный массив дробных чисел

Dim urozhai(6, 5) As Double

3) obsh(6) – Общий урожай каждой культуры за 5 лет представляет массив дробных чисел

Dim obsh(6) As Double

4) doh(6, 5) – доход по каждым культурам за 5 лет представляет двухмерный массив дробных чисел

Dim doh(6, 5) As Double

5) obsh_doh(6) – общий доход по каждым культурам за 5 лет представляет массив дробных чисел

Dim obsh_doh(6) As Double

6) obsh_doh_pyat – общий доход колхоза за 5 лет

Dim obsh_doh_pyat As Double

7) yagod – наименование культуры принесший максимальный доход за 5 лет

Dim yagod As Double

8) max_kult – номер культуры с максимальным доходом

Dim max_kult As Integer

В программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами

Dim i As Integer, j As Integer



Блок-схема


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

Рассмотрим некоторые типы блоков:

  • Квадрат – блок решения;

  • Эллипс – данный блок используется для обозначения начала и конца алгоритма;

  • Ромб – данный блок используется для обозначения условного оператора;

  • Шестиугольник – данный блок используется для обозначения оператора цикла;

  • Стрелками обозначен переход от одного действия к другому;





Начало






Ввод данных (нулевых)

данных вспомогательных

величин




Открытие листа с данными

(«Нач_д»)







i = 1, 6





j = 1, 5


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

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







Открытие листа с

данными («Результат»)




Вывод данных формы

Cells(*,*)=…




i = 1, 6





j = 1, 5





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

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

obsh(i) = obsh(i) + urozhai(i, j)



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

Ввод данных формы

Cells(*,*)=…



i = 1, 6




j = 1, 5





doh(i, j) = zakup_ceni(i, j) * urozhai(i, j)

Cells(14 + i, 1 + j) = doh(i, j)






i = 1, 6




obsh_doh_pyat = obsh_doh_pyat + obsh_doh(i)

Cells(21, 7) = obsh_doh_pyat











i = 1, 6




j = 1, 5





obsh_doh(i) = obsh_doh(i) + doh(i, j)

Cells(14 + i, 7) = obsh_doh(i)




Нет

obsh_doh(i) > yagod



Да


yagod = obsh_doh(i)

max_kult = i

Cells(23, 6) = max_kult





Вывод данных формы

Cells(*,*)=…






Конец программы



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


Начало программы

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

Открытые листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (массивы zakup_ceni(6, 5) и urozhai(6, 5)).

Открытие листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (по закупочным ценам и урожаю в центнерах). Во внутреннем цикле (по урожаю в центнерах) суммируются количество фруктово-ягодных культур в центнерах по годам. Во внешнем (по закупочным ценам) тоже самое, но только суммируются цены по годам.

Расчеты выполняются по заданным формулам. Все циклы работают на счетчиках i и j. Вывод всех доходов определяются с помощью этих же циклов и по заданным формулам.

Определения фруктово-ягодной культуры принёсший максимальный доход в течении 5 лет образуется с помощью алгоритма сравнения и выводит на экран номер этой культуры. Порядковые номера фруктово-ягодных культур в программе записаны следующим образом:

  1. Яблоня

  2. Вишня

  3. Слива

  4. Черная смородина

  5. Крыжовник

  6. Клубника

При равенстве двух и более дневных сумм результативной считается первая сумма.


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


Public Sub Курсовая()

Dim zakup_ceni(6, 5) As Double 'Закупочные цены'

Dim urozhai(6, 5) As Double Урожай в центнерах'

Dim obsh(6) As Double 'Общий урожай каждой культуры за 5 лет'

Dim doh(6, 5) As Double 'Доход по каждым культурам за каждый год'

Dim obsh_doh(6) As Double 'Общий доход по каждым культурам за 5 лет'

Dim obsh_doh_pyat As Double 'Общий доход колхоза за 5 лет'

Dim yagod As Double ' наименование культуры принесший максимальный доход за 5 лет '

Dim max_kult As Integer 'Номер культуры'

Dim i As Integer, j As Integer

For i = 1 To 6

For j = 1 To 5

zakup_ceni(i, j) = 0

urozhai(i, j) = 0

Next j

Next i


Sheets("Нач_д").Select

For i = 1 To 6

For j = 1 To 5

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

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

Next j

Next i


Sheets("Результат").Select

Cells(1, 1) = "Начальные данные"

Cells(2, 1) = "Наименование фруктово-ягодных культур"

Cells(2, 2) = "Закупочные цены (руб.)"

Cells(2, 7) = "Урожай в центнерах"

Cells(2, 12) = "Общий урожай каждой культуры за 5 лет"

Cells(3, 2) = "2000 год"

Cells(3, 3) = "2001 год "

Cells(3, 4) = "2002 год "

Cells(3, 5) = "2003 год "

Cells(3, 6) = "2004 год "

Cells(3, 7) = "2000 год "

Cells(3, 8) = "2001 год "

Cells(3, 9) = "2002 год "

Cells(3, 10) = "2003 год "

Cells(3, 11) = "2004 год "

Cells(4, 1) = "1. Яблоня"

Cells(5, 1) = "2. Вишня"

Cells(6, 1) = "3. Слива"

Cells(7, 1) = "4. Чёрная смородина"

Cells(8, 1) = "5. Крыжовник"

Cells(9, 1) = "6. Клубника"


For i = 1 To 6

For j = 1 To 5

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

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

obsh(i) = obsh(i) + urozhai(i, j)

Next j

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

Next i


Cells(12, 1) = "Результат в денежном эквиваленте"

Cells(13, 1) = " Наименование фруктово-ягодных культур "


Cells(13, 2) = "Доход по всем культурам за каждый год"

Cells(14, 2) = "2000 год "

Cells(14, 3) = "2001 год "

Cells(14, 4) = "2002 год "

Cells(14, 5) = "2003 год "

Cells(14, 6) = "2004 год "

Cells(14, 7) = "Общий доход по всем культурам за 5 лет"

Cells(15, 1) = "1. Яблоня"

Cells(16, 1) = "2. Вишня"

Cells(17, 1) = "3. Слива"

Cells(18, 1) = "4. Черная смородина"

Cells(19, 1) = "5. Крыжовник"

Cells(20, 1) = "6. Клубника"


For i = 1 To 6

For j = 1 To 5

doh(i, j) = zakup_ceni(i, j) * urozhai(i, j)

Cells(14 + i, 1 + j) = doh(i, j)

Next j

Next i

Cells(21, 4) = "Общий доход колхоза за 5 лет"

For i = 1 To 6

obsh_doh_pyat = obsh_doh_pyat + obsh_doh(i)

Cells(21, 7) = obsh_doh_pyat

Next i

Cells(23, 1) = "Наименование (номер) культуры, принесший максимальный доход за 5 лет"


For i = 1 To 6

For j = 1 To 5

obsh_doh(i) = obsh_doh(i) + doh(i, j)


Случайные файлы

Файл
90557.rtf
180705.rtf
11752-1.rtf
77970.doc
73150.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.