Contact și feedback

Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.


Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.


Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

Instrucțiunea do while (structuri repetitive)

Această lecție este despre structura repetitivă do while: definiție, exemple și exerciții propuse.

De multe ori se întâmplă să avem nevoie să repetăm un set de instrucțiuni de un număr de ori. Iată câteva exemple:

  • Să calculăm valoarea a^b (a la puterea b): trebuie să îl înmulțim pe a în mod repetat, de b ori;
  • Să calculăm media a n numere.

Limbajul C++ ne oferă o varietate de modalități de a repeta un set de instrucțiuni. În această lecție vom vorbi despre structura repetitivă do while, dar dacă vrei să vezi toate structurile repetitive în C++, poți intra pe această pagină.

Spre deosebire de structura while, do while execută instrucțiunile dintre acolade cel puțin o dată, indiferent dacă condiția este adevărată sau nu.

Se recomandă să cunoști structura de decizie (if și switch) și structura repetitivă while înainte de a parcurge această lecție.

Sintaxă

Sintaxa structurii do while este oarecum pe dos față de cea a whileului:

do {
    instrucțiune 1;
    instrucțiune 2;
    …
} while(condiție);

Structura aceasta are sens dacă stăm să ne gândim: mai întâi executăm instrucțiunile, după care verificăm dacă condiția este adevărată sau nu, urmând să mai iterăm încă odată dacă este cazul.

Exemplu

Afișăm primele n numere naturale, sau 0, dacă n < 0:

//Pentru n = 5, se va afișa:
//0 1 2 3 4
//Pentru n = -1, se va afișa:
//0
int i = 0, n;
cin >> n;
do {
    cout << i << " ";
    i++;
} while(i < n);

Problemă rezolvată

Împărțiri repetate

Dându-se un număr natural n, să se împartă repetat la 5, afișând de fiecare dată câtul dat, până când n este 0.

Exemple: Pentru n = 126 se va afișa 126 25 5 1, iar pentru n = 0 se va afișa 0.

Rezolvare: Vom citi n, după care, folosind o structură repetitivă de tip do while, îl vom împărți pe n la 5 în mod repetat.

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    do {
        cout << n << " ";
        n /= 5;
    } while(n != 0);
}

Exercițiu propus

Completează următoarea secvență de cod:

Să se afișeze primele n numere naturale nenule:

int n, i = 1;
cin >> n;
??? {
    cout << i << " ";
    i++;
} ???(i <= n);

Bibliografie și alte resurse

Cuprinsul lecției

Se încarcă…

Citește și

