Small Basic: табулирование функции на интервале
На прошлом уроке разбиралась задача табулирования функции в Small Basic на заданном интервале. Все расчеты производились в текстовом окне Small Basic. А как быть, если требуется вывести результаты на форму Small Basic? Кроме того, пределы интервала и шаг изменения аргумента должны быть получены нам через инициализированную форму Small Basic.
Порядок действий:
1) Покажем форму Small Basic заданной ширины и высоты.
2) Разрешим пользователю изменять размер формы Small Basic, ведь интервал табулирования может большой, а шаг изменений маленький.
3) Нам понадобится три поля Small Basic для ввода значений, три надписи Small Basic для их обозначения и кнопка Small Basic, запускающая процесс расчета и вывода результатов на форму.
4) Будут использоваться три переменные a- левая граница интервала, b-правая граница интервала, c- шаг табуляции.
5) Для возведения в степень будем использовать функцию Small Basic Math.Power (x,2)
6) Поскольку вывод формата чисел, например, до второго знака после запятой нами найден не был в Small Basic, то воспользуемся приемом n= Math . Round ( n * 100 ) / 100
Программа опубликована на сервере.
Порядок действий:
1) Покажем форму Small Basic заданной ширины и высоты.
2) Разрешим пользователю изменять размер формы Small Basic, ведь интервал табулирования может большой, а шаг изменений маленький.
3) Нам понадобится три поля Small Basic для ввода значений, три надписи Small Basic для их обозначения и кнопка Small Basic, запускающая процесс расчета и вывода результатов на форму.
4) Будут использоваться три переменные a- левая граница интервала, b-правая граница интервала, c- шаг табуляции.
5) Для возведения в степень будем использовать функцию Small Basic Math.Power (x,2)
6) Поскольку вывод формата чисел, например, до второго знака после запятой нами найден не был в Small Basic, то воспользуемся приемом n= Math . Round ( n * 100 ) / 100
Программа опубликована на сервере.
proga2.zip | |
File Size: | 154 kb |
File Type: | zip |
Текст программы в Small Basic
'Популярная программа табулирования квадратичной функции на выбранном интервале
'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
'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