start     Articole     Despre mine    

cum sa memorezi orice fara sa tii minte

In prima lectie de programare ai vazut ca cel mai important lucru pe care trebuie sa-l cunosti legat de programarea calculatoarelor este acela ca dispui de un set de instructiuni elementare cu ajutorul carora poti construi programe oricat de complexe. La fel cum un arhitect poate realiza constructii spectaculoase folosind doar cateva materiale de baza.

Ai avut apoi (in articolul anterior) posibilitatea de a testa cele invatate si de a-ti exersa creativitatea intr-o maniera interactiva.

 

Acum e timpul sa intelegi si cel de-al doilea pilon pe care se bazeaza programarea calculatoarelor. Utilizandu-l, nu numai ca vei putea sa iti reduci dimensiunea programelor scriind portiuni generice, ci iti vei extinde enorm gama de aplicatii pe care le poti realiza.

Este vorba despre variabile. Practic nu exista program care sa nu le foloseasca. Bine, cu exceptia programelor scrise in lectiile trecute — ai putea zice. Si ai avea dreptate. Partial. Caci desi variabilele nu intervin explicit in acele programe, ele se regasesc implicit in instructiunile Aprinde si Stinge. Iti amintesti ca le-am prezentat generic sub forma Aprinde(x, y) si Stinge(x, y)? Ei bine, “x” si “y” de aici sunt variabile. Sunt niste “obiecte” ce pot retine valori. Apoi, cu ajutorul acestor valori instructiunea Aprinde, de exemplu, va sti ce “beculete” sa aprinda.

(A se remarca faptul ca atat Aprinde(x, y), cat si Stinge(x, y), ne duc cu gandul la f(x, y). Va amintiti de la matematica ce notati de obicei prin f(x, y)? O functie f de doua variabile, x si y. (Ca sa fim si mai rigurosi, de fapt f(x, y) reprezinta valoarea acestei functii in punctul (x, y).) Acesta este motivul pentru care instructiuni ca Aprinde(x, y) si Stinge(x, y) sunt numite “functii” (iar scrierea lor intr-un program poarta numele de “apel al functiei”). Vom vedea intr-o lectie ulterioara ca ne putem construi singuri astfel de functii, pe baza unor functii de baza pe care le avem la dispozitie.)

 

Ce este, deci, o variabila?

 

Am spus anterior ca este un soi de “obiect” (virtual) ce poate retine valori. E ca o mica bucata de “hartie” pe care calculatorul poate scrie valori cu “creionul” si le poate sterge cu “guma de sters”.

Hai sa vedem cum stau lucrurile pe  exemple concrete. Sa construim, pentru inceput, o variabila numita a. Putem face acest lucru scriind:

var a

Daca dorim sa-i dam acum lui a o valoare, sa zicem 3, o putem face scriind pur si simplu:

a = 3

(Nota: Declararea si initializarea unei variabile se poate face si intr-o singura instructiune, de genul var a = 3 .)

Bun, avem acum o variabila numita a, in care am stocat valoarea 3. Sa vedem cum o putem folosi. Ce credeti ca vor face, de exemplu, instructiunile urmatoare:

Aprinde(a, 1)

Aprinde(a, a)

Daca ai zis ca prima dintre ele aprinde “beculetul” de la coordonatele (3, 1), ai avut dreptate. Caci valoarea stocata in variabila a la momentul executiei instructiunii Aprinde(a, 1) este 3, deci instructiunea care se executa practic este Aprinde(3, 1). Similar, cea de-a doua instructiune este echivalenta cu Aprinde(3, 3) (deci efectul sau va fi acela de a aprinde punctul de la coordonatele (3, 3)).

Daca m-ai urmarit pana aici ar trebui sa iti fie usor sa intelegi efectul urmatorului program:

var a = 1

Aprinde(a, 1)

Aprinde(a, 2)

a = 2

Aprinde(a, 1)

Aprinde(a, 2)

In prima linie se declara variabila a si i se atribuie valoarea 1. In urmatoarele doua linii se aprind punctele (1, 1) si (1, 2). Apoi se atribuie variabilei a valoarea 2. (Adica valoarea anterioara (si anume valoarea 1) se sterge, si se scrie in a valoarea 2.) Deci ultimele doua instructiuni vor aprinde punctele (2, 1) si (2, 2).

(O modalitate mai practica de a explica functionarea unui program o constituie comentariile. Putem introduce un comentariu intr-un program scriind //. Atat aceste doua simboluri, cat si tot ce urmeaza dupa ele pana la sfarsitul liniei (adica acolo unde se apasa tasta “Enter”) nu va fi considerat instructiune, ci va fi ignorat de catre calculator.)

Varianta comentata a programului anterior ar putea arata astfel:

// Program de desenare patrat

var a = 1 // definesc variabila a si o initializez cu valoarea 1

Aprinde(a, 1) // aprind punctul (a, 1), adica (1, 1) — caci valoarea din a este 1

Aprinde(a, 2) // aprind punctul (a, 2), adica (1, 2)

a = 2 // sterg valoarea anterioara scrisa in a, si scriu in variabila a valoarea 2

Aprinde(a, 1) // aprind punctul (a, 1), adica (2, 1) — caci valoarea din a este 2

Aprinde(a, 2) // aprind punctul (a, 2), adica (2, 2)

In varianta aceasta, atat instructiunile programului, cat si explicatiile, se pot pune laolalta intr-un acelasi program. Ba chiar este recomandat ca orice program sa contina comentarii, pentru a facilita intelegerea ulterioara a lui.)

 

