Sunteți pe pagina 1din 8

Tutorial Programare in C++(chestiuni elementare pt incepatori)

1. Introducere:
Ca sa nu intram prea brusc in teoria programarii o sa incep cu cateva cuvinte despre ceea ce imi propun sa fac. In primul rand, tutorialul se adreseaza incepatorilor, celor care nu au mai facut informatica pana acum, celor care se plang(in principal prietena mea) ca informatica este de neinteles.(cititi in continuare) O sa incerc sa fac noutiunile de algoritm, variabila, tablou, functie, procedura, etc mai usor de inteles(am zis "o sa incerc"). Tutorialul este impartit in mai multe lectii, la sfarsitul fiecarei lectii sunt cateva probleme pe care le puteti rezolva singuri si pentru a va verifica puteti trage cu ochiul la rezolvarea postata de mine. In cazul in care vreti sa compilati programele prezentate si altele create de voi, va recomand Visual C++ 6.0, care il gasiti in diferite locatii... Pentru cei care nu ai mai lucrat in Visual C++ atasez un scurt video care prezinta pasii care ii aveti de urmat pentru a scrie si compila un program(Vezi video). Cu asta am cam incheiat vorbaria, e timpul sa tecem la treaba. Succes!

2. Lectia 1-Ce este un algoritm?Proprietatile Algoritmilor.


Suna cam ciudat nu-i asa?Nu va speriati, folosim algoritmi si in viata de zi cu zi, pentru prepararea unei mese copioase, pentru spalatul vaselor, chiar si pentru mersul pe jos. Pentru efectuarea acestor activitati avem nevoie de un numar finit de pasi, transpusi in ordine logica. Ca ex: pentru a prepara oua prajite urmam urmatorii pasi:

pregatim ouale punem ulei in tigaie aprindem aragazul punem ouale asteptam sa se prajeasca punem bunatatea obtinuta in farfurie bineinteles ca o si mancam

Astfel am obtinut un algoritm pentru a prepara oua prajite. In termeni tehnici ar suna cam asha: Ca date de intrare sunt ouale, se executa instructiunile algoritmului(aprindem aragazul, asteptam, etc) si in final obtinem datele de iesire care reprezinta ouale prajite(iam iam). Acum putem da o definitie algoritmului si aceasta ar fi: Algoritmul reprezinta un set finit de pasi, aranjati intr-o ordine logica, care dupa executie produce o solutie pentru o problema data. Am subliniat "o solutie" pentru ca atunci cand unei probleme i se gaseste o solutie, aceasta are o infinitate de solutii. Un algoritm are urmatoarele proprietati:

intrare(input): reprezinta datele care i le furnizam din exterior algoritmului. iesire(output): reprezinta datele produse de algoritm, dupa executarea instructiunilor, si transmise in exterior. terminare: este esential ca orice algoritm sa aiba un numar finit de pasi, undeva in interiorul algoritmului trebuie sa existe o conditie care opreste algoritmul(in ex de mai sus algoritmul se opreste cand ouale sunt prajite si puse in farfurie). corectitudine:daca algoritmul se termina si genereaza datele de iesire corecte pentru orice date de intrare atunci putem spune ca algoritmul rezolva problema data.

Cu acestea am incheiat prima lectie. Ce trebuie sa retinem? -Cu ajutorul algoritmilor rezolvam problemele, fie ele de informatica sau din viata de zi cu zi.

Lectia 2-Primii pasi, timizi, in C++


