Small Basic: Variabile, condiţii şi bucle


Am văzut ultima oară câteva concepte fundamentale dar… nu s-a terminat subiectul. Desigur, e fundamental să înţelegem clasele cu proprietăţi şi operaţii, dar lucrurile de bază continuă. Pentru cei care au o minimă experienţă de programare (ex: PHP), ceea ce urmează e plictisitor şi interesează doar din perspectiva sintaxei. Dar pornim de la premisa că materialul e citit de unii care au acum primul contact cu programarea, aşa că vom discuta pe rând, rapid însă, despre variabile, condiţii şi bucle.

imagine

Şi pentru că îmi plac lucrurile concrete, am scris un scurt cod ce reuneşte cele trei elemente. Să începem!

Variabile

Imaginaţi-vă variabilele ca nişte containere sau cutiuţe capabile să conţină valori. Nu valori în sens de bijuterii, ci valori numerice sau text. Mai sus vedeţi că folosesc variabila a în care memorez numărul introdus de utilizator de la tastatură. Să vedem câteva reguli pentru numele variabilelor:

  • să înceapă cu o literă, după care poate fi combinaţie de litere şi cifre. Exemple: a, nr, nume, abc1, ma234cul…
  • să nu coincidă cu cuvinte cheie din Small Basic. Nu putem avea deci variabile numite if, while, for
  • recomandabil este ca variabilele să aibă nume sugestive. Vom spune nr1 pentru primul număr, sau nume pentru a memora numele…

Variabilele trebuie să fie iniţializate înainte de a fi folosite. Semnul egal nu trebuie interpretat ca egalitatea dintr-un test, ci ca atribuire. Astfel, nr=5 înseamnă că variabila nr primeşte valoarea 5. Dacă avem apoi suma=nr+nr înainte de atribuire se evaluează partea dreaptă şi se obţine 10, deci suma va primi valoarea 10. Mai derutant pentru cei care întâlnesc prima oară variabilele e să vadă ceva de genul i=i+1. Tentaţia matematicianului ar fi să spună imposibil (i se simplifică cu i, deci rămâne 0=1). NU E VORBA DE EGALITATE CI ATRIBUIRE. Este clar că i a fost iniţializat într-un pas anterior, iar i=i+1 nu va face decât să evalueze expresia i+1 atribuind-o ca valoare nouă lui i.

Condiţii

Liniile cu instrucţiuni ale unui program se execută “tradiţional” de sus în jos, de la prima la ultima. Dar uneori ai nevoie să se întâmple ceva sau altceva în funcţie de o condiţie. Adică succesiunea dorim să aibă “ramuri”: dacă un număr este par să se meargă pe o anumită ramură, dacă nu, pe cealaltă ramură. Ne ajută structura condiţională If. Ea are două variante. Cea simplă:

If conditie Then 
   … 
EndIf

respectiv varianta completă:

If conditie Then 
   … 
Else 
   … 
EndIf

Bucle

Uneori dorim să repetăm anumite linii de cod (execuţia lor adică) de un număr fix sau nedeterminat de ori. În programul de la începutul articolul observaţi o modalitate: cu etichete. În prima linie am definit eticheta inceput şi ca să fie clar că e etichetă am încheiat-o cu două puncte, aşa : şi nu aşa .. :) . Apoi la final avem linia Goto inceput care practic face ca programul să se reia… şi tot reia… şi tot reia, în buclă infinită. Nu vă speriaţi: programul poate fi închis cu un click pe x-ul din colţ, ca la orice fereastră din Windows.

Avem însă şi alte tipuri de bucle. Când ştim exact de câte ori repetăm ceva, cel mai simplu este să folosim For.

For i=a To b Step n 
   … 
EndFor

În structura de mai sus, i i-a pe rând valoarea a, a+n… până la b, moment în care bucla se opreşte şi se execută ce este sub EndFor. Pasul n poate fi şi negativ. Dacă nu punem Step n implicit va fi o creştere cu 1 a lui i. Astfel, dacă vrem să afişăm numerele de la 1 la 10 vom avea ceva de genul:

For i=1 To 10 
   TextWindow.WriteLine(i) 
EndFor

Dacă vrem să scriem 10, 20, 30… 100 putem scrie:

For i=10 To 100 Step 10 
   TextWindow.WriteLine(i) 
EndFor

În fine, închei cu un alt tip de buclă: While. Aceasta repetă un cod atâta timp cât o condiţie este îndeplinită.

While conditie 
   … 
EndWhile

Vom vedea toate acestea aplicate în articolele următoare.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *