Урок Информатики "Вычислительные программы"

Программирование в Lazarus для школьников.



Программирование в Lazarus для школьников.



Занятие № 8.



Вычислительные программы.

Матыцин Игорь Владимирович

Учитель математики и информатики 

МБОУ СОШ с. Девица







Цель: научить учеников писать программы для вычисления сложных математических выражений.





















Девица 2012.



Иногда в математике встречаются такие выражения, которые очень неудобно считать вручную. Для этого пишутся простые программы, похожие на программу-калькулятор из прошлого занятия.

Создается форма с несколькими полями ввода для ввода исходных данных. Количество полей ввода зависит от конкретной задачи. Например, нам нужно посчитать значение функции . Для нахождения значения нужно только значение переменной x, поэтому поле ввода должно быть одно.

Следующий этап это перевод математического выражения в код на Pascal. Для этого математические символы и функции заменяются  аналогичными доступными в Pascal.

Вот так будет выглядеть функция y после преобразования:

y:=abs(sqrt(sin(x))/abs(sqr(x)/sqrt(x)));

Важно помнить, что количество открытых скобок должно равняется количеству закрытых.

Давайте напишем программу для вычисления этой функции.



Рис 8.1 Интерфейс программы для вычисления функции y.









Вот так выглядит обработчик событий для кнопки:

procedure TForm1.Button1Click(Sender: TObject);

var

  x,y:real;

begin

  x:=StrToFloat(Edit1.Text);

  y:=abs(sqrt(sin(x))/abs(sqr(x)/sqrt(x))) ;

  Label2.Caption:=FloatToStr(y);

end;

Проверим работу программы вводя значения х равные 1, 2, 3, 4, 5, 6, 7.

Если у всех значения совпадут то все всё сделали правильно.

Теперь давайте решим такую задачу: даны два катета прямоугольного треугольника. Найти гипотенузу.

Гипотенуза находится по теореме Пифагора. 

Пусть g-гипотенуза, a-первый катет, b-второй катет.





Рис. 8.2 Рабочее окно программы гипотенуза.



Вот код обработчика событий для кнопки:

procedure TForm1.Button1Click(Sender: TObject);

var

  g,a,b:real;

begin

  a:=StrToFloat(Edit1.Text);

  b:=StrToFloat(Edit2.Text);

  g:=sqrt(sqr(a)+sqr(b));

  Label4.Caption:=FloatToStr(g);

end;































Практическое задание.

Известна площадь квадрата. Найти его сторону, периметр, диагональ.

Найти значение функции .

Доказать что (a+b)(a-b)=a2+b2.

Доказать что cos(a+b)=cos(a)cos(b)-sin(a)sin(b).

Begin1◦. Дана сторона квадрата a. Найти его периметр P = 4·a.

Begin2◦. Дана сторона квадрата a. Найти его площадь S = a2.

Begin3◦. Даны стороны прямоугольника a и b. Найти его площадь S = a·b и

периметр P = 2·(a + b).

Begin4◦. Дан диаметр окружности d. Найти ее длину L = π·d. В качестве

значения π использовать 3.14.

Begin5◦. Дана длина ребра куба a. Найти объем куба V = a3 и площадь его

поверхности S = 6·a2.

Begin6◦. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти

его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c).

Begin7◦. Найти длину окружности L и площадь круга S заданного радиуса R:

L = 2·π·R, S = π·R2.

В качестве значения π использовать 3.14.

Begin8◦. Даны два числа a и b. Найти их среднее арифметическое: (a + b)/2.

Begin9◦. Даны два неотрицательных числа a и b. Найти их среднее геометрическое, то есть квадратный корень из их произведения:

Begin10◦. Даны два ненулевых числа. Найти сумму, разность, произведение и

частное их квадратов.
Ввод и вывод данных, оператор присваивания 7

Begin11◦. Даны два ненулевых числа. Найти сумму, разность, произведение и

частное их модулей.

Begin12◦. Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c и периметр