Radicalul unui număr în C++ (rădăcina pătrată)Vectorii în C++: citire și afișareVerificare dacă un număr este palindrom în C++Recursivitate în C++Verificarea unui an bisect în C++Calculul combinărilor de n luate câte k (nCk) în C++Valoarea absolută (modulul) unui număr în C++Cum să citești și să afișezi în fișiere în C++Suma 1 + 2 + 3 + ... + N în C++Citirea și afișarea matricelor în C++Cel mai frecvent element dintr-un șir în C++Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicȘiruri de caractere în C++. Tot ce trebuie să știiFuncții în C++. Ce sunt subprogrameleSuma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Numărul combinărilor în C++ (formula combinărilor)De ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Numărul minim de peroane pentru o gară în C++Inversarea unui vector în C++Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortPointer în C++. Variabile de tipul char * (char steluță)Cum să calculezi instant 2 la puterea N în C++Instrucțiunea de decizie în C++: if, else, switch, caseAl N-lea termen Fibonacci în C++Câte numere naturale sunt într-un interval dat? (C++)Verifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Divide et Impera (metodă de programare C++)Instrucțiunea for (structuri repetitive)Maximul și minimul a două valori în C++Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Numărul permutărilor în C++ (formula permutărilor)Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorVerifică dacă o literă este vocală în C++Căutare binară în C++Oglinditul recursiv al unui număr în C++Maximul și minimul a trei valori în C++Afișarea elementelor unui vector recursiv în C++Indicatorul lui Euler în C++Al N-lea termen dintr-o progresie aritmeticăCe este o variabilă unsigned în C++?Matrice pătratice în C++. Diagonala principală și secundarăVectorii în C++: declarare și parcurgereRădăcina cubică a unui număr în C++ (cube root)Cel mai semnificativ bit în C++Al N-lea termen dintr-o progresie geometricăVerificare număr prim în C++ (Clasa a IX-a)Oglinditul unui număr în C++Bordarea unei matrice în C++Verifică dacă un număr aparține șirului Fibonacci în C++Află secolul unui an citit de la tastatură în C++Suma divizorilor unui număr în C++Cifra de control a unui numărNumărul de divizori al unui număr în C++Transformarea unei litere mari în literă mică în C++Cel mai mic număr cu suma cifrelor N în C++Generarea șirului Fibonacci generalizat în C++Tutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Distanța dintre două puncte în C++Codul ASCII (tabel complet)Numere triunghiulare. Verificarea unui număr triunghiularCea mai lungă secvență de elemente crescătoare în C++Numărul de cifre ale factorialului unui numărInstrucțiunea break (structuri repetitive)Funcții predefinite în C++ (matematice, șiruri de caractere)Instrucțiunea while (structuri repetitive)Operații cu numere mari în C++ - Toate funcțiile explicateVerifică dacă o literă este mică sau mare în C++Verifică dacă un caracter este cifră în C++Instrucțiunea do while (structuri repetitive)Algoritm recursiv pentru căutare binară (clasa a X-a)Transformarea unui număr din baza 10 în baza 2 în C++Maximul și minimul unui vector în C++CMMMC a două numere în C++ (cel mai mic multiplu comun)Cum să afișezi partea întreagă a unui număr real în C++Instrucțiunea continue (structuri repetitive)Comentarii în C++Interclasarea a doi vectori în C++Suma elementelor unui vector recursiv în C++Tipul struct în C++. Ce sunt structurile de date neomogeneCifra maximă a unui număr recursiv în C++Verifică dacă un număr este par sau impar fără modulo în C++Vectori de frecvență (de apariții) în C++Numărul de divizori primi ai unui număr în C++Do while vs while în C++ - Care e diferența?Prima cifră a unui număr în C++Cel mai mare divizor comun (CMMDC) a două numere în C++Aflarea sumei primelor N sume GaussCopiuțe: Cifrele unui numărInversarea unui șir de caractere în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleMaximul și minimul a n valori în C++Afișarea divizorilor primi ai unui număr în C++Ce înseamnă variabilă globală și locală în C++?Suma numerelor naturale dintr-un interval dat în C++Numărul de apariții al unui număr într-un vector în C++Ciurul lui Eratostene în C++Verificare dacă șir de caractere este palindrom în C++Ce este o funcție void în C++?CMMDC recursiv a două numere naturale în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiCifra maximă și minimă a unui număr în C++Interschimbarea a două variabile în C++ (3 metode)Verifică dacă trei puncte sunt coliniare C++Aria și circumferința unui cerc în C++Factorialul unui număr în C++Transformarea unei litere mici în literă mare în C++Complexitatea unui algoritm (timp și spațiu) în C++Citește un șir de caractere cu spații în C++Ce înseamnă endl în C++?Structuri repetitive (while, do while, for, etc)Cifrele unui număr. Prelucrarea cifrelor unui număr în C++Indicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Cel mai puțin semnificativ bit în C++Aria unui triunghi folosind coordonatele acestora în C++Ridicarea la putere în timp logaritmic în C++. Exponențiere rapidăTransformarea unui număr din baza 2 în baza 10 în C++Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleVerifică dacă un număr dat este o putere de 2 în C++Numărul aranjamentelor în C++ (formula aranjamentelor)Verifică dacă un caracter este literă în C++Șirul lui Fibonacci în C++Mediana unui șir de valori în C++Combinatorică în C++: permutări, aranjamente, combinări și altele

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont