Проект "Бросание мячика в стенку" на языке Visual Basic
Проект "Диапазон углов" на языке Visual Basic
Проект "Бросание мячика в стенку" на языке Lazarus / Delphi
Для выполнения практической работы вам потребуется язык программирования Visual Basic. Инструкцию как его установить и где скачать, можно найти в этой теме (http://informat45.ucoz.ru/forum/16-286-1#305).
Компьютерная модель движения тела на языке Visual Basic
На основе формальной модели, описывающей движение тела, брошенного под углом к горизонту, создадим компьютерную модель с использованием системы программирования Visual Basic.
Проект "Бросание мячика в стенку" на языке Visual Basic
Создадим сначала графический интерфейс проекта "Бросание мячика в стенку"
1. Разместить на форме:
- четыре текстовых поля для ввода значений:
TextBox1 - начальной скорости
TextBox2 - угла бросания мячика
TextBox3 - расстояние до стенки
TextBox4 - высота стенки
- надпись Label1 для вывода высоты мячика на заданном расстоянии;
- надпись Label2 для вывода текстового сообщения о результатах броска;
- десять надписей для вывода имён переменных и единиц измерения;
- кнопку Button1 для запуска событийной процедуры вычисления результатов бросания мячика;
- кнопку Button2 для демонстрации траектории движения мячика.
Обработчик события - вычисление результатов бросания мячика
2. Создать программный код обработчика события, который определяет попадание мячика в стенку. В этом коде:
- объявить вещественные константы одинарной точности G (ускорение свободного падения g) и Pi (число π);
- объявить вещественные переменные одинарной точности V0 (начальная скорость v0), А (угол бросания α), S (расстояние до стенки s), H (высота стенки h) и L (высота мячика l);
- присвоить переменным V0, A, S, H значения, введенные в текстовые поля, с использованием функции преобразования строки в вещественное число Val();
- вычислить высоту мячика L на заданном расстоянии по формуле.
- вывести высоту мячика L на надпись Label1;
- вывести текстовое сообщение о результатах броска на надпись Label2 с использованием оператора Select Case, в котором в качестве условия проверяется значение переменной L.
Цитата
Код
Обработчик события - демонстрация траектория движения мячика
Для визуализации компьютерной модели построим в графическом поле траекторию движения мячика.
3. Поместить дополнительно на форму графическое поле PictureBox1. С помощью диалогового окна Свойства установить с использованием свойства Size размер поля, например 400; 220.
В обработчике события осуществим преобразование компьютерной системы координат графического поля в математическую систему координат, удобную для построения траектории движения. Нарисуем оси координат и нанесем на них шкалы.
4. В математической системе координаты находятся в диапазонах 0<=X<=400 и -20<=Y<=200. Траектория движения мячика, скорее всего, будет в диапазоне координат 0<=X<=40 м и 0<=Y<=20 м. Следовательно, необходимо увеличить масштаб графика в 10 раз:
- координаты точек графика необходимо умножить на 10;
- значения шкал осей разделить на 10.
Построение траектории осуществить в цикле со счетчиком (координата Х) с использованием метода рисования точки DrawEllipse(Pen1, X*10, Y*10, 1, 1), в котором координатами точки являются координаты мячика.
Код
Компьютерный эксперимент. Введём произвольные значения начальной скорости и угла бросания мячика. Скорее всего, попадания в стенку не будет. Меняя один из параметров, например угол, произведем пристрелку, используя известный артиллерийский приём "взятие в вилку", в котором применяется эффективный метод "деление пополам". Сначала найдём угол, при котором мячик не долетит до стенки. Вычислим среднее значение углов, составляющих "вилку", и проверим попадает ли при этом значении мячик в стенку. Если он попадает в стенку, то задача выполнена, если не попадает, то рассмотрим новую "вилку" и т.д.
5. Запустить проект и ввести значения начальной скорости, угла бросания, расстояния до стенки и её высоты. Щёлкнуть по кнопкам Вычислить и Показать. На надписи будут выведены результаты, а в графическом поле появится траектория движения тела.
Подобрать значения начальной скорости и угла бросания мячика, обеспечивающие его попадание в стенку.
Например, при скорости бросания мячика v0=18 м/с и угле бросания α=35° мячик попадает в стенку высотой h=2 м и находящуюся на расстоянии s=30 м на высоте l=0,6959749 м.
Анализ результатов. Полученная точность высоты попадания мячика в стенку l=0,6959749 м не имеет физического смысла и определяется типом переменной. Так как L является переменной одинарной точности, то её значение вычисляется с точностью семи значащих цифр. Исходные данные заданы с точностью две значащие цифры, поэтому необходимо и результат округлить до двух значащих цифр: l=0,70 м.
Корректировка модели. Рассмотренный выше проект "Бросания мячика в стенку" позволяет задавать различные значения скорости и угла бросания мячика. Предположим, что броски мячика производятся с одинаковой скоростью, и попробуем определить диапазон углов, при которых происходит попадание мячика в стенку.
Для этого необходимо в цикле со счетчиком по углу бросания вычислить положение мячика на расстоянии стенки и определить те углы, которые соответствуют высоте стенки.
Источник: http://informat45.ucoz.ru/forum/3-288-1
Следующая страница Проект "Диапазон углов" на языке Visual Basic