A apărut o eroare în acest obiect gadget

miercuri, 9 noiembrie 2016

LIBRARIE-ELEVI-MASINI-SUPERMARKET-CD AUDIO-FILME

LIBRĂRIE
Se consideră o bază de date în care se reţine evidenţa cărţilor dintr-o librarie. Pentru fiecare carte se cunosc următoarele informaţii: titlu, autor, editura, an, preţ,nr,gen. Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.        Introducerea de date noi;
2.        Căutarea unei cărţi după titlu şi autor
3.        Să se afişeze toate cărţile care au apărut într-un anumit an, la o editură dată, în ordine alfabetică după autor şi în cadrul unui autor în ordine alfabetică a titlurilor;
4.       Să se afişeze toţi autorii care au o singură carte în bibliotecă
5.       Calculul valorii tuturor cărţilor din baza de date şi a cărţilor de un anumit gen
6.        Ştergerea unei cărţi
7.        Să se afişeze numărul de cărţi din fiecare editură în parte, precum şi valoarea acestora
8.       Să se afişeze cărţile ce au stocul 0, alfabetic pe autori şi titlu
9.        Să se afişeze numărul de cărţi din fiecare autor în parte, în ordine descrescătoare
10.   Modificarea preţului unei cărţi.




ELEVI
Se consideră o bază de date în care se reţine evidenţa elevilor dintr-o şcoală. Pentru fiecare elev se cunosc următoarele informaţii: nume, clasa, matricol, adresa. Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.       Introducerea de date noi
2.        Afişarea datelor personale ale elevilor unei clase date de la tastatură
3.       Căutarea unui elev după nume sau numărul matricol
4.        Ştergerea unui elev
5.       Modificarea datelor personale ale unui elev
6.       Să se afişeze numărul elevilor din fiecare clasă, în ordine alfabetică pe clase


MAȘINI
Se consideră o bază de date în care se reţine evidenţa maşinilor dintr-o firmă auto. Pentru fiecare maşină se cunosc următoarele informaţii: număr, marca, culoare, anul fabricatiei, proprietar, adresa. Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.         Introducerea de date noi
2.        Căutarea unei maşini după număr, proprietar sau caracteristici
3.       Modificarea informaţiilor despre o maşină
4.        Ştergerea unei maşini;
5.        Afişarea tuturor maşinilor în ordine descrescătoare după anul fabricaţiei, apoi alfabetic după marcă.
6.       Să se afişeze numărul maşinilor de aceeaşi marcă, alfabetic după acest câmp.

SUPERMARKET
Se consideră o bază de date în care se reţine evidenţa produselor dintr-un supermarket. Pentru fiecare produs se cunosc următoarele informaţii: denumire, pret, data fabricatiei, cantitate. Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.       Introducerea de date noi
2.        Afişarea tuturor produselor în ordine descrescătoare după data fabricaţiei, apoi crescător după preţ;
3.       Calculul valorilor totale pentru fiecare produs în parte şi a valorii tuturor produselor din baza de date.
4.       Căutarea unui produs după nume, data fabricaţiei sau pret
5.       Ştergerea unei produs
6.       Modificarea informaţiilor despre un produs;

CD AUDIO
Se consideră o bază de date în care se reţine evidenţa cd-urilor audio dintr-un magazin. Pentru fiecare dvd se cunosc următoarele informaţii: interpret, album, pret, data aparitiei, gen. Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.       Introducerea de date noi
2.       Afişarea tuturor cd-urilor în ordine crescătoare după data apariţiei, apoi alfabetic după interpret.
3.       Căutarea unui cd după interpret, numele albumului sau gen
4.       Ştergerea unui cd
5.       Modificarea preţului unui cd;


