Скачиваний:
94
Добавлен:
15.06.2014
Размер:
90.01 Кб
Скачать

Лабораторная работа №1

Вариант 2

Выполнили:

ст. гр.

Задание:

Министерство сельского хозяйства некоторой страны имеет информационно-справочную систему (ИСС), состоящую из четырёх основных баз данных: сельскохозяйственной, технической, нормативной и экономической информации. Все запросы, направляемые в ИСС, обращаются к базе данных сельскохозяйственной информации. Кроме того, многие запросы связаны с получением дополнительной информации: 40% запросов связаны с получением технической информации, 30% – нормативной, 40% – экономической. Запрос может быть связан как с получением дополнительной информации одного вида (например, только нормативной), так и нескольких (например, нормативной и технической).

Для сельскохозяйственных предприятий и организаций плата за получение информации (за один запрос) следующая: сельскохозяйственная информация – 10 ден. ед., техническая – 12 ден. ед., нормативная – 15 ден. ед., экономическая – 20 ден. ед. Если требуется информация нескольких видов (например, сельскохозяйственная, нормативная и экономическая), то плата суммируется (в данном случае она составит 10+15+20=45 ден. ед.). Для пользователей, не относящихся к сфере сельского хозяйства, плата повышается в 1,1 раза; такие пользователи составляют 25% от всех пользователей ИСС.

Составить алгоритм и программу (на основе метода Монте-Карло) для определения следующих величин:

– вероятность того, что по запросу потребуется дополнительная информация (т.е. не только сельскохозяйственная);

– среднюю выручку от обработки одного запроса.

Код (VBA MS Excel):

Sub Кнопка1_щелчок()

N = Range("B5").Value

ThInf = Range("B2").Value / 100

NorInf = Range("B3").Value / 100

EcInf = Range("B4").Value / 100

CInf = 10

CThInf = 12

CNorInf = 15

CEcInf = 20

Enhsm = 1.1

PEnhsm = 0.25

EnhP = 0

Sum = 0

Sum1 = 0

flag = 0

SumFlg = 0

For i = 1 To N

Sum1 = Sum1 + CInf

PThInf = Rnd

PNorInf = Rnd

PEcInf = Rnd

If PThInf <= ThInf Then

Sum1 = Sum1 + CThInf

flag = 1

End If

If PNorInf <= NorInf Then

Sum1 = Sum1 + CNorInf

flag = 1

End If

If PEcInf <= EcInf Then

Sum1 = Sum1 + CEcInf

flag = 1

End If

If flag = 1 Then

SumFlg = SumFlg + 1

End If

EnhP = Rnd

If EnhP < PEnhs Then

Sum1 = Sum1 * 1.1

End If

Sum = Sum + Sum1

flag = 0

Sum1 = 0

Next i

Range("B7").Value = SumFlg / N

Range("B8").Value = Sum / N

End Sub

Пример результата:

Соседние файлы в папке laby