Gambas2: решение уравнений
Методические материалыАвтор: Владимир Черный
Предлагаем вашему вниманию трансляцию урока по Visual Basic на Gambas. Я долго сомневался, нужно ли это кому-то, но Татьяна Ивановна Чупина меня убедила: «Цель данных публикаций это не показать «особенный» урок. По опыту знаю, что как не была бы хороша разработка, я её переделаю под себя. Учителям информатики в условиях перехода на СПО очень сложно охватить объем нового материала. Вот получили учебники Угринович — 11 профильный, аж за 2012 год и не поверите….опять VB, Delphi. Хоть плачь!!! И детям не выдашь, так как не понятно зачем, и, вроде, учебник есть. Так вот мне (как и моим коллегам по всей РФ) приходится вечером не семьей заниматься, а сидеть и решать задачки (к слову абсолютно бесполезные в плане ЕГЭ). Так вот чтобы было меньше разводов и забытых детей предлагаю публиковать программные коды на языке Gambas к учебнику Угриновича.»
С этим трудно не согласиться.
Урок «Решение уравнений»
автор: Чупина Т.И.
Тема: Приближенное решение уравнений в среде программирования Gambas. Угринович Н. Д., 11 класс, профильный уровень.
План.
1 этап — фронтальный опрос.
- Какие типы уравнений вы знаете?
- Как они решаются?
2 этап — новый материал.
Суть метода деления отрезка пополам изложена в учебнике.
3 этап — постановка задачи.
Задача: Найти корень уравнения x3-cos(x)=0 приближенными методами (графическим и численным методом деления пополам числового отрезка аргумента).
Интерфейс:
Программный код:
' Gambas class file
PUBLIC SUB _new()
END
PUBLIC SUB Form_Open()
END
PUBLIC SUB Button1_Click()
DIM x AS Float
DIM y AS Float
DRAW.BEGIN(DrawingArea1)
' подписи шкал математической системы координат
FOR x = -150 TO 150 STEP 50
Draw.Text(x / 100, x + 150, 50)
NEXT
FOR y = 0 TO 200 STEP 50
Draw.Text((y - 150) / 100, 150, 200 - y)
NEXT
Draw.Scale(1, -1) 'поворот оси у
Draw.Translate(150, -50) 'сдвиг по осям х и у
Draw.Line(-150, 0, 300, 0) 'ось х
Draw.Line(0, -150, 0, 50) 'ось y
'засечки на оси х
FOR x = -150 TO 150 STEP 50
Draw.Line(x, -5, x, 5)
NEXT
'засечки на оси у
FOR y = -100 TO 100 STEP 50
Draw.Line(-5, y, 5, y)
NEXT
'график функции
FOR x = -1.5 TO 1.5 STEP 0.01
y = x ^ 3 - Cos(x)
Draw.Circle(x * 100, y * 100, 2)
NEXT
DRAW.END()
END
PUBLIC SUB Button2_Click()
DIM a AS Float
DIM b AS Float
DIM p AS Float
DIM c AS Float
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
p = Val(TextBox3.Text)
WHILE (b - a) / 2 > p
c = (a + b) / 2
IF (a ^ 3 - Cos(a)) * (c ^ 3 - Cos(c)) < 0 THEN
b = c
ELSE
a = c
END IF
WEND
TextBox4.Text = (a + b) / 2
END
Примечание: Особенность решения этой задачи состоит в том, что её программный код максимально соответствует учебнику. Мне надоело «изобретать велосипед» и я решила следовать авторскому решению. Кроме того это оказался очень полезный опыт, так как решений на Gambas пока не много, а решений на VB достаточно. Поэтому если понять соответствие между программными кодами этих сред программирования, то можно значительно сэкономить время.
Предлагаю таблицу для сравнения программ на языке VB и Gambas. В скан-копии учебника маркером выделены те части, которые в большей степени совпадают.
Октябрь 31, 2012, 2:56 пп
Татьяна Ивановна, здравствуйте!
Вот бы выйти с такой инициативой на региональный институт АКИПКРО по вопросу издания практического пособия для учителей информатики, на базе института. А возможно подключить к данной работе еще учителей, методистов, преподавателей с педакадемии (на физ-мате есть соответствующие специалисты). Работа очень важная и востребованная.
С уважением, учитель информатики МБОУ «Гимназия 166″ г. Новоалтайска, Чебан ОО