FILME
Se consideră o bază de date în care se reţine evidenţa filmelor. Pentru fiecare film se cunosc următoarele informaţii: titlu, regizor, gen, data aparitiei, buget. Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.       Introducerea de date noi
2.       Căutarea unui film după titlu, regizor sau buget
3.        Ştergerea unui film;
4.       Modificarea informaţiilor despre un film
5.        Afişarea filmului cu bugetul cel mai mare, a celui cel mai recent, a tuturor filmelor
6.        Afişarea celui mai recent film
7.       Afişarea tuturor filmelor aparţinând unui anumit gen dat de la tastatură
8.       Să se afişeze numărul filmelor din fiecare gen

9.       Afişarea filmelor în ordine alfabetică după gen şi în cadrul aceluiaşi gen, în ordine alfabetică după titlu

Baze de date 2009


ATESTAT
 - BAZE DE DATE -


cărţi
Se consideră o bază de date în care se reţine evidenţa cărţilor dintr-o librarie. Pentru fiecare carte se cunosc următoarele informaţii: titlu C(30), autor C(30), editura C(20), anapar N(4), preţ N(7), nr N(5), gen C(15). Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi;
2.      Căutarea unei cărţi după titlu şi autor
3.      Să se afişeze toate cărţile care au apărut într-un anumit an, la o editură dată, în ordine alfabetică după autor şi în cadrul unui autor în ordine alfabetică a titlurilor;
4.      Să se afişeze toţi autorii care au o singură carte în bibliotecă.
5.      Calculul valorii tuturor cărţilor din baza de date şi a cărţilor de un anumit gen
6.      Ştergerea unei cărţi;
7.      Să se afişeze numărul de cărţi din fiecare editură în parte, precum şi valoarea acestora
8.      Să se afişeze cărţile ce au stocul 0, alfabetic pe autori şi titlu
9.      Să se afişeze numărul de cărţi din fiecare autor în parte, în ordine descrescătoare
10.  Modificarea preţului unei cărţi

elevi
Se consideră o bază de date în care se reţine evidenţa elevilor dintr-o şcoală. Pentru fiecare elev se cunosc următoarele informaţii: nume C(40), clasa C(3), matricol N(5), adresa C(30). Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Afişarea datelor personale ale elevilor unei clase date de la tastatură.
3.      Căutarea unui elev după nume sau numărul matricol;
4.      Ştergerea unui elev;
5.      Modificarea datelor personale ale unui elev.
6.      Să se afişeze numărul elevilor din fiecare clasă, în ordine alfabetică pe clase.


maşini
Se consideră o bază de date în care se reţine evidenţa maşinilor dintr-o firmă auto. Pentru fiecare maşină se cunosc următoarele informaţii: număr C(7), marca C(20), culoare C(15), an_fabric N(4), proprietar C (30), adresa C(20). Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Căutarea unei maşini după număr, proprietar sau caracteristici.
3.      Modificarea informaţiilor despre o maşină;
4.      Ştergerea unei maşini;
5.      Afişarea tuturor maşinilor în ordine descrescătoare după anul fabricaţiei, apoi alfabetic după marcă.
6.      Să se afişeze numărul maşinilor de aceeaşi marcă, alfabetic după acest câmp.

cd audio
Se consideră o bază de date în care se reţine evidenţa cd-urilor audio dintr-un magazin. Pentru fiecare dvd se cunosc următoarele informaţii: interpret C(25), album C(25), pret N(6), data_ap D(8), gen C (30) Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Afişarea tuturor cd-urilor în ordine crescătoare după data apariţiei, apoi alfabetic după interpret.
3.      Căutarea unui cd după interpret, numele albumului sau gen;
4.      Ştergerea unui cd;
5.      Modificarea preţului unui  cd;
filme
Se consideră o bază de date în care se reţine evidenţa filmelor. Pentru fiecare film se cunosc următoarele informaţii: titlu C(30), regizor C(30), gen C(15), data_apar D(4), buget N(10). Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Căutarea unui film după titlu, regizor sau buget.
3.      Ştergerea unui film;
4.      Modificarea informaţiilor despre un film;
5.      Afişarea filmului cu bugetul cel mai mare, a celui cel mai recent, a tuturor filmelor aparţinând unui anumit gen dat de la tastatură.
6.      Afişarea  celui mai recent film
7.      Afişarea tuturor filmelor aparţinând unui anumit gen dat de la tastatură
8.      Să se afişeze numărul filmelor  din fiecare gen.
9.      Afişarea filmelor în ordine alfabetică după gen şi în cadrul aceluiaşi gen, în ordine alfabetică după titlu