Dupa atata teorie, haide sa si experimentam ceva. Copiaza, te rog, programul anterior in caseta de mai jos, dupa care apasa butonul “Executa programul”.

(Browserul tau nu suporta Canvas!…)

Gata?

Programul a avut efectul asteptat? Esti liber sa faci modificari la el si sa vezi noile rezultate.

Ce ar fi daca in linia 4 in loc de a = 2 ai scrie a = a+1? Ce crezi ca s-ar modifica?

Daca ai avut curiozitatea de a testa programul, atunci ai vazut ca rezultatul final este acelasi. Ceea ce era si normal, nu?

Hai sa vedem mai indeaproape ce face instructiunea a = a+1. Mai intai aduna 1 la valoarea stocata in a (si daca te uiti la a doua linie din program vei vedea ca in a era stocata valoarea 1, deci rezultatul operatiei acesteia de adunare va fi 2), dupa care memoreaza valoarea calculata in a (bineinteles, dupa ce sterge in prealabil vechea valoare din a).

Scrisa in cuvinte, instructiunea a = a+1 s-ar traduce in “stocheaza in variabila a rezultatul adunarii dintre valoarea curenta din a si valoarea 1“.

 

Dar daca as vrea sa folosesc in program o a doua variabila, numita b si avand stocata in ea valoarea 7, cum as face? Bineinteles, cu intructiunea var b = 7. Similar, cu var c as defini o a treia variabila, numita c. In conditiile astea, ce ar face intructiunea c = b+a? Dar instructiunea c = b-a? Poti vedea “pe viu” rezultatele acestor instructiuni ruland programul de mai jos:

var a = 3

var b = 7

var c

c = b+a

Aprinde(c, c)

c = b-a

Aprinde(c, c)

Ce s-a intamplat? Prima instructiune Aprinde(c, c) a aprins punctul de la coordonatele (10, 10), iar cea de-a doua instructiune Aprinde(c, c) a aprins punctul de la coordonatele (4, 4). Exact asa cum te asteptai, nu? (In caz ca totusi e ceva neclar, te rog sa nu eziti a lasa un comentariu cu intrebarile tale.)

 

Propun sa incheiem aceasta lectie introductiva despre variabile cu analiza programului urmator:

// Defineste doua variabile

var a = 1

var b = 10

// Aprinde pe linia 1 punctul corespunzator valorii din variabila a

Aprinde(a, 1)

// Aprinde pe linia 2 punctul corespunzator valorii variabilei b

Aprinde(b, 2)

// Si acum sa definim o a treia variabila, c, si sa facem niste operatii

var c = a

a = b

b = c

// Oare ce s-a intamplat? Sa vedem in continuare

// Aprinde pe linia 3 punctul corespunzator valorii variabilei a

Aprinde(a, 3)

// Aprinde pe linia 4 punctul corespunzator valorii variabilei b

Aprinde(b, 4)

 

Ai rulat programul anterior? E clar ce face? Spune-ti, te rog, intrebarile intr-un comentariu mai jos (sau lasa-ne cateva exemple sau idei de programe interesante ce pot fi facute cu informatiile invatate pana acum).





188 comments
Florentina Cristina
Florentina Cristina

//Mickey Mouse

var a = 2

var b = 4

//Atribui culori

var c = ROSU

var d = NEGRU

var e = ALBASTRU

//Creez gura

Aprinde(a+2, b+1,c)

Aprinde(a+2, b+2,c)

//Creez ochii

Aprinde(a+4, b, e)

Aprinde(a+4, b+3, e)

//Creez urechile si conturul

Aprinde(a, b-2, d)

Aprinde(a, b-1, d)

Aprinde(a, b, d)

Aprinde(a,b+1, d)

Aprinde(a, b+2, d)

Aprinde(a, b+3, d)

Aprinde(a, b+4, d)

Aprinde(a, b+5, d)

Aprinde(a+1, b-2, d)

Aprinde(a+1, b+5, d)

Aprinde(a+2, b-2, d)

Aprinde(a+2, b+5, d)

Aprinde(a+3, b-2, d)

Aprinde(a+3, b+5, d)

Aprinde(a+4, b-2, d)

Aprinde(a+4, b+5, d)

Aprinde(a+5, b-2, d)

Aprinde(a+5, b+5, d)

Aprinde(a+6, b-3, d)

Aprinde(a+6, b-2, d)

Aprinde(a+6, b-1, d)

Aprinde(a+6, b, d)

Aprinde(a+6, b+1, d)

Aprinde(a+6, b+2, d)

Aprinde(a+6, b+3, d)

Aprinde(a+6, b+4, d)

Aprinde(a+6, b+5, d)

Aprinde(a+6, b+6, d)

Aprinde(a+7,b-3, d)

Aprinde(a+7,b-2, d)

Aprinde(a+7,b-1, d)

Aprinde(a+7,b+4, d)

Aprinde(a+7,b+5, d)

Aprinde(a+7,b+6, d)

Aprinde(a+8, b-3,d)

Aprinde(a+8, b-2, d)

Aprinde(a+8, b-1, d)

Aprinde(a+8, b-3, d)

