Vous êtes sur la page 1sur 11

1.

Analizați și explicați rezultatele executării următoarelor programe (dacă apar erori încercați să
utilizați liniile comentate):

#include "stdafx.h" count3 += count2;

#include <iostream> }

using std::cout; cout << "Value of outer count1 = " << count1

using std::endl; << endl

int count1{ 100 }; << "Value of outer count3 = " << count3

int sum(int&& count) << endl;

{ cout << "Value of function sum = " << sum(3 +


6);
int count1{ 3 };
std::cin.ignore();
return count + count1;
std::cin.get();
}
return 0;
int main()
}
{

int count1{ 10 };

int count3{ 50 };

cout << endl

<< "Value of outer count1 = " << count1

<< endl;

cout << "Value of global count1 = " << ::count1

<< endl;

int count1{ 20 };

int count2{ 30 };

cout << "Value of inner count1 = " << count1

<< endl;

cout << "Value of global count1 = " << ::count1

<< endl;

count1 += 3;
Programul 2 if (found)

#include "stdafx.h" break;

#include <iostream>

#include <iomanip> }

using std::cin; if (!found)

using std::cout; *(pprime + count++) = trial;

using std::endl;

using std::setw; } while (count < max);

int main() for (int i{}; i < max; i++)

{ if (i % 5 == 0)

int max{}; cout << endl;

cout << endl cout << setw(10) << *(pprime + i);

<< "Enter the number of primes you would like }


(at least 4): ";
delete[] pprime;
cin >> max;
pprime = nullptr;
if (max < 4)
cout << endl;
max = 4;
std::cin.ignore();
long* pprime{ new long[max] {2L, 3L, 5L} };
std::cin.get();
long trial{ 5L };
return 0;
int count{ 3 };
}
bool found{ false };

do

trial += 2L;

found = false;

for (int i{}; i < count; i++)

found = (trial % *(pprime + i)) == 0;


Programul 3
#include "stdafx.h"
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
int incr10(const int& num);
double* treble(double);
int main()
{
const int num = 3;
int value = 6;
int result = incr10(num);
double*ptr(nullptr);
cout << endl << "incr10(num) = "
<< result << endl << "num = " << num;
result = incr10(value);
cout << endl << "incr10(value) = "
<< result;
cout << endl << "value = " <<
value;
ptr = treble(num);
cout << endl << "Three times num =
" << 3.0*num;;
cout << endl << "Result = " <<
*ptr << endl;
cin.get();
return 0;
}
int incr10(const int& num)
{
cout << endl << "Value received =
" << num;
//num += 10;
return num + 10; //return num +
10;
}
double* treble(double data)
{
double result;
result = 0.0;
result = 3.0*data;
return &result;
}
Program 4 cout << "value = " << value << endl;

