Instructiuni de control
Se citeşte un număr care reprezintă luna din an (1 pentru ianuarie, 2 pentru februarie etc.). Afişaţi numărul lunii precedente şi numărul lunii următoare. 1
#include <iostream> using namespace std; int main() { int luna; cout << „Introduceti numarul lunii: „; cin >> luna; switch(luna) { case 1: cout << „Luna precedenta: decembrie\n”; cout << „Luna urmatoare: februarie\n”; break; case 2: cout << „Luna precedenta: ianuarie\n”; cout << „Luna...
Se citesc două numere de la tastatură, care reprezintă anul şi luna. Afişaţi numărul de zile din luna respectivă (pentru luna februarie se va ţine cont de an: dacă este bisect sau nu). 2
#include <iostream> using namespace std; int main() { int an, luna; cout << „Introduceti anul: „; cin >> an; cout << „Introduceti luna (1 – ianuarie, 2 – februarie, etc.): „; cin >> luna; if (luna == 2) { // februarie if ((an % 4 == 0 &&...
Se citesc mai multe cifre de la tastatură până când suma lor depăşeşte valoarea 40. Afişaţi numărul de cifre introduse. Scrieţi câte o variantă de program pentru fiecare structură repetitivă implementată în limbajul C++. Precizaţi expresiile şi instrucțiunile folosite pentru cele trei acţiuni ale procesului de control. 3
while #include <iostream> using namespace std; int main() { int cifra, suma = 0, nrCifre = 0; while (suma < 40) { cout << „Introduceti o cifra: „; cin >> cifra; suma += cifra; nrCifre++; } cout << „Ati introdus ” << nrCifre << ” cifre.” <<...
Se citeşte un număr natural n şi apoi un şir de n numere întregi. Afişaţi mediile aritmetice ale tripletelor de numere pozitive introduse consecutiv. Scrieţi câte o variantă de program pentru fiecare structură repetitivă implementată în limbajul C++. Precizaţi expresiile şi instrucţiunile folosite pentru cele trei acţiuni ale procesului de control. 4
#include <iostream> using namespace std; int main() { int n; cout << „Introduceti numarul de elemente din sir: „; cin >> n; int a[n]; for (int i = 0; i < n; i++) { cout << „a[” << i << „] = „; cin >> a[i]; }...
Se citesc două numere de la tastatură, a şi b. Afişaţi numărul de termeni ai şirului lui Fibonacci din intervalul [a,b]. Scrieţi câte o variantă de program pentru fiecare structură repetitivă implementată în limbajul C++. Precizaţi expresiile şi instrucțiunile folosite pentru cele trei acţiuni ale procesului de control. 5
#include <iostream> using namespace std; int main() { int a, b; cout << „Introduceti doua numere intregi a si b: „; cin >> a >> b; int f1 = 1, f2 = 1, f3 = 2, nr = 0; while (f1 <= b) { if (f1 >= a) {...
Să se afişeze toate numerele de forma abba divizibile cu n (n se citeşte de la tastatură). Scrieţi câte o variantă de program pentru fiecare structură repetitivă implementată în limbajul C++. Precizaţi expresiile şi instrucţiunile folosite pentru cele trei acţiuni ale procesului de control. 6
Varianta cu structura while: #include <iostream> using namespace std; int main() { int n, a = 0, b = 0; cout << „Introduceti valoarea lui n: „; cin >> n; while (a <= 9) { int num = 1000*a + 100*b + 10*b + a; if (num % n...
Să se calculeze produsul a*b a două numere întregi, fără să se folosească operatorul pentru înmulţire (se foloseşte adunarea repetată a lui a, de b ori, şi se ține cont de semnul numerelor). 7
Pentru a calcula produsul a * b fără operatorul de înmulțire, putem folosi adunarea repetată a lui a, de b ori. În plus, trebuie să ținem cont de semnul numerelor. Iată o posibilă implementare în limbajul C++: #include <iostream> using namespace std; int main() { int a, b; cout << „Introduceti doua numere...
Să se calculeze câtul şi restul împărțirii a două numere întregi a şi b, fără să se folosească operatorii / şi % (se foloseşte scăderea repetată a lui b din a şi se ţine cont de semnul numerelor). 8
Pentru a calcula câtul și restul împărțirii a două numere întregi a și b fără a folosi operatorii / și %, putem folosi o buclă while pentru a scădea repetat b din a până când a devine mai mic decât b. De fiecare dată când scădem b din a, incrementăm un contor și reactualizăm valoarea...
Să se afişeze cuburile perfecte mai mici decât un număr n citit de la tastatură. 9
Pentru a afișa toate cuburile perfecte mai mici decât un număr n citit de la tastatură, putem utiliza o buclă while sau for și putem itera prin toate numerele între 1 și n/3 (deoarece cel mai mare cub perfect mai mic decât n este n/3). Iată o implementare în C++ cu bucla while: #include <iostream>...
Să se afişeze numărul pătratelor perfecte mai mici decât un număr n citit de la tastatură. 10
Pentru a afla numărul pătratelor perfecte mai mici decât un număr n, putem parcurge toate numerele naturale de la 1 la n și pentru fiecare număr verificăm dacă este pătrat perfect. Dacă este, incrementăm un contor și afișăm numărul. Exemplu de implementare în C++ cu o buclă for: #include <iostream> #include <cmath> // bibliotecă pentru...
Se citeşte un număr natural n şi apoi un şir de n numere întregi. Afişați suma pe care o obţineţi adunând primul divizor prim din fiecare număr citit. nu doresc sa folosim functii! 11
#include <iostream> bool is_prime(int num) { if (num <= 1) { return false; } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return false; } } return true; } int main() { int n,...
Se citeşte un număr natural n şi apoi un şir de n numere întregi. Afişaţi primul număr care are cei mai mulți divizori. 12
Pentru a rezolva această problemă, putem parcurge șirul de numere și pentru fiecare număr vom calcula numărul de divizori și îl vom compara cu cel mai mare număr de divizori găsit până la momentul respectiv. Dacă numărul de divizori este mai mare, vom actualiza valoarea maximă și numărul corespunzător. Iată un posibil program în limbajul...
Se citesc mai multe numere naturale până se citeşte un număr negativ. Afişaţi ultimul număr care are cei mai puţini divizori primi. 13
#include <iostream> #include <cmath> using namespace std; int main() { int n; int min_div = 999999; // initializam cu un numar mare, sa ne asiguram ca il actualizam la primul numar citit int last_num = -1; // initializam cu o valoare invalida, sa ne asiguram ca il actualizam la primul numar citit...
Se citeşte un număr natural nenul care poate avea maxim 9 cifre. Afişaţi cifrele distincte ale numărului. 14
#include <iostream> using namespace std; int main() { unsigned long long n; bool digits[10] = { false }; // initializam toate cifrele la false cout << „Introduceti un numar natural de cel mult 9 cifre: „; cin >> n; // setam variabilele corespunzatoare cifrelor din n la true while...
Se citeşte un număr natural nenul care poate avea maxim 9 cifre. Determinaţi dacă numărul are cifrele ordonate strict crescător sau strict descrescător. 15
#include <iostream> int main() { unsigned int n, prev_digit, digit; bool ordered = true; std::cout << „Introduceti un numar natural: „; std::cin >> n; // Initializam prev_digit cu valoarea primei cifre prev_digit = n % 10; n /= 10; while (n > 0) { // Obtinem...
Să se determine toate dubletele de numere întregi (x,y) care îndeplinesc condiţia X2+y2 = r2, unde r se citeşte de la tastatură. 16
#include <iostream> #include <cmath> //pentru funcția sqrt using namespace std; int main() { int r; cout << „Introduceti r: „; cin >> r; for (int x = -r; x <= r; x++) { for (int y = -r; y <= r; y++) { if (x * x...
Să se determine toate dubletele de numere întregi (x,y) care îndeplinesc condiția X2+y2 < r2, unde r se citeşte de la tastatură. 17
#include <iostream> #include <cmath> using namespace std; int main() { int r; cout << „Introduceti valoarea r: „; cin >> r; for(int x=-r; x<=r; x++) { for(int y=-r; y<=r; y++) { if(x*x + y*y < r*r) { cout << „(” << x << „, ”...
Să se afişeze toate numerele de forma a2+b4, cu 1<=a<=10 şi 1<=b<=10. 18
#include <iostream> int main() { for (int a = 1; a <= 10; ++a) { for (int b = 1; b <= 10; ++b) { int result = a * a + b * b * b * b; std::cout << result << std::endl; } } return 0;...
Să se determine toate triunghiurile diferite care au lungimea laturilor numere naturale şi perimetrul p (p se citeşte de la tastatură). 19
#include <iostream> using namespace std; int main() { int p; cout << „Introduceti perimetrul: „; cin >> p; cout << „Triunghiurile cu perimetrul ” << p << ” sunt: ” << endl; for (int a = 1; a <= p – 2; a++) { for (int b = 1;...
Se consideră numărul n=2a2+3b3, a şi b fiind două numere naturale distincte cu 1<=a<=10 şi 1<=b<=10. Să se afişeze toate numerele n generate astfel, şi, pentru fiecare număr n generat, descompunerea lui în sumă de trei pătrate. 20
#include <iostream> #include <cmath> using namespace std; int main() { for(int a = 1; a <= 10; a++) { for(int b = 1; b <= 10; b++) { if(a != b) { // Verificăm că a și b sunt distincte int n = 2 * a * a + 3 *...
Sa se determine toate dubletele de numere intregi (x, y) care indeplinesc simultan conditiile: -a<x<a si -b<y<b; a si b se citesc de la tastatura. 21
#include <iostream> using namespace std; int main() { int a, b; cout << „Introduceti valorile pentru a si b: „; cin >> a >> b; for(int x = -a+1; x < a; x++) { for(int y = -b+1; y < b; y++) { cout << „(” << x <<...
Să se determine toate tripletele de numere naturale (x,y,z) care îndeplineste condiția x2+y2+z2=n, unde n se citeşte de la tastatură. 22
#include <iostream> #include <cmath> using namespace std; int main() { int n, x_max, y_max, z_max; cout << „Introduceti valoarea lui n: „; cin >> n; cout << „Introduceti limita superioara pentru x: „; cin >> x_max; cout << „Introduceti limita superioara pentru y: „; cin >> y_max; ...
Să se determine toate tripletele de numere naturale (x,y,z) care îndeplinese simultan condiţiile 1<=x<=y<=z<=n şi x2+y2=z2; n se citeşte de la tastatură. 23
#include <iostream> using namespace std; int main() { int n; cout << „Introduceti n: „; cin >> n; for (int x = 1; x <= n; x++) { for (int y = x; y <= n; y++) { for (int z = y; z <= n; z++) { ...
Să se determine toate cvadruplele de numere naturale (x,y,z,n) care îndeplinese simultan condiţiile: n>=3, 1<=x<=y<=z<=m şi xn+yn=zn unde m se citeşte de la tastatură. 24
#include <iostream> using namespace std; int main() { int m; cout << „Introduceti valoarea lui m: „; cin >> m; for (int n = 3; n <= m; n++) { for (int x = 1; x <= m; x++) { for (int y = x; y <= m &&...
Să se scrie toate modurile în care poate fi descompus un număr natural nenul în sumă de cuburi a două numere naturale. Dacă nu există nici un mod de descompunere, să se scrie mesajul „Imposibil”. 25
#include <iostream> #include <cmath> using namespace std; int main() { int n; cout << „Introduceti un numar: „; cin >> n; bool existaSolutie = false; for (int i = 1; i <= n; i++) { for (int j = i; j <= n; j++) { int sumaCuburilor =...
Să se găsească cel mai mic număr natural nenul care poate fi descompus în sumă de cuburi a două numere naturale. 26
#include <cmath> using namespace std; int main() { int n; bool found = false; cout << „Introduceti valoarea lui n: „; cin >> n; for (int num = 1; num <= n; num++) { found = false; for (int i = 1; i <= sqrt(num); i++) { ...
Să se găsească cel mai mic număr natural nenul care poate fi descompus în sumă de cuburi a două numere naturale, în cel puţin două moduri distincte. 27
#include <iostream> #include <unordered_set> #include <cmath> using namespace std; int main() { int n = 1; unordered_set<int> cubes; while (true) { bool found = false; for (int a = 1; a * a * a < n; a++) { for (int b = a; a * a * a...
Scrieţi un program care să afişeze de câte ori apare o cifră nenulă c în scrierea tuturor numerelor naturale mai mici sau egale cu un număr dat n. Cifra c şi valoarea lui n se citesc de la tastatură. 28
#include <iostream> using namespace std; int main() { int n, c; cout << „Introduceti cifra c: „; cin >> c; cout << „Introduceti numarul n: „; cin >> n; int count = 0; for (int i = 1; i <= n; i++) { int num = i;...