sâmbătă, 17 aprilie 2010

Programare - Pasul 5

O alta instructiune de repetitie este while - instructiune cu numar necunoscut de pasi, adica nu stim de la inceput de cate ori se va executa corpul acesteia.

Forma generala
while (conditie):
         set_instructiuni


while e o instructiune cu test initial - adica inainte de a executa setul de instructiuni se testeaza conditia; daca aceasta e adevarata se va executa secventa de cod corespunzatoare corpului functiei; in caz contrar nu se executa nimic

Exemplu 1


parola=' ' # initializam variabila parola
while (parola!='Sorin123'):
         parola=input("Introduceti parola :")



Programul de mai sus citeste siruri de caractere de la tastatura pana cand sirul citit este Sorin123.

Observatie: nu uita ca se citeste un sir de caractere care trebuie incadrat intre apostrofuri ' '

Exemplu 2


parola=' ' #initializare variabila parola
i=0 #contor pentru numarul de incercari
while (parola!='Sorin123' and i < 3):
         parola=input("parola :")
         i=i+1
         if (parola!='Sorin123'):
              print "Parola gresita. Mai ai ",3-i," incercari"
         if (i==3):
              print "Nu ai nimerit parola!"



In posturile urmatoare voi propune cateva aplicatii ale instructiunilor invatate pana acum. Daca intampini dificultati cere-mi ajutorul; chiar astept intrebari din partea ta unde nu am fost destul de explicit.

Pana data viitoare iti urez spor la programat.

vineri, 2 aprilie 2010

Programare - Pasul 4

Instructiunea for e o instruciune de repetitie cu numar cunoscut de pasi. Adica, vom repeta un set de instructiuni de un anumit numar de ori.

Forma generala

for i in range(inceput,sfarsit):
       set instructiuni


unde :
i e variabila contor; in general, ca si contor se folosesc variabilele i,j,k
inceput e valoarea cu care se initializeaza variabila contor
sfarsit e valoarea care determina sfarsitul repetitiei

Observatie: setul de instructiuni se repeta de sfarsit-inceput ori; cand variabila contor primeste valoarea sfarsit repetitia se termina;

Exemplu 1

Codul sursa

for i in range(1,5):
       print "Contor =",i


Rezultatul

Contor = 1
Contor = 2
Contor = 3
Contor = 4



Operatorul % calculeaza restul impartirii a doua numere intregi (ex. 5%2=1; 9%10=9; 10%5=0)

Operatorul / calculeaza catul impartirii a doua numere intregi (ex. 5/2=2; 9/10=0; 10/5=2)

In continuare vom crea un program care verifica daca un numar este prim sau nu si afiseaza un mesaj corespunzator.

Exemplu 2

prim=True
nr=input("Dati un numar = ")
for i in range(1,nr):
       if (nr%i==0):
            prim=False
if  (prim==True):
        print "Numar prim"
else:
        print "Numar neprim"



In Exemplul 2 am folosit variabila prim de tip boolean ( poate avea valoarea True sau False ); de asemenea, am folosit operatorul de comparatie ==.

Pentru orice intrebari/nelamuriri astept comentariile/mesajele tale.

miercuri, 31 martie 2010

Programare - Pasul 3

Am invatat sa citim siruri de caractere si numere. Hai sa ne jucam un pic cu ele.

Vom crea un program care citeste de la tastatura numele si varsta a doua persoane si afiseaza pe ecran persoana mai tanara. Pentru asta vom folosi instructiunea decizionala if care are urmatoarea structura:

if contitie:
      actiune unu
else:
      actiune doi


Exemplu 1


nume1=input("Nume1 : ")
varsta1=input("Varsta1 = ")
nume2=input("Nume2 : ")
varsta2=input("Varsta2 = ")
if (varsta1 < varsta2):
      print nume1," e mai tanar"
else:
      print nume2," e mai tanar"


Scrie codul de mai sus si ruleaza programul. Nu uita cand citesti numele sa il introduci intre apostrofuri (ex. 'Sorin')

Programul, in starea in care e acum, e corect doar pe jumatate. Am sa iti spun imediat si de ce. Citeste doua varste egale si vezi rezultatul. Ce mesaj primesti ? Care dintre cei doi e mai mare ? Din cate se pare nu am luat in calcul si varianta asta.

Observatie: Pentru a putea defini mai multe conditii pentru instructiunea decizionala folosim instructiunea elif.

if contitie:
      actiune unu
elif conditie:
      actiune doi
else:
      actiune trei



Dupa modificare, programul va arata in halul urmator:


