Оператор цикла с параметром. движение

      Комментарии к записи Оператор цикла с параметром. движение отключены

1) Перемещение объекта по экрану.

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

В цикле от начального положения до конечного:

а) рисуем точку;

б) задерживаем;

в) стираем точку, наложив на нее черную;

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

Фрагменты программ могут выглядеть так:

Вид движения Фрагмент программы Пояснение
Y=240 FOR X=0 TO 640 PSET(X,Y),15 FOR W=1 TO 500 NEXT W PSET(X,Y),0 NEXT X При движении вдоль оси Хизменяется соответствующая координата (автоматически, как параметр), можнодобавить шаг, тогда движение будет скачками.
Y=240 FOR X=640 TO 0 STEP -1 PSET(X,Y),15 FOR W=1 TO 500 NEXT W PSET(X,Y),0 NEXT X При движении вдоль оси Хизменяется соответствующая координата (автоматически, как параметр), но вобратном направлении (шаг отрицательный)
X=320 FOR Y=0 TO 480 PSET(X,Y),15 FOR W=1 TO 500 NEXT W PSET(X,Y),0 NEXT Y При движении вдоль оси Y изменяется соответствующая координата (автоматически,как параметр), можно добавить шаг, тогда движение будет скачками.
X=320 FOR Y=480 TO 0 STEP -1 PSET(X,Y),15 FOR W=1 TO 500 NEXT W PSET(X,Y),0 NEXT Y При движении вдоль оси Y изменяется соответствующая координата (автоматически,как параметр), но в обратном направлении (шаг отрицательный)
X=0 FOR Y=0 TO 480 STEP 2 PSET(X,Y),15 FOR W=1 TO 500 NEXT W PSET(X,Y),0 X=X+3 NEXT Y Так как экран не квадрат, токоординату X нужно изменятьри движении вдоль оси хковуючетностьрдинаты с большим шагом. При движении по диагоналиизменяются обе координаты. По вертикали экран короче, поэтому ось Y удобней изменять автоматически, как параметр, а X – спомощью присваивания.
X=640 FOR Y=480 TO 0 STEP -2 PSET(X,Y),15 FOR W=1 TO 500 NEXT W PSET(X,Y),0 X=X-3 NEXT Y Изменяются обе координаты. Ось Y автоматически, как параметр (шаг отрицательный, т.к.движение к 0), а X – с помощью присваивания (значение координаты тожестремится к 0).
X=640 FOR Y=0 TO 480 STEP 2 PSET(X,Y),15 FOR W=1 TO 500 NEXT W PSET(X,Y),0 X=X-3 NEXT Y Изменяются обе координаты. Ось Y автоматически, как параметр, а X – спомощью присваивания (значение координаты уменьшается).
X=0 FOR Y=480 TO 0 STEP — 2 PSET(X,Y),15 FOR W=1 TO 500 NEXT W PSET(X,Y),0 X=X+3 NEXT Y Изменяются обе координаты. Ось Y автоматически, как параметр (шаг отрицательный, т.к.движение к 0), а X – с помощью присваивания (значение координатыувеличивается).

Задание:

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

Решение:

Пусть радиус мяча будет вводиться с клавиатуры и храниться в переменной R.

Мяч движется вначале из точки (80,400) до точки (320, 160), затем до точки (560, 400) и возвращается в точку (80,400). Это движение может реализоваться при последовательном использовании трех циклов с параметром. Данные точки будут центрами окружности, изображающей мяч. Стирать мяч будем с помощью черного квадрата, описанного около окружности. В программе будет реализован следующий алгоритм:

1.Вводим значение радиуса;

2.Зафиксируем значение переменной х=80;

3.В цикле с параметром у от 400 до 160 с отрицательным шагом:

а) рисуем мяч;

б) задерживаем;

в) стираем;

г)изменяем координату по оси х с помощью оператора присваивания на величину шага со знаком «+».

4.В цикле с параметром у от 160 до 400 с положительным шагом:

а) рисуем мяч;

б) задерживаем;

в) стираем;

г)изменяем координату по оси х с помощью оператора присваивания на величину шага со знаком «+».

5.В цикле с параметром х от 560 до 80 с отрицательным шагом:

а) рисуем мяч;

б) задерживаем;

в) стираем.

Программа:

CLS

PRINT “введите радиус мяча”

INPUT R

X=80

FOR Y=400 TO 160 STEP -1

CIRCLE(X, Y), R, 4

PAINT(X, Y), 4, 4

FOR W=1 TO 500

NEXT W

LINE(X-R, Y-R)-(X+R, Y+R), 0, BF

X=X+1

NEXT Y

FOR Y=160 TO 400

CIRCLE(X, Y), R, 4

PAINT(X, Y), 4, 4

FOR W=1 TO 500

NEXT W

LINE(X-R, Y-R)-(X+R, Y+R), 0, BF

X=X+1

NEXT Y

FOR X=560 TO 80 STEP -1

CIRCLE(X, Y), R, 4

PAINT(X, Y), 4, 4

FOR W=1 TO 500

NEXT W

LINE(X-R, Y-R)-(X+R, Y+R), 0, BF

NEXT Y

END

Статьи к прочтению:

06. Цикл с параметром


Похожие статьи:

  • Оператор цикла с параметром

    Программирование в Delphi с использованием операторов цикла Цель и содержание работы В данной лабораторной работе изучаются операторы цикла языка Delphi…

  • Операторы ограничения и прерывания цикла

    Данные операторы применяются внутри операторов цикла с параметром или условием. Операторы имеют вид: Continue; — ограничение цикла, Break; — прерывание…