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.

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

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

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

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