Планирование уроков на учебный год (по учебнику Н.Д. Угриновича, профильный уровень)



Уроки 2 - 7
§1.2. Построение и исследование физических моделей




Содержание урока

1.2.1. Построение формальной модели движения тела, брошенного под углом к горизонту
1.2.2. Компьютерная модель движения тела на языке Visual Basic
1.2.3. Компьютерная модель движения тела на языке Turbo Delphi

Проект «Бросание мячика в стенку» на языке Turbo Delphi

Компьютерный эксперимент

Анализ результатов

Корректировка модели

Проект «Диапазон углов» на языке Turbo Delphi

Контрольные вопросы

1.2.4. Компьютерная модель движения тела в электронных таблицах

1.2.3. Компьютерная модель движения тела на языке Turbo Delphi


На основе формальной модели, описывающей движение тела, брошенного под углом к горизонту, создадим компьютерную модель с использованием системы программирования Turbo Delphi.

Проект «Бросание мячика в стенку» на языке Turbo Delphi


Создадим сначала графический интерфейс проекта.

1. Разместить на форме (рис. 1.4):

• четыре текстовых поля для ввода значений: EditV0 — начальной скорости, EditА — угла бросания мячика, EditS — расстояния до стенки и EditL — высоты стенки;
• надпись Label1 для вывода высоты мячика на заданном расстоянии;
• надпись Label2 для вывода текстового сообщения о результатах броска;
• десять надписей для вывода имен переменных и единиц измерения;
• кнопку Button1 для запуска событийной процедуры вычисления результатов бросания мячика;
• кнопку Button2 для демонстрации траектории движения мячика.

2. Ввести в программный код в оператор uses модуль Math, который обеспечивает подключение математических функций (Cos (), Tan () и т. д.).


uses
Windows, Messages, SysUtilsf Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Math;

3. Объявить переменные (вещественные одинарной точности) и константы для всего проекта:


var //начало раздела объявления переменных
V0: real; //начальная скорость
A: real; //угол бросания
S: real; //расстояние до стенки
Н: real; //высота стенки
const //начало раздела объявления констант
G = 9.81;
Pi = 3.14;

4. Создать программный код событийной процедуры TForm1.Button1Cliсk, определяющей попадание мячика в стенку. В этом коде:

• объявить вещественную переменную одинарной точности L для данной событийной процедуры (высота мячика l в момент попадания в стенку);
• присвоить переменным VO, A, S, Н значения, введенные в текстовые поля, с использованием функции преобразования строки в вещественное число StrToFloat();
• вычислить высоту мячика L на заданном расстоянии по формуле (1.2);
• вывести высоту мячика L в поле надписи Label1;
• вывести текстовое сообщение о результатах броска в поле надписи Labe 12 с использованием оператора If-Then-Else, в котором в качестве условия проверяется значение переменной L.


procedure TForm1.ButtonlClick(Sender:TObject);
var //начало раздела объявления переменных
L: real;
//высота мячика в момент попадания
//в стенку
begin
VO:=StrToFloat(EditVO.Text);
A:=StrToFloat(EditA.Text);
S:=StrToFloat(Edits.Text);
Hi^StrToFloat(EditL.Text);
//Попадание в стенку
L:=S*Tan(A*Pi/160)-G*Sqr(S)/(2*Sqr(VO*
Cos(A*Pi/l80) ) ) ;
Label1.Caption:=FloatToStr(L) ;
if L<0 then
Label2.Caption: = 'Недолет'
else if L>H then
Label2.Caption:='Перелет'
else
Label2.Caption:='Попадание';
end;

Для визуализации формальной модели построим траекторию движения тела (график зависимости высоты мячика над поверхностью земли от дальности полета). Снабдим график осями координат со шкалами и выведем положение стенки.

5. Поместить на форму графическое поле Image1, в котором будет осуществляться построение графика.

С помощью диалогового окна Инспектор объектов установить размеры графического поля, например свойству Height присвоить значение 200, a Width — 400.

6. Создать событийную процедуру TForm1.Button2Click, в которой:

• объявить вещественную переменную Т (время);
• объявить целочисленные переменные X, Y и N (координаты мячика и счетчик цикла);
• присвоить переменным VO, A, S, H значения, введенные в текстовые поля, с использованием функции преобразования строки в вещественное число StrToFloat();
• построить траекторию движения мячика на объекте Image1.Canvas;
• построить оси X и Y со шкалами и стенку.

Функция Round () необходима, чтобы преобразовывать вещественные переменные одинарной точности в целочисленные переменные (значения координат).


procedure TForm1.Button2Click(Sender: TObject);
var //начало paздела объявления переменных
X: integer; //координата X
Y: integer; //координата Y
Т: real; //время
N: integer; //счетчик
begin
//Ввод начальных значений
V0:=StrToFloat(EditVO.Text);
А:=StrToFloat(EditA.Text);
S:=StrToFloat(Edits.Text);
L:=StrToFloat(EditL.Text);
//рисование траектории
with Image1.Canvas do
begin
while T<5 Do
begin
T:-T+0.005;
Y:=180-Round(10*(V0*Sin(A*Pi/180)*T-G*T*T/2));
X:=5+Round(10*(VQ*Cos(A*Pi/180)*T));
Pixels[X,Y]:=clBlack;
end;
MoveTo(0,180);
LineTo<400,180);
//ось X MoveTo(5,0); LineTo(5,400);
//ось Y
MoveTo(Round(5+10*5),Round(180));
//стенка LineTo(Round(5+10*S),180-Round(10*H));
//шкала оси X
N: =0;
while N<400 do
begin
N:=N+50;
MoveTo(5+N,180);
LineTo(5+N,200); T
extOut(7+N,180,IntToStr(Round(N/10)));
end;
//шкала оси Y
N: =0;
while N<200 do
begin
N:=N+50;
MoveTo(0,180-N); LineTo(10,180-N);
TextOut(0,180-N,IntToStr(Round(N/10)));
end;
end;
end
;


Следующая страница Компьютерный эксперимент



Cкачать материалы урока





Наверх