Раздел «Язык Си».PythonTurtleBeginVariable:

Переменные

Запоминание.

Черепаха стоит в точке поля. Она должна нарисовать две линии и вернуться в эту точку.

Нужно запомнить место, где стояла черепаха. Для этого есть переменные.

#!/home-local/student/Downloads/or/bin/python3

from turtleru import *
import math

# укажем длину линии  для функции
def двеЛинии(длина):
   цвет("синий")
   размерПера(4)

# запомним где черепаха
# моеМесто - это переменная
# моеМесто - имя переменной
# эта переменная запомнила где черепаха
   моеМесто=где();   

# длина - длина линии
# эту длину мы сказали функции
# длина - тоже переменная
# длина - это имя переменной
   вперед(длина)

# В этой функции ДВЕ переменные - моеМесто и длина
   жди(1)

   цвет("красный")
   вперед(длина)   
   пероВверх()
# моеМесто помнит где стояла черепаха.
# Поставим ее на это место
   встатьНа(моеМесто)
# напишем координаты
   пиши(моеМесто)
      
начало()

встатьНа(-200,0)
двеЛинии(100)
конец()

Задача 1.

Запомнить курс черепахи в переменную кудаСмотрю.

Нарисовать лист из урока 3. Повернуть черепаху на тот же курс как и в начале программы

Начало Конец

Изменяем ЗНАЧЕНИЯ переменных

моеМесто, длина и кудаСмотрю — это ИМЕНА переменных. А координаты черепахи (-200, 0), длина линии (число 100) и курс черпахи (0) — это ЗНАЧЕНИЯ.

ЗНАЧЕНИЯ можно изменять и вычислять.

Нарисуем горизонтальную линию. Укажем координаты X. Y будет 0.

Найдем середину линии, напишем координаты середины. Подвинем черепаху в середину и напечатаем чему равна половина длины. Затем вернем черепаху на место

#!/home-local/student/Downloads/or/bin/python3
from turtleru import *
import math

def серединаЛинии(x1,x2):
# запомним место чрепахи
   гдеЯ=где()
   цвет("зеленый")
   размерПера(3)
   пероВверх()
# поставим черепаху в нужное место
# x1, x2 - тоже переменные
# они помнят координаты 
   встатьНа(x1,0)
# нарисуем линию между x1 и x2
   пероВниз()
   встатьНа(x2,0)
# ВЫЧИСЛИМ середину (половину длины отрезка между x1 и х2)
   середина = ( x2 - x1 ) / 2
# нарисуем половину линии (отрезка)
# другим цветом
   цвет("рыжий")
# изменим ЗНАЧЕНИЕ x1 на координату середины
   x1 = ( x2 + x1 ) / 2
# можно написать
#  x1 = x1 + середина
# переместим черепаху и нарисуем линию
   встатьНа(x1,0)
# напечатаем ЗНАЧЕНИЕ середина
   пиши(середина)
# вернем черепаху на место (где была)
   пероВверх()
   встатьНа(гдеЯ)


начало()
серединаЛинии(-200, 300)
конец()

Задача 2

Черепаха стоит в центре будущего прямоугольника. Запомнить эту точку. Задать длину и ширину прямоугольника (длина, ширина). Написать функцию recTr(длина, ширина,какой). Вычислить координаты углов прямоугольника. Запомнить координаты углов прямоугольника. Нарисовать прямоугольник с центром в этой точке. Провести диагонали. Закрасить четыре треугольника разными цветами. Для этого написать функцию треугольникКрась(место1, место2, место3, какой), которая рисует закрашеннный прямоугольник по трем точкам.

Задача 3

Черепаха должна нарисовать вот такой узор:

Написать функцию узор(длинаб ширина, какой).

В ней:

  1. Вычислить размер шага (длину черточки) — переменная шаг.
  2. Для рисования узора запомнить все места, где начинаются и кончаются черточки. Верхние точки: точкаВ1, точкаВ2, точкаВ3, точкаВ4, точкаВ5, точкаВ6. Нижние точки: точкаН1, точкаН2, точкаН3, точкаН4, точкаН5, точкаН6. Всего должно быть 12 таких переменных.
  3. Рисовать линии узора между этими точками. Если пероВниз() и черепаха стоит на точка1, то черепаха РИСУЕТ линию между точками по команде встатьНа(точка2)

Задача 4

Указать в функции узор(длина, ширина, угол, какой) куда повернута черепаха вначале. Это переменная угол. Запомнить места поворотов узора.

Получить вот такой рисунок.

Задача 5

Написать ДВЕ функции для рисования пятикончной звезды.

Первая функция звезда1(размер) ищет и запоминает координаты точек на окружности. Затем по ним проводит линии звезды

Вторая функция звезда2(размер, угол) ВЫЧИСЛЯЕТ размер отрезка для соединения точек. Затем рисует звезду. После этого черепаха должна стоять в ЦЕНТРЕ окружности звезды.

Изменение переменных

ЗНАЧЕНИЯ переменных можно изменять.

Например.

угол = куда()
# изменяем ЗНАЧЕНИЕ переменной:
угол = 270

# или изменяем по-другому
угол = куда() + 90

# или так:
угол += 90
# "старое значение" переменной угол увеличили НА 90

угол -= 30
# угол уменьшили НА 30
 
# или 
угол *= 3
# угол увеличили В 3 раза

угол /= 4
# угол уменьшили В 4 раза
# 

Пример программы

#!/home-local/student/Downloads/or/bin/python3
from turtleru import *
import math

def линииНа(размер):
   размерПера(4)
   пероВниз()
   цвет("синий")
