Программа решения задачи

Пример

1. Постановка задачи:Требуется создать программу расчета текущей рентабельности некоторого предприятия за прошедшие сутки.

Периодичность решения – ежедневно. Задача реализуется на ПЭВМ стандартной комплектации. Входная оперативная информация – сведения о количестве статей доходов и расходов, значения статей доходов и расходов в рублях за предыдущие сутки – вводится с клавиатуры. Промежуточная информация не накапливается и не сохраняется. Выходная информация – значение текущей рентабельности в % - выводится на дисплей в виде диалогового окна. Допустимый диапазон изменения числа статей доходов и расходов – от 0 до 10, допустимый диапазон изменения значений статей доходов и расходов – от 0 до 1 000 000,00 руб. Значения статей доходов и расходов не могут быть отрицательными. Источником возникновения информации являются оперативные данные бухгалтерии.

 

2. Экономико-математическая модель задачи следующая:

 

* 100%, ,

где: i – индекс статьи доходов, i=1,2,…, M;

M – число статей доходов; 0<=M<=10;

j – индекс статьи расходов, j=1,2,…, N;

N – число статей расходов; 0<= N<=10;

di – значение i-ой статьи доходов, руб; 0<=di<=1000000;

rj – значение j-той статьи расходов, руб; 0<= rj <=1000000.

В качестве метода решения данной задачи используется метод подстановок.

 

3. Алгоритм решения задачи представлен в виде блок-схемы и приведен в прилож. 12.

 

Исходный текст программы представлен ниже. Он содержит типичные синтаксические, смысловые и логические ошибки, допускаемые студентами. Программа оформлена в виде процедуры и должна находиться в стандартном модуле с именем Module2. Для ее создания необходимо в окне базы данных выполнить команду СоздатьàМодули или войти в окно редактора VBA (Alt+F11àРедактор VBAà меню InsernàModule).

 

Option Compare Database

Sub Текущая_рентабельность_c_ошибками()

Dim d(), r() As Currency

Dim Sum_d, Sum_r, rent, i, m, j, n As Integer

m = InputBox("Введите число статей доходов", "Доходы")

If m = Empti Or m<=0 Then

Exit Sub

n = Val(ImputBox("Введите число статей расходов", "Расходы"))

If m = Empty Or n<=0 Or n>=20 Then Exit Sub

ReDim d(m), r(1 To n) ‘Переопределение размеров массивов d(), r()

Sum_d = 0

Sum_r = 0

For i = 1 To m

Met1: d(i) = Val(InputBox("Введите значение статей _

доходов", "Доходы"))

If d(i)<=0 Or d(j)>1000000 then

Msgbox "Значение дохода не может быть меньше 0 _

и больше 1000000 руб."

Goto met1

End if

Sum_d = Sum_d + d(i)

For j = 1 To n Step -1

r(j) = Val(InputBox("Введите значение статей _

расходов", "Расходы"))

Sum_r = Sum_r + r(i)

Next j

rent = (Sum_d - Sum_r) / Sum_r

MsgBox "Значение текущей рентабельности равно " & _

rent & "%"

Print rent

EndSub

End Sub