Aprinde(a+8, b-2, d)

Aprinde(a+8, b-1, d)

Aprinde(a+8, b+4, d)

Aprinde(a+8, b+5, d)

Aprinde(a+8, b+6, d)


Andrei Tudor
Andrei Tudor

//fata clovn

var a=4;

var b=6;


//Atribui culori 

var d=ALBASTRU;

 var e=ROSU;

 var f=GALBEN;

 var g=VERDE;


//creez gura

 Aprinde( a, b-4, f);

 Aprinde( a+1, b-4, f);

 Aprinde(a+2, b-4, f);

 Aprinde(a+3, b-4, f);

 Aprinde(a+4, b-3, f);

 Aprinde(a+5, b-2, f);

 Aprinde(a-1, b-3, f);

 Aprinde(a-2, b-2, f);


//creez nasul

 Aprinde(a+1, b-2, e);

 Aprinde(a+2, b-2, e);

 Aprinde(a+1, b-1, e);

 Aprinde(a+2, b-1, e);


//creez ochiul din partea stanga

 Aprinde( a-1, b, g);

 Aprinde( a, b+1, g);

 Aprinde(a-1, b+2, g);

 Aprinde(a-2, b+1, g);

 Aprinde(a-1,b+1, d);


//creez ochiul din partea dreapta

  Aprinde(a+4, b, g);

  Aprinde(a+3, b+1, g);

  Aprinde(a+4, b+1, d);

  Aprinde(a+5, b+1, g);

  Aprinde(a+4, b+2, g);


Alexandralalala
Alexandralalala

//program de desant natura

//definesc variabile

var a=3

var b=7

var c=8

var l=ALBASTRU

var m=VERDE

var n=GALBEN

Aprinde(a,10,l);

Aprinde(b,10,l);

Aprinde(c,10,l);

var d=a-1

Aprinde(d,9,l);

var a=3

Aprinde(a,9,l)

d=b-a

Aprinde(d,9,l);

var b=7

Aprinde(c,9,l);

Aprinde(b,9,l)

Aprinde(a,8,l);

Aprinde(a,6,n)

Aprinde(b,6,m);

Aprinde(c,6,m);

d=a+1

Aprinde(d,5,n);

a=3

Aprinde(a,5);

d=a-1

Aprinde(d,5,n);

Aprinde(d,4,n);

a=3

Aprinde(a,4,n);

d=a+1

Aprinde(d,4,n);

Aprinde(b,5,m);

d=b-1

Aprinde(d,5,m);

Aprinde(d,4,m);

b=7

Aprinde(c,5,m);

Aprinde(b,4,m);

Aprinde(c,4,m);

d=c+1

Aprinde(d,5,m);

Aprinde(d,4,m);

a=3

Aprinde(a,3,m);

Aprinde(a,2,m);

Aprinde(a,1,m);

Aprinde(b,3);

Aprinde(b,2);

Aprinde(b,1);

c=b+1

Aprinde(c,3);

Aprinde(c,2);

Aprinde(c,1);

d=a-1

Aprinde(d,1,m);

Aprinde(1,2,m)

Aprinde(4,1,m);

Aprinde(5,2,m);




Spune-mi, te rog, unde am gresit cu variabilele? pentru ca matematica nu e punctul meu forte.

Alex_34
Alex_34

Seamana cu un copac:))



Victoria_25
Victoria_25

Buna,


Numele meu este Victoria. Am si eu o intrebare: daca as dori sa fac acest lucru pe calculatorul meu de acasa, in ce program ar trebui sa lucrez? 


Multumesc!

lordakenay
lordakenay

de ce atunci cand dau

var i, j, r, a, b, c
i = GALBEN
j = ROSU
r = i+j
a = 1
b = a+1
Aprinde(a,b, r)

imi arata un punct de culoare gri??

Andrian89
Andrian89

Merci, foarte frumos.


var i=ROSU

var j=ALBASTRU

var r=GALBEN

var a=1

var b=2

Aprinde (a,b , i)

Aprinde (a+1,b , i)

Aprinde (a+2,b , i)

Aprinde (a+3,b , i)

Aprinde (a+4,b , i)

Aprinde (a+5,b , i)

Aprinde (a+6,b , i)

Aprinde (a,b+1 , r)

Aprinde (a+1,b+1 , r)

Aprinde (a+2,b+1 , r)

Aprinde (a+3,b+1 , r)

Aprinde (a+4,b+1 , r)

Aprinde (a+5,b+1 , r)

Aprinde (a+6,b+1 , r)

Aprinde (a,b+2 , j)

Aprinde (a+1,b+2 , j)

Aprinde (a+2,b+2 , j)

Aprinde (a+3,b+2 , j)

Aprinde (a+4,b+2 , j)

Aprinde (a+5,b+2 , j)

Aprinde (a+6,b+2 , j)

Remus Pop
Remus Pop

Sa inteleg ca daca i-am dat lui c valoarea initiala a lui a(adica 1), el isi va pastra aceasta valoare chiar daca lui a ii atribui alta valoare ulterior?

andreeastate
andreeastate

//am reusit sa fac floricica

var i=1

var y=1

var n=NEGRU

var v=VERDE

var r=ROSU

Aprinde(i+4,y+9,n)

Aprinde(i+5,y+9,n)

Aprinde(i,y+4,n)

