Programarea şi utilizarea calculatoarelor

Documente similare
Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Microsoft Word - CarteC.doc

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

tehnologii web

E_d_Informatica_sp_SN_2014_bar_10_LRO

Lecţia 2 Structura liniară, alternativă şi repetitivă Clasa a V-a Structuri de bază(liniară, alternativă şi repetitivă) Programarea structurată este o

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Programarea şi utilizarea calculatoarelor

E_d_Informatica_sp_MI_2015_bar_02_LRO

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Slide 1

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia comp

Subiectul 1

SUBPROGRAME

Grile si probleme siruri de caractere in C++ ŞIRURI DE CARACTERE Itemii următori sunt preluaţi din variantele de bacalaureat În secvenţa de i

Declararea variabilelor

/*

ALGORITHMICS

Top

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

Microsoft Word - O problema cu bits.doc

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XI 1.Fişierul text bac.in conţine cel mult 1000 de

Microsoft Word - CarteC.doc

PowerPoint-Präsentation

Microsoft Word - Rezolvarea Test nr. 11.doc

Declaraţii. Instrucţiuni 19 octombrie 2005 Programarea calculatoarelor 2. Curs 3b Marius Minea

proiectarea bazelor de date

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Tablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n= Cifre = {1,2,3,7} Se cere să s

Microsoft Word - Raspunsul la niste provocari. Partea III..doc

Școala: Clasa a V-a Nr. ore pe săptămână: 4 Profesor: MATEMATICĂ Clasa a V-a Aviz director PLANIFICARE CALENDARISTICĂ ORIENTATIVĂ Nr. crt. Unitatea de

Paradigme de programare

Ministerul Educatiei, Cercetarii si Tineretului Grup Scolar Gh. Asachi Galati Proiect pentru obtinerea certificatului de competente profesionale Speci

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

Microsoft Word - CarteC.doc

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

PROIECT DIDACTIC DATE DE IDENTIFICARE Data: Școala : Școala Gimnazială Grigore Moisil Ploiești Clasa: a VI-a Profesor: Ilie Oana Magdalena Disciplina:

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Analiză statică Analiza fluxului de date 23 octombrie 2014

Performanta in matematica de gimnaziu si liceu-program de pregatire al elevilor olimpici MULTIMI. OPERATII CU MULTIMI Partea I+II Cls. a V-a

1. a. Să se scrie un algoritm care să afişeze toate numerele de patru cifre care au cifra sutelor egală cu o valoare dată k, şi cifra zecilor cu 2 mai

-

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare

Metode de programare Proiectarea algoritmilor

Secţiunea 5-6 începători Concurs online de informatică Categoria PROGRAMARE PROBLEMA puncte PERIODIC Se citește un număr natural nenul N. Se ump

Analiză de flux de date 29 octombrie 2012

O NOUA PROBLEMA DE CONCURS OLIMPIADA MUNICIPALA DE INFORMATICA, IASI 2019 V-am promis într-un articol mai vechi ca vom prezenta pe acest blog câteva p

Secţiunea 5-6 avansaţi PROBLEMA 1 Concurs online de informatică Categoria PROGRAMARE 100 puncte NR Un număr natural nenul V care se plictisea singur,

MINISTERUL EDUCAŢIEI, CULTURII ŞI CERCETĂRII AL REPUBLICII MOLDOVA UNIVERSITATEA DE STAT ALECU RUSSO DIN BĂLŢI FACULTATEA DE ŞTIINŢE REALE, ECONOMICE

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

PCLPII-C16(9)

L7

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati

Limbaje de Programare Curs 6 – Functii de intrare-iesire

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

/*

Microsoft Word - PCLP2_Curs_4_2019.doc

Elemente de aritmetica

B

Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012

MergedFile

Lucrarea 10

Grafuri neorinetate Aplicatii 1 Care este numărul maxim de componente conexe pe care le poate avea un graf neorientat cu 20 noduri şi 12 muchii? a. 6

Diapositive 1

Slide 1

Paradigme de Programare

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Microsoft Word - Software pentru ordonarea multirang a componentelor unei colectivitati.doc

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

Microsoft PowerPoint - Fp_2.ppt

Algoritmi elementari Metode de căutare secvenţială binară Metode de ordonare metoda bulelor metoda inserţiei metoda selecţiei metoda numărării Intercl

MergedFile

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

INSPECTORATUL ŞCOLAR JUDEŢEAN VÂLCEA COLEGIUL NAŢIONAL DE INFORMATICĂ MATEI BASARAB RÂMNICU VÂLCEASTR. HENRI COANDĂ NR.2 TELEFON/FAX:

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

Backtracking_2018

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Slide 1

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

Microsoft Word - Lab1a.doc

Lab6LCD

Limbaje de Programare Curs 8 – Fisiere

I. Partea introductivă Proiectul unității de învățare CONCEPTUL DE MATRICE ŞCOALA: Colegiul Național Petru Rareș Suceava CLASA: a XI a- matematică / a

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Concurs online de informatică Categoria PROGRAMARE Secţiunea 5-6 avansaţi PROBLEMA puncte DANS De 1 Iunie - Ziua Copilului se organizează un spe

Microsoft Word - c6.doc

Nr. 932 din Avizat ISJ Vâlcea, Inspector școlar informatică, Ciochină Luisa EXAMEN DE ATESTARE A COMPETENȚELOR PROFESIONALE A ABSOLVENȚILOR

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Laborator 3

Inspectoratul Şcolar Judeţean Suceava Şcoala Gimnazială Luca Arbure CONCURSUL DE MATEMATICǍ ISTEŢII D ARBORE EDIŢIA a VIII a 29 APRILIE 2017 Clasa a I

carteInvataturaEd_2.0_lectia5.pdf

Programarea calculatoarelor. Note de curs Marius Minea 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolu

09. Informatica 2 - MM 1

Transcriere:

Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Programarea calculatoarelor Lect.dr. Adrian Runceanu

Curs 6 Instrucţiunile limbajului C++ (continuare) 01.11.2013 Programarea calculatoarelor 2

5. Instrucţiunile limbajului C++ 5.1. Instrucţiunea vidă 5.2. Instrucţiunea compusă 5.3. Instrucţiunea expresie 5.4. Instrucţiunea if 5.5. Instrucţiunea while 5.6. Instrucţiunea do while 5.7. Instrucţiunea for 5.8. Instrucţiunea switch 5.9. Instrucţiunea break 5.10. Instrucţiunea continue 5.11. Instrucţiunea goto 5.12. Instrucţiunea return 01.11.2013 Programarea calculatoarelor 3

5.6. Instrucţiunea do while Forma instructiunii este: do instructiune while (expresie); unde instrucţiune poate fi: instrucţiunea vidă instrucţiunea simplă instrucţiunea compusă 01.11.2013 Programarea calculatoarelor 4

5.6. Instrucţiunea do while Funcţionarea unei astfel de instrucţiuni se bazează pe executarea repetată a instrucţiunii cât timp condiţia este îndeplinită. 01.11.2013 Programarea calculatoarelor 5

5.6. Instrucţiunea do while Echivalenţa cu instrucţiunea while: instructiune; while(expresie) instructiune; Exemplu de utilizare a instructiunii do while: Să se scrie un program care tipăreşte numerele naturale de la 0 la 9 şi suma lor pe parcurs. 01.11.2013 Programarea calculatoarelor 6

5.6. Instrucţiunea do while La execuţia acestui program se obţine următorul rezultat: numar=0 total=0 numar=1 total=1 numar=2 total=3 numar=3 total=6 numar=4 total=10 numar=5 total=15 numar=6 total=21 numar=7 total=28 numar=8 total=36 numar=9 total=45 #include<iostream.h> int main(void) { int numar = 0, total = 0; do{ total = total + numar; cout<<"numar = "<<numar++<<" total = "<<total<<endl; }while(numar<10); } 01.11.2013 Programarea calculatoarelor 7

5. Instrucţiunile limbajului C++ 5.1. Instrucţiunea vidă 5.2. Instrucţiunea compusă 5.3. Instrucţiunea expresie 5.4. Instrucţiunea if 5.5. Instrucţiunea while 5.6. Instrucţiunea do while 5.7. Instrucţiunea for 5.8. Instrucţiunea switch 5.9. Instrucţiunea break 5.10. Instrucţiunea continue 5.11. Instrucţiunea goto 5.12. Instrucţiunea return 01.11.2013 Programarea calculatoarelor 8

5.7. Instrucţiunea for Este una dintre cele mai puternice instrucţiuni ale limbajului C/C++, datorită formei sale. Forma instrucțiunii este: for(expresie1; expresie2; expresie3) instructiune; expresie1 reprezintă secvenţa de iniţializarea a ciclului expresie2 reprezintă condiţia de terminare a ciclului expresie3 reprezintă secvenţa de reiniţializare a ciclului instrucţiune - corpul ciclului 01.11.2013 Programarea calculatoarelor 9

5.7. Instrucţiunea for for(expresie1; expresie2; expresie3) instructiune; Funcţionarea unei astfel de instrucţiuni se bazează: pe executarea repetată a instrucţiunii, Verificarea expresiei2 Executarea expresiei3 Cat timp expresia2 este îndeplinită. 01.11.2013 Programarea calculatoarelor 10

5.7. Instrucţiunea for Se stie că instrucţiunea for este de fapt o variantă particulară a instrucţiunii while, drept pentru care se poate scrie echivalent astfel: expresie1; while(expresie2) { instructiune; expresie3; } 01.11.2013 Programarea calculatoarelor 11

5.7. Instrucţiunea for Invers, dacă avem: while (expresie) instructiune; for( ;expresie; ) instructiune; 01.11.2013 Programarea calculatoarelor 12

5.7. Instrucţiunea for Funcţionarea instrucţiunii for are loc astfel: Se porneşte ciclul repetitv prin iniţializarea sa, adică prin execuţia expresia1 iar apoi se evaluează expresia2 şi dacă este adevărată se execută corpul ciclului, adică instrucţiune după aceea se execută expresia3, şi se reia evaluarea expresiei2, ş.a.m.d. 01.11.2013 Programarea calculatoarelor 13

5.7. Instrucţiunea for Observaţie: expresia1, expresia2, expresia3 pot să lipsească, dar este obligatorie prezenţa semnelor: ;. for(;;) while(1) buclă infinită 01.11.2013 Programarea calculatoarelor 14

5.7. Instrucţiunea for Exemplu: Acelaşi program de adunare a primelor n numere întregi, în varianta cu instrucţiunea for, va avea o dimensiune mai mică: #include<iostream.h> int main(void) { int i, n, s = 0; cout<<"dati numarul n ="; cin>>n; for(i=1; i<=n; i++) s = s + i; cout<<"suma primelor"<<n<<" numere intregi este "<<s; } 01.11.2013 Programarea calculatoarelor 15

Exemple de programe C++ Enunţ: Fie un număr natural n. Să se scrie un algoritm care să calculeze factorialul numărului dat. (factorial = produsul numerelor naturale mai mici sau egale decat n) Exemplu: Pentru n = 5, se va afişa valoarea p = 1*2*3*4*5=120. 01.11.2013 Programarea calculatoarelor 16

Exemple de programe C++ Pas 1: Stabilim care sunt datele de intrare, adică cele care vor fi prelucrate cu ajutorul algoritmului, împreună cu datele de ieşire. În cazul problemei date, avem: Date de intrare: n = număr natural Date de ieşire: factorialul numărului dat = p 01.11.2013 Programarea calculatoarelor 17

Exemple de programe C++ Pas 2: Analiza problemei La începutul problemei, vom iniţializa valoarea produsului numerelor cu 1. Apoi, într-un ciclu repetitiv vom calcula produsul numerelor naturale aflate intre 1 si n. 01.11.2013 Programarea calculatoarelor 18

Exemple de programe C++ Pas 3: Scrierea algoritmului în pseudocod: natural n, p, i citeşte n p <- 1 pentru i=1,n execută p <- p * i sfârşit pentru scrie p stop 01.11.2013 Programarea calculatoarelor 19

Exemple de programe C++ Pas 4: Implementarea algoritmului în limbajul de programare C++: #include<iostream.h> int main(void) { int n, p, i; cin>>n; p = 1; for(i = 1; i<=n; i++) p = p * i; cout<<p; } 01.11.2013 Programarea calculatoarelor 20

Exemple de programe C++ Pas 5: Testarea algoritmului pe date de intrare diferite şi verificarea rezultatelor. Exemplul 1: Pentru valoarea n=5 obţinem următorul rezultat: 120 Exemplul 2: Pentru valoarea n=7 obţinem următorul rezultat: 5040 01.11.2013 Programarea calculatoarelor 21

Exemple de programe C++ Enunţ: Fie un număr natural n de cinci cifre. Să se scrie un algoritm care să calculeze suma cifrelor numărului dat. Exemplu: Pentru n = 2178, se va afişa valoarea s = 2+1+7+8 = 18 01.11.2013 Programarea calculatoarelor 22

Exemple de programe C++ Pas 1: Stabilim care sunt datele de intrare, adică cele care vor fi prelucrate cu ajutorul algoritmului, împreună cu datele de ieşire. În cazul problemei date, avem: Date de intrare: n număr natural Date de ieşire: suma cifrelor = s. 01.11.2013 Programarea calculatoarelor 23

Exemple de programe C++ Pas 2: Analiza problemei La începutul problemei, vom iniţializa valoarea sumei cifrelor numărului n dat cu 0. Apoi, într-un ciclu repetitiv vom calcula suma cifrelor numărului, ştiind că: o cifră a unui număr scris în baza 10 este dată de restul împărțirii la 10 - n%10, iar numărul fără ultima cifră este dat de câtul împărțirii la 10 - n/10. 01.11.2013 Programarea calculatoarelor 24

Exemple de programe C++ Pas 3: Scrierea algoritmului în pseudocod: natural n, s citeşte n s <- 0 repetă s <- s + n % 10 n <- n / 10 până când n = 0 scrie s stop 01.11.2013 Programarea calculatoarelor 25

Pas 4: Implementarea algoritmului în limbajul de programare C++: Exemple de programe C++ #include<iostream.h> int main(void) { } int n, s; cin>>n; s = 0; do { s = s + n % 10; n = n / 10; }while( n!= 0 ); cout<<s; 01.11.2013 Programarea calculatoarelor 26

Exemple de programe C++ Pas 5: Testarea algoritmului pe date de intrare diferite şi verificarea rezultatelor. Exemplul 1: Pentru valoarea n=123 obţinem următorul rezultat: 6 Exemplul 2: Pentru valoarea n=5378 obţinem următorul rezultat: 23 01.11.2013 Programarea calculatoarelor 27

Exemple de programe C++ Enunţ: Să se scrie un program care generează toate numerele perfecte până la o valoare dată, n. Un număr perfect este egal cu suma divizorilor lui, inclusiv 1 (exemplu: 6=1+2+3). Exemplu: Pentru n = 1000, se vor afişa valorile 6, 28, 496 01.11.2013 Programarea calculatoarelor 28

Exemple de programe C++ Pas 1: Stabilim care sunt datele de intrare, adică cele care vor fi prelucrate cu ajutorul algoritmului, împreună cu datele de ieşire. În cazul problemei date, avem: Date de intrare: n număr natural Date de ieşire: numerele perfecte mai mici sau egale decât n. 01.11.2013 Programarea calculatoarelor 29

Exemple de programe C++ Pas 2: Analiza problemei La începutul problemei, vom lua toate valorile de la 1 la n, şi pentru fiecare valoare i o vom verifica dacă este sau nu număr perfect. Numerele perfecte obţinute le vom afişa. 01.11.2013 Programarea calculatoarelor 30

Exemple de programe C++ Pas 3: Scrierea algoritmului în pseudocod: natural n, i, j, s citeşte n i <- 1 repetă s <- 0 j <- 1 repetă dacă i % j = 0 atunci s <- s + j sfârşit dacă j <- j + 1 până când j > i/2 dacă s = i atunci scrie i sfârşit dacă i <- i + 1 până când i > n stop 01.11.2013 Programarea calculatoarelor 31

Pas 4: Implementarea algoritmului în limbajul de programare C++: Exemple de programe C++ #include<iostream.h> int main(void) { } int n, i, j, s; cin>>n; i = 1; do{ s = 0; j = 1; 01.11.2013 Programarea calculatoarelor 32 do{ if( i % j == 0 ) j = j + 1; }while(j <= i/2); if( s == i ) i = i + 1; }while(i <= n); s = s + j; cout<<i<<" ";

Exemple de programe C++ Pas 5: Testarea algoritmului pe date de intrare diferite şi verificarea rezultatelor. Exemplul 1: Pentru valoarea n=100 obţinem următoarele rezultate: 6 28 Exemplul 2: Pentru valoarea n=10000 obţinem următoarele rezultate: 6 28 496 8128 01.11.2013 Programarea calculatoarelor 33

Exemple de programe C++ Enunţ: Să se scrie un program care generează toate numerele prime până la o valoare dată, n. Un număr x este prim dacă are ca divizori doar valorile 1 şi x. Exemplu: Pentru n = 22, se vor afişa valorile: 2,3,5,7,11,13,17,19 01.11.2013 Programarea calculatoarelor 34

Exemple de programe C++ Pas 1: Stabilim care sunt datele de intrare, adică cele care vor fi prelucrate cu ajutorul algoritmului, împreună cu datele de ieşire. În cazul problemei date, avem: Date de intrare: n număr natural Date de ieşire: numerele prime mai mic decat n 01.11.2013 Programarea calculatoarelor 35

Exemple de programe C++ Pas 2: Analiza problemei Intr-un ciclu repetitiv de la 1 la n vom verifica toate valorile daca respecta proprietatea de numar prim. Vom presupune, la începutul problemei, că numărul i dat este prim, şi vom specifica acest lucru cu ajutorul unei variabile de tip întreg, căreia îi vom da valoarea 1. Apoi vom evalua, pe rând, toate valorile începând cu valoarea 2 şi până la i/2, ca să determinăm dacă sunt divizori ai numărului i dat. Dacă găsim un singur divizor printre aceste numere, atunci vom acorda valoarea 0 variabilei de tip întreg de la începutul verificarii conditiei de numar prim. La sfârşit vom verifica care este valoarea variabilei de tip întreg şi vom afişa numarul i. 01.11.2013 Programarea calculatoarelor 36

Pas 3: Scrierea algoritmului în pseudocod: Exemple de programe C++ natural n,i,j logic p citeşte n pentru i = 2, n execută p <- adevărat pentru j = 2, i/2 execută dacă i % j = 0 atunci p <- fals sfârşit dacă sfârşit pentru dacă p = adevărat atunci scrie i, sfârşit dacă sfârşit pentru stop 01.11.2013 Programarea calculatoarelor 37

Exemple de programe C++ Pas 4: Implementarea algoritmului în limbajul de programare C++: #include<iostream.h> int main(void) { int n, prim, i, j; cin>>n; for(i = 2; i<=n; i++) { prim = 1; for(j = 2; j<=i/2; j++) if(i % j == 0 ) prim = 0; if( prim == 1) cout<<i<< ; } } 01.11.2013 Programarea calculatoarelor 38

Exemple de programe C++ Pas 5: Testarea algoritmului pe date de intrare diferite şi verificarea rezultatelor. Exemplul 1: Pentru valoarea n=53 obţinem rezultatele: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 Exemplul 2: Pentru valoarea n=12 obţinem următorul rezultat: 2 3 5 7 11 01.11.2013 Programarea calculatoarelor 39

5. Instrucţiunile limbajului C++ 5.1. Instrucţiunea vidă 5.2. Instrucţiunea compusă 5.3. Instrucţiunea expresie 5.4. Instrucţiunea if 5.5. Instrucţiunea while 5.6. Instrucţiunea do while 5.7. Instrucţiunea for 5.8. Instrucţiunea switch 5.9. Instrucţiunea break 5.10. Instrucţiunea continue 5.11. Instrucţiunea goto 5.12. Instrucţiunea return 01.11.2013 Programarea calculatoarelor 40

5.8. Instrucţiunea switch Instrucţiunea switch funcţionează astfel: Se evaluează expresia şi în funcţie de rezultat se compară cu c 1, c 2,..., c n şi când expresia este egală cu c 1 atunci se execută şirul de instrucţiuni corespunzător, şi cu instrucţiunea break se sare la sfârşitul instrucţiunii switch, la fel se întâmplă şi dacă expresia este egală cu c 2,sau cu c 3, sau cu c n. switch (expresie) { case c 1 : sir_instructiuni_1; break; case c 2 : sir_instructiuni_2; break;........ case c n : sir_instructiuni_ n; break; default: sir_instructiuni; } 01.11.2013 Programarea calculatoarelor 41

5.8. Instrucţiunea switch Instrucţiunea switch este o instrucţiune de tip decizie multiplă astfel încât se poate scrie echivalent folosind instrucţiunea de decizie simplă if: if (expresie==c1) sir_instructiuni_1; else if (expresie==c2) sir_instructiuni_2;........ else if (expresie==cn) sir_instructiuni_ n; else sir_instructiuni; 01.11.2013 Programarea calculatoarelor 42

Prezentăm în continuare un program care numără vocalele şi consoanele din alfabet. De observat că unele din instrucţiunile case se execută în cascadă, pentru calculul vocalelor, iar pentru consoane se foloseşte cazul default: 5.8. Instrucţiunea switch #include<iostream.h> int main(void) { } char litera; int nr_vocale = 0, nr_consoane = 0; for (litera = A ; litera <= Z ; litera++) switch (litera) { } case A : case E : case I : case O : case U : nr_vocale++; break; default: nr_consoane++; cout<<"\nnumarul de vocale este "<<nr_vocale; cout<<"\nnumarul de consoane este "<< nr_consoane; 01.11.2013 Programarea calculatoarelor 43

5. Instrucţiunile limbajului C++ 5.1. Instrucţiunea vidă 5.2. Instrucţiunea compusă 5.3. Instrucţiunea expresie 5.4. Instrucţiunea if 5.5. Instrucţiunea while 5.6. Instrucţiunea do while 5.7. Instrucţiunea for 5.8. Instrucţiunea switch 5.9. Instrucţiunea break 5.10. Instrucţiunea continue 5.11. Instrucţiunea goto 5.12. Instrucţiunea return 01.11.2013 Programarea calculatoarelor 44

5.9. Instrucţiunea break Instrucţiunea întrerupe execuţia instrucţiunilor while, do while, for şi switch, determinând astfel ieşirea forţată dintr-un ciclu repetitv. Exemplu: for(;;) {..... break; } break; 01.11.2013 Programarea calculatoarelor 45

Exemplu: Prezentăm în continuare, un program care folosind instrucţiunea break, numără numerele întregi aflate între 1 şi 100 şi apoi de la 100 la 1. De fiecare dată când număr ajunge la valoarea 50, instrucţiunea break face ca execuţia ciclului să se oprească: 5.9. Instrucţiunea break #include<iostream.h> int main(void) { } int numar; for(numar = 1; numar<=100; numar++) { } if(numar == 50) break; cout<<" "<<numar; cout<<"\ncel de-al doilea ciclu repetitiv"; for(numar = 100; numar>=1; numar--) { } if(numar == 50) break; cout<<" "<<numar; 01.11.2013 Programarea calculatoarelor 46

5. Instrucţiunile limbajului C++ 5.1. Instrucţiunea vidă 5.2. Instrucţiunea compusă 5.3. Instrucţiunea expresie 5.4. Instrucţiunea if 5.5. Instrucţiunea while 5.6. Instrucţiunea do while 5.7. Instrucţiunea for 5.8. Instrucţiunea switch 5.9. Instrucţiunea break 5.10. Instrucţiunea continue 5.11. Instrucţiunea goto 5.12. Instrucţiunea return 01.11.2013 Programarea calculatoarelor 47

5.10. Instrucţiunea continue Se referă la instrucţiunile de ciclare: for, while şi do while. La întâlnirea ei ciclurile while şi do while se continuă cu reevaluarea condiţiei de ciclare iar în ciclul for se continuă cu secvenţa de reiniţializare a ciclului şi apoi cu reevaluarea ciclului. 01.11.2013 Programarea calculatoarelor 48

Exemplu: Prezentăm în continuare, un program care folosind instrucţiunea continue într-un ciclu for şi într-un ciclu while, afişează numerele pare şi impare aflate între 1 şi 100: 5.10. Instrucţiunea continue #include<iostream.h> int main(void) { } int numar; cout<<"numerele pare dintre 1 si 100 sunt: "; for (numar = 1; numar <= 100; numar++) { } if(numar % 2!= 0) continue; cout<<" "<<numar; cout<<"\nnumerele impare dintre 1 si 100 sunt: "; numar=0; while(numar <= 100) { } numar++; if(numar % 2==0) continue; cout<<" "<<numar; 01.11.2013 Programarea calculatoarelor 49

5. Instrucţiunile limbajului C++ 5.1. Instrucţiunea vidă 5.2. Instrucţiunea compusă 5.3. Instrucţiunea expresie 5.4. Instrucţiunea if 5.5. Instrucţiunea while 5.6. Instrucţiunea do while 5.7. Instrucţiunea for 5.8. Instrucţiunea switch 5.9. Instrucţiunea break 5.10. Instrucţiunea continue 5.11. Instrucţiunea goto 5.12. Instrucţiunea return 01.11.2013 Programarea calculatoarelor 50

5.11. Instrucţiunea goto goto eticheta; Este instrucţiunea pentru salt necondiţionat. unde eticheta este un nume care prefixează o instrucţiune. Exemplu: Prezentăm în continuare, un program care folosind instrucţiunea goto, afişează numerele întregi aflate între 1 şi 100: int main(void) { int numar=1; eticheta: cout<<" ", numar++; if (numar <= 100) goto eticheta; } 01.11.2013 Programarea calculatoarelor 51

5. Instrucţiunile limbajului C++ 5.1. Instrucţiunea vidă 5.2. Instrucţiunea compusă 5.3. Instrucţiunea expresie 5.4. Instrucţiunea if 5.5. Instrucţiunea while 5.6. Instrucţiunea do while 5.7. Instrucţiunea for 5.8. Instrucţiunea switch 5.9. Instrucţiunea break 5.10. Instrucţiunea continue 5.11. Instrucţiunea goto 5.12. Instrucţiunea return 01.11.2013 Programarea calculatoarelor 52

5.12. Instrucţiunea return Instrucţiunea return 1. return; 2. return expresie; 3. return (expresie); Se foloseşte în funcţii atunci când: se întoarce în funcţia apelantă o valoare (formele 2 şi 3) sau într-o funcţie care nu întoarce nici o valoare (funcţioneaza ca o procedură) forma 1. 01.11.2013 Programarea calculatoarelor 53

Probleme propuse spre rezolvare: 1) Să se afişeze toate numerele palindroame mai mari decat 10 şi mai mici decat un număr dat, n. Exemplu: Date de intrare: n=110 Date de ieşire: 11 22 33 44 55 66 77 88 99 101 01.11.2013 Programarea calculatoarelor 54

Probleme propuse spre rezolvare: 2) Să se determine toate tripletele de numere a, b, c cu proprietăţile: 1<a<b<c<100; a+b+c se divide cu 10. Exemplu: Date de intrare: - Date de ieşire: 95 96 99 si 95 97 99 sunt ultimele doua triplete 01.11.2013 Programarea calculatoarelor 55

Probleme propuse spre rezolvare: 3) Să se afişeze toate numerele de două cifre care adunate cu răsturnatul lor dau 55. Exemplu: Date de intrare: - Date de ieşire: 14 41; 23 32; 32 23; 41 14 01.11.2013 Programarea calculatoarelor 56

Pentru alte informații teoretice și practice legate de acest capitol se recomandă următoarele referințe bibliografice: 1. Adrian Runceanu, Mihaela Runceanu, Noțiuni de programare în limbajul C++, Editura Academica Brâncuși, Târgu-Jiu, 2012 (www.utgjiu.ro/editura) 2. Adrian Runceanu, Programarea şi utilizarea calculatoarelor, Editura Academica Brâncuși, Târgu-Jiu, 2003 (www.utgjiu.ro/editura) 3. Octavian Dogaru, C++ - teorie şi practică, volumul I, Editura Mirton, Timişoara, 2004 (www.utgjiu.ro/editura) 01.11.2013 Programarea calculatoarelor 57

Sfârşit capitol! 01.11.2013 Programarea calculatoarelor 58