Информационно-образовательный сайт учителя информатики и ИКТ     вход :: регистрация
   

Информатика и информационно-коммуникационные технологии в школе

 
   

   16.04.2024г.

Доброе утро!  

Разделы сайта
 
  Материалы к урокам информатики в 7-9 по ФГОС. Новые презентации. Тесты.
 
  Знакомство с программирование, визуальное программирование.
 
  Планы, конспекты, презентации, методические находки, дидактический материал к уроку
 
  Настройка и использование школьной компьютерной сети
 
  Краткий теоретический материал, который можно применять на уроке...
 
  Разные полезности, программы, инструкции, советы...
 
  Как сохранить здоровье на уроках информатики
 
  Примерные экзаменационные билеты и ответы
 
  Программы для скачивания...
 
  Правила для пользователей портала
 
  Компьютерное тестирование знаний. Наш проект. Cправочное online руководство по программе
 
 
Сервисы сайта
все новости...
поиск по статьям сайта...
вопросы, обсуждения, решаем проблемы вместе ...
отзывы, замечания, предложения...
проверить свои знания, пройдя тесты в режиме online...
образовательные сайты, друзья портала...
для связи с администратором портала
 
Внимание! Опрос!

Есть ли в Вашей школе новые учебники информатики?

Да
Нет
Частично


результаты

____________________

  Полная или частичная перепечатка каким бы то ни было способом материалов данного сайта допускается только с письменного согласия автора.
  При цитировании или ином использовании материалов ссылка на сайт www.klyaksa.net обязательна.

____________________
 
Наши проекты:

MyTestX - лего и удобно

 
 
Улыбнитесь
Клиент:
-Что-бы купить у вас системный блок, нужно приходить со своим монитором?
-Вам - нужно!

Реклама:


 

Rambler's Top100

Рейтинг@Mail.ru
Яндекс цитирования
 
 

Начало » Конспекты школьника » Часть 2 » [Учимся программировать!][Моделирование физических процессов]

Учимся программировать!
Конспекты школьника.
www.klyaksa.net

Моделирование физических процессов.

На этом занятии займемся исследование физических моделей.

Рассмотрим процесс решения задачи на конкретном примере:

Тело брошено с некоторой высоты с начальной скоростью, направленной под углом к горизонту. Определить угол при котором дальность полета будет максимальной.

На первом этапе обычно строится описательная информационная модель объекта или процесса. В нашем случае с использованием физических понятий создается идеализированная модель движения объекта. Из условия задачи можно сформулировать следующие основные предположения:

1) тело мало по сравнению с Землей, поэтому его можно считать материальной точкой;
2) скорость бросания тела мала, поэтому:
— ускорение свободного падения считать постоянной величиной;
— сопротивлением воздуха можно пренебречь.

На втором этапе создается формализованная модель, т. е. описательная информационная модель записывается с помощью какого-либо формального языка.

тело брошено под угом к горизонту с некоторой высоты

Из курса физики известно, что описанное выше движение является равноускоренным. При заданных начальной скорости (v0), начальной высоте (h0), угле бросания зависимость дальности полета (L) можно описать следующими математическими формулами:

Зависимость координат от времени:

x=v0tcos(a)

y=y0+v0tsin(a)+gt2/2

отсюда:

Получаем квадратное уравнение:

Решаем это уравнение:

Дальность полета найдем по формуле:

L=v0tcos(a)

На третьем этапе необходимо формализованную информационную модель преобразовать в компьютерную на понятном для компьютера языке. Существуют два принципиально различных пути построения компьютерной модели:

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

Для реализации первого пути надо построить алгоритм  и закодировать его на одном из языков программирования, например на языке Visual Basic.

В программе используются две константы:

Const PI = 3.14159265
Const g = 9.8

Дальность полета, если известны начальные данные, можно определить так:

D = (2 * v0 * Sin(a * (PI / 180))) ^ 2 + 4 * g * 2 * h0
t1 = (2 * v0 * Sin(a * (PI / 180)) + Sqr(D)) / (2 * g)
t2 = (2 * v0 * Sin(a * (PI / 180)) - Sqr(D)) / (2 * g)

Корень t2 не удовлетворяет нашей задаче. Значит время полета - это t1.

L = v0 * Cos(a * (PI / 180)) * t1

Определить искомый угол можно используя следующий алгоритм:

aa = 0   'искомый угол
maxL = 0   'максимальная дальность полета
For a = 0 To 90
D = (2 * v0 * Sin(a * (PI / 180))) ^ 2 + 4 * g * 2 * h0
t1 = (2 * v0 * Sin(a * (PI / 180)) + Sqr(D)) / (2 * g)
L = v0 * Cos(a * (PI / 180)) * t1
If L >= maxL Then
maxL = L
aa = a
End If
Next

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

Создайте новый стандартный проект и разместите на форме все необходимые компоненты, установите их свойства.

Объект Свойство Значение
Форма имя frmFlight
Caption Движение тела
Frame Caption Начальные данные:
Frame Caption Масштаб:
Label (надпись) Caption Высота (м):
Label (надпись) Caption Скорость (м/с):
Label (надпись) Caption Угол (град):
Label (надпись) Caption Макс. дальность достигается при угле:
Label (надпись) Caption Максимальная дальность:
Label (надпись) Caption Минимальное значение X:
Label (надпись) Caption Минимальное значение Y:
Label (надпись) Caption Максимальное значение X:
Label (надпись) Caption Максимальное значение Y:
Текстовое поле имя txtH0
Text 0
Текстовое поле имя txtV0
Text 0
Текстовое поле имя txtA0
Text 0
Текстовое поле имя txtMinX
Text (пустая строка)
Текстовое поле имя txtMaxX
Text (пустая строка)
Текстовое поле имя txtMinY
Text (пустая строка)
Текстовое поле имя txtMaxY
Text (пустая строка)
Кнопка имя cmdCalculate
Caption Вычислить угол
Кнопка имя cmdPaint
Caption Построить график
Кнопка имя cmdClear
Caption Очистить
Кнопка имя cmdNewScale
Caption Задать масштаб
Графическом поле (PictureBox) имя picGrafic
Appearance 0-плоская
AutoRedraw true

