Microsoft Small Basic

Program Listing: PLW517
'Популярная программа табулирования квадратичной функции на выбранном интервале
'c заданным шагом
' Создание окна
GraphicsWindow.Show()'Показать окно
GraphicsWindow.Width = 360 'Ширина окна
GraphicsWindow.Height = 360 ' Высота окна
GraphicsWindow.Title = "Табулирование функции n= x^2 на интервале" 'Заголовок окна
'Можно изменять размер окна, вдруг значений окажется слишком много
GraphicsWindow.CanResize = "true"

'Создание надписей над полями ввода информации
'Подписи
GraphicsWindow.DrawText(10,5,"Левая граница")
GraphicsWindow.DrawText(10,50,"Правая граница")
GraphicsWindow.DrawText(10,100,"Шаг")
'Кнопка
button_1 = Controls.AddButton("ок",10,150)
'Сами поля для ввода
text_1 = Controls.AddTextBox(10,25)
text_2 = Controls.AddTextBox(10,75)
text_3 = Controls.AddTextBox(10,120)
'При вводе текста запустится программа забрать значения из окошек
Controls.TextTyped = забратьЗначения
Sub забратьЗначения
If Controls.LastTypedTextBox = text_1 Then
a = Controls.GetTextBoxText(text_1)
ElseIf Controls.LastTypedTextBox = text_2 then
b = Controls.GetTextBoxText(text_2)
ElseIf Controls.LastTypedTextBox = text_3 then
с = Controls.GetTextBoxText(text_3)
EndIf
EndSub
'Если будет нажата кнопка ОК начнутся вычисления
'и вывод текстовых значений в окно
Controls.ButtonClicked = щелчокПоКнопке
'Подпрограмма Вычисления
Sub щелчокПоКнопке
'Печать шапки таблицы
GraphicsWindow.DrawBoundText (230, 1, 135, "________________")
GraphicsWindow.DrawBoundText (255, 15, 135, "x")
GraphicsWindow.DrawBoundText (310, 15, 135, "n=x^2")
GraphicsWindow.DrawBoundText (230, 25, 135, "________________")

'Цикл
For x = a to b step с
'к- счетчик кол-ва табуляций для правильного
'позиционирования значений в таблице по оси у
k=k+1

n=Math.Power (x,2)
'Строка поможет округлить до сотых
n= Math . Round ( n * 100 ) / 100
GraphicsWindow.DrawBoundText (230, 35+20*k, 135, "|")
GraphicsWindow.DrawBoundText (255, 35+20*k, 135, x)
GraphicsWindow.DrawBoundText (290, 35+20*k, 135, "|")
GraphicsWindow.DrawBoundText (320, 35+20*k, 135, n)
GraphicsWindow.DrawBoundText (350, 35+20*k, 135, "|")
endfor
EndSub