Aprinde(i,y+5,n)

Aprinde(i+4,y,n)

Aprinde(i+5,y,n)

Aprinde(i+9,y+4,n)

Aprinde(i+9,y+5,n)

Aprinde(i+1,y+1,v)

Aprinde(i+1,y+2,v)

Aprinde(i+1,y+3,v)

Aprinde(i+1,y+3,v)

Aprinde(i+2,y+1,v)

Aprinde(i+2,y+3,v)

Aprinde(i+3,y+1,v)

Aprinde(i+3,y+2,v)

Aprinde(i+6,y+1,v)

Aprinde(i+6,y+2,v)

Aprinde(i+7,y+1,v)

Aprinde(i+8,y+1,v)

Aprinde(i+8,y+2,v)

Aprinde(i+8,y+3,v)

Aprinde(i+7,y+3,v)

Aprinde(i+7,y+6,v)

Aprinde(i+8,y+6,v)

Aprinde(i+8,y+7,v)

Aprinde(i+8,y+8,v)

Aprinde(i+7,y+8,v)

Aprinde(i+6,y+8,v)

Aprinde(i+6,y+7,v)

Aprinde(i+2,y+6,v)

Aprinde(i+1,y+6,v)

Aprinde(i+1,y+7,v)

Aprinde(i+1,y+8,v)

Aprinde(i+2,y+8,v)

Aprinde(i+3,y+8,v)

Aprinde(i+3,y+7,v)

Aprinde(i+3,y+5,r)

Aprinde(i+5,y+3,r)

Aprinde(i+3,y+4,r)

Aprinde(i+4,y+3,r)

Aprinde(i+4,y+4,r)

Aprinde(i+4,y+5,r)

Aprinde(i+4,y+6,r)

Aprinde(i+5,y+4,r)

Aprinde(i+5,y+5,r)

Aprinde(i+5,y+6,r)

Aprinde(i+6,y+4,r)

Aprinde(i+6,y+5,r)

Grioxus
Grioxus

Am incercat. E destul de simplu. Multumesc. Doar ca cu culorile nu reusec.

Instructiunile cu vriabile d culore nu se executa.

EdwardNewgate
EdwardNewgate

M-am jucat putin cu variabilele ar fi iesit un curcubeu frumos dar nu am avut destule culori deci am facut ceva abstract sper ca mi-a iesit

Guarana
Guarana

salutari din grecia...


//declararea variabilelor pentru liniile verticale

var a=3

var b=5

var c=7

var d=9

var e=11

var n=0


//crearea liniilor orizontale albastre

while (n<12) 

{  

  Aprinde (n++,a,ALBASTRU) 

  n=n-1 

  Aprinde (n++,b,ALBASTRU) 

  n=n-1 

  Aprinde (n++,c,ALBASTRU) 

  n=n-1 

  Aprinde (n++,d,ALBASTRU) 

  n=n-1 

  Aprinde (n++,e,ALBASTRU) 

}


//declararea altor variabile pentru liniile verticale si initializarea var n cu 0 

n=0 

var f=8 

var g=10 

var h=2 


//crearea patratului albastru si crucea alba

while (n<5)

  Aprinde (n++,f,ALBASTRU) 

  n=n-1 

  Aprinde (n++,g,ALBASTRU) 

  n=n-1 

  Stinge (n++,d)

Stinge (h,7) 

Stinge (h,8) 

Stinge (h,10) 

Stinge (h,11) 


//crearea hampei de la steag cu negru

var i=-1 

n=0 

while (n<13) 

  Aprinde (i,n++,NEGRU) 

Tase
Tase

//Defineste patru variabile

var a = 3;

var b = 8;

var c = 9;

var d = 4;

Aprinde (a,c,GALBEN);

Aprinde (8,9,GALBEN);

Aprinde (a,4,GALBEN);

Aprinde (8,d,GALBEN);

//Sa definim inca 6 variabile, marind astfel numarul acestora la 10

var e = 1;

var f = 2;

var g = 5;

var h = 6;

var i = 7;

var j = 10;

Aprinde (4,10,VERDE);

Aprinde (5,10,VERDE);

Aprinde (6,10,VERDE);

Aprinde (7,10,VERDE);

Aprinde (8+1,g,VERDE);

Aprinde (18/2,h,VERDE);

Aprinde (c,7,VERDE);

Aprinde (9,b,VERDE);

Aprinde (4,6/2,VERDE);

Aprinde (g,a,VERDE);

Aprinde (3+3,3*1,VERDE);

Aprinde (7,3,VERDE);

Aprinde (2,5,VERDE);

Aprinde (f,6,VERDE);

Aprinde (1+1,i,VERDE);

Aprinde (2,8,VERDE);

Aprinde (5,8,ROSU);

Aprinde (4,7,ROSU);

Aprinde (4,6,ROSU);

Aprinde (5,7,ROSU);

Aprinde (5,6,ROSU);

Aprinde (5,5,ROSU);

Aprinde (6,8,ROSU);

Aprinde (6,7,ROSU);

Aprinde (6,6,ROSU);

Aprinde (6,5,ROSU);

Aprinde (7,7,ROSU);

Aprinde (7,6,ROSU);

//Sa marim numarul de variabile cu inca 2, ajungand la un total de 12 variabile