форма в процессе редактирования

Напишем код проекта.

В разделе "General" опишем некоторые переменные и константы:

Dim v0, h0, D, a, L As Double
Dim XMin, YMin, YMax, XMax As Integer
Const PI = 3.14159265
Const g = 9.8

Координатную сетку нарисуем так же как на предыдущем занятии.

Dim v0, h0, D, a, L As Double
Dim XMin, YMin, YMax, XMax As Integer
Const PI = 3.14159265
Const g = 9.8

Private Sub cmdNewScale_Click()
XMin = txtMinX
YMin = txtMinY
XMax = txtMaxX
YMax = txtMaxY
picGrafic.Cls
SetScale
End Sub

Private Sub Form_Load()
XMin = -1
YMin = -1
YMax = 10
XMax = 10

txtMinX = XMin
txtMinY = YMin
txtMaxX = XMax
txtMaxY = YMax

SetScale
End Sub

Private Sub SetScale()

picGrafic.Scale (XMin, YMax)-(XMax, YMin)
'координатная сетка
For x = XMin To XMax
picGrafic.Line (x, YMax)-(x, YMin), RGB(240, 240, 240)
Next x

For y = YMin To YMax
picGrafic.Line (XMin, y)-(XMax, y), RGB(240, 240, 240)
Next y

'оси координат
picGrafic.Line (0, YMin)-(0, YMax), RGB(150, 150, 150)
picGrafic.Line (XMin, 0)-(XMax, 0), RGB(150, 150, 150)

'подпись осей
picGrafic.ForeColor = RGB(150, 150, 150)

For x = XMix To XMax 'Step Int((XMax - XMin) / 5)
picGrafic.CurrentX = x
picGrafic.CurrentY = 0
picGrafic.Print x
Next x

For y = YMix To YMax 'Step Int((YMax - YMin) / 5)
picGrafic.CurrentX = 0
picGrafic.CurrentY = y
picGrafic.Print y
Next y

picGrafic.ForeColor = RGB(100, 0, 0)
picGrafic.CurrentX = XMax - picGrafic.TextWidth("X, м")
picGrafic.CurrentY = 0 - picGrafic.TextHeight("X, м")
picGrafic.Print "X, м"
picGrafic.CurrentX = 0 - picGrafic.TextWidth("Y, м")
picGrafic.CurrentY = YMax
picGrafic.Print "Y, м"
End Sub

Вычисление угла и дальности полета проведем по рассмотренным выше формулам.

Private Sub cmdCalculate_Click()
h0 = Val(txtH0)
v0 = Val(txtV0)
aa = 0 'искомый угол
maxL = 0 'максимальная дальность полета
For a = 0 To 90
D = (2 * v0 * Sin(a * (PI / 180))) ^ 2 + 4 * g * 2 * h0
t1 = (2 * v0 * Sin(a * (PI / 180)) + Sqr(D)) / (2 * g)
L = v0 * Cos(a * (PI / 180)) * t1
If L >= maxL Then
maxL = L
aa = a
End If
Next
lblResultA.Caption = aa
lblResultL.Caption = maxL
End Sub

Напишем код рисования графика движения тела.

Private Sub cmdPaint_Click()
h0 = Val(txtH0)
v0 = Val(txtV0)
a = Val(txtA0)
D = (2 * v0 * Sin(a * (PI / 180))) ^ 2 + 4 * g * 2 * h0
t1 = (2 * v0 * Sin(a * (PI / 180)) + Sqr(D)) / (2 * g)
For t = 0 To t1 Step 0.001
x = v0 * Cos(a * (PI / 180)) * t
y = h0 + v0 * Sin(a * (PI / 180)) * t - g * t * t / 2
picGrafic.PSet (x, y), RGB(0, 0, 200)
Next t
End Sub

Private Sub cmdClear_Click()
picGrafic.Cls
SetScale
End Sub

Все. Приложение готово.

Четвертый этап исследования информационной модели состоит в проведении компьютерного эксперимента. Если компьютерная модель существует в виде программы на одном из языков программирования, ее нужно запустить на выполнение и получить результаты. Если компьютерная модель исследуется в приложении, например в электронных таблицах, можно провести сортировку или поиск данных, построить диаграмму или график и т. д.

исследования информационной модели

На пятом этапе выполняется анализ полученных результатов и при необходимости корректировка исследуемой модели. Например, в нашей модели необходимо учесть, что не имеет физического смысла вычисление координаты тела после его падения на поверхность Земли.

Таким образом, технология решения задач с помощью компьютера состоит из следующих этапов: построение описательной модели — формализация — построение компьютерной модели — компьютерный эксперимент — анализ результатов и корректировка модели.
 

 предыдущий урок :: содержание :: следующий урок

 

 

 

 

 

 

 

 

 

 

[Добавить в избранное]

 
Рекомендуем:

MyTest

Компьютерное тестирование знаний учащихся, сертификация и аттестация сотрудников.
Деcять типов заданий, локальное и сетевое тестирование...
 
Узнать больше и скачать программу MyTestXPro...
 
Обсудить на форуме и принять участие в создании банка тестов...
 
Группа ВКонтакте:
vk.com/MyTestXPro


 
Реклама:
 
 

 
Реклама:
 
 


↑    

Дизайн, программирование и идея сайта Клякс@.net -bas- © 2004-2024г.

    ↑