Основи офісного программування. Проектування додатку з умовним циклом: Методичні вказівки до лабораторного заняття № 5, страница 2

REM  *****  BASIC  *****

PUBLIC oDialog5 as Object

Sub Main

DialogLibraries.LoadLibrary("Standard")

oDialog5=CreateUnoDialog(DialogLibraries.Standard.Dialog5)

oDialog5.Execute()

oDialog5.Dispose()

End Sub

Sub ClickButton1

Dim curCina As Currency, intKilkist As Integer,i As Integer, curS As Currency

curS=0:I=0

Do While MsgBox("Чи будуть ще покупки?",4,"Покупки")=6

i=i + 1

curCina =CCur(InputBox("Введіть ціну", i + "- й товар "))

intKilkist = CInt(InputBox("Введіть кількість", i + "- й товар "))

curS = curS+ curCina*intKilkist

Loop

MsgBox("Вартість усіх покупок" + Format(curS,"0.00")+ " грн",,"Дякуємо за покупку")

End Sub

Завдання 3. Збереження проекту та запуск програми в роботу

Збережіть проект, натиснувши на кнопку з дискетою та запустіть програму в роботу через пункт меню Run або натиснувши кнопку RunSub/UserForm на стандартній панелі.

Завдання 4. Побудова економіко-математичної моделі, алгоритму, інтерфейсу  та коду рішення задачі з умовою в кінці циклу

Відкрийте документ Word та запешіть економіко-математичну модель задачі 2.

Задача 2. У річному фінансовому плані на ремонт приміщення виділяється певна (гранична) сума грошей. При плануванні витрат по місяцях необхідно так розподілити витрати, щоб їх сума не перевищувала встановленої граничної величини. Визначити загальну суму витрат на весь рік. Розподіл грошей припинити, якщо загальна сума витрат по місяцях перевищує виділену граничну суму або розподіл грошей по 12 місяцям року успішно завершено.

Економіко-математична модель

Нехай Sгр– гранична сума грошей, виділених на ремонт протягом року, а Витрата1Витрата2..., - суми, що витрачаються відповідно в першому, другому і так далі місяцях. Тоді загальна сума грошей, що витрачаються, за n місяців визначається по формулі

Sзаг = Витрата1 + Витрата2 + ...+ Витратаi +..+ Витратаn

де Sзаг <=Sгр, n-кількість місяців протягом року,  n<=12.

Алгоритм рішення задачі

Рис. 2. Алгоритм рішення задачі 2

Побудова інтерфейсу рішення задачі 2

Відкрийте другу форому. На формі для розрахунку використати командну кнопку, заголовок якої повинен бути Обчислити а ім’я cmdОбчислити. Для введення граничної суми використати елемент TextBoxпривласнивши йому ім’я txtГр. Для назви елемента TextBox та виведення результату використати елементи Label.

Код програми

Option Explicit ’ Обовязковий опис змінних

Private Sub cmdОбчислити_Click()

Const Кміс = 12Кількість місяців при плануванні

DimcurВитрата As Currency, curSЗаг As Currency, curSГр As Currency, i As Integer

curSГр=CCur(txtГр) ’ Введення граничної суми

curSЗаг = 0

i = 0

Планування витрат по місяцям

Do

i = i + 1

curВитрата=CCur(InputBox(“Введіть витрати ”, Str(i) & ”- й  місяць”))

curSЗаг = curSЗаг +  curВитрата

LoopUntil (i = Кміс) Or (curSЗаг >curSГр)

Підготовка і вивід результату

IfcurSЗаг>curSГр Then

lblРезультат=”За перші ” & Str(i) & “ місяців Ви розраховуєте  витратити ” & Format(curSЗаг, “0.00”) & “грн ”& vbCrLf “ Це більше граничної суми на  ” & Format(curSЗаг-curSГр, “0.00”) & “  грн ”

Else

lblРезультат= “За рік Ви розраховуєте витратити”&Format(curSЗаг, “0.00”) & “грн ”

End If

End Sub

Код програми в OpenОffice

REM  *****  BASIC  *****

PUBLIC oDialog6 as Object

Sub Main

DialogLibraries.LoadLibrary("Standard")

oDialog6=CreateUnoDialog(DialogLibraries.Standard.Dialog6)

oDialog6.Execute()

oDialog6.Dispose()

End Sub

Sub Button1_Click()

Const Kmis=12

Dim curVitraty As Currency, curSzag As Currency,curSgr As Currency, i As Integer

Dim oTextField1,oLabel1,olabel2 as Object

oTextField1 = oDialog6.getControl("TextField1")

oLabel1 = oDialog6.getControl("Label1")

oLabel2 = oDialog6.getControl("Label2")

curSgr=CCur(oTextField1.Text)

curSzag=0:I=0

Do

i = i + 1

curVitraty =CCur(InputBox("Введіть витрати", Str(i) + "- й місяць "))

curSzag = curSzag + curVitraty

Loop Until(i = Kmis)Or(curSzag > curSgr)

if curSzag > curSgr Then

oLabel2.Text="За перші" + Str(i)+ "місяців Ви розраховуєте витратити " + Str(curSzag) + " грн."+ Chr(13)+ _

"Це більше граничної суми на" + Str(curSzag-curSgr) + " грн."

Else

oLabel2.Text= "За рік Ви розраховуєте витратити " + curSzag + " грн."

End if

End Sub

Завдання 5. Збереження проекту та запуск програми в роботу

Збережіть проект, натиснувши на кнопку з дискетою та запустіть програму в роботу через пункт меню Run або натиснувши кнопку RunSub/UserForm на стандартній панелі.