var k = Aprinde (4,10,ALBASTRU); Aprinde (5,10,ALBASTRU); Aprinde (6,10,ALBASTRU); Aprinde (7,10,ALBASTRU);

var l = Aprinde (4,6/2,ALBASTRU); Aprinde (g,a,ALBASTRU); Aprinde (3+3,3*1,ALBASTRU); Aprinde (7,3,ALBASTRU);


DragosOcu
DragosOcu

Seamana a trident?



//Defineste doua variabile
var a=5
var b=9
Aprinde(a,8,ROSU)
Aprinde(a,7,ALBASTRU)
Aprinde(b,8,ROSU)
Aprinde(b,7,ALBASTRU)
//Adaugam o noua variabila c
var c=2
Aprinde(c,8,ROSU)
Aprinde(c,8,ALBASTRU)
Aprinde(c,7,ALBASTRU)
Stinge(c,8,ALBASTRU)
Aprinde(c,8,ROSU)
//Adaugam o noua variabila d
var d=6
Aprinde(d,8,ROSU)
Aprinde(d,7,ALBASTRU)
Aprinde(a,4)
Aprinde(d,4)
//Defineste patru variabile
var e=4
var f=3
var g=7
var h=8
Aprinde(e,5)
Aprinde(g,5)
Aprinde(f,6)
Aprinde(h,6)
Aprinde(a,5)
Aprinde(a,6)
Aprinde(d,5)
Aprinde(d,6)
//Defineste doua variabile
var x=1
var y=10
Aprinde(e,6)
Aprinde(g,6)
Aprinde(e,3)
Stinge(e,3)
Aprinde(a,3)
Aprinde(a,2)
Aprinde(a,1)
Aprinde(d,3)
Aprinde(d,2)
Aprinde(d,1)
Aprinde(x,4,ALBASTRU)
Aprinde(c,4,ALBASTRU)
Aprinde(f,4,ALBASTRU)
Aprinde(d,4,ALBASTRU)
Aprinde(d,4)
Aprinde(e,4,ALBASTRU)
Aprinde(g,4,ALBASTRU)
Aprinde(h,4,ALBASTRU)
Aprinde(b,4,ALBASTRU)
Aprinde(y,4,ALBASTRU)
Aprinde(x,9,GALBEN)
Aprinde(y,9,GALBEN)
Aprinde(f,9,GALBEN)
Aprinde(g,9,GALBEN)
Stinge(g,9,GALBEN)
Aprinde(h,9,GALBEN)

msara
msara

var a= 8

var b= 6

Aprinde(4,a,GALBEN)

Aprinde(8,a,GALBEN)

Aprinde(3,b,ALBASTRU)

Aprinde(4,b,ALBASTRU)

Aprinde(5,b,ALBASTRU)

Aprinde(6,b,ALBASTRU)

Aprinde(7,b,ALBASTRU)

Aprinde(8,b,ALBASTRU)

Aprinde(9,b,ALBASTRU)

var c= a-1

var d= a-b

Aprinde(d,c,ALBASTRU)

Aprinde(d+8,c,ALBASTRU)

//Starea pe care mi-a dat-o

Vlad123
Vlad123

Salut ,Am folosit bine variabilele? Ps>:Mersi mult de ajutor.

var a=1

var b=2;Aprinde(b,b,ALBASTRU)

var c=3;Aprinde(b,c,ALBASTRU)

var d=4;Aprinde(b,d,ALBASTRU)

var e=5;Aprinde(b,e,ALBASTRU)

var f=6;Aprinde(b,f,ALBASTRU)

var g=7;Aprinde(b,g,ALBASTRU)

var h=8;Aprinde(b,h,ALBASTRU)

var i=9

Aprinde(c,c,ALBASTRU)

Aprinde(c,g,ALBASTRU)

Aprinde(d,d,ALBASTRU)

Aprinde(d,f,ALBASTRU)

Aprinde(d,i,VERDE)

Aprinde(e,b,VERDE)

Aprinde(e,c,VERDE)

Aprinde(e,d,VERDE)

Aprinde(e,e,VERDE)

Aprinde(e,f,VERDE)

Aprinde(e,g,VERDE)

Aprinde(e,h,VERDE)

Aprinde(f,b,VERDE)

Aprinde(f,c,VERDE)

Aprinde(f,d,VERDE)

Aprinde(f,e,VERDE)

Aprinde(f,f,VERDE)

Aprinde(f,g,VERDE)

Aprinde(f,h,VERDE)

Aprinde(g,d,ALBASTRU)

Aprinde(g,f,ALBASTRU)

Aprinde(g,i,VERDE)

Aprinde(i,b,ALBASTRU)

Aprinde(i,c,ALBASTRU)

Aprinde(i,d,ALBASTRU)

Aprinde(i,e,ALBASTRU)

Aprinde(i,f,ALBASTRU)

Aprinde(i,g,ALBASTRU)

Aprinde(i,h,ALBASTRU)

Aprinde(h,c,ALBASTRU)

Aprinde(h,g,ALBASTRU)

Chicken123456789
Chicken123456789

Salut. Am 13 ani. Crezi ca as putea sa incep sa invat toatea astea?

Adica am urmarit primul pas si e simplu.Nici al doilea nu mi se pare asa greu.Astept  o parere.

Chicken123456789
Chicken123456789

// un desen Asta e deseneul meu, Parere>?


var a = 1;

