Algoritmi elementari în C++ Îndrumar - PDF

Summary

This document is a laboratory guide focused on elementary algorithms in C++ by author Spătaru Mihaela. It covers topics such as linear structures, alternative structures, repetitive structures, and working with files. It includes examples and exercises for calculations, sorting, and problem-solving using C++ code.

Full Transcript

Cuprins Cuprins............................................................................................................................................................................................... 2 1. Algoritmul...............................................................................

Cuprins Cuprins............................................................................................................................................................................................... 2 1. Algoritmul..................................................................................................................................................................................... 3 2. Structura liniară......................................................................................................................................................................... 4 3. Structura alternativă................................................................................................................................................................ 6 3. 1 Aplicaţii cu structurile liniară şi alternativă........................................................................................................... 6 4. Fișiere.......................................................................................................................................................................................... 12 5. Structuri repetitive................................................................................................................................................................ 15 5.1 Instrucțiunea while......................................................................................................................................................... 15 5.2 Algoritmi elementari...................................................................................................................................................... 16 5.3 Instrucțiunea for.............................................................................................................................................................. 24 6. Secvențe sau șiruri de numere.......................................................................................................................................... 30 7. Lucrul cu caractere................................................................................................................................................................. 36 8. Instrucțiunea switch.............................................................................................................................................................. 37 Probleme date la olimpiadele de informatică.................................................................................................................. 39 Bibliografie..................................................................................................................................................................................... 47 Anexa 1............................................................................................................................................................................................ 48 Anexa 2............................................................................................................................................................................................ 49 2 1. Algoritmul O instrucțiune este o comanda de baza prin care îi transmitem calculatorului să facă o singura acţiune sau operaţie. Combinând mai multe instrucţiuni vom obţine un algoritm. Aşadar, prin algoritm vom înţelege o succesiune finită de paşi, realizaţi într-o ordine bine definită, pen- tru ca, pornind de la anumite date cunoscute, numite date de intrare, să obţinem rezultatele dorite, numite date de ieşire. La începutul anilor ’70, prelucrările cu ajutorul calculatorului au devenit tot mai dezvoltate, iar progra- mele din ce în ce mai mari şi mai complicate. Chiar şi autorii acestor programe au început sa aibă pro- bleme în a le înţelege, depana şi modifica ulterior. Pentru a ieşi din acea “criza” s-a impus ca programele să fie scrise sistematic, respectându-se anumite reguli, pentru a se obţine nişte programe mai clare. Ast- fel a apărut programarea structurata, care reprezintă un mod de concepere a programelor potrivit unor reguli bine stabilite, utilizându-se un set redus de tipuri de structuri de control. La baza programării structurate sta teorema lui Bohm §i Jacopini, conform căreia orice algoritm poa- te fi compus din numai trei structuri de control: Structura secvenţiala (liniară); Structura alternativă; Structura repetitiva cu trei variante: Structura repetitiva cu test iniţial; Structura repetitiva cu test final; Structura repetitiva cu număr cunoscut de paşi (sau structura repetitivă cu contor). Structura generală a unui program C++ Structura unui program C++ este următoarea: //declararea headerelor #include using namespace std; //declararea variabilelor globale.... //programul principal int main( ) { //declararea variabilelor locale // instrucțiunile programului.......... return 0; } //aici se încheie programul 3 2. Structura liniară Structura liniară reprezintă un grup de operaţii sau instrucțiuni care se executa în ordinea scrierii lor. Instrucțiunea declarativă Printr-o instrucțiune declarativă se pot declara identificatori (variabile) de un anumit tip. Identificatorii pot fi variabile, dar vom vedea mai târziu că pot fi și funcții. Sintaxa este: tip_de_date lista_variabile ; unde tip_de_date poate fi orice tip de dată C++ corect (int, double, unsigned, etc.), iar lista_variabile este alcă- tuită din cel puțin un identificator. Dacă sunt mai mulți, se vor separa prin caracterul virgulă ,. Exemple: int x, y , z; double a; char s; Instrucțiuni de citire şi scriere Printr-o instrucțiune de citire se pot introduce de la tastatură sau din fişier valorile variabilelor iar prin instrucțiunea de criere, se afişează pe ecran sau în fişier valorile variabilelor Sintaxa este: cin >> variabilă; // citire din consolă (de la tastatură) cout >x; //instrucțiunea de citire cout >a>>b>>c; cout 'Z') și diferenţă între codurile ASCII a două litere (mică – mare) este 32.  cifrele au coduri consecutive: caracterul '0' are codul 48, caracterul '1' are codul 49, etc. *Observăm că caracterul '0' nu are codul ASCII 0, ci 48.  caracterul spaţiu este un caracter imprimabil. Spațiul are codul ASCII 32. 36 8. Instrucțiunea switch Instrucțiunea switch permite executarea unor instrucțiuni, în funcție de egalitatea unei expresii cu anumite valori numerice constante: Sintaxa: switch ( Expresie ) { case Constanta_1: Grup_Instructiuni_1; break; case Constanta_2: Grup_Instructiuni_2; break; … case Constanta_N: Grup_Instructiuni_N; break; default: Grup_Instructiuni_default; break; } Observații:  Valorile din clauzele case trebuie să fie constante întregi.  Prezență instrucțiunii break; nu este obligatorie, dar lipsa ei modifică modul de execuție al in- strucțiunii. În exemplul de mai jos: switch(n) { case 1: cout