Lectia 3- Patrate imbricate Scratch& Python
Așa cum am explicat am căutat o cât mai bună tranziție între programarea vizuală (orientată blocuri) și programarea orientată text (în linie de comandă) Tranziția Scratch Python, iar acest lucru a fost ușor de făcut cu utilizarea bibliotecii Turtle/ Logo.
Tema Să se deseneze 6 pătrate având același punct de origine la care noua latură să fie mai mare cu 10 pixeli decât precedentul. Latura inițială este de 60 de pixeli
Să începem să gândim algoritmul pe care îl vom codifica în Scratch :
Abordarea Think.and.Scratch
Vom seta elementele grafice, vom fixa o pozitie de start si vom itera un proces prin care apelam o functie care deseneaza un patrat a carui latura creste la fiecare ciclu cu inca 10 pixeli
Scriem în pseudocod :
execuție- steguleț verde
inițializare elemente grafice
sterge tot
stilou jos
setează culoarea
seteaza grosimea stilou
setează originea
setează incrementul (creșterea) la 10
repeta de 6 ori
funcție square (60+index)
crește cu 10
Funcție square (latura)
repeta de 4 ori
mergi latura
roteste stanga 90 de grade
Codificarea Scratch
După cum este ușor de sesizat nu este o mare filozofie
Abordarea Think.And.Python
Tema Să se deseneze 6 pătrate având același punct de origine la care noua latură să fie mai mare cu 10 pixeli decât precedentul. Latura inițială este de 60 de pixeli
Cum rezolvam ?
Modul de gândire va fi similar celui de mai înainte, vom seta elementele grafice, vom fixa o pozitie de start si vom itera un proces prin care apelam o functie care deseneaza un patrat a carui latura creste la fiecare ciclu cu inca 10 pixeli
Codul Python
# Apelăm biblioteca Turtle/Logo
import turtle
# Definim o funcție care desenează un pătrat cu argument latura
def square(latura) :
for i in range(4) :
think.forward(latura)
think.left(90)
# Cream o fereastra pentru desenul nostru
window = turtle.Screen()
# Fixam culoarea de background
window.bgcolor(“cyan”)
# Cream o “testoasa” cu numele think
think = turtle.Turtle()
# Fixam culoarea cu care desenam
think.pencolor(“red”)
# Fixam pozitia initiala, apelăm functia square si obtinem ceea ce am dorit
think.goto (-100,0)
j= 10
for i in range (6) :
square(60+j)
j= j+ 10
think.speed(0)
Concluzia
Doua medii de programare diferite, aceeași gândire, același algoritm, același rezultat