Aprinde(a,1,ROSU);

var b = 2;Aprinde(b,1,ROSU);

 var c = 3; Aprinde(c,1,ROSU);

 var d = 4; Aprinde(d,1,ROSU);

 var e = 5; Aprinde(e,1,ROSU);

 var f = 6; Aprinde (f,1,ROSU);

 var g = 7; Aprinde(g,1,ROSU);

 var h = 8; Aprinde(h,1,ROSU);

 var i = 9; Aprinde(i,1,ROSU);

 var j = 10;Aprinde(j,1,ROSU); 


var a = 5; Aprinde(a,10,VERDE);

var b = 6; Aprinde(b,10,VERDE);

var c = 4; Aprinde(c,9,VERDE);

var d = 7; Aprinde(d,9,VERDE);

var e = 8; Aprinde(e,8,VERDE);

var f = 3; Aprinde(f,7,VERDE);

var g = 8; Aprinde(g,7,VERDE);

var h = 4; Aprinde(h,6,VERDE);

var i = 7; Aprinde(i,6,VERDE);

var k = 5; Aprinde(k,9,VERDE);

Aprinde(b,9,VERDE);

Stinge(a,9); Stinge(b,9);

Aprinde(a,5,VERDE);

Aprinde(b,5,VERDE);

Aprinde(b,4);

Aprinde(a,3);

Aprinde(b,3);

Aprinde(a,2);

Aprinde(b,2);

Aprinde(a,9,VERDE);

Aprinde(b,9,VERDE);

Aprinde(a,8,VERDE);

Aprinde(c,8,VERDE);

Aprinde(b,8,VERDE);

Aprinde(d,8,VERDE);

Aprinde(c,7,VERDE);

Aprinde(a,7,VERDE);

Aprinde(b,7,VERDE);

Aprinde(d,7,VERDE);

Aprinde(a,6,VERDE);

Aprinde(b,6,VERDE);


//Partea 2-a.


var a = 1; Aprinde(a,10,ALBASTRU);

var b = 2; Aprinde(b,10,ALBASTRU);

var c = 3; Aprinde(c,10,ALBASTRU);

var d = 4; Aprinde(d,10,ALBASTRU);

var e = 7; Aprinde(e,10,ALBASTRU);

var f = 8; Aprinde(f,10,ALBASTRU);

var g = 9; Aprinde(g,10,ALBASTRU);

var h = 10; Aprinde(h,10,ALBASTRU);

Aprinde(a,9,ALBASTRU);

Aprinde(b,9,ALBASTRU);

Aprinde(c,9,ALBASTRU);

Aprinde(f,9,ALBASTRU);

Aprinde(g,9,ALBASTRU);

Aprinde(h,9,ALBASTRU);

Aprinde(1,8,ALBASTRU);

Aprinde(b,8,ALBASTRU);

Aprinde(g,8,ALBASTRU);

Aprinde(h,8,ALBASTRU);

Aprinde(a,7,ALBASTRU);

Aprinde(b,7,ALBASTRU);

Aprinde(g,7,ALBASTRU);

Aprinde(h,7,ALBASTRU);

Aprinde(a,6,ALBASTRU);

Aprinde(b,6,ALBASTRU);

Aprinde(5,4);

Aprinde(c,8,ALBASTRU);

Aprinde(c,6,ALBASTRU);

Aprinde(f,6,ALBASTRU);

Aprinde(g,6,ALBASTRU);

Aprinde(h,6,ALBASTRU);

Aprinde(a,5,ALBASTRU);

Aprinde(b,5,ALBASTRU);

Aprinde(c,5,ALBASTRU);Aprinde(d,5,ALBASTRU);Aprinde(e,5,ALBASTRU);

Aprinde(f,5,ALBASTRU);Aprinde(g,5,ALBASTRU);Aprinde(h,5,ALBASTRU);

Aprinde(a,4,ALBASTRU);Aprinde(b,4,ALBASTRU);Aprinde(c,4,ALBASTRU);

Aprinde(d,4,ALBASTRU);

var e = 7; Aprinde(e,4,ALBASTRU);

var f = 8; Aprinde(f,4,ALBASTRU);

var g = 9; Aprinde(g,4,ALBASTRU);

var h = 10; Aprinde(h,4,ALBASTRU);

Aprinde(a,3,ALBASTRU);Aprinde(b,3,ALBASTRU);Aprinde(c,3,ALBASTRU);

Aprinde(d,3,ALBASTRU);Aprinde(e,3,ALBASTRU);Aprinde(f,3,ALBASTRU);

Aprinde(g,3,ALBASTRU);Aprinde(h,3,ALBASTRU);Aprinde(a,2,ALBASTRU);

Aprinde(b,2,ALBASTRU);Aprinde(c,2,ALBASTRU);Aprinde(d,2,ALBASTRU);

Aprinde(e,2,ALBASTRU);Aprinde(f,2,ALBASTRU);Aprinde(g,2,ALBASTRU);

Aprinde(h,2,ALBASTRU);Aprinde(d,7,ROSU);

var a = 5;Aprinde(a,9,ROSU);

var b = 6;Aprinde(b,7,ROSU);Aprinde(b,5,ROSU);

var c = 8;Aprinde(c,8,ROSU);

Florin Birleanu
Florin Birleanu moderator

