Sunteți pe pagina 1din 4

Laborator programarea calculatoarelor (2012)

Limbajul C++
Adrian Runceanu
1

Laborator nr. 8

Functii


Problema 1:
Dintre primele n numere naturale, sa se afiseze acelea cu proprietatea
ca suma cifrelor lor este impara. Se va construi o functie care returneaza
suma cifrelor unui numar natural dat ca parametru.

Solutie:
#include <iostream.h>
long int n;
int cifre(long int n)
{
int s=0;
while(n!=0) { s+=n%10; n=n/10; }
return s;
}

int main(void)
{
cout<<"Dati numarul n= "; cin>>n;
for(i=1;i<=n;i++)
if(cifre(i)%2!=0) cout<<i<< ;
}


Problema 2:
Pentru un numar n dat, sa se stabileasca raportul dintre numarul
divizorilor pari si numarul divizorilor impari ai numarului n.


Solutie:
#include <iostream.h>
int n;
int divizori_pari(int n)
{
int i, s=0;
for(i=1;i<=n;i++)
if(n%i==0 && i%2==0) s++;
return s;
}
int divizori_impari(int n)
{
int i, s=0;
for(i=1;i<=n;i++)
if(n%i==0 && i%2!=0) s++;
return s;
}

int main(void)
{
Laborator programarea calculatoarelor (2012)
Limbajul C++
Adrian Runceanu
2
cout<<Dati numarul n= ; cin>>n;
cout<<Raportul este egal cu <<divizori_pari(n)/divizori_impari(n);
}

Problema 3:
Realizati o funcie care s verifice dac un numr este rotund.
Spunem c un numr este rotund dac are un numr egal de cifre de 0 i 1
n reprezentarea sa n baza 2. Sa se afiseze toate numerele rotunde mai mici
sau egale cu o valoare n data.
Exemplu : Numrul 9
10
= 1001
2
(are doua cifre de 0 si doua cifre de 1)

Solutie:
#include <iostream.h>
int n;
int rotund(int a)
{
int nr0=0, nr1=0;
while(a!=0)
{
if(a%2==0) nr0++;
else nr1++;
n = n / 2;
}
if(nr0 == nr1) return 1;
else return 0;
}

int main(void)
{
int i;
cout<<"Dati numarul n= "; cin>>n;
for(i=1;i<=n;i++)
if( rotund(i) == 0 ) cout<<numar rotund <<i<<endl;
}



















Laborator programarea calculatoarelor (2012)
Limbajul C++
Adrian Runceanu
3


Probleme propuse spre rezolvare



Problema 1 :
Realizati o functie care sa calculeze numarul de valori de 1 ale
reprezentarii unui numar dat in baza 2. Initial numarul se citeste de la
tastatura, in baza 10 si apoi se transforma in baza 2.


Problema 2 :
Se considera un numar natural n. Se cere sa se scrie cate o functie,
pentru urmatoarele cerinte:
Sa se afiseze toate numerele superpalindrom mai mici sau egale
cu n
(numar superpalindrom = numar care este palindrom atat el cat
si rasturnatul sau)
Sa se afiseze toate numerele prietene mai mici sau egale cu n.
(numere prietene = un numar a este prieten cu alt numar b daca
a este egal cu suma divizorilor lui b si viceversa); Exemple: 220 si
284. 220 : 1+2+4+5+10+20+11+22+44+55+110 = 284, 284:
1+2+4+71+142 = 220. alte perechi de numere perechi: 1184-
1210; 2620-2924; 5020-5564; 6232-6368.

Problema 3 :
Se introduc dou iruri de numere cu acelai numr de elemente. S se
verifice dac valorile lor, in ordinea dat, sunt proporionale.

Exemplu:
Date de intrare: n=3 sir1: 1 2 3 sir2: 3 6 9
Date de ieire: Da.

Problema 4 :
S se verifice dac un vector dat este monoton cresctor.

Problema 5 :
S se caute un numr x printre n numere intregi generate de calculator avand
valori intre 0 i 100. Dac se gsete valoarea respectiv s se afieze ultima
poziie in care apare, dac nu se gsete, s se afieze mesajul numar
inexistent

Problema 6 :
Se d un ir de numere reale. S se verifice dac irul este o progresie
aritmetic (diferena dintre oricare dou numere alturate este aceeai, de
exemplu: 1,4,7,10,13)

Laborator programarea calculatoarelor (2012)
Limbajul C++
Adrian Runceanu
4

Problema 7 :
S se verifice dac n numere date formeaz o mulime (elementele sunt
distincte), ordonand elementele.
Exemple:
Date de intrare: n=4 numere: 4 6 2 6
Date de ieire: Nu ;

Date de intrare: n=3 numere: 3 5 2
Date de ieire: Da.

Problema 8 :
S se formeze vectorul primelor n elemente ale irului lui Fibonacci: 0, 1, 1, 2,
3, 5, 8, 13,21,.... (f[1]=0, f[2]=1, f[i]=f[i-1]+f[i-2]).

Problema 9 :
Se introduc n numere intregi. Elementele diferite s se memoreze intr-un alt
vector. S se afieze acest nou vector.
Exemplu:
Date de intrare: n=4 numere: 1 2 2 1
Date de ieire: 1 2.

Problema 10 :
Dat un numr n, s se memoreze intr-un vector toate numerele mai mici ca n
prime cu n. S se afieze in ordine descresctoare.
Exemplu:
Date de intrare: n=10
Date de ieire: 9 7 3.

S-ar putea să vă placă și