Documente Academic
Documente Profesional
Documente Cultură
1. Se citește un număr natural n și cele n cele n elemente ale unui vector. Să se înlocuiască
elementele de pe pozițiile pare cu cea mai mică cifra din număr iar cele de pe pozițiile impare cu 0
dacă numărul e prim și cu 1 altfel.
#include<iostream>
int main()
{
int dimensiune;
std::cout << "Inserati dimensiune:";
std::cin >> dimensiune;
// validare input
if (dimensiune <= 0)
return 0;
// Alocare dinamica
int* tablouDinamic = new int[dimensiune];
citireTablou(tablouDinamic, dimensiune);
schimbare(tablouDinamic, dimensiune);
afisareTablou(tablouDinamic, dimensiune);
delete[] tablouDinamic;
}
2. Se citește un număr natural n și cele n cele n elemente ale unui vector. Să se șteargă din vector
acele elemente care sunt egale cu suma vecinilor săi.
#include <iostream>
}
int main()
{
int n;
std::cin >> n;
// Validare
if (n <= 0)
return 0;
int* v = new int[n];
citire(v, n);
stergere(v, n);
afisare(v, n);
delete[]v;
return 0;
}
3. Se citește un număr natural n și cele n cele n elemente ale unui vector. Să se insereze în vector între
oricare două valori vecine suma și produsul acestora.
Obs: Determinarea sumei și a produsului a două numere se va realiza în cadrul unui singure funcții.
#include<iostream>
}
void AfisareTablou(const int& n, int tablou[])
{
for (int index = 0; index < n; index++)
std::cout << tablou[index] << ' ';
}
int main()
{
int n;
std::cout << "Introduceti dimensiunea vectorului:";
std::cin >> n;
// Validare
if (n <= 0)
return 0;
int* tablou = new int[3 * n];
std::cout << "Introduceti elementele vectorului:";
CitireTablou(n, tablou);
InserareSumProd(n, tablou);
AfisareTablou(n, tablou);
delete[] tablou;
return 0;
}
4. Se citeșc două numere naturale n și k și cele n elemente ale unui vector. Să se deplaseze spre
dreapta elementele vectorilor cu k-poziții. Primele k-elemente ale vectorului vor fi
a) zerorizate iar dimensiunea vectorului va crește k elemente
#include <iostream>
#include <iostream>
}
int main()
{
int n, p;
std::cin >> p;
std::cin >> n;
// Validari
if (n <= 0 || p <= 0 || p > n)
return 0;
int* v = new int[n];
citire(v, n);
stergereinlocuire(v, n, p);
afisare(v, n);
delete[]v;
return 0;
}
void interclasare(int vector1[], int vector2[], int vector_final[], int dimensiune1, int dimensiune2) {
int i1 = 0, i2 = 0, i_final = 0;
int main() {
int dimensiune1, dimensiune2;
// Validari
if (dimensiune1 <= 0 || dimensiune2 <= 0)
return 0;
citireTablou(tablouDinamic1, dimensiune1);
citireTablou(tablouDinamic2, dimensiune2);
interclasare(tablouDinamic1, tablouDinamic2, tablouDinamicFinal, dimensiune1, dimensiune2);
afisareTablou(tablouDinamicFinal, dimensiune1 + dimensiune2);
return 0;
}
7. Se citește un număr natural n și n medii (numere reale cu doua zecimale cu valori cuprinse intre 1 şi
10). Să se afişeze o statistică a mediilor astfel: numărul de medii cuprinse în
intervalul [1,2], numărul de medii cuprinse în intervalul (2,3], …, numărul de medii cuprinse
în intervalul (9,10].
#include<iostream>
8. Un număr natural se reţine într-un vector (număr mare), astfel încât fiecare componentă a
vectorului conţine câte o cifră a numărului. Să se înmulţească numărul cu un număr între 1 şi 9
(random generat).
#include<iostream>
#include <time.h>
}
void inmultireVector(int* vectorNumar, const int numarRandom, int& numarCifre)
{
int transport = 0, copy;
for (int index = numarCifre - 1; index >= 0; index--)
{
copy = vectorNumar[index] * numarRandom;
vectorNumar[index] = (copy + transport) % 10;
transport = (copy + transport) / 10;
}
if (transport)
{
introducereElementInVector(vectorNumar, 0, numarCifre, transport);
}
}
void afisareNumar(int* vectorNumar, const int numarCifre)
{
for (int index = 0; index < numarCifre; index++)
{
std::cout << vectorNumar[index];
}
}
void generareNumarRandomInInterval(int& numar, const int margineInferioara, const int margineSuperioara)
{
srand(time(0));
numar = std::rand() % margineSuperioara + margineInferioara;
}
int main()
{
int numarCifre, numarRandom;
std::cout << "Numarul de cifre :";
std::cin >> numarCifre;
if (numarCifre <= 0)
return 0;
int* vectorNumar = new int[numarCifre + 1];
generareNumarRandomInInterval(numarRandom, 1, 9);
citireNumar(vectorNumar, numarCifre);
afisareNumar(vectorNumar, numarCifre);
inmultireVector(vectorNumar, numarRandom, numarCifre);
std::cout << " * " << numarRandom << " = ";
afisareNumar(vectorNumar, numarCifre);
delete[] vectorNumar;
}