Structuri de date
Implementarea structurilor de date > structuri de date
Un vector conţine maxim 50 de numere intregit Lungimea vectorului si elementele sale se citesc de la tastatură. Să se afişeze cate dintre elemente au valoarea mai mare decat media aritmetica a elementelor vectorului 1
#include <iostream> using namespace std; int main() { int n, sum = 0; float avg = 0; cout << „Introduceti lungimea vectorului: „; cin >> n; int v[n]; for...
Implementarea structurilor de date > structuri de date
Un vector conține maxim 50 de numere întregi. Lungimea vectorului şi elementele sale se citesc de la tastatură. Să se afişeze câte dintre elemente au valoarea egală cu suma elementelor vecine. 2
Pentru a rezolva această problemă în C++, putem parcurge vectorul de la indexul 1 până la indexul n-2 (deoarece primul şi ultimul element nu au vecini ambii în stânga şi în dreapta). Pentru fiecare element...
Implementarea structurilor de date > structuri de date
Un vector conţine maxim 50 de numere întregi. Lungimea vectorului şi elementele sale se citesc de la tastatură. Să se afişeze suma elementelor impare aflate pe poziţiile pare. 3
Pentru a rezolva această problemă în C++, putem utiliza o buclă for pentru a itera prin vector şi a verifica dacă fiecare element îndeplineşte condiţiile date (este impar şi se află pe o poziţie pară)....
Implementarea structurilor de date > structuri de date
Doi vectori conțin fiecare maxim 50 de numere reale. Lungimile vectorilor şi elementele lor se citesc de la tastatură. Să se afişeze câte dintre elementele primului vector sunt strict mai mari decât toate elementele celui de al doilea vector. 4
Pentru a rezolva această problemă, trebuie să parcurgem fiecare element din primul vector şi să verificăm dacă este strict mai mare decât toate elementele din al doilea vector. Pentru a face această verificare, putem utiliza...
Implementarea structurilor de date > structuri de date
Se citesc de la tastatură un număr natural n şi două valori reale x şi y. Să se genereze recursiv într-un vector primii n termeni ai şirului: 1,1,2,3,3,4,5,5, …. Să se afişeze câți termeni ai şirului sunt mai mari decât x şi mai mici decât y şi care sunt aceşti termeni. 5
#include <iostream> int main() { int n; double x, y; std::cin >> n >> x >> y; double v[50]; int count = 0; int i = 0, j =...
Implementarea structurilor de date > structuri de date
Să se verifice că un vector cu n componente numere întregi are proprietatea: elementele sale sunt cifre binare alternative ((0,1,0,1,0,1,…) sau (1,0,1,0,1,0….)). 6
#include <iostream> using namespace std; int main() { int n; int v[50]; bool is_alternating = true; // citirea datelor de intrare cout << „Introduceti lungimea vectorului: „; cin >>...
Implementarea structurilor de date > structuri de date
Se consideră trei vectori cu elemente numere întregi: a, b şi c, cu lungimea n. Lungimea vectorilor şi elementele vectorilor a şi b se citesc de la tastatură. Să se afişeze vectorul c ale cărui elemente se generează astfel: 7
a) c[i] este modulul diferenței a[i]-b[i]; b) c[i] este maximul dintre a[i] şi b[i]; c) c[i] este minimul dintre a[i] şi b[n-i-1]. #include <iostream> using namespace std; int main() { const int n =...
Implementarea structurilor de date > structuri de date
Să se genereze în doi vectori a şi b, şi apoi să se alişeze, termenii sirurilor an si bn definite recursive astfel 8
an=(an-1+bn-1)/2 bn=(an-1+2xbn-1)/3 ……………………………………………………………………………. a1=(a0+b0)/2 b1=(a0+2xb0)/3 unde a0, b0 şi n se citesc de la tastatură. #include <iostream> using namespace std; int main() { int n, a0, b0; cin >> n >> a0 >>...
Implementarea structurilor de date > structuri de date
Un vector a conține maxim 100 de numere întregi. Lungimea vectorului şi elementele sale se citesc de la tastatură. Să se copieze într-un vector b toate elementele din vectorul a care au valoarea egală cu codul ASCII al unei litere. Să se sorteze crescător vectorul b folosind metoda bulelor şi să se afişeze literele din vectorul b. 9
#include <iostream> using namespace std; int main() { int a[100], b[26], n, j = 0; char ch; // Citim lungimea vectorului a și elementele sale cout << „Introduceti lungimea vectorului: „;...
Implementarea structurilor de date > structuri de date
Se consideră un vector a cu elemente numere întregi, cu lungimea n, n fiind un număr par. Lungimea vectorului, un număr natural K (1<=k<=n-2) şi elementele sale a[0], a[1], a[2], …, a[n-1] se citesc de la tastatură. Să se rearanjeze elementele vectorului şi să se afişeze astfel: 10
a) a[n-1], a[0], a[1], a[2], …, a[n-2]; b) a[1], a[2], a[3], …, a[n-1], a[0]; c) a[1], a[0], a[3], a[2], …, a[n-1], a[n-2]; d) a[n-2], a[n-1], a[n-4], a[n-3], …, a[2], a[3], a[0], a[1]; e) a[k], a[k+1],...
Implementarea structurilor de date > structuri de date
Se consideră doi vectori cu elemente numere întregi a şi b, cu lungimea n. Lungimea vectorilor şi elementele vectorului a se citesc de la tastatură. In vectorul b în elementul b[i] se calculează suma cifrelor elementului a[i]. Să se afişeze numărul care are cea mai mare sumă a cifrelor şi al câtelea număr citit a fost. Dacă sunt mai multe numere care au suma cifrelor maximă, să se afişeze numărul de ordine la citire pentru fiecare dintre ele. 11
Pentru a rezolva această problemă, vom citi elementele vectorului a și vom calcula suma cifrelor fiecărui element. Vom folosi o variabilă max_sum pentru a reține cea mai mare sumă a cifrelor găsită până acum și...
Implementarea structurilor de date > structuri de date
Se consideră două mulţimi A şi B. Să se verifice dacă: 12
a) A apartine B; b) A nu apartinw B; c) A=B. Pentru a verifica dacă o mulțime A aparține mulțimii B, trebuie să verificăm dacă toate elementele mulțimii A sunt și în mulțimea B....
Implementarea structurilor de date > structuri de date
Se consideră două mulţimi A şi B. Să se calculeze produsul cartezian AxB. 13
Pentru a calcula produsul cartezian AxB, vom itera prin fiecare element din A si pentru fiecare element din A vom itera prin fiecare element din B, construind perechi (a,b) cu a din A si b...
Implementarea structurilor de date > structuri de date
Se citeşte de la tastatură un număr întreg cu maxim 20 de cifre. Să se verifice dacă numărul este palindrom (Indicaţie. Cifrele numărului vor fi citite într-un vector.) 14
#include <iostream> using namespace std; int main() { const int MAX_DIGITS = 20; int n, digits[MAX_DIGITS]; bool is_palindrome = true; cout << „Introduceti un numar intreg cu maxim 20 de cifre:...
Implementarea structurilor de date > structuri de date
Se citeşte de la tastatură un număr întreg cu maxim 20 de cifre. Să se verifice dacă numărul este palindrom (Indicaţie. Cifrele numărului vor fi citite într-un vector.) 15
#include <iostream> using namespace std; int main() { const int MAX_DIGITS = 20; int n, digits[MAX_DIGITS]; bool is_palindrome = true; cout << „Introduceti un numar intreg cu maxim 20 de cifre:...
Implementarea structurilor de date > structuri de date
Să se memoreze într-un vector n cifre. Să se afişeze cel mai mic număr care se poate obţine cu aceste cifre. 16
Pentru a rezolva această problemă, vom folosi un algoritm de sortare prin interschimbare, care va pune cifrele în ordine crescătoare. După aceea, vom construi numărul cel mai mic posibil prin concatenarea cifrelor în ordine. #include...
Implementarea structurilor de date > structuri de date
Să se genereze toate numerele cu n cifre (n se citeşte de la tastatură şi n<20) care sunt egale cu suma cuburilor cifrelor lor 17
Pentru a genera toate numerele cu n cifre care sunt egale cu suma cuburilor cifrelor lor, putem folosi un algoritm de tip bruteforce. În primul rând, trebuie să generăm toate combinațiile posibile de cifre cu...
Implementarea structurilor de date > structuri de date
Se consideră un vector a cu elemente numere întregi, cu lungimea n. Să se rearanjze elementele vectorului astfel încât numerele pare să fie scrise înaintea numerelor impare. 18
Pentru a rearanja elementele vectorului astfel încât numerele pare să fie scrise înaintea numerelor impare, putem folosi o metodă simplă de sortare. Putem utiliza două variabile pentru a ține evidența pozițiilor în vectorul a: i...
Implementarea structurilor de date > structuri de date
Să se verifice că o matrice pătrată cu dimensiunea nxn (n se citeşte de la tastatură) este matricea zero (matricea care are toate elementele egale cu 0). 19
Pentru a verifica dacă o matrice pătrată este matricea zero, trebuie să parcurgem toate elementele matricei și să verificăm dacă toate sunt egale cu zero. Acest lucru poate fi realizat folosind două bucle for imbricate...
Implementarea structurilor de date > structuri de date
Să se verifice dacă o matrice pătrată cu dimensiunea n>n este: 20
a) simetrică faţă de axa orizontală, b) simetrică față de axa verticală, c) simetrică față de diagonala principală, d) simetrică față de diagonala secundară. a) simetrică faţă de axa orizontală Pentru a verifica dacă o...
Implementarea structurilor de date > structuri de date
Să se afişeze elementele de pe conturul matricei, parcurgerea lor facandu se in sens invers trigonometric. 21
Pentru a parcurge elementele de pe conturul matricei în sens invers trigonometric, putem utiliza un algoritm care parcurge cele patru laturi ale conturului în ordinea corespunzătoare. Acest algoritm presupune următorii pași: În acest fel, putem...
Implementarea structurilor de date > structuri de date
Se consideră o matrice patrata a cu dimensiunea nxn (n impar) si un vector v cu nxn elemente. Numarul n si elementele matricei se citesc de la tastatura. Sa se copieze in vectorul belementele matricei a parcurse 22
Pentru a copia elementele matricei a în vectorul v parcurgând matricea linie cu linie, putem folosi un algoritm elementar care parcurge fiecare element al matricei și îl copiază în vectorul v la poziția corespunzătoare. Astfel,...
Implementarea structurilor de date > structuri de date
Se consideră o matrice a cu n linii şi m coloane cu elemente numere reale. Valorile pentru n şi m şi elementele matricei se citesc de la tastatură. Se mai citesc de la tastatură două numere întregi p (1<=p<=n) şi g (1<=q<=m). Să se elimine din matrice linia p şi coloana g. Să se afişeze matricea obținută 23
Pentru a elimina o linie din matricea a putem folosi următoarea metodă: creăm o nouă matrice b de dimensiuni (n-1) x m și copiem toate elementele matricei a în b, cu excepția elementelor de pe...
Implementarea structurilor de date > structuri de date
Se consideră o matrice a cu n linii şi m coloane cu elemente numere reale. Valorile pentru n şi m şi elementele matricei se citesc de la tastatură. Se mai citesc de la tastatură două numere întregi p (1<=p<=n) şi q (1<=q<=n). Să se interschimbe liniile p şi q ale matricei. Să se afişeze matricea obținută. 24
Pentru a interschimba două linii ale unei matrice, trebuie să memorăm elementele uneia dintre ele într-un vector temporar, să mutăm elementele celeilalte linii în prima linie și apoi să copiem elementele din vectorul temporar în...
Implementarea structurilor de date > structuri de date
Se consideră o matrice a cu n linii şi m coloane cu elemente numere reale. Valorile pentru n şi m şi elementele matricei se citesc de la tastatură. Se mai citesc de la tastatură două numere întregi p (1<p<m) si q(1<=q<=m). Să se interschimbe coloanele p şi q ale matricei. Să se afişeze matricea obţinută. 25
#include <iostream> using namespace std; int main() { int n, m, p, q; cout << „Introduceti numarul de linii si coloane ale matricei: „; cin >> n >> m; // Initializam...
Implementarea structurilor de date > structuri de date
Se consideră o matrice a cun linii şi m coloane cu elemente numere reale. Valorile pentru n şi m şi elementele matricei se citesc de la tastatură. Să se bordeze matricea cu coloana m+1, ale cărei elemente a[i][m+1] au ca valoare media aritmetică a celor m elemente din linia i, şi cu linia n+1, ale cărei elemente a[n+1][j] au ca valoare media aritmetică a celor n elemente din coloana j. Să se afişeze matricea obţinută. 26
Pentru a bordeza matricea cu o coloana m+1 și o linie n+1 avem nevoie de două etape: #include <iostream> using namespace std; int main() { int n, m; cout << „Introduceti numarul de...
Implementarea structurilor de date > structuri de date
Se consideră o matrice a cu n linii şi m coloane cu elemente numere reale. Valorile pentru n şi m şi elementele matricei se citesc de la tastatură. Să se afişeze numărul liniei şi numărul coloanei pe care suma elementelor este maximă. 27
Pentru a rezolva această problemă, putem parcurge matricea și calcula suma elementelor pentru fiecare linie și fiecare coloană. La fiecare iterație, comparam suma curentă cu suma maximă până în acel moment și actualizăm suma maximă...
Implementarea structurilor de date > structuri de date
Se consideră o matrice pătrată cu dimensiunea nxn şi un vector cu n elemente. Numărul n şi elementele matricei şi ale vectorului se citesc de la tastatură. Să se verifice dacă elementele vectorului formează o linie sau o coloană a matricei. În caz afirmativ să se afişeze un mesaj în care să se precizeze numărul liniei şi/sau al coloanei. 28
Pentru a verifica dacă elementele vectorului formează o linie sau o coloană a matricei putem verifica dacă toate elementele vectorului sunt egale cu elementele de pe aceeași poziție dintr-o anumită linie sau coloană a matricei....
Implementarea structurilor de date > structuri de date
Găsiți metoda adecvată prin care să memorați coordonatele carteziene în spaţiu (x, y, z) a n vectori, astfel încât să puteți implementa un algoritm cât mai eficient care să afişeze vectorii perpendiculari (vectorii al căror produs scalar este 0). Afişaţi vectorii perpendiculari. 29
Pentru a memora coordonatele vectorilor în spațiu, putem declara o matrice de dimensiune n x 3, unde n este numărul de vectori. Fiecare linie din matrice reprezintă coordonatele unui vector. Pentru a găsi vectorii perpendiculari,...
Implementarea structurilor de date > structuri de date
Se consideră o matrice pătrată cu elemente numere întregi cu dimensiunea nxn. Numărul n şi elementele matricei se citesc de la tastatură. Să se afişeze: 30
a) elementele situate deasupra diagonalei principale; b) elementele situate sub diagonala secundară. Pentru a afișa elementele situate deasupra diagonalei principale, parcurgem matricea pătrată cu două bucle for imbricate și afișăm elementele pentru care indicele de...
Implementarea structurilor de date > structuri de date
Se consideră o matrice pătrată cu elemente numere întregi cu dimensiunea nxn. Numărul n şi elementele matricei se citesc de la tastatură. Să se afişeze: 31
a) suma elementelor situate deasupra diagonalei principale; b) suma elementelor situate sub diagonala secundară; c) simetrica matricei faţă de axa verticală care trece prin centrul matricei, d) simetrica matricei faţă de axa orizontală care trece...
Implementarea structurilor de date > structuri de date
Se consideră o matrice pătrată cu elemente numere întregi cu dimensiunea nxn. Numărul n şi elementele matricei se citesc de la tastatură. Să se ordoneze: 32
a) crescător, elementele de pe diagonala principală, folosind metoda selecţiei directe; b) descrescător, elementele de pe diagonala secundară, folosind metoda bulelor; c) crescător, elementele de pe linia p, folosind metoda inserării directe (p seciteşte de...
