C++ Modul I

WHILE

Recapitulare

  1. Elif a mâncat x prăjituri, iar Elsa a mâncat y prăjituri. Se citesc numerele x și y, Determinați care dintre ei a mâncat mai multe.
  2. Se citesc 3 numere întregi a, b, si c. Verificați dacă aceste numere pot reprezenta laturile unui triunghi. Dacă da, atunci determinați natura triunghiului (echilateral, isoscel sau oarecare), dacă nu afișați un mesaj corespunzător.
    • Condiția de existență a triunghiului: suma a oricare 2 laturi să fie mai mare decât a 3-a latură.
    • Triunghiul este echilateral dacă are toate laturile egale
    • Triunghiul este isoscel dacă are 2 laturi egale
    • Triunghiul este oarecare dacă nu este isoscel.

 

Scrieți un program care afișează de 10 ori mesajul "Vreau să învăț programare."

Pentru a executa un bloc de instrucțiuni de mai multe ori folosim structurile repetitive.

Scrieți un program care afișează de n ori mesajul "Vreau să învăț programare."

  cin >> n;

  while (n > 0)

  {

      cout << "Vreau sa învăț programare. " << endl;

      n = n - 1;

  }

Programul de mai sus se poate scrie așa:

Structura repetitivă cu test inițial: WHILE

continuă

programul

condiție

DA

NU

instrucțiune1

instrucțiune2

Cât timp condiția este adevărată, se vor executa instrucțiunile de pe ramura de 'DA'. Când condiția devine falsă, ieșim din ciclul repetitiv și continuăm programul.

Atenție! Dacă valoarea condiției nu va fi niciodată 0, programul va rula la infinit; structura se va numi buclă infinită.

Structura condițională  WHILE 

Forma Cum funcționează


  while(condiție)
  {
      instrucțiune1;
      instrucțiune2;
  }
Se evaluează condiția.
Dacă rezultatul este true (adevărat, diferit de 0) atunci se execută blocul de instrucțiuni, după care se evaluează din nou condiția.

Cât timp condiția va fi adevărată, se vor executa instrucțiuniile, când condiția va fi falsă, se va ieși din while și se va continua programul.

Să se execute de n ori anumite instrucțiuni (o bucată de program)

Exemplu:

să se afișeze de n ori textul: "am început să învăț while-ul".

bucata de program: cout << "am inceput sa invat while-ul"<<endl;

Soluția 1:

Se folosește o variabilă ( de obicei i ) care reprezintă "de câte ori am afișat până acum". Trebuie să creștem această variabilă cu 1după fiecare afișare.

Cât timp numărul de afișări este mai mic decât n afișăm din nou.

Soluția 2:

Se folosește o variabilă care reprezintă "de câte ori mai trebuie să afișăm". Această variabilă are la început valoarea n. Trebuie să scădem această variabilă după fiecare afișare.

Cât timp numărul rămase este mai mare decât 0, afișăm din nou.

Aplicații

1. Scrieți o bucată de program care cere utilizatorului să introducă lungimea și lățimea unui dreptughi, iar apoi calculează aria si perimetrul dreptunghiului.

Introduceți bucata de program de mai sus într-o buclă infinită.

Modificați condiția astfel încât bucata program să se execute de exact 5 ori.

2. Scrieți o bucată de program care cere utilizatorului să introducă două numere, iar apoi calculează maximul acestora.

Introduceți bucata de program de mai sus într-o buclă infinită.

Înaintea buclei, se citește numărul n. Modificați condiția astfel încât bucata program să se execute de exact n ori.

Se vor alege soluții diferite pentru cele 2 aplicații.

Aplicații

3. Scrieți un program care citește n numere și afișează după fiecare dacă a fost par sau impar.

b) Câte numere au fost pare? dar impare?

4. Scrieți un program care citește n triunghiuri și afișează dacă acestea au fost echilaterale, isoscele su oarecare. (triunghiurile se citesc prin valorile celor 3 laturi)

b) La sfârșit afișați câte triunghiuri din fiecare categorie au fost.

Aplicații

  1. Se citesc numere naturale până la întâlnirea numărului 0. Afișați suma lor.
  2. Se citesc numere până la întâlnirea numărului 0. Câte din ele sunt mai mici decât 10?

Aplicații

3. Se citește un număr natural n urmat de n  numere naturale. Să se calculeze:

(a) suma numerelor citite;

(b) suma numerelor impare;

(c) produsul numerelor pare.

 

Aplicații

4. Se citește un număr natural n urmat de n numere naturale. Să se determine:

(a) maximul numerelor citite;

(b) minimul numerelor citite;

(c) maximul numerelor pare (se afişează 0 dacă nu există niciun număr par).

 

Aplicații

5. Se citește un număr natural k, urmat de un număr natural, n urmat de n numere naturale. Să se determine:

(a) câte numere sunt egale cu k;

(b) câte numere au aceeaşi ultimă cifră ca şi k;

(c) câte numere au aceeaşi paritate ca şi k (dacă k este par întrebarea devine "câte numere pare sunt?", iar dacă k este impar, întrebarea devine "câte numere impare sunt?").

 

Aplicații

