👤

Tema - Informatică, 15 octombrie 2018 Structura decizională Să se rezolve în limbaj pseudocod sau în limbajul C++ următoarele probleme: 1) Un număr se numește perfect dacă suma cifrelor sale este egală cu produsul cifrelor sale. Exemplu: numărul 123 este perfect (1+2+3=1*2*3). Se citește un număr natural n. Să se verifice dacă numărul are exact 3 cifre şi dacă este un număr perfect. Exemple: Date de intrare 123 142 14 2) Se citesc 3 numere Exemple: Date de intrare 354 529 9 8 72 123 2017 Date de intrare 3 89 2 Date de ieşire Este perfect Nu este perfect Nu are trei cifre 3) Se citește un număr natural n. Dacă numărul are o cifră, atunci, se verifică dacă cifra poate fi scrisă ca sumă de două numere consecutive. Dacă numărul are două cifre, atunci, se afișează cifrele numărului în ordine crescătore. Dacă numărul are trei cifre, atunci, se inversează cifra unităţilor cu cifra sutelor. Exemple: Date de intrare S naturale și se verifică dacă cele 3 numere sunt pitagorice (a²+b²=c²). Date de intrare 333 Date de ieşire Numere pitagorice Nu sunt numere pitagorice 433 543 123 CS 4) Se citesc trei numere naturale a,b,c. Să se precizeze dacă au fost introduse mai multe numere pare sau mai multe numere impare. Exemple: Date de ieşire 9=4+5 Imposibil 27 321 Numărul are cel puţin 4 cifre Date de ieşire Mai multe impare Mai multe pare Explicaţii 3¹+4²=5² 20 5 40 5) Se citesc trei numere reale, strict pozitive a, b, c. Să se verifice dacă cele trei numere pot forma laturile unui triunghi (am rezolvat în clasă!). În caz afirmativ, să se afişeze natura triunghiului (echilateral, isoscel, dreptunghic isoscel, dreptunghic, oarecare). Exemple: CS Date de ieşire echilateral isoscel Dreptunghic Nu formează triunghi​

Răspuns :

1. **Verificare număr perfect cu 3 cifre:**
```cpp
#include
using namespace std;

int main() {
int n;
cout << "Introduceti un numar natural: ";
cin >> n;

if (n >= 100 && n <= 999) {
int sumaCifre = (n % 10) + ((n / 10) % 10) + (n / 100);
int produsCifre = (n % 10) * ((n / 10) % 10) * (n / 100);

if (sumaCifre == produsCifre) {
cout << "Numarul " << n << " este perfect." << endl;
} else {
cout << "Numarul " << n << " nu este perfect." << endl;
}
} else {
cout << "Numarul nu are exact 3 cifre." << endl;
}

return 0;
}
```

2. **Verificare numere pitagorice:**
```cpp
#include
#include
using namespace std;

int main() {
int a, b, c;
cout << "Introduceti 3 numere naturale: ";
cin >> a >> b >> c;

if (pow(a, 2) + pow(b, 2) == pow(c, 2) || pow(b, 2) + pow(c, 2) == pow(a, 2) || pow(c, 2) + pow(a, 2) == pow(b, 2)) {
cout << "Numere pitagorice." << endl;
} else {
cout << "Nu sunt numere pitagorice." << endl;
}

return 0;
}
```

3. **Verificare și manipulare cifre:**
```cpp
#include
#include
using namespace std;

int main() {
int n;
cout << "Introduceti un numar natural: ";
cin >> n;

if (n >= 10 && n <= 99) {
int cifraZeci = n / 10;
int cifraUnitati = n % 10;

cout << "Cifrele in ordine crescatoare: " << min(cifraZeci, cifraUnitati) << " " << max(cifraZeci, cifraUnitati) << endl;
} else if (n >= 100 && n <= 999) {
int cifraSute = n / 100;
int cifraZeci = (n / 10) % 10;
int cifraUnitati = n % 10;

int invers = cifraUnitati * 100 + cifraZeci * 10 + cifraSute;
cout << "Numarul cu cifrele inversate: " << invers << endl;
} else if (n >= 1 && n <= 9) {
if (n % 2 == 0) {
cout << "Cifra poate fi scrisa ca suma de doua numere consecutive." << endl;
} else {
cout << "Cifra nu poate fi scrisa ca suma de doua numere consecutive." << endl;
}
} else {
cout << "Numarul are un numar incorect de cifre." << endl;
}

return 0;
}
```

4. **Comparare numere pare și impare:**
```cpp
#include
using namespace std;

int main() {
int a, b, c;
cout << "Introduceti trei numere naturale: ";
cin >> a >> b >> c;

int numerePare = 0;
int numereImpare = 0;

if (a % 2 == 0) {
numerePare++;
} else {
numereImpare++;
}

if (b % 2 == 0) {
numerePare++;
} else {
numereImpare++;
}

if (c % 2 == 0) {
numerePare++;
} else {
numereImpare++;
}

if (numerePare > numereImpare) {
cout << "Mai multe numere pare." << endl;
} else if (numereImpare > numerePare) {
cout << "Mai multe numere impare." << endl;
} else {
cout << "Numerele sunt egale ca numar de pare si impare." << endl;
}

return 0;
}
```

5. **Verificare triunghi:**
```cpp
#include
using namespace std;

int main() {
double a, b, c;
cout << "Introduceti trei numere reale pozitive: ";
cin >> a >> b >> c;

if (a + b > c && a + c > b && b + c > a) {
if (a == b && b == c) {
cout << "Triunghi echilateral." << endl;
} else if (a == b || b == c || a == c) {
cout << "Triunghi isoscel." << endl;
} else if (pow(a, 2) + pow(b, 2) == pow(c, 2) || pow(b, 2) + pow(c, 2) == pow(a, 2) || pow(c, 2) + pow(a, 2) == pow(b, 2)) {
cout << "Triunghi dreptunghic." << endl;
} else {
cout << "Triunghi oarecare." << endl;
}
} else {
cout << "Nu se poate forma un triunghi cu aceste laturi." << endl;
}

return 0;
}
```

Acestea sunt soluțiile pentru temele date. Dacă aveți întrebări suplimentare sau aveți nevoie de clarificări, nu ezitați să întrebați.

#include <iostream>

using namespace std;

int main(){

   int n;

   cin >> n;

   // vom calcula suma divizorilor.

   // Folosim faptul ca divizorii sunt in pereche:

   //      daca d este divizor, si n/d este divizor

   int s = 0 , d;

   for(d=1 ; d * d < n ; ++ d)

       if(n % d == 0)

           s += d + n / d;

   if(d * d == n)

       s += d;

   // verificam daca s este egal cu dublul lui n

   if(2 * n == s && n>99 && n<1000)

       cout << n <<  " este perfect si are 3 cifre" << endl;

   else

       cout << n <<  " nu este perfect sau nu are 3 cifre" << endl;

   return 0;

}

Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.


Wix Learning: Alte intrebari