Программа решения задачи
Пример
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