6. Miruna, colega Elsei are n note la geografie. Ea vrea să știe ce medie are și dacă a trecut sau nu clasa. Pentru că nu îi place să calculeze, o roagă pe Elsa să facă un program pentru asta, dar Elsa nu are timp așa că vă roagă la rândul ei pe voi.

  • Se citește numărul n reprezentând numărul de note al Mirunei

  • Se citesc apoi n numere naturale, reprezentând aceste note

  • Se afișează pe prima linie media și pe a doua dacă a promovat sau nu

  • *** OPTIONAL *** Dacă nu are media peste 5, care este cea mai mică notă pe care trebuie să o mai ia ca să treacă.

Aplicații

7. Elsa se juca de-a v-ați ascunselea cu Elif in Pădurea Naturală. În această pădure, fiecare copac se naşte însemnat cu un număr natural mai mic sau egal cu 2147483647. Din păcate, Elsa s-a ascuns atât de bine încât nu mai ştie nici ea unde este. Dar ea ştie de la bătrânul Switch că dacă urmează copacii în ordine descrescătoare a numerelor cu care sunt ei insemnaţi, va ajunge înapoi acasă.

Se citeşte un număr natural n (numărul de copaci pe care i-a urmărit Elsa), urmat de n numere naturale (numerele din naştere ale copacilor pe lângă care a trecut Elsa).

Să se afişeze "da" dacă Elsa a ajuns acasă sau "nu" dacă nu a reuşit încă să ajungă acasă. Ex:

n = 5; copaci = 24 5 7 4 3 -> "nu" (nu ajunge acasa pentru ca 7 e mai mare ca 5)

n = 6; copaci = 53 47 21 16 6 3 -> "da" (ajunge acasă pentru că toate numerele sunt în ordine descrescătoare)

Aplicații cifre

1. Se citește un număr natural n.

(a) afişaţi câte cifre are;

(b) calculați suma cifrelor lui;

(c) verificaţi dacă toate cifrele lui n sunt impare.

Aplicații cifre

2. Se citeşte un număr natural n. Să se calculeze:

(a) câte cifre pare are;

(b) suma cifrelor impare;

(c) maximul cifrelor lui n;

(d) produsul cifrelor mai mari sau egale cu 5;

(e) suma cifrelor lui n cu care n este divizibil.

Aplicații cifre

3. Se citeşte un număr natural n. Să se verifice dacă:

(a) suma cifrelor lui n este egală cu n;

(b) n are toate cifrele mai mari sau egale cu 5;

(c) n are toate cifrele egale între ele.

Aplicații cifre

4. Se citeşte un număr natural n şi o cifră c.

(a) să se calculeze de câte ori apare cifra c printre cifrele lui n;

(b) să se verifice dacă cifra c este mai mică decât minimul cifrelor lui n.

Aplicații cifre

5. Se citesc două numere naturale x şi y. Să se afişeze:

(a) de câte ori apare maximul cifrelor lui x printre cifrele numărului y;

(b) suma cifrelor pare din x şi cifrelor impare din y.

Aplicații cifre

6. Se citeşte un număr natural n. Să se afişeze răsturnatul numărului n;

7. Se citesc două numere naturale x şi y care au acelaşi număr de cifre. Pentru fiecare cifră din y, se verifică cifra din x de pe aceeaşi poziţie. Dacă cifra din x este pară cifra din y se va aduna, iar dacă cifra din x este impara cifra din y se va scădea.

Exemplu: x = 2374, y = 5918 -> 3 (4 par, deci 8 se adună, 7 impar deci 1 se scade, 3 impar deci 9 se scade, 2 par deci 5 se adună, 8 - 1 - 9 + 5 = 3)

Aplicații diverse

1.  Scrieți un program care cere utilizatorului să introducă un număr diferit de 14. Dacă utilizatorul introduce un număr diferit de 14, programul scrie din nou "introduceți din nou un număr diferit de 14". Tot așa, cât timp utilizatorul introduce numere diferite de 14, programul îi cere din nou. Dacă utlizatorul introduce numărul 14, atunci programul afișează: "Hey! am spus diferit de 14" și se termină.

 

Dacă utilizatorul introduce 15 numere toate diferite de 14 programul va afișa ("Wow, câtă răbdare ai !") și se va termina.

Aplicații diverse

2.  Creați un calculator pentru calcule simple.

Programul va citi un număr natural a, un caracter c care reprezintă semnul operației, și un număr natural b. Și va afișa rezultatul operației.

După fiecare rezultat, programul va întreba utilizatorul dacă dorește să facă un alt calcul, și va citi caracterul D / N , da sau nu.

Programul se repetă cât timp utilizatorul alege opțiunea D.

Aplicații diverse

3.  Joc: "ghicește numărul"

Există o variabilă x căreia îi dați o valoare prin cod, de la 1 la 1024, iar utilizatorul trebuie să o ghicească.

Utilizatorul are la început un număr de 10 vieți.

La fiecare tură, programul cere utilizatorului să introducă un număr, apoi spune dacă numărul acesta este "prea mic", "prea mare" sau "perfect !".

Dacă numărul este prea mic sau prea mare utilizatorul pierde o viață.

Jocul se termină când jucătorul a ghicit numărul sau a rămas fără vieți.

to be continued...

Cpp1L6

By Academia de Informatică