nume1=input("Nume1 : ")
varsta1=input("Varsta1 = ")
nume2=input("Nume2 : ")
varsta2=input("Varsta2 = ")
if (varsta1 < varsta2):
      print nume1," e mai tanar"
elif (varsta2 < varsta1):
      print nume2," e mai tanar"
else:
      print "Varstele sunt egale"


Observatie: atentie la indentare! Incepand de acum o vom folosi tot mai des. Sfatul meu e sa folosesti doar TAB-ul si nu SPACE-ul atunci cand indentezi. In acest fel ai mai putine sanse sa iti apara erori la rularea codului sursa.

sâmbătă, 27 martie 2010

Programare - Pasul 2

Cum stai cu chefu’ ? Parca ar merge un pic de programare, am dreptate?
Intra aici, descarca programul si hai sa ne apucam de lucru.

Deschide IDLE (Python GUI) din Start->All programs->Python 2.6. Click pe File->New window. In fereastra deschisa vom scrie codul sursa.

Cele mai folosite functii in Python, ca in orice alt limbaj de programare de altfel, sunt functia de citire ( input ) si functia de scriere ( print ):

Observatie:Pentru a rula un program se apasa tasta F5.

Exemplul 1
print “Citim doua numere naturale apoi pe afisam”
a=input(“a=”)
b=input(“b=”)
print a,b


Codul a=input() determina citirea unei valori care i se atribuie variabilei a. Poti alege sa afisezi ( sau nu ) un mesaj in cadrul functiei input.
In Python nu se specifica in mod explicit tipul variabilelor; acesta e determinat de valoarea atribuita.

Observatie: cand citim caractere,litere sau cuvinte vom specifica acest lucru prin incadrarea lor intre apostrofuri (ex. ‘Sorin’ )

In Python este critica indentarea; indentarea se refera la aranjarea codului sursa astfel incat instructiunile ce apartin aceluiasi bloc sa fie unele sub altele. Voi reveni cu mai multe detalii cand vom ajunge la programe mai complexe.

La afisare variabilele se vor separa de sirul de caractere prin virgule ( vezi exemplul urmator )

Exemplul 2
nume=input( “Nume : ”)
varsta=input(“Varsta : ”)
print “Domnul“,nume,”are”,varsta,”ani”


Exemplul 3

a=input(“a=”)
b=input(“b=”)
c=input(“c=”)
print “Suma celor trei numere este”,a+b+c

Programare - Pasul 1

Sa zicem ca vrei sa te apuci de programare. Dupa ce iti faci curaj, iti faci un playlist misto, pui telefonu’ pe silentios, te pui sa cauti documentatie. In nici 10 minute ai deja tone de articole. Apare acum intrebarea: ce limbaj de programare sa folosesti ?

Aici intervine o mica-mare problema. Ai de ales dintre zeci de limbaje. Te apuci sa cauti pe forumuri, sa ceri pareri in stanga si-n dreapta. La final vei avea urmatoarele recomandari: C, C++, Java, Pascal, etc.

In concluzie, nu ai rezolvat problema. Moment in care vin eu cu solutia: Python. Se poate sa fi auzit de el. Pentru cei care nu stiu, insa, cu ce se mananca il voi descrie cat mai scurt: limbajul cu cele mai naturale instructiuni, cu cel mai curat cod sursa si cel mai usor/repede de invatat.

Evident, am enumerate doar principalele calitati, cele care m-au determinat pe mine sa il incerc. Nu voi intra in detalii acum; daca vrei sa afli mai multe trimite-mi un mesaj sau intra pe site-ul official si convinge-te singur de performantele lui.

Acum ca am ales si mediul de lucru putem sa trecem la treaba. In zilele urmatoare voi incerca sa te invat bazele programarii folosind Python. Tot ce am nevoie din partea ta e rabdare, perseverenta si chef de lucru. Restul vine de la sine.

Pana data viitoare, te salut !

vineri, 26 martie 2010

Bine ai venit !

Salut.

Daca ai ajuns aici :

1. Te-ai blocat la a 8-a linie de cod din lucrarea de doctorat si ai nevoie de putin ajutor.
2. Te-ai ratacit !

Sper sa fie prima varianta ... in caz ca te incadrezi,totusi, pe a 2-a ramura poti folosi butonul back.

Am creat blogul cu intentia de a-i ajuta pe cei ce intampina greutati in ale programarii. Nu spun ca voi reusi tot timpul sa te ajut - nu le stiu chiar pe toate - dar ma voi stradui sa iti dau o mana de ajutor.

Pentru inceput am sa fac o scurta prezentare a unui limbaj de programare ( inca nu m-am decis care ), urmand ca pe viitor sa postez raspunsuri pentru problemele pe care le voi primi.