valute
Se  consideră o bază de date în care se reţine evidenţa tranzacţiilor dintr-o casă de schimb valutar..Pentru fiecare tranzacţie se cunosc următoarele informaţii: valuta C(25), data D(8), valoare N(5), cantitate N(10). Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Căutarea valorii unei anumite valute dintr-o anumită zi;
3.       Afişarea preţului maxim al unei valute date dintr-o anumită lună;
4.      Ştergerea unei înregistrări;
5.      Modificarea informaţiilor despre o valută;
6.      Calculul valorii tuturor valutelor vândute într-o anumită zi.

Filme actori
Se consideră o bază de date în care se reţine evidenţa actorilor ce au jucat în diverse filme. Pentru fiecare actor se cunosc următoarele informaţii:
 NUME                      C(30)
SEX                            C(1)
NRFILME                 N(3)
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Să se afişeze toţi actorii care au jucat în mai mult de 10 filme;
3.       Să se afişeze toate actriţele debutante (0 filme);
4.      Să se afişeze în ordine descrescătoare a filmelor jucate actorii şi apoi actriţele.
5.      Să se afişeze numărul actorilor şi al actriţelor.

salariati
Se consideră o bază de date în care se reţine evidenţa salariaţilor dintr-o firmă. Pentru fiecare salariat se reţin următoarele informaţii:
NUME                       C(30)
SALARIU                 N(5,2)
MESERIE                  C(30)
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Să se  listeze pe ecran în ordine alfabetică salariaţii pe fiecare meserie în parte.
3.      Să se  listeze pe ecran numărul de salariaţi pe fiecare meserie în parte.
4.      Să se  listeze pe ecran salariaţii cu cel mai mare salariu pe fiecare meserie în parte.
5.      Să se  listeze pe ecran salariaţii cu cel mai mic salariu pe fiecare meserie în parte.
6.      Să se  listeze pe ecran cel mai mare salariu  din fiecare meserie în parte, în ordine descrescătoare.
7.      Să se  afişeze necesarul de salarii pentru fiecare meserie în parte, precum şi salariul total

ţări
Se consideră o bază de date în care se reţine evidenţa ţărilor de pe fiecare continent. Pentru fiecare ţară se reţin următoarele informaţii:
NUME_ŢARĂ                      C(30)
CAPITALA                           C(20)
POPULAŢIE                         N(15)
CONTINENT                                    C(20)
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Dându-se numele ţării, să se afişeze capitala şi populaţia;
3.      Să se afişeze toate ţările cu capitalele lor dintr-un continent dat;
4.      Să se afişeze cât este populaţia lumii şi populaţia unui continent dat.
5.      Să se afişeze ţările cu cea mai mare populaţie, din fiecare continent.
6.      Să se afişeze ţările cu cea mai mică populaţie, din fiecare continent.

produse
Se consideră o bază de date în care se reţine evidenţa produselor dintr-un supermarket. Pentru fiecare produs se cunosc următoarele informaţii: denumire C(30), pret N(10), data_f D(8), cantitate N(5). Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Afişarea tuturor produselor în ordine descrescătoare după data fabricaţiei, apoi crescător după preţ;
3.      Calculul valorilor totale pentru fiecare produs în parte şi a valorii tuturor produselor din baza de date.
4.      Căutarea unui produs după nume, data fabricaţiei sau pret;
5.      Ştergerea unei produs;
6.      Modificarea informaţiilor despre un produs;
7.      Să se efectueze o vânzare a unui produs, cerându-se denumirea produsului;
8.      Să se afişeze în ordine alfabetică cele mai scumpe produse
9.      Să se afişeze în ordine alfabetică cele mai ieftine produse
10.  Să se listeze valoarea tuturor produselor pe fiecare tip în parte precum şi valoarea totală a produselor din supermarket.