# напишем размер синей линии
   пиши(размер)
   вперед(размер)
# увеличим размер НА 50
   размер += 50
   цвет("зеленый")
# напишем размер зеленой линии
   пиши(размер)
   вперед(размер)
# увеличим размер еще НА 50
   размер += 50
   цвет("красный")
# напишем размер красной линии
   пиши(размер)
   вперед(размер)
# увеличим размер еще НА 50
   размер += 50
   цвет("рыжий")
# напишем размер рыжей линии
   пиши(размер)
   вперед(размер)
   пероВверх()
   х = мойХ()
# увеличим координату У на рамер/5
   у = мойУ() + размер / 5
# изменим положение и поворот черепахи
   встатьНа(х,у)
   право(180)
   пероВниз()
   цвет("рыжий")
# напишем размер рыжей линии
   пиши(размер)
   вперед(размер)
# уменьшим размер  НА 50
   размер -= 50
   цвет("красный")
# напишем размер красной линии
   пиши(размер)
   вперед(размер)
# уменьшим размер  еще НА 50
   размер -= 50
   цвет("зеленый")
# напишем размер зеленой линии
   пиши(размер)
   вперед(размер)
# уменьшим размер  еще НА 50
   размер -= 50
   цвет("синий")
# напишем размер синей линии
   пиши(размер)
   вперед(размер)
   пероВверх()

начало()
пероВверх()
встатьНа(-300,0)
линииНа(100)
конец()   

Можно написать функцию линииНа(размер, изменитьНа)

from turtleru import *
import math

# изменитьНа - на сколько будем изменять размер
def линииНа(размер,изменитьНа):
   размерПера(4)
   пероВниз()
   цвет("синий")
   пиши(размер)
   вперед(размер)
   размер += изменитьНа
   цвет("зеленый")
   пиши(размер)
   вперед(размер)
   размер += изменитьНа
   цвет("красный")
   пиши(размер)
   вперед(размер)
   размер += изменитьНа
   цвет("рыжий")
   пиши(размер)
   вперед(размер)
   
начало()
пероВверх()
встатьНа(-550,0)
# размер будет 80, а изменитьНа будет 40
# длина линии будет увеличиваться
линииНа(80,40)
# размер будет 200, а изменитьНа будет -40
# длина линии будет уменьшаться
линииНа(200,-40)
конец()   

Задача 6.

Написать функцию спираль(размер, изменитьНа).

Получить похожую картинку. Цифры могут быть другие.

Задача 7.

Нарисуем солнце

Написать функцию =сол1(какой, радиус, луч, угол). Какой - это цвет луча, радиус круга солнца, луч - длина луча, угол - поворот первого луча относительно верха каритнки. Функция рисует 10 лучей.

Написать вторую функцию сол2(радиус, размер), которая использует функцию сол1(...), изменяет угол поворота, размеры и цвет.

Получить вот такую картинку:

Задача 8.

Написать функцию квадрат(размер, угол). Угол - это угол поворота сторны квадрата. Написать функцию квадрат3(размер,угол), которая рисует три разноцветных квадрата (один в другом).

Задача 9.

Написать функцию спираль(размер, изменитНа, угол) . Угол может быть +90 или -90. С помощью этой же функции получить вот такую картинку:

Задача 10.

Написать функцию для рисования двух спиралей:

Задача 11

Написать функцию для рисования вот такого узора:

Использовать функции, написанные для задач 6,7,8

-- TatyanaOvsyannikova2011 - 18 Mar 2017

Attachment sort Action Size Date Who Comment
ln.png manage 1.0 K 18 Mar 2017 - 20:32 TatyanaOvsyannikova2011  
lk.png manage 2.0 K 18 Mar 2017 - 20:32 TatyanaOvsyannikova2011  
ml.png manage 1.3 K 18 Mar 2017 - 21:15 TatyanaOvsyannikova2011  
trk.png manage 1.8 K 18 Mar 2017 - 21:45 TatyanaOvsyannikova2011  
uzor_v1.png manage 9.5 K 22 Mar 2017 - 12:56 TatyanaOvsyannikova2011  
uzorv11.png manage 9.0 K 20 Mar 2017 - 10:02 TatyanaOvsyannikova2011  
liniiNa.png manage 3.5 K 20 Mar 2017 - 10:34 TatyanaOvsyannikova2011  
lineZZ.png manage 3.0 K 20 Mar 2017 - 10:48 TatyanaOvsyannikova2011  
spNa1.png manage 1.7 K 20 Mar 2017 - 11:02 TatyanaOvsyannikova2011  
spNa2.png manage 0.8 K 20 Mar 2017 - 11:30 TatyanaOvsyannikova2011  
spir2.png manage 1.1 K 20 Mar 2017 - 13:05 TatyanaOvsyannikova2011  
sps.png manage 1.4 K 20 Mar 2017 - 13:05 TatyanaOvsyannikova2011  
kv3.png manage 1.9 K 20 Mar 2017 - 13:53 TatyanaOvsyannikova2011  
kv33.png manage 2.6 K 20 Mar 2017 - 13:54 TatyanaOvsyannikova2011  
sun.png manage 4.5 K 20 Mar 2017 - 15:00 TatyanaOvsyannikova2011  
star11.png manage 2.3 K 20 Mar 2017 - 16:07 TatyanaOvsyannikova2011  
star5.png manage 6.2 K 20 Mar 2017 - 16:07 TatyanaOvsyannikova2011  
uzorvu.png manage 9.5 K 22 Mar 2017 - 12:58 TatyanaOvsyannikova2011