@Chicken123456789 Sigur ca poti sa inveti sa programezi :-). (De exemplu, eu am inceput la 12 ani -- dar cu siguranta as fi putut si mai devreme, numai ca nu am avut acces la asa ceva.)

Florin Birleanu
Florin Birleanu moderator

@Chicken123456789 E fain desenul! Spor in continuare! (Idee: Imi place cum te-ai jucat cu variabilele in programul tau, dar gandeste-te cum te-ai putea folosi de ele pentru a deplasa pomul la dreapta sau la stanga prin modificarea valorii unei singure variabile.) :-)

JuliaRoberta
JuliaRoberta

E bine sau le-am folosit aiurea? multumesc :)

VladManea
VladManea

//Am incercat sa fac un omulet dar nu am gasit culoarea roz

var a=2

var b=4

var c=a+b

var e=b-3

Aprinde(b,1,ROSU)

Aprinde(5,e,ROSU)

Aprinde(c,1,ROSU)

Aprinde(c+1,1,ROSU)

Aprinde(b*2,1,ROSU)

Aprinde(a+1,1,ROSU)


//Linia a II-a


Aprinde(b,2,VERDE)

Aprinde(c+1,2,VERDE)


//Linia a III-a


Aprinde(b+1,3,ALBASTRU)

Aprinde(c,3,ALBASTRU)



//Linia IV


Aprinde(b+1,b,ALBASTRU)

Aprinde(c,b,ALBASTRU)

Aprinde(b-1,b,VERDE)

Aprinde(b*2,b,VERDE)

//Linia V


Aprinde(b+1,5,ALBASTRU)

Aprinde(c,5,ALBASTRU)

Aprinde(b,b+1,VERDE)

Aprinde(c+1,b+1,VERDE)


//Linia VI


Aprinde(b+1,c,GALBEN)

Aprinde(c,c,GALBEN)


alozius212
alozius212

//O cruce colorata:))

var a = 1;
while (a < 10)
{
  /*linia de la baza*/
  if (a > 2 && a < 9)
  Aprinde(a, 1, GALBEN);
  /*liniile verticale*/
  Aprinde(6, a, ROSU);
  Aprinde(5, a++, ROSU);
}
a = 3;
while (a < 9)
{
  /*liniile orizontale*/
  Aprinde(a, 6, ALBASTRU);
  Aprinde(a++, 7, ALBASTRU);
}

MangaMo
MangaMo

@Florin Birleanu @alozius212 eu chiar m-am speriat ca am sarit o lectie, deorece mai multi deja fac desene colorate, n=0 si deschid {

sper ca acestea mai vin, deorece nu prea inteleg....

Dragos Mateescu
Dragos Mateescu

var a=3

var b=a+1

var c=b+1

var d=a*2

var e=a*2+1

var f=b*2


Aprinde(a,6)

Aprinde(a,7)

Aprinde(b,1)

Aprinde(b,6)

Aprinde(b,7)

Aprinde(c,1)

Aprinde(c,2)

Aprinde(c,3)

Aprinde(c,4)

Aprinde(c,5)

Aprinde(c,6)

Aprinde(c,7)

Aprinde(c,8)

Aprinde(c,9)

Aprinde(d,1)

Aprinde(d,2)

Aprinde(d,3)

Aprinde(d,4)

Aprinde(d,5)

Aprinde(d,6)

Aprinde(d,7)

Aprinde(d,8)

Aprinde(d,9)

Aprinde(e,1)

Aprinde(e,6)

Aprinde(e,7)

Aprinde(f,6)

Aprinde(f,7)

MOLDO72
MOLDO72


var a=3

var b=a+1

var c=b+1

var d=c+1

var e=d+1

var f=e+1


Aprinde(a,4);
Aprinde(a,5);
Aprinde(a,6);
Aprinde(a,7);
Aprinde(a,8);
Aprinde(a,9);
Aprinde(b,4);
Aprinde(b,5);
Aprinde(b,8);
Aprinde(b,9);
Aprinde(c,4);
Aprinde(c,6);
Aprinde(c,7);
Aprinde(c,9);
Aprinde(d,4);
Aprinde(d,6);
Aprinde(d,7);
Aprinde(d,9);
Aprinde(e,4);
Aprinde(e,5);
Aprinde(e,8);
Aprinde(e,9);
Aprinde(f,4);
Aprinde(f,5);
Aprinde(f,6);
Aprinde(f,7);
Aprinde(f,8);
Aprinde(f,9);





Catalinsys
Catalinsys

Pana la aceasta parte e bine ma face sa inteleg, partea proasta este ca nu este exemplu pentru a programa in compilatoare normale, ci doar in cel facut de tine. Oricum multumim.

Florin Birleanu
Florin Birleanu moderator

@Catalinsys Astia sunt primii pasi, "antrenamentul" :-). Daca vei trece cu bine de toti acesti pasi, iti va fi mult mai usor apoi sa inveti sa programezi folosind compilatoare.

Stefania Rotariu
Stefania Rotariu

// Defineste doua variabile

var a = 1

var b = 10

// Aprinde pe linia 1 punctul corespunzator valorii din variabila a

Aprinde(1, 1)

// Aprinde pe linia 2 punctul corespunzator valorii variabilei b

Aprinde(10, 2)

// Si acum sa definim o a treia variabila, c, si sa facem niste operatii

var c = a

a = b

b = c