Un program C++ standard arata astfel: ---------------------------------------------------1|#include < iostream.h > | 2| void main() 3| { 4| instructiunile programului; 5| } -------------------------------------------Ma simt dator cu cateva explicatii. Am dat fiecarei instructiuni cate un index(numar) pentru a simplifica denumirea. Astfel instructiunea (1) da spre folosire programului nostru libraria "iostream". Limbajul C++ stocheaza functiile elementare, predefinite in librarii. In programele noastre o sa folosim doar cateva dintre ele cum ar fi iostream,math(pt functii matematice), fstream(pt lucrul cu fisiere). Instructiunea (2) deschide functia principala a programului si anume main(o sa intelegeti asta mai bine cand ajugem la functii). Continutul unei functii este incadrat in acolade-instructiunile (3) si (5).In interiorul functiei main(intre acolade) vor fi scrise instructiunile programului nostru. Cam asha ar trebui sa incepeti un program standart in C++, zic standard pentru ca pe parcurs vom mai introduce cate ceva, vom vedea la timpul potrivit. Deocamdata trebuie sa stiti ca at cand incepeti sa scrieti un program veti folosi scheletul acesta. In continuare voi prezenta cateva dintre functiile predefinite ale limbajului:

cin(sintaxa:cin>>var)- cu ajutorul functiei cin stocam o informatie ,data de utilizator, in memoria calculatorului. cout(sintaxa:cout<<"text")- cu ajutorul functiei cout afisam o informatie pe ecran.

Cam astea ar fi de inceput, restul le vom invata pe parcurs. Acum ca stim cateva lucruri despre programarea in C++, hai sa invatam calculatorul sa ne afiseze numele. Program 1 - Sa se afiseze pe ecran textul cu numele vostru. -------------------------------------------#include <iostream.h > void main() { cout<<"Musat Lucian"; } --------------------------------------Simplu nu?Codul de mai sus ii va spune calculatorului sa afiseze pe ecran numele scris intre ghilimele dupa functia cout. Pentru a va convinge scrieti programul in Visual C(daca nu stii cum vezi video din introducere). *Observatie! In limbajul C++ sfarsitul unei instructiuni este marcat cu ;(punct si virgula). E un lucru destul de important deoarece lipsa ; la sfarsitul instructiunii va genera erori. Asa ar trebui sa arate rezultatul vostru, evident cu numele vostru.

Cam asta ar fi cu teoria. Acum un exercitiu pentru voi: Exercitii: 1.Scrieti un program care afiseaza Numele si Prenumele voastre cu ajutorul a doua instructiuni cout. Cu asta am incheiat si lectia 2.Trecem la lucruri un pic mai serioase.

Lectia 3-Variabila.Ce este o variabila?Proprietati.Cum o utilizam?


Am fost la facultate si la un curs profesorul a spus ca unitatile de stocare foarte mari care se folosesc la servere se numesc blade-uri. Cand am auzit informatia am gasit loc in memoria mea si am stocat-o acolo(pentru o vreme ca nu nu am memorie prea buna). In acelasi mod trateaza si calculatorul informatiile primite de la utilizator-aloca un spatiu in memoria sa si stocheaza informatia in spatiul alocat. Pentru a putea stoca o informatie computerul foloseste o variabila. Variabila este un spatiu alocat in memoria calculatorului pentru stocarea de informatii.

Instructiunea prin care ii comunicam calculatorului ca trebuie sa rezerve spatiu pentru o variabila se numeste declaratie. Sintaxa declaratie variabila: tip nume; Este destul de simplu. Mai intai precizam tipul datei care se va stoca in variabila( mai jos voi prezenta tipurile de variabile) apoi ii dam un nume variabilei pentru a o putea utiliza in algoritmul nostru. Tipuri de Date

int - stocheaza numere intregi cuprinse intre -32767 si 32767 char- stocheaza caractere in codul ASCII float-stocheaza numere in virgula mobila, cu cel putin 7 zecimale precizie double-stocheaza numere in vigrula mobila, cu cel putin 15 zecimale precizie

Acum ca stim si cele mai importante tipuri de date din c++ vom putea da un exemplu de declaratie pentru o variabila. int var; Am declarat o variabila de tip intreg(int) cu numele var.(numele unei variabile poate fi oricare). char var; Am declarat o variabila de tip char(character) care va stoca un caracter. Ca sa se inteleaga bine ce se intampla in memoria calculatorului cand se declara o variabiala va propun urmatoarea schema. Luam primul exemplu. int var;

Daca patratul ingrosat este memoria calculatorului, dupa instructiunea prin care declaram variabila var memoria va arata astfel. Patratul subtire semnifica spatiul alocat pentru variabila var. Asupra variabilelor se pot face doua operatii:

Atribuire: Cu ajutorul semnului "=" putem atribui variabilei o expresie(umplem casuta din memorie cu o informatie). Comparatie: Cu ajutorul operatorilor logici putem compara doua variabile sau expresii. (comparam informatiile din doua casute din memorie).

Observatie!!Expresia este formata din una sau multe variabile. De ex: a+b este o expresie. Ex atribuire: int var; //declaram variabila var. var=5; //in variabila var punem numar 5. Dupa executarea acestor 2 instructiuni memoria calculatorului va arata astfel:

De altfel putem face operatii aritmetice cu variabile. Pentru a exemplifica vom scrie un program care aduna valorile a doua variabile si atribuie rezultatul celei de a treia, apoi afiseaza valoarea. ---------------------------------------------#include < iostream.h > void main() { int a; int b; int s; a=1; b=2; s=a+b; cout<< s ; } ----------------------------------------------------Programul este foarte simplu. Am folosit scheletul din lectia 2 si am adaugat instructiunile necesare. Am declarat 3 variabile numite a, b si s apoi am atribuit valori lui a si b. In variabila s am pus suma dintre a si b( o expresie) apoi cu ajutorul functiei cout am afisat continutul variabilei s pe ecran. Pentru a testa programul il puteti tasta in Visual C++. Toate programele care le scriem noi indiferent de ce limbaj este asemanator cu o conversatie intre noi si calculator, doar ca...hmmm...NOI SUNTEM SEFII:D De ex daca ar fi sa traducem programul nostru intr-un dialog cu calculatorul acesta ar suna cam asha: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Programator: Computer pentru discutia cu mine ai sa folosesti dictionarul din libraria iostream.h( #include iostream.h >)!