pacienţi
Se  consideră o bază de date în care se reţine evidenţa pacienţilor dintr-un spital. Pentru fiecare pacient se reţin următoarele informaţii:
NUME                                   C(30)
DIAGNOSTIC          C(20)
NRZILETRAT          N (3)
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Să se afişeze toţi pacienţii care au un anumit diagnostic;
3.      Să se afişeze diagnosticul unui pacient dat, precum şi numărul zilelor de tratament ale acestuia;
4.      Să se afişeze toţi pacienţii în ordine alfabetică, pe fiecare tip de diagnostic.
5.      Să se afişeze toţi pacienţii în ordine alfabetică, cu cel mai mare număr de zile de tratament, pe fiecare tip de diagnostic.
6.      Să se afişeze toţi pacienţii în ordine alfabetică, cu cel mai mic număr de zile de tratament, pe fiecare tip de diagnostic.
7.      Să se afişeze numărul pacienţilor, pe fiecare tip de diagnostic.


Concurs şcolar
Se consideră o bază de date în care se reţine evidenţa elevilor în cadrul unui concurs şcolar. Pentru fiecare elev se reţin următoarele informaţii:
NUME                                   C(30) 
NOTA_1                    N(5,2)
NOTA_2                    N(5,2)
MEDIA                      N(5,2)
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
  1. Introducerea de date noi (câmpul media se va lăsa necompletat)
  2. Să se completeze valorile câmpului media prin intermediul comenzilor şi să se afişeze în ordine descrescătoare după medie, elevii admişi (media şi notele>=5);
  3. Să se afişeze notele şi media unui elev dat.
  4. Să se afişeze numărul elevilor admişi(ce au media>=5) şi numărul elevilor respinşi(ce au media<5).
  5. Să se afişeze elevii care au cea mai mare medie.
  6. Să se afişeze numărul de elevi ce au aceeaşi medie, în ordine descrecătoare după medie.
  7. Să se afişeze  elevii cu cea mai mică medie, în ordine alfabetică.
  8. Să să se afişeze  elevii cu cea mai mare medie, în ordine alfabetică.

absenţe
Se consideră o bază de date în care se reţine evidenţa absenţelor elevilor unei clase. Pentru fiecare elev se reţin următoarele informaţii:
            Numele                                   C(30)
            Absente_ motivate                  N(3)
            Absente_ nemotivate               N(3)
            Total_ absente                        N(3)
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi (câmpul total_absenţe se va lăsa necompletat)
2.      Să se calculeze prin intermediul aplicaţiei valorile pentru câmpul Total_absente şi să se afişeze elevii în ordine  descrescătoare  după valorile acestui câmpul.
3.      Să se calculeze prin intermediul aplicaţiei valorile pentru câmpul Total_absente şi să se afişeze numărul elevilor ce au toate absenţele motivate.
4.      Să se calculeze prin intermediul aplicaţiei valorile pentru câmpul Total_absente şi să se afişeze alfabetic elevii al căror număr de absenţe nemotivate este mai mare sau egal cu 20.
medicamente
Se consideră o bază de date în care se reţine evidenţa medicamentelor dintr-o farmacie. Pentru fiecare medicament se reţin următoarele informaţii:
Medicament                C(20)
Data_exp                    D(8)
Stoc                             N(3)
Pret                             N(10)
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Să se afişeze medicamentele expirate în ordine  alfabetică.
3.      Să se afişeze cele mai ieftine medicamente, în ordine  alfabetică.
4.      Să se afişeze cele mai scumpe medicamente, în ordine  alfabetică.
5.      Să se afişeze informaţii despre un medicament dat
6.      Să se afişeze valoarea totală a stocului pentru fiecare medicament, precum şi valoarea totală a stocului de medicamente din farmacie

