👤


100 de puncte va rog mult

1.Să se scrie un program care să determine cea mai mare cifră a unui număr natural citit
de la tastatură.

2.Se citește un număr natural n. Să se determine câți divizori pari are acest număr.

3.Se citeşte de la tastatură un număr natural n. Să se calculeze şi să se afişeze media
aritmetică a tuturor divizorilor săi.


4. Se dau două numere naturale a și b. Determinati numărul de palindromuri cuprinse în
intervalul determinat de cele două numere.


5. Să se determine suma şi produsul a două fracţii date.


Răspuns :

Răspuns:

Exercitiul 1

#include <iostream>

using namespace std;

int main()

{

   int x,t,max;

   cout<<"Introduceti numarul : ";

   cin>>x; // citim numarul de la tastatura;

   t=x; // punem numarul intial intr-o variabila temporara

   

   max=t%10; // maximul il presupunem ca find ultima cifra

   t=t/10; // eliminam ultima cifra pentru ca o presupunem maxim mai sus

   

   while(t!=0) // cat timp T diferit de 0

   {

       if(max < t%10) // daca maximul nostru este mai mic ca ultima cifra a numarului

       {

           max = t%10;   // setam max ca ultima cifra a numarului

       }

       

       t=t/10; // eliminam ultima cifra pentru ca am prelucrat-o  

   }

   

   cout << "Cifra cea mai mare din numarul "<<x<<" este "<<max; // afisam maximul

}

Exercitiul 2

#include <iostream>

using namespace std;

int main()

{

   int x;

   int nrDivizori = 0;

   cout<<"Introduceti numarul : ";

   cin>>x; // citim numarul de la tastatura;

   

   for(int i=1;i<=x;i++) // trecem prin toate numerele incepand de la 1 pana la numarul introdus de utilizator

   {

       if(x%i == 0 && i%2 == 0) // daca restul impartirii dinte X si I este 0 (nu are rest) si I este par (impartiea la 2 nu are rest)

       {

           nrDivizori++;   // crestem contorul pentru divizori

       }

   }

    cout<<"Numarul de divizori pari ai numarului "<<x<<" este "<<nrDivizori; // afisam numarul de divizori

}

Exercitiul 3

#include <iostream>

using namespace std;

int main()

{

   int x;

   int nrDivizori = 0; // nr de divizori

   float sum = 0; // suma divizorilor

   cout<<"Introduceti numarul : ";

   cin>>x; // citim numarul de la tastatura;

   

   for(int i=1;i<=x;i++) // trecem prin toate numerele incepand de la 1 pana la numarul introdus de utilizator

   {

       if(x%i == 0) // daca restul impartirii dinte X si I este 0 (nu are rest)

       {

           nrDivizori++;   // crestem contorul pentru divizori

           sum+=i; // adaugam la suma noastra, divizorul

       }

   }

    cout<<"Media aritmetica a divizorilor numarului "<<x<<" este "<<sum/nrDivizori; // afisam media aritmetica (suma numerelor impartit la cate numere sunt)

}

Exercitiul 4

#include <iostream>

using namespace std;

int main()

{

   int a, b;

int nrPalindrom = 0;

cout << "Introduceti primul numar : ";

cin >> a; // citim numarul de la tastatura;

cout << "Introduceti al doilea numar : ";

cin >> b; // citim numarul de la tastatura;

for (int i = a; i <= b; i++) // trecem prin toate numerele incepand de la primul pana la ultimul numar introdus

{

 int n = i; // punem numarul curent intr-o variabila temporara;

 int intors = 0; // aici vom stoca numarul intors

 int cifra; // aici vom stoca cifra numarului original

 do // executa

 {

  cifra = n % 10; // luam ultima cifra a numarului nostru curent

  intors = (intors * 10) + cifra; // adaugam ultima cifra ca prima cifra a numarului nostru inversat

  n = n / 10; // eliminam ultima cifra a numarului curent

 } while (n != 0); // cat timp n diferit de 10 (adica cat timp mai avem cifre

 if (intors == i) // daca numarul nostru inversat est eegal cu numarul curent

 {

  nrPalindrom++; // crestem numarul de palindroame

 }

}

cout << "Numarul de palindroame din intervalul [" << a << "," << b << "] este " << nrPalindrom; // afisam media aritmetica (suma numerelor impartit la cate numere sunt)

}

Exercitiul 5

#include <iostream>

using namespace std;

int main()

{

   int numitor1, numitor2, numarator1, numarator2,numitor3,numarator3,numitorTemp1,numitorTemp2;

   

   cout<<"Introduceti numaratorul primei fractii :";

   cin >> numarator1; // citim numaratorul primei fracti

   cout<<"Introduceti numitorul primei fractii :";

   cin >> numitor1; // citim numitorul primei fracti

     

   cout<<"Introduceti numaratorul pentru fractia 2 :";

   cin >> numarator2; // citim numaratorul pt fractia doi

   cout<<"Introduceti numitorul pentru fractia 2 :";

   cin >> numitor2; // citim numitorul pt fractia doi

   

   numitorTemp1 = numitor1; //luam doua variabile temporare ce ne vor ajuta la calcule

   numitorTemp2 = numitor2; //luam doua variabile temporare ce ne vor ajuta la calcule

   

   while(numitorTemp1 != numitorTemp2) // //cat timp cei doi numitori sunt diferiti

   {

       if(numitorTemp1 > numitorTemp2) //daca primul numitor e mai mare ca cel de-al doilea

           numitorTemp1 = numitorTemp1-numitorTemp2; //primul numtiro devine scaderea dintre cele doua

       else

           numitorTemp2 = numitorTemp2 - numitorTemp1; // atlfel al doilea numitor devine scaderea dintre cele doua

   }

   

   // structura repetitiva de mai sus gaseste cel mai mare divizor comun dintre cei doi numitori;

   

   numitor3 = (numitor1*numitor2)/numitorTemp1; // calculam numitorul pentru fractia finala folosindu-ne de cmmdc aflat mai sus

   numarator3 = (numarator1)*(numitor3/numitor1) + (numarator2)*(numitor3/numitor2); // calculam numaratorul pentru fractia finala

   

   cout<<"Suma fractiei "<<numarator1<<"/"<<numitor1<<" si "<<numarator2<<"/"<<numitor2<<" este "<<numarator3 << "/" << numitor3; // afisam fractia finala

   

}

Explicație:

Ca si explicatii, am adaugat direct comentarii in cod pe fiecare linie.