Задача «Движение бильярдного шарика» Задача «Движение бильярдного шарика» Мой университет - www.moi-mummi.ru.

Презентация:



Advertisements
Похожие презентации
Текстовые координаты Оператор COLOR Виды записи оператора COLOR Оператор очистки экрана Вывод текста в определённом месте экрана.
Advertisements

ЦИКЛЫ Оператор FOR…NEXT. ЦИКЛ-это многократное повторение одних и тех же действий.
Тема: Управление потоком в PHP Изучить возможности языка PHP при решении задач, требующих использования условного оператора. Рассмотреть примеры управления.
Цикл For … Next For Счетчик= начальное_ значение To конечное_значение Step Шаг Операторы Next Счетчик В начале выполнения счетчик устанавливается в начальное.
Решение квадратного уравнения. Решение квадратного уравнения зависит от значения дискриминанта. Пример: Решение квадратного уравнения. Решение квадратного.
далее цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием)цикл с неизвестным числом шагов (цикл с условием) что такое цикл?
Автор – Богачёва Г. В. Учитель информатики Лицей 144 Санкт - Петербурга Решение задач С 1 части С Единого государственного экзамена.
Циклический алгоритм. Оператор с заранее известным числом повторений.
Основы программирования на языке Visual Basic. © Епифанова Т.Н., 2008 г. Элективный курс для учащихся 10 класса общеобразовательных учреждений. 1. Оператор.
Ключевая тема этого задания ЕГЭ – использование вложенных условных операторов, причем в тексте задания фрагмент программы обычно записан без отступов «лесенкой»
1 Программирование на языке Бейсик Тема. Циклы. 2 Циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом.
Разработка технологии преподавания языка программирования QBASIC Цель: Развитие логического мышления у учащихся 7 классов при программировании логических.
Графика в QBasic Qbasic является векторным графическим редактором, т.е. графические элементы строятся (вычисляются) по формулам. Для этого достаточно задать.
Приложение 7. Урок 1: Арифметические циклы 4 Урок 1: Арифметические циклы В SCREEN 9 построить мишень, состоящую из 11 концентрических окружностей расположенную.
АЛГОРИТМИЧЕСКАЯ СТРУКТУРА «ПОВТОРЕНИЕ» («ЦИКЛ») В ЯЗЫКЕ QBASIC Презентацию разработал Мащенко П.С., учитель МБОУ СОШ 2 муниципального образования Щербиновский.
ГРАФИЧЕСКИЕ ОПЕРАТОРЫ в программе Q-basic. Оператор SCREEN N этот оператор очищает экран и задает графический режим. ( Без него программа с графикой работать.
Цель: Показать сходство и различие цикла с параметром в языках программирования QBasic и Turbo Pascal 7.0.
Сайт для подготовки к ЕГЭ: kpolyakov.narod.ru Презентация будет выложена на сайте elschool11.ru ученикам – информатика –Подготовка к ЕГЭ (внизу странички)
Познакомиться с созданием рисунков в QBasic, изучить графические примитивы, научиться их применять на практике.
Двумерные массивы. В математике часто используют многомерные массивы, т.е. массивы массивов. Особенно широкое распространение получили двумерные массивы.
Транксрипт:

Задача «Движение бильярдного шарика» Задача «Движение бильярдного шарика» Мой университет -

Пусть у нас уже есть программа движения шарика по диагонали экрана (щелкните по шарику на рисунке)

SCREEN 9 COLOR 1, 0 WINDOW (0, 0)-(640, 350) x = 1 y = 1 dx = 1 dy = 1 FOR k = 0 TO CIRCLE (x, y), 3, 6 PAINT (x, y), 6 FOR i = 1 TO 10000: NEXT i CIRCLE (x, y), 3, 4 PAINT (x, y), 4, 4 x = x + dx y = y + dy NEXT k Программа движения шарика по диагонали выглядит следующим образом: Здесь dx, dy – приращения соответствующих координат.

Наша задача состоит в том, чтобы шарик, достигнув какой-либо границы экрана, отскакивал от нее как от стенки (щелкните по шарику на рисунке). Чтобы шарик не вылетал за верхний край экрана, необходимо, чтобы ордината объекта не превышала 350 pix (при стандартном размере экрана 640х350) В связи с возникшей ситуацией в нашей задаче, когда необходимо выполнить определенные условия, напомним, что такое условный оператор.

Условный оператор. IF THEN оператор1 ELSE оператор2 Если условие выполняется, то выполняется «оператор1», в противном случае выполняется «оператор2». В записи условия можно использовать следующие символы: =, >, >=, Существует неполная форма оператора: IF THEN оператор1

Вставим в программу движения шарика условие IF y = 350, причем, этот условный оператор мы должны добавить в цикл, где в каждой итерации при каждом увеличении координаты Y происходит проверка данного условия. Как только оно выполнится, так координата Y, которая до сих пор увеличивалась с приращением dy = +1, должна будет уменьшаться и приращение станет равно: dy = -1. Вот как будет выглядеть программа с добавлением условного оператора, которое учитывает столкновение шарика с верхней границей экрана:

SCREEN 9 COLOR 1, 0 WINDOW (0, 0)-(640, 350) x = 1 y = 1 dx = 1 dy = 1 FOR k = 0 TO CIRCLE (x, y), 3, 6 PAINT (x, y), 6 FOR i = 1 TO 10000: NEXT i CIRCLE (x, y), 3, 0 PAINT (x, y), 0, 0 IF y = 350 THEN dy = -1 x = x + dx y = y + dy NEXT k

dy = -1 dx = +1 dy = +1 x = 0 y = 0 Запустим программу на выполнение:

Рассмотрим дальнейшее движение шарика. Достигнув правого края экрана, шарик должен отскочить вниз так, как указано на схеме: dy = -1 dx = -1 x = 0 y = 0 В этом случае координата Y будет по-прежнему уменьшаться, т.е. dy = -1. Координата X, которая до сих пор увеличивалась, после выполнения условия x = 640 начнет уменьшаться или dх = -1, что то же самое. dx = +1 dy = +1

SCREEN 9 COLOR 1, 0 WINDOW (0, 0)-(640, 350) x = 1 y = 1 dx = 1 dy = 1 FOR k = 0 TO CIRCLE (x, y), 3, 6 PAINT (x, y), 6 FOR i = 1 TO 10000: NEXT i CIRCLE (x, y), 3, 0 PAINT (x, y), 0, 0 IF y = 350 THEN dy = -1 IF x = 640 THEN dx = -1 x = x + dx y = y + dy NEXT k Вот так будет выглядеть программа с добавлением второго условного оператора, где предусмотрено условие столкновение шарика с верхней границей экрана:

dy = -1 dx = -1 x = 0 y = 0 Запустим вновь программу на выполнение: dx = +1 dy = +1

Рассмотрим дальнейшее движение шарика. Достигнув нижнего края экрана, шарик должен отскочить вверх так, как указано на схеме: dy = -1 dy = +1 x = 0 y = 0 В этом случае координата Y начнет увеличиваться, т.е. dy = +1, а координата X будет по-прежнему уменьшаться, т.е. dх = -1. dx = +1 dy = +1 dx = +1 dy = +1 dx = -1

Вот так будет выглядеть программа с добавлением третьего условного оператора, где предусмотрено условие столкновение шарика с нижней границей экрана: SCREEN 9 COLOR 1, 0 WINDOW (0, 0)-(640, 350) x = 1 y = 1 dx = 1 dy = 1 FOR k = 0 TO CIRCLE (x, y), 3, 6 PAINT (x, y), 6 FOR i = 1 TO 10000: NEXT i CIRCLE (x, y), 3, 0 PAINT (x, y), 0, 0 IF y = 350 THEN dy = -1 IF x = 640 THEN dx = -1 IF y = 0 THEN dy = +1 x = x + dx y = y + dy NEXT k

dx = -1 dy = -1 x = 0 y = 0 Запустим программу на выполнение: dx = -1 dy = +1 dx = +1 dy = +1

Нам осталось рассмотреть последний вариант в движении шарика – столкновение его с левой границей. Достигнув этой границы экрана, шарик должен отскочить вверх так, как указано на схеме: dy = -1 dy = +1 dx = +1 x = 0 y = 0 В этом случае после выполнения условия x = 0 координата Х должна увеличиваться, т.е. dх = +1, а координата Y, которая до сих пор увеличивалась, по-прежнему будет увеличиваться, т.е. dy = +1.. dx = -1 dx = +1 dy = +1

SCREEN 9 COLOR 1, 0 WINDOW (0, 0)-(640, 350) x = 1 y = 1 dx = 1 dy = 1 FOR k = 0 TO CIRCLE (x, y), 3, 6 PAINT (x, y), 6 FOR i = 1 TO 10000: NEXT i CIRCLE (x, y), 3, 0 PAINT (x, y), 0, 0 IF y = 350 THEN dy = -1 IF x = 640 THEN dx = -1 IF y = 0 THEN dy = +1 IF x = 0 THEN dx = +1 x = x + dx y = y + dy NEXT k Так будет выглядеть программа с добавлением четвертого условного оператора, где предусмотрено столкновение шарика с левой границей экрана:

dy = -1 dy = +1 dx = +1 x = 0 y = 0 Запустим программу на выполнение и вот, что получим: dx = -1 dx = +1 dy = +1

Эту программу необходимо оптимизировать, заменив четыре условных оператора двумя. Приращения по координатам dx и dy будут менять знаки на противоположный. SCREEN 9 COLOR 1, 0 WINDOW (0, 0)-(640, 350) x = 1 y = 1 dx = 1 dy = 1 FOR k = 0 TO STEP 1 CIRCLE (x, y), 3, 6 PAINT (x, y), 6 FOR i = 1 TO 4000: NEXT i CIRCLE (x, y), 3, 0 PAINT (x, y), 0, 0 IF y = 350 or y=0 THEN dy = - dy IF x = 640 or x=0 THEN dx = - dx x = x + dx y = y + dy NEXT k

Итак, если мы увеличим число повторений в цикле на достаточное количество, то движение биллиардного шарика выглядит следующим образом: …и т.д.

Мой университет - Далее можно усложнить эту задачу и рассмотреть несколько вариаций на тему «Движение шарика»: 1.«Движение шарика в заданном прямоугольнике»; 2.«Движение шарика по экрану с препятствием»; 3.«Муха в графине» (рисуем прямоугольный графин с горлышком, располагаем внутри шарик (муху) и заставляем его двигаться внутри графина, отражаясь от его стенок. Меняя начальное расположение шарика, можно добиться, что через какое-то время муха вылетит из графина и продолжит полет, отражаясь от сторон экрана и о стенки графина, как о препятствии на пути мухи.