CURS ONLINE INTERACTIV

Python 3

PENTRU ÎNCEPĂTORI

Proiect susținut de Uniunea Profesorilor de Informatică din România
LECȚIA 11
PAG. 4 / 5
Instrucțiuni repetitive
Acasă >>> Lecții online, limbajul Python 3

Poligoane regulate

Pe moment ne este mai la îndemână instrucțiunea while deoarece primește o condiție logică pentru executarea instrucțiunilor subordonate și ne putem juca cu ea în mod grafic.

EXEMPLU

Mi-am propus să realizez un program ce citește de la tastatură numărul de laturi ale unui poligon regulat pe care să îl trasez. Din considerente de spațiu, am ales dimensiunea laturii de 50 de pixeli, valoare ce nu o voi citi de la tastatură, deși... este ușor ulterior de modificat programul.

Definiție. Un poligon regulat este un poligon simplu ce are toate laturile și unghiurile egale.

Exemple: un triunghi echilateral, un pătrat, un pentagon, un hexagon, etc.:



Putem încerca și un heptagon, octogon, decagon, ori... dodecagon. Când matematica se întâlnește cu informatica, ies lucruri faine!
Editor - lectia11_turtle.py
       
Modul grafic în Python done
Rezultatul în consolă done
CUM AM GÂNDIT ?

Păi ... mai întâi am citit numărul de laturi de la tastatură și l-am reținut în variabila întreagă n.

Apoi, pentru un poligon regulat cu n laturi, avem n unghiuri, deci variabila u reține valoarea aceasta, adică 3600 împărțit real la n, deoarece am nevoie de precizie fină.

Ciclul while trebuie să se repete de fix n ori, deci folosesc o dată de manevră, variabila laturi, care inițial reține 1. La fiecare pas, este incrementată (crește) cu o unitate (vezi linia de cod 12). Când ajunge la valoarea n+1, while nu se mai execută, deci e perfect.

CUM CITIM ?

Cât timp valoarea laturi este mai mică sau egală cu valoarea impusă, trasez latura, mă rotesc cu u grade și incrementez apoi contorul, laturi! Când numărul de laturi este depășit, mă opresc!

Notă. Dacă n=1, poligonul se numește enagon, iar dacă n=2, digon.

Dreptunghiul - while și if

Pentru un dreptunghi e similar, însă am nevoie de o decizie. Când avansez numărul de pixeli corespunzător laturii mari sau mici?!?

Prima oară avansez pentru prima latură, deci un număr impar. Apoi, latura a doua, număr par... analizează și rulează programul de mai jos:

import turtle
t = turtle.Turtle()
n = int(input("n="))
m = int(input("m="))
laturi = 1
while laturi <= 4:
    if laturi%2==1: #număr impar?
        t.fd(n)
    else:
        t.fd(m)
    t.left(90)
    laturi = laturi + 1


Interesant, nu?

Toate instrucțiunile sunt utile la un moment dat.
Avansează la pagina următoare.
Cărțile editurii noastre
O parte dintre manualele și culegerile de probleme se găsește și [în format electronic] securizat sub formă de fișier *.pdf.
 

"O cameră fără cărţi este ca un corp fără suflet." (G. K. Chesterton)

Ultimele noutăți
[vezi lista completă a cărților]
 home   list  LECȚII   perm_identity   arrow_upward