agendă
Se consideră o bază de date în care se reţine evidenţa persoanelor dintr-o agendă. Pentru fiecare persoană  se reţin următoarele informaţii:
                  nume              adresa             telefon            data_naşterii
                  c,30                 c,20                 c,10                 d
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Să afişeze toate persoanele care s-au născut după o anumită dată
3.      Să se ordoneze descrecător după vârstă şi alfabetic (după nume).
4.      Să se afişeze  persoanele pentru care nu există scris numărul de telefon
5.      Să afişeze datele unei persoane al cărei nume se va introduce de la tastatură

profesori
Se consideră o bază de date în care se reţine evidenţa profesorilor dintr-o şcoală. Pentru fiecare profesor se reţin următoarele informaţii:
      nume               disciplină   vechime                                      
      c,30                 c,15                  n,2                              
Realizaţi o aplicaţie într-un SGBD care să cuprindă:
1.      Introducerea de date noi
2.      Să se listeze toţi profesorii alfabetic pe discipline şi în cadrul unei discipline în ordine descrescătoare după vechime
3.      Să se listeze numărul profesorilor din fiecare disciplină
4.      Să se listeze alfabetic profesorii debutanţi pe fiecare disciplină.
5.      Să se listeze alfabetic profesorii cu cea mai mare vechime, pe fiecare disciplină.


joi, 7 februarie 2013

Probleme Divide Et Impera



1. Calculaţi suma elementelor pare dintr-un vector de numere întregi .
2. Calculaţi suma elementelor situate pe poziţii pare dintr-un vector de numere întregi .
3. Calculaţi numărul elementelor pare dintr-un vector de numere întregi .
4. Calculaţi numărul elementelor pare şi numărul elementelor impare dintr-un vector de numere întregi .
5. Verificaţi dacă un vector de numere întregi  conţine cel puţin un element par.
6. Verificaţi dacă un vector de numere întregi  conţine toate  elementele pare.
7. Calculaţi suma cifrelor unui număr natural.
8. Calculaţi suma cifrelor pare ale unui număr natural.
9. Determinaţi min dintr-un vector de numere întregi.
10. Determinaţi min şi max dintr-un vector de numere întregi.
11.Determinaţi suma elemetelor de pe diagonala principală a unei matrici de numere întregi pătratică.
12.Determinaţi suma elemetelor de pe diagonala secundară  a unei matrici de numere întregi pătratică.
13.Căutarea binară
14 Sortarea rapidă
15.Sortarea prin interclasare
16.Turnurile lui Hanoi



joi, 17 ianuarie 2013

Probleme olimpiada clasa IXa (intensiv) aXa (neintensiv)

Scaderea numerelor mari
Numerele naturale cu foarte multe cifre se pot memora cu ajutorul vectorilor. Sa se calculeze si sa se afiseza diferenta a doua numere naturale memorate in 2 vectori a si b cu n si respectiv m elemente.
Cifrele numerelor se vor introduce de la tastatura fara spatiu intre ele.
Exemplu: vezi figura alaturata

#include<iostream>
using namespace std;

void citire(int a[1000], int &n)
{
	char cif;
	int i;
	cin>>n;
	for(i=n;i>=1;i--)
		{ cin>>cif;
	      a[i]=cif-48;//transform sin cifra in numar (cifa este caracter)
		} 
}

int maimare(int a[1000], int n, int b[1000], int m)
{
	int i;
	if(n>=m) return 1;
		else if(n<m) return 0;
	         else
			 { 
				 i=m;
				 while(a[i]==b[i]) i--;
				 if(a[i]>=b[i]) return 1;
                 else return 0;				 
			 }				 
}

int main()
{
	int a[1000],b[1000],s[1000],n,m,p,i,k,semn,aux;
	citire(a,n);
	citire(b,m);
	if(maimare(a,n,b,m)==0)
	{//b>a
		p=m;
	    for(i=n+1;i<=m;i++) a[i]=0;
	    for(i=1;i<=p;i++) s[i]=b[i]; //pun pe b in s
		semn=-1;
		for(i=1;i<=p;i++) b[i]=a[i];// pun pe a in b;
	}
	else //a>b
	{	p=n;
		for(i=m+1;i<=n;i++) b[i]=0;
		for(i=1;i<=p;i++) s[i]=a[i]; //pun pe a in s;
	}
	for(i=1;i<=p;i++)
	{
		if(s[i]>=b[i]) s[i]=s[i]-b[i];
		else
		{ //ma imprumut
			k=i+1;
			while(s[k]==0) { s[k]=9; k++;}
			s[k]--;
			s[i]=10+s[i]-b[i];
		}
	}
	if(semn==-1) cout<<"-";
	while(s[p]==0) p--;
	for(i=p;i>=1;i--) cout<<s[i];
	return 0;
}
 

Probleme combinatorica


1. Sa se genereze si sa numere toate numerele formate din p cifre distincte avand cifrele ordonate crescator.
#include<iostream>

using namespace std;

int x[100],p,nr=0;

void Write()
{ for(int i=1;i<=p;i++) cout<<x[i];
  cout<<endl;
  nr++;
}

void Comb(int k)
{ for(int i=x[k-1]+1;i<=9;i++)
     { x[k]=i;
       if(k==p) Write();
       else Comb(k+1);
      }
}           

int main()
{ cin>>p;
  Comb(1);
  cout<<nr;
 
}

2. Sa se genereze si sa numere toate permutarile multimii {1,2,3,...,n} care incep cu valoarea 1.  
#include<iostream>
 
using namespace std;
 
int x[100],pus[100],n,nr=0;
 
void Write()
{ for(int i=1;i<=n;i++) cout<<x[i]<<" ";
  cout<<endl;
  nr++;
}
void Perm(int k)
{  for(int i=1;i<=n;i++)
     if(!pus[i])
        { x[k]=i;
          pus[i]=1;
          if(k==n) Write();
          else Perm(k+1);
          pus[i]=0;
          } 
}
 
int main()
{ cin>>n;
  x[1]=1;
  pus[1]=1;
  Perm(2);
  cout<<nr;
  }  
3. Sa se genereze si sa numere toate permutarile multimii {1,2,3,...,n} care au proprietatea ca oricare doua elemente alaturate au paritate diferita.
Ex: pentru n=4:
1 2 3 4
1 4 3 2
2 1 4 3
...
4 3 2 1

#include<iostream>

using namespace std;

int x[100],pus[100],n,nr=0;

void Write()
{ for(int i=1;i<=n;i++) cout<<x[i]<<" ";
  cout<<endl;
  nr++;
}
void Perm(int k)
{  for(int i=1;i<=n;i++)
     if(!pus[i])
        { x[k]=i;
          pus[i]=1;
          if(x[k]%2!=x[k-1]%2 || k==1)
             if(k==n) Write();
             else Perm(k+1);
          pus[i]=0;
          }
}

int main()
{ cin>>n;
  Perm(1);
  cout<<nr;
 

} 
4. Sa se genereze si sa numere toate submultimile multimii {1,2,3,...,n}.

#include<iostream>

using namespace std;

int x[100],pus[100],n,nr=0;

void Write()
{ for(int i=1;i<=n;i++) if(x[i]) cout<<i<<" ";
  cout<<endl;
  nr++;
}

void Sub(int k)
{ for(int i=1;i>=0;i--)
   {
          x[k]=i;;
          if(k==n) Write();
          else Sub(k+1);
   }     
}
int main()
{ cin>>n;
  Sub(1);
  cout<<nr;
  system("pause");
  return 0;
} 
5. Sa se genereze si sa numere toate permutarile multimii {1,2,3,...,n}.

#include<iostream>

using namespace std;

int x[100],pus[100],n,nr=0;

void Write()
{ for(int i=1;i<=n;i++) cout<<x[i]<<" ";
  cout<<endl;
  nr++;
}
void Perm(int k)
{  for(int i=1;i<=n;i++)
     if(!pus[i])
        { x[k]=i;
          pus[i]=1;
          if(k==n) Write();
          else Perm(k+1);
          pus[i]=0;
          }
}

int main()
{ cin>>n;
  Perm(1);
  cout<<nr;
 
} 
6. Sa se genereze si sa numere toate aranjamentele de cate p elemente ale multimii {1,2,3,...,n}.

#include<iostream>

using namespace std;

int x[100],pus[100],n,p,nr=0;

void Write()
{ for(int i=1;i<=p;i++) cout<<x[i]<<" ";
  cout<<endl;
  nr++;
}
void Aranj(int k)
{  for(int i=1;i<=n;i++)
     if(!pus[i])
        { x[k]=i;
          pus[i]=1;
          if(k==p) Write();
          else Aranj(k+1);
          pus[i]=0;
          }
}

int main()
{ cin>>n>>p;
  Aranj(1);
  cout<<nr;
  system("pause");
  return 0;
} 
7. Sa se genereze si sa numere toate submultimile de cate p elemente ale multimii {1,2,3,...,n}.

#include<iostream>

using namespace std;

int x[100],n,p,nr=0;

void Write()
{ for(int i=1;i<=p;i++) cout<<x[i]<<" ";
  cout<<endl;
  nr++;
}

void Comb(int k)
{ for(int i=x[k-1]+1;i<=n;i++)
     { x[k]=i;
       if(k==p) Write();
       else Comb(k+1);
      }
}           

int main()
{ cin>>n>>p;
  Comb(1);
  cout<<nr;
 
} 
8. Se citeste un numar natural n si un numar natural p mai mic decat n. Sa se descompuna n in toate modurile ca suma de p numere naturale.

#include<iostream>

using namespace std;

int x[100],n,p,nr=0;

void Write()
{  
     for(int i=1;i<=p;i++) cout<<x[i]<<" ";
     cout<<endl;
     nr++;
}

int suma(int k)
{
    int s=0;
    for(int i=1;i<=k;i++) s=s+x[i];
    return s;
}

void Comb(int k)
{ for(int i=x[k-1]+1;i<=n;i++)
     { x[k]=i;
       if(suma(k)<=n)
          if(k<p) Comb(k+1);
          else
            if(k==p) if (suma(k)==n) Write();
      }
}           

int main()
{ cin>>n>>p;
  Comb(1);
  cout<<nr;
 

} 
9. Sa se genereze toate numerele formate din 5 cifre impare distincte.

#include<iostream>

using namespace std;

int x[100],pus[100],n,nr=0;

void Write()
{ for(int i=1;i<=n;i++) cout<<x[i];
  cout<<endl;
  nr++;
}
void Perm(int k)
{  for(int i=1;i<=9;i=i+2)
     if(!pus[i])
        { x[k]=i;
          pus[i]=1;
          if(k==n) Write();
          else Perm(k+1);
          pus[i]=0;
         }
}

int main()
{ n=5;
  Perm(1);
  cout<<nr;
 
} 
10. Se citeste un cuvant format doar din litere mici distincte. Sa se genereze anagramele lui.

#include<iostream>

using namespace std;

int x[100],pus[100],n,nr=0;
char s[100];

void Write()
{ for(int i=1;i<=n;i++) cout<<s[x[i]-1];
  cout<<endl;
  nr++;
}
void Perm(int k)
{  for(int i=1;i<=n;i++)
     if(!pus[i])
        { x[k]=i;
          pus[i]=1;
          if(k==n) Write();
          else Perm(k+1);
          pus[i]=0;
         }
}

int main()
{ cin>>s;
  n=strlen(s);
  Perm(1);
  cout<<nr;
 
}