понедельник, 12 декабря 2011 г.

9-е классы. Как лучше понять работу циклов?

Если у нас есть что-то, что нужно повторить РОВНО N раз, мы используем цикл FOR

например:

For n = 1 To 5
  x = Math.GetRandomNumber(400)
  y = Math.GetRandomNumber(300)
  col = GraphicsWindow.GetRandomColor()
  GraphicsWindow.SetPixel(x,y,col)
EndFor

Эта программа повторяет 5 раз набор действий:
получить случайный икс, получить случайный игрек, получить случайный цвет и нарисовать точку с этим иксом, игреком и цветом.
Эти действия НЕ ЗАВИСЯТ от n.


Напишем теперь программу, которая рисует пять параллельных отрезков длины 50



For n = 0 To 4
  GraphicsWindow.DrawLine(20, 20+n*10, 70, 20+n*10)
EndFor


Переменная n принимает последовательно значения 0, 1, 2, 3, 4
Для каждого из этих значений выполняется команда, указанная между For и EndFor

При n=0 мы получаем
   GraphicsWindow.DrawLine(20, 20+0*10, 70, 20+0*10)
то есть

   GraphicsWindow.DrawLine(20, 20, 70, 20)

Линия начинается в точке (20, 20) и кончается в точке (70, 20)

При n=1 мы получаем

   GraphicsWindow.DrawLine(20, 20+1*10, 70, 20+1*10)
то есть

   GraphicsWindow.DrawLine(20, 30, 70, 30)

Линия начинается в точке (20, 30) и кончается в точке (70, 30)



И так далее. В этом цикле переменная n используется для рисования, от нее зависит положение линии. Это - параметр цикла.

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

GraphicsWindow.DrawText(0,0, "Ivanov Ivan 9A")
Dlina = 50
For n = 0 To 4
   
   GraphicsWindow.DrawLine(20, 20+n*10, 20+Dlina, 20+n*10)
   
EndFor


Выполните эту программу и убедитесь в том, что она достигает поставленной цели.



ЗАДАНИЕ 1

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

Опубликуйте программу, не забыв изменить Ivanov Ivan 9A на свою фамилию и имя и класс.
Пришлите адрес вида http://smallbasic.com/program/?ABC123 на почту 328gos@gmail.com

ЗАДАНИЕ 2*
Измените программу так, чтобы 
каждая следующая линия была В ДВА РАЗА длиннее предыдущей




Комментариев нет:

Отправить комментарий