// Oare ce s-a intamplat? Sa vedem in continuare

// Aprinde pe linia 3 punctul corespunzator valorii variabilei a

Aprinde(10, 3)

// Aprinde pe linia 4 punctul corespunzator valorii variabilei b

Aprinde(1, 4)




Stefania Rotariu
Stefania Rotariu

Aprinde(1, 5)

Aprinde(1, 6)

Aprinde(2, 5)

Aprinde(2, 7)

Aprinde(2, 8)

Aprinde(2, 9)

Aprinde(3, 3)

Aprinde(3, 4)

Aprinde(3, 9)

Aprinde(4, 2)

Aprinde(4, 7)

Aprinde(4, 10)

Aprinde(5, 5)

Aprinde(5, 9)

Aprinde(6, 5)

Aprinde(6, 9)

Aprinde(7, 2)

Aprinde(7, 7)

Aprinde(7, 10)

Aprinde(8, 3)

Aprinde(8, 4)

Aprinde(8, 9)

Aprinde(9, 5)

Aprinde(9, 7)

Aprinde(9, 8)

Aprinde(9, 9)

Aprinde(10, 5)

Aprinde(10, 6)

Andreea004
Andreea004

Și mai e asta:


var t
var a
var b
var c
t=10
t-c=a
a=b+3
b+3=c
Aprinde(c,t)
Aprinde(a,b)

//de ce nu îmi afișează nimic?

Florin Birleanu
Florin Birleanu moderator

@Andreea004 Instructiunile "t-c=a" si "b+3=c" nu sunt valide. O instructiune de atribuire pe care calculatorul o intelege trebuie sa aiba forma "variabila=expresie". Semnul egal nu are sensul de "egal", ci are sensul de "variabila din stanga primeste valoarea expresiei din dreapta".

Andreea004
Andreea004


     
var a=4
var b=6
var c
c=7
Aprinde(a,10)
Aprinde(b,10)
Aprinde(c,5)
var d=a
a=b
b=c
c=d
c=a+b-c //aici e problema care vreau sa o inteleg
Aprinde(a,b)
Aprinde(b,c)
Aprinde(c,d)

//se obtin valorile:
//a=6, b=7, c=6

//observăm că beculețele obținute în desen au urm. coordonate:
// (4,10),(6,7),(6,10),(7,5),(7,9),(9,4)
//punctele pe care ar trebui să le obținem:
//(4,10),(6,10),(7,5),(6,7),(7,7),(7,?)

//Care ar putea fi problema?

Florin Birleanu
Florin Birleanu moderator

@Andreea004 Programul tau functioneaza corect. Versiunea urmatoare (in care am colorat punctele, ca sa poti vedea pe ecran care punct corespunde carei instructiuni) a programului s-ar putea sa iti fie de folos:


var a=4

var b=6

var c

c=7

Aprinde(a,10, ROSU)

Aprinde(b,10, ROSU)

Aprinde(c,5, ROSU)

var d=a

a=b

b=c

c=d

c=a+b-c //aici e problema care vreau sa o inteleg

Aprinde(a,b, VERDE)

Aprinde(b,c, GALBEN)

Aprinde(c,d, TURCOAZ)


//se obtin valorile:

//a=6, b=7, c=6


//observăm că beculețele obținute în desen au urm. coordonate:

// (4,10),(6,7),(6,10),(7,5),(7,9),(9,4)

//punctele pe care ar trebui să le obținem:

//(4,10),(6,10),(7,5),(6,7),(7,7),(7,?)


//Care ar putea fi problema?


Vlad
Vlad

Imi cer scuze... dar eu nu inteleg:

var a = 1

var c = a

a = b

b = c

Pentru mine a=1=c=b. Nu inteleg de cum se inverseaza in final pe "ecran" a cu b

Andreea
Andreea

@Vlad aceasta poarta numele de 'regula paharelor'. Cauta mai multe despre asta pe net si vei intelege :)

Florin Birleanu
Florin Birleanu moderator

@Vlad Ia o foaie de hartie si fa pe ea 3 coloane: a, b si c. Apoi "executa" mental pe rand fiecare instructiune, de sus in jos. Adica: vezi "var a = 1" -- pui in coloana a 1; vezi "var c = a" -- pui in coloana c valoarea din coloana a; si asa mai departe...

Trackbacks

  1. […] Daca ai urmarit lectiile anterioare de introducere in programarea calculatoarelor, stii deja ca un calculator nu poate sa faca altceva decat sa execute o serie de instructiuni precise, una dupa alta (asa cum ai putut vedea in lectia 1 (partea 1 si partea a 2-a)). Ai vazut si experimentat pana aici instructiuni ce au un efect vizual imediat (instructiunile Aprinde si Stinge, ce aprind, respectiv sting, un punct negru situat la coordonatele specificate pe un “ecran” virtual), precum si instructiuni cu ajutorul carora poti defini variabile si stoca valori in ele (asa cum ai vazut in lectia a 2-a). […]

  2. […] programator trebuie sa le stapaneasca intr-un mod personal. Am vorbit despre instructiuni, despre variabile, despre instructiunea daca, despre instructiunea cat timp, despre vectori si matrici, despre […]

  3. […] Apoi trebuie sa inveti cum sa memorezi diverse valori in variabile si cum sa faci calcule cu ele. Lectia e aici. […]