Computer: Da, domnule programator am deschis dictionarul si sunt gata sa primesc instructiunile. Programator:Iti definesc functia principala...cand vei deschide programul meu vei executa prima data instructiunile din functia main...fara comentarii!!(void main(){); Computer: Da, sa traiti! Programator: Am nevoie de 3 variabile, imi rezervi spatiu pentru o data de tip intreg cu numele a, un spatiu pentru o variabila de tip intreg cu numele b si un spatiu pentru o variabila de tip intreg cu numele s!(int a; int b; int s;) Computer: Sigur, am rezervat spatiu in memoria mea la adresele indicate si sunt gata sa atribui informatii variabilelor nou create. Programator:Bine. Acum puna la adresa a valoarea 1 si la adresa b valoarea 2!(a=1; b=2;), apoi pentru adresa s te duci la adresele a si b obtii informatiile din ele, le aduni si rezultatul il pui la adresa s.(s=a+b;) Computer: Da domnule, operatiile au fost executate. Programator:Afiseaza pe ecran valoarea de la adresa s!(cout < < s). Termina executia! Multumesc. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ In concluzie calculatorul executa tot ce ii spunem noi in limbajul inteles de el.Acum ca am glumit putin trecem la ceva ce trebuie retinut. Operatori aritmetici:

+ - adunarea a doua sau mai multe variabile (a +b) - - scaderea a doua sau mai multe variabile(a-b) * - inmultirea a doua sau mai mlte variabile(a*b) / - impartirea a doua variabile(a/b) % -returneaza restul impartirii unei variabile la alta(sau a unei variabile la un numar)

Pentru a compara doua variabile(expresii) avem nevoie de operatori logici si rationali.Acestia sunt: Operatori Logici si rationali

&&- reprezinta si(returneaza 1 daca ambele expresii sunt adevarate) || -reprezinta sau(returneaza 1 daca macar un dintre expresii este adevarata) !- negatie(not) == egal != diferit <, >,<=,>= mai mare mai mic(egal)

Variabile, variabile si iar variabile....V-am cam ametit putin nu-i asa?Pentru a va fixa mai bine ideea de variabila in mintea voastra, puteti asemana variabila cu cutia voastra postala...Ea(variabila) este stocata undeva in bloc(memoria calculatorului), are o adresa la care poate fi gasita(numele variabile) si postasul vine pune facturi in ea(atribuie o informatie variabilei). Noi pentru a vizualiza facturile din cutie...le scoatem si le afisam (cout< < numevariabila) si facem diferite operatii cu ele(le adunam, le scadem, le comparam). In incheiere va propun un program care, la fel ca precedentul, calculeaza suma dintre doua variabile care primesc valori introduse de la tastatura.Mai intai scriem codul apoi o sa-l explic.

---------------------------------------------#include < iostream.h > void main() { int a; int b; int s; cout<<"Introduceti valoarea lui a:"; cin>> a; cout<< "Introduceti valorea lui b:"; cin>> b s=a+b; cout<< s ; } ----------------------------------------------------Dupa cum observati programul este asemanator cu precedentul doar ca in locul atribuirilor am folosit instructiunea cin(stim ce face din lectia 1). Calculatorul mai intai va afisa pe ecran ce este dupa cout apoi va astepta ca utilizatorul sa introduca o valoare. Valoarea va fi stocata in variabila declarata la inceput si anume a in primul caz si b in cel de al doilea. Cam atat despre variabilele, cred ca e deajuns sa invatati sa folositi cum trebuie variabilele, dar pentru a fi sigur ca v-ati prins cum sta treaba puteti incerca un exercitiu: Exercitii: 1.Scrieti un program care afiseaza pe ecran produsul dintre doua valori introduse de la tastura. 2.Scrieti un program care afiseaza pe ecran restul impartirii unui numar introdus de la tastatura la 10.

Lectia 4-Instructiuni.If,For,While ,DoWhile ,Swich.


Continuam, asadar, cu cateva instructiuni de baza in limbajul C++. In viziunea mea daca intelegi intructiunile acestea aveti invatzat mai multe de 10 % din programare(ceea ce e f mult). Intructiunea IF: Sintaxa: if(expresie) { executa instructiuni; } else { executa instructiuni; } Cred ca este cea mai simpla instructiune...ajuta calculatorul sa i-a decizii. Functioneaza aproape la fel ca gandirea umana, daca o expresie este adevarata executa un set de instructiuni, daca expresia este falsa executa alt set de instructiuni(sau nu executa nimic daca nu este "else" ). Si dam urmatorul exemplu:

a=5; if(a==5) { cout<<"a este 5"; } else { cout<<"a nu este 5"; } Presupun ca este destul de clar cum functioneaza....daca a este 5(ca in cazul nostru) expresia (a==5) este adevarata si se va executa prima instructiune si anume cout< < "a este 5". Daca lui a i-am da valoarea 6, atunci s-ar executa instructiunea de dupa else, cout< < "a nu este 5". Nu mai insist asupra acestei instructiuni pentru ca mi se pare ceva banal, sper sa vi se para si voua la fel:D. In continuare propun o mica aplicatie in care utilizam intructiunea if.Aplicatia trebuie sa verifice relatia dintre doua numere si sa afiseze mesajul corect. ---------------------------------------------------------------#include < iostream.h > void main() { int a,b; //declaram variabilele necesare; cout<<"a="; cin>>a; //citim de la tastatura prima valoare; cout<<"b="; cin>>b; //citim de la tastatura a doua valoare; if(a>b) { cout<<"a este mai mare decat b"; } //verificam care valore este mai mare else afisam mesajul potrivit { cout<<"a mai mic decat b" ; } if(a==b) { //cazul particular in care a=b; cout<<"a este egal cu b"; } } ------------------------------------------------------------------Cam asa arata un program care verifica relatia dintre doua valori(> ,< ,=). Dupa cum se observa am folosit sablonul prezentat la inceput. Am citit valorile pentru variabilele a si b apoi am folosit instructiunea if pentru a verifica cele doua valori. Sper ca ati inteles cum sta treaba cu "daca". Va propun un exercitiu: 1.Scrieti un program care verifica daca un numar este par sau impar(hint: un nr este par daca restul impartirii la 2 este egal cu 0);