Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемВалерий Воронов
1 Тема урока: Разработка моделирующих компьютерных программ.
2 Содержательная постановка задачи «Бросание мячика в стенку» В процессе тренировок теннисистов используются автоматы по бросанию мячика. Необходимо задать автомату необходимую скорость и угол бросания мячика для попадания в стенку определенной высоты, находящуюся на известном расстоянии.
3 Качественная описательная информационная модель Сначала построим качественную описательную модель процесса движения тела с использованием объектов, понятий и законов физики, т.е. в данном случае идеализированную модель движения объекта. Из условий задачи можно сформулировать следующие основные допущения: Мячик мал по сравнению с Землей, поэтому его можно считать материальной точкой Изменение высоты мячика мало, поэтому ускорение свободного падения можно считать постоянной величиной g=9,8 м/с 2,следовательно движение по оси Y можно считать равноускоренным. Скорость бросания мячика мала, поэтому сопротивлением воздуха можно пренебречь, следовательно, движение по оси Х можно считать равномерным.
4 Формальная модель Для формализации модели обозначим величины: Начальная скорость мячика – V Угол бросания мячика - a Высоту стенки – h Расстояние до стенки – s Используем известные из курса физики формулы равномерного и равноускоренного движения для определения координат мячика. Дальность х и высоту у при заданной начальной скорости V и угле бросания a для любого момента времени t можно рассчитать по следующим формулам:
5 Формальная модель
6 Формализуем теперь условие попадания мячика в мишень. Попадание произойдет, если значение высоты мячика L будет удовлетворять условию в форме неравенства: 0 L h Если L h, то это означает «перелет».
7 Практическая часть На основании формальной модели, описывающей движение тела, брошенного под углом к горизонту, создадим компьютерную модель с использованием системы программирования Lazarus.
8 1) Запустить среду разработки приложений (систему программирования) Lazarus 1.1) Приложения – Программирование – Lazarus 1.2) На экране появятся окна данной программы:
9 2) Создадим сначала графический интерфейс программы: 2.1) Разместите на форме компоненты в соответствии с указанным ниже порядком:
10 2.2) Сделать настройки для каждого из элементов, расположенных на форме в соответствии с теми, что приведены ниже: Настройка свойств производится следующим образом: - на форме щелкаем левой кнопкой мыши по нужному объекту (он выделится квадратиками), - далее переходим к окну «Инспектор объектов» и изменяем свойства так, как указано ниже: Настройка формы (Form1) Caption -> Бросание мячика в стенку (название окна формы) Height -> 260(отступ надписи от левого края формы) Width -> 776 (отступ надписи от верхнего края формы)
11 Надпись (Label1) Caption -> Начальная скорость (V0): (название надписи) Left -> 16 (отступ надписи от левого края формы) Top -> 22 (отступ надписи от верхнего края формы) Надпись (Label2) Caption -> Угол бросания мячика (А): (название надписи) Left -> 16 (отступ надписи от левого края формы) Top -> 53 (отступ надписи от верхнего края формы) Надпись (Label3) Caption -> Расстояние до стенки (S): (название надписи) Left -> 16 (отступ надписи от левого края формы) Top -> 84 (отступ надписи от верхнего края формы) Надпись (Label4) Caption -> Высота стенки (H): (название надписи) Left -> 16 (отступ надписи от левого края формы) Top -> 118 (отступ надписи от верхнего края формы)
12 Текстовое поле (Edit1) Left -> 208 (отступ надписи от левого края формы) Name -> EditV0 (название объекта для системы программирования) Top -> 16 (отступ надписи от верхнего края формы) Width -> 80 (ширина текстового поля) Text -> (оставить поле пустым) Текстовое поле (Edit2) Left -> 208 (отступ надписи от левого края формы) Name -> EditA (название объекта для системы программирования) Top -> 47 (отступ надписи от верхнего края формы) Width -> 80 (ширина текстового поля) Text -> (оставить поле пустым) Текстовое поле (Edit3) Left -> 208 (отступ надписи от левого края формы) Name -> EditS (название объекта для системы программирования) Top -> 79 (отступ надписи от верхнего края формы) Width -> 80 (ширина текстового поля) Text -> (оставить поле пустым) Текстовое поле (Edit4) Left -> 208 (отступ надписи от левого края формы) Name -> EditL (название объекта для системы программирования) Top -> 112 (отступ надписи от верхнего края формы) Width -> 80 (ширина текстового поля) Text -> (оставить поле пустым)
13 Надпись (Label5) Caption -> м/с (название надписи) Left -> 296 (отступ надписи от левого края формы) Top -> 22 (отступ надписи от верхнего края формы) Надпись (Label6) Caption -> град (название надписи) Left -> 296 (отступ надписи от левого края формы) Top -> 52 (отступ надписи от верхнего края формы) Надпись (Label7) Caption -> м (название надписи) Left -> 296 (отступ надписи от левого края формы) Top -> 84 (отступ надписи от верхнего края формы) Надпись (Label8) Caption -> м (название надписи) Left -> 296 (отступ надписи от левого края формы) Top -> 118 (отступ надписи от верхнего края формы) Надпись (Label9) Caption -> Точность: (название надписи) Left -> 72 (отступ надписи от левого края формы) Top -> 168 (отступ надписи от верхнего края формы)
14 Надпись (Label10) Alignment -> taCenter (выравнивание текста по центру) AutoSize -> False (не подгонять размер надписи по длине текста) Caption -> сделать пустым (название надписи) Left -> 148 (отступ надписи от левого края формы) Top -> 168 (отступ надписи от верхнего края формы) Width -> 190 (ширина надписи) Надпись (Label11) Caption -> м (название надписи) Left -> 344 (отступ надписи от левого края формы) Top -> 168 (отступ надписи от верхнего края формы) Width -> 24 (ширина надписи) Надпись (Label12) Caption -> Результат: (название надписи) Left -> 72 (отступ надписи от левого края формы) Top -> 192 (отступ надписи от верхнего края формы) Надпись (Label13) Alignment -> taCenter (выравнивание текста по центру) AutoSize -> False (не подгонять размер надписи по длине текста) Caption -> сделать пустым (название надписи) Left -> 152 (отступ надписи от левого края формы) Top -> 192 (отступ надписи от верхнего края формы) Width -> 177 (ширина надписи)
15 Кнопка (Button1) Caption -> Бросить мяч (название надписи) Left -> 165 (отступ надписи от левого края формы) Top -> 224 (отступ надписи от верхнего края формы) Width -> 123 (ширина кнопки) Изображение (Image1) Height -> 200 (высота картинки) Left -> 368 (отступ надписи от левого края формы) Top -> 16 (отступ надписи от верхнего края формы) Width -> 400 (ширина картинки)
16 3) Отредактировать код программы в соответствии с тем, как указано ниже: 3.1) Перейти к окну «Редактор исходного кода»: 3.2) Находим следующий код: uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs; …и дописываем к нему Math (модуль, который обеспечивает выполнение математических функций в создаваемой программе). Должно получиться следующее: uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Math; 3.3) Далее находим следующий код: var Form1: TForm1; …и дописываем к нему переменные, которые будут использоваться во время работы программы
17 var Form1: TForm1; v0, a, s, h : real; v0 – для хранения значения начальной скорости а – для хранения значения угла бросания мячика s – для хранения значения расстояния до стенки h – для хранения значения высоты стенки … далее выше этого кода дописываем следующий код: Const G = 9.8; Pi = 3.14; G – ускорение свободного падения Pi – число Пи Должно получиться следующее: Const G = 9.8; Pi = 3.14; var Form1: TForm1; v0, a, s, h : real;
18 3.4) Далее напишем код программы, который будет выполняться при нажатии на кнопку Бросить мяч. Для этого делаем двойной щелчок по этой кнопке. На первый план перейдет окно «Редактор исходного кода» со следующим кодом: procedure TForm1.Button1Click(Sender: TObject); begin end; …приводим его к следующему виду:
19 procedure TForm1.Button1Click(Sender: TObject); Var L, t : real; x, y, n : integer; Begin v0 := strtofloat(editV0.text); a := strtofloat(editA.text); s := strtofloat(editS.text); h := strtofloat(editL.text); L := s * tan(a*pi/180) - g*sqr(s)/(2*sqr(v0*cos(a*pi/180))); Label10. Caption := floattostr(L); if L<0 then label13. Caption := 'Недолет' else if L > h then label13. Caption := 'Перелет' else Label13. Caption := 'Попадание'; image1. Picture := nil; with image1. Canvas do begin while t <5 do
20 begin t:=t+0.005; y:=180-round(10*(v0*sin(a*pi/180)*t-g*t*t/2)); x:=5+round(10*(v0*cos(a*pi/180)*t)); pixels[x,y]:=clred; end; moveto(0,180); lineto(400,180); moveto(5,0); lineto(5,400); moveto(round(5+10*s),round(180)); lineto(round(5+10*s),180-round(10*h)); n:=0; while n<400 do begin n:=n+50; moveto(5+n,180); lineto(5+n,200); textout(7+n,180,inttostr(round(n/10))); end; n:=0;
21 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;
22 4) Нажать кнопку F9 (произойдет компиляция и запуск программы на выполнение) и анализируем модель при помощи программы: 4.1) Анализ результатов: Например, диапазон значений угла бросания мячика от 32,6 до 36,1 градусов, обеспечивает попадание в стенку высотой 1 метр, находящуюся на расстоянии 30 метров, мячиком, брошенным со скорость 18 м/с. Например, диапазон значений угла бросания мячика от 55,8 до 57,4 градусов, обеспечивает попадание в стенку высотой 1 метр, находящуюся на расстоянии 30 метров, мячиком, брошенным со скорость 18 м/с.
24 Выполнила: учитель информатики МОУ Таловская СОШ Таловского района Воронежской области Попова Е. Д.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.