#include "stdafx.h" cout << "pInt = " << pInt << "; *pInt = " << *pInt <<
endl;
#include <iostream>
cout << "exit from function findIndexOfValue\n" <<
using namespace std; endl;
void findIndexOfValue(const double* dblValues, int }
count, int& value, int* index)
int main()
{

cout << "\nfunction findIndexOfValue" << endl;


{
int* pInt{ &count };
int nIndex{ 100 };
double dblV;
int nValueToCompare{8};
dblV = static_cast<double>(value);
double dblValues[] = { 52, 1, 2.0, 8 ,3.0, 2 };
double* pDouble{ &dblV };
double* ptrDbl{dblValues};
cout << "index = " << index << "; *index = " << *index
<< endl; int* ptrInt{&nIndex};

for (int i = 0; i <= count; i++) cout << "ptrDbl = " << ptrDbl << "; ptrDbl = " <<
*ptrDbl << endl;
{
cout << "dblValues = " << dblValues << "; dblValues =
if (*dblValues == dblV) " << *dblValues << endl;
{ cout << "dblValues = " << dblValues << "; dblValues =
index = &i; " << dblValues[0] << endl;

break; cout << "index = " << nIndex << endl;

} cout << "ptrInt = " << ptrInt << "; *ptrInt = " <<
*ptrInt << endl;
dblValues++;
ptrInt = &nValueToCompare;
}
cout << "nValueToCompare = " << nValueToCompare
cout << "index = " << index << "; *index = " << *index << endl;
<< endl;
cout << "ptrInt = " << ptrInt << "; *ptrInt = " <<
cout << "dblValues = " << dblValues << "; *dblValues *ptrInt << endl;
= " << *dblValues << endl;
int count = _countof(dblValues);
cout << "pDouble = " << pDouble << "; *pDouble = "
<< *pDouble << endl; ptrInt = &count;

cout << "count = " << count << endl; cout << "count = " << count << endl;

cout << "pInt = " << pInt << "; *pInt = " << *pInt << cout << "ptrInt = " << ptrInt << "; *ptrInt = " <<
endl; *ptrInt << endl;

pInt = &value;
findIndexOfValue(dblValues, _countof(dblValues),
nValueToCompare, &nIndex);

cout << "nValueToCompare = " << nValueToCompare


<< endl;

cout << "ptrInt = " << ptrInt << "; *ptrInt = " <<
*ptrInt << endl;

ptrInt = &nIndex;

cout << "index = " << nIndex << endl;

cout << "ptrInt = " << ptrInt << "; *ptrInt = " <<
*ptrInt << endl;

ptrInt = &count;

cout << "count = " << count << endl;

cout << "ptrInt = " << ptrInt << "; *ptrInt = " <<
*ptrInt;

cin.get();

return 0;

}
Program 5
#include "stdafx.h"
#include <iostream>
using namespace std;
int* castFromDouble(double&);
int main()
{
int* pInt{ nullptr };
double dbl{ 20 };
pInt = castFromDouble(dbl);
cout << "dbl=" << dbl << endl;
cout << "pInt = " << pInt << ";
*pInt = " << *pInt;
delete pInt;
pInt = nullptr;
cin.get();
return 0;
}
int* castFromDouble(double& value)
{
int* result{ new int() };
*result = static_cast<int>(value);

value = 0.0;

return result;
}
2. Realizați un program afișează da dacă în numărul introdus de la tastatură se găsesc cifre egale.
#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
int a, b, c, i=0;
cout << "Introduceti numerele = ";
cin >> a;
while (a != 0)
{
c = a % 10;
a = a / 10;
b = a;
while (b != 0)
{
if (c == b % 10) i = 1;
b = b / 10;
}
}
if (i == 1) cout << "Sunt numere egale";
else cout << "Nu sunt numere elgale";
cin.get();
cin.ignore();
return 0;
}

3.Utilizînd instrucțiunea while scrieți un program care calulează suma numerelor întregi
introduse de la tastatură pînă la apariția cifrei 1.
#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
int a[30][30];
int i, j, m, n, min = 1000, i1, aux;
cout<<"Dati n= ";
cin >> n;
cout<<"Dati m= ";
cin >> m;
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
a[i][j] = rand();
cout << "Tabloul initial" << endl;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
cout << a[i][j] << "\t";
cout << endl;
}

for (i = 1; i < n; i++)


for (j = 0; j < m; j++)
if (a[i][j] < min)
{
min = a[i][j];
i1 = i;
}
for (i = 0; i < n; i++)
{
aux = a[0][i];
a[0][i] = a[i1][i];
a[i1][i] = aux;
}
cout << "\nMinimul este " << min << " In rindul " << i1;
cout << "\nTabloul 2" << endl;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
cout << a[i][j] << "\t";
cout << endl;
}

cin.get();
cin.ignore();
return 0;
}
4.Generați un array (n x m) gasiți primul minim și interschimbați rîndul în care se află acest
minim cu primul rînd din tablou. Generarea tabloului se face cu ajutorul funcției rand().
#include "stdafx.h"
#include <iostream>
using namespace std;
int a[200], i, n;

int generareTablou()
{
cin >> n;
for (i = 0; i < n; i++)
cin >> a[i];
return(0);
}
int afisare()
{
for (i = 0; i < n; i++) cout << a[i] << " ";
cout << endl;
return(0);
}
int sortare1()
{
int aux, j;
for(i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (a[i] > a[j])
{
aux = a[i];
a[i] = a[j];
a[j] = aux;
}
return(0);

}
int sortare2()
{
int j,k, aux, min;
for (i = 0; i < n - 1; i++)
{
min = a[i];
k = i;
for (j = i + 1; j < n; j++)
if (a[j]<min)
{
min = a[j];
k = j;
}
aux = a[i];
a[i] = a[k];
a[k] = aux;
}
return(0);

int main()
{
generareTablou();
afisare();
cout << "sortarea in ordine descrescatoare" << endl;
sortare1();
afisare();
cout << "sortare in ordine crescatoare" << endl;
sortare2();
afisare();
cin.get();
cin.ignore();
return 0;
}

Vous aimerez peut-être aussi