1 / 14

Implementari C++

Implementari C++. Structura unui program C++. 1. directive de copilare 2. functia principala main() 3. declaratii de variabile 4. instructiuni Exemplu: #include<iostream.h> main() { int a; a=3; cout<<a*a; }. 1. Tipuri de date. • char reprezinta caractere ASCII; retine 8 biti

trinh
Download Presentation

Implementari C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Implementari C++

  2. Structura unui program C++ • 1. directive de copilare • 2. functia principala main() • 3. declaratii de variabile • 4. instructiuni • Exemplu: • #include<iostream.h> • main() • { • int a; • a=3; • cout<<a*a; • }

  3. 1. Tipuri de date • char reprezinta caractere ASCII; retine 8 biti • int reprezinta numere ıntregi din intervalul [-32767,32767]; retine 16 biti • long int reprezinta numere ıntregi din intervalul [-2147483647, 2147483647]; retine 32 biti. • float reprezinta numereın virgula mobila, cu o precizie de cel putin 7 zecimale exacte; retine 32 biti. • double reprezinta numere ın virgula mobila, cu o precizie de cel putin 15 zecimale exacte; retine 64 biti.

  4. 2. Operatori Operatorul ! este unar, spre deosebire de toti operatori (relationali, de egalitate si logici) care sunt binari. In C/C++ reprezinta "false" orice expresie egala cu zero, si "true" orice expresie diferita de zero.

  5. 3. Evaluare rapida (short-circuit) Pentru expresiile ce contin && sau ||, evaluarea are loc cand s-a stabilit deja valoarea expresiei, eventual fara parcurgerea intregii expresii. -presupunem ca "expr1" se evalueaza la 0 (false). Atunci expresia expr1 && expr2 se va evalua la 0, fara a se mai face evaluarea expresiei "expr2". -daca "expr1" se evalueaza la 1 (true), atunci expresia expr1 || expr2 se va evalua la true fara a se mai evalua expresia "expr2". Uneori se mai spune ca operatorii && si || sunt “lazy “

  6. 4. Instructiunea compusa O instructiune compusa este un sir de declaratii si instructiuni delimitate de acolade. Ceea ce acoladele delimiteaza se numeste "bloc". O instructiune compusa este ea insasi o instructiune. Exemplu:{a = 1;{b = 2;c = 3;}}

  7. 5. Instructiunile "if" si "if-else“ Forma generala a instructiunii "if" este: if (expresie)instructiune if (expresie)instructiune1elseinstructiune2 Semantica intuitiva este de clara: daca valoarea expresiei este diferita de zero, atunci se executa instructiune1 si "se sare" peste instructiune2. Daca valoarea expresiei este zero, atunci "se sare" instructiune1, si se executa instructiune2.

  8. 6. Operatorul conditional Operatorul "?:" este mai putin obisnuit deoarece este ternar (cu trei argumente). Forma generala este: expresie1 ? expresie2 : expresie3 Mai intai, se evalueaza expresie1. Daca aceasta este diferita de 0 (true), atunci se evalueaza expresie2, si aceasta va fi valoarea returnata de intreaga expresie conditionala. Daca expresie1 este 0 (false), atunci se evalueaza expresie3, si aceasta va fi valoarea intregii expresii conditionale. Exemplu: Instructiuneaif (y < z)x = y;else x = z;este echivalenta cux = (y < z) ? y : z; Operatorul ?: are aceeasi prioritate cu operatorul de asignare si se asociaza de la dreapta la stanga.

  9. 7. Instructiunea "while“ "While", "for" si "do" sunt cele trei instructiuni repetitive din limbajul C++. Consideram urmatorul format general al instructiunii "while". while (expresie)instructiuneinstructiune_urmatoare Mai intai se evalueaza expresie. Daca aceasta nu este zero (deci este "true"), atunci se executa instructiunea, si control trece la inceputul buclei "while". Astfel, corpul buclei se executa de cate ori expresie se evalueaza la "true". Terminarea buclei are loc cand expresie ia valoarea zero (adica "false"). In acest punct, controlul se paseaza catre "instructiune_urmatoare".

  10. 8. Instructiunea "do“ Instructiunea "do" poate fi considerata o varianta a instructiunii "while". Deosebirea consta in faptul ca pentru instructiunea "while" testul se face la inceputul ciclului, iar pentru "do" la sfarsit. Consideram constructia de forma: doinstructiunewhile (expresie); La inceput se executa instructiune, apoi se evalueaza expresie. Daca valoarea lui expresie este diferita de 0 ("true"), atunci controlul se paseaza la inceputul instructiunii "do", si procesul se repeta. Daca expresie se evalueaza la 0 (false), atunci controlul se paseaza la instructiune_urmatoare.Exemplu: Suma unor numere intregi diferite de 0 suma = i = 0;do{suma += i;cin>>i;}while (i > 0);

  11. 9. Instructiunea "for“ Se foloseste pentru descrierea structurilor iterative (repetitive) cu nr cunoscut de pasi. for (expresie1; expresie2; expresie3)instructiune Se va evalua expresie1. Apoi, se evalueaza expresie2. Daca aceasta nu este zero ("true"), atunci se executa instructiune, se evalueaza expresie3, si controlul buclei se "paseaza" la inceputul buclei (cu deosebirea ca nu se mai evalueaza expresie1). De obicei, expresie2 este o expresie logica care controleaza bucla. Acest proces continua pana cand expresie2 este 0 (false), punct in care se plaseaza controlul catre instructiune_urmatoare

  12. 10. Operatorul "," Operatorul "," are cea mai mica prioritate dintre toti operatorii din C. Este un operator binar ce are ca operanzi drept expresii si se asociaza de la stanga la dreapta. Intr-o expresie de forma: expresie1 , expresie2se evalueaza mai intai expresie1, apoi expresie2. Expresia "," intoarce valoarea si tipul operandului din dreapta. Exemplu: Presupunem ca a, b sunt de tip int. Atunci expresia ","a = 0, b = 1 intoarce valoarea 1 de tipul int.Operatorul "," este deseori folosit in instructiunea "for".Exemplu: Exemplul de mai jos calculeaza factorialul numarului n (reluare). for (factorial = 1, i = 1; i <= n; i++) factorial *= i;Exemplu: Revenim asupra unui exemplu precedent (suma primelor N numere naturale)for (suma = 0, i = 1; i <= n; ++i)suma += i;se poate scrie, echivalent, in: for (suma = 0, i = 1; i <= n; suma += i, ++i);

  13. Stilul de redactare al programelor Un stil bun de scriere a codului este esential pentru arta programarii. Aceasta faciliteaza citirea, scrierea si intretinerea programelor. Un stil bun foloseste: 1. spatii goale si comentarii, astfel incat codul este usor de citit si de inteles;2. utilizarea indentarii este cruciala, care indica cu precizie structurile de control. De exemplu,in constructiawhile (expresie)instructiune indentarea instructiunii arata ca executia acesteia este sub controlul iteratiei while;3. alegerea de nume sugestive pentru variabile;4. corespondenta dintre acolade. De exemplu, urmatorul program este scris in stilul "Bell Labs industrial programming style" (#,{,},m pe prima coloana).main(){}Observatii: 1. Programatorii incepatori uneori cred ca vor "sparge" piata cu stilul lor propriu de redactare a programelor. Atentie ! Utilizati strategia care este deja in uz.

  14. Erori de programare frecvente • neinchiderea sirului cu ghilimele: cand compilatorul intalneste ghilimeaua stanga, atunci incepe sa colecteze toate caracterele care urmeaza spre a forma un sir de caractere, pana intalneste ghilimeaua dreapta. Daca aceasta nu exista, atunci compilatorul da mesajul de eroare, de tipul: “Unterminated string or character constant” • scrierea gresita a numelui variabilelor; • nedeclararea variabilelor. • In general, compilatorul da un mesaj de eroare potrivit, ce ajuta la corectarea erorii.

More Related