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
|
|
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)
Cursanții au mai cumpărat ...
[
vezi lista completă a cărților]