Numar de vizitatori unici

luni, 11 aprilie 2011

Programe C++ clasa a 11-a


  1. Palindrom                                                Download Link
  2. Factorialul unui numar                               Download Link
  3. Sirul lui Fibonachi                                     Download Link
  4. Cel mai mare divizor comun                       Download Link
  5. Functia Ackerman                                     Download Link
  6. Functia Manna Pnueli                                Download Link
  7. Testarea unui numar prim                           Download Link
  8. Combinari                                                 Download Link





1.

Palindromul unui numar

C++ Pseudocod

#include<iostream.h>
int main()
{
int copie,invers,c,n;
invers=0;
cout<<"Introduceti numarul pentru a-l testa daca este palindrom: ";
cin>>n;
copie=n;
while(n!=0)
{
c=n%10;
invers=invers*10+c;
n=n/10;
}
if(copie==invers)
cout<<"Numarul tastat este palindrom \n";
else
cout<<"Numarul tastat nu este palindrom \n";
cout<<"Inversul numarului introdus este "<<invers;
return 0;
}

main
inceput
intreg copie,invers,c,n;
invers=0;
scrie "Introduceti numarul pentru a-l testa daca este palindrom: "
citeste n
copie=n
cat timp n!=0
{
c=n mod 10
invers=invers*10+c
n=n div 10
}
daca copie=invers atunci
scrie "Numarul este palindrom"
scrie "Inversul numarului introdus este " invers
altfel
scrie "Numarul tastat nu este palindrom"
scrie "Inversul numarului introdus este " invers
sfarsit

2.

C++ Pseudocod

#include<iostream.h>
int fact (int n)
{
if (n==0) return 1;
else return n*fact(n-1);
}

int main()
{
int n;
cout<<"Introduceti numarul de la tastatura";
cin>>n;
cout<<"!"<<n<<"="<<fact(n);
return 0;
}

fact (n)
inceput
intreg n
daca n=1 atunci returneaza 1
altfel returneaza n*fact de n-1
sfarsit

main
inceput
intreg n
scrie "Introduceti numarul de la tastatura"
citeste n
scrie "factorial de n este egal cu" fact (n)
sfarsit





3.

C++ Pseudocod
//Sirul lui fibonachi (varianta recursiva)

#include<iostream.h>
long fib (long n)
{
if (n <= 1) return n;
else return fib(n-1)+fib(n-2);
}

int main ()
{
int n;
cout<<"Introduceti numarul ";
cin>>n;
cout<<"Rezultatul este "<<fib(n);
return 0;
}

fib (n)
inceput
intreg n
daca n<=1 atunci returneaza n
altfel returneaza fib(n-1)+fib(n-2)
sfarsit daca
sfarsit

main
inceput
intreg n
scrie "Introduceti numarul "
citeste n
scrie "Rezultatul este " fib(n)
sfarsit






4.

C++ Pseudocod

#include<iostream.h>
int main ()
{
int a,b,c,d;
cout<<"Introduceti primul numar: ";
cin>>a;
cout<<"Introduceti al doilea numar: ";
cin>>b;
c=b;
d=a;
while (a!=b)
if (a>b) a=a-b;
else b=b-a;
cout<<"Cel mai mare divizor comun al numerelor "<<d<<" si "<<c<<" este "<<a;
return 0;
}

main
inceput
intreg a,b,c,d
scrie "Introduceti primul numar: "
citeste a
scrie "Introduceti al doilea numar: "
citeste b
c=b
d=a
cat timp a!=b
{
daca a>b atunci a=a-b
altfel b=b-a
scrie "Cel mai mare divizor comun al numerelor d si c este a"
}
sfarsit






5.

C++ Pseudocod
//Functia Ackerman (varianta recursiva)

#include<iostream.h>
long long ack(long m, long n)
{
if (!m) return n+1;
else
if (!n) return ack(m-1,1);
else return ack(m-1, ack(m,n-1));
}

int main()
{
long long m,n;
cout<<"Introduceti prima cifra: ";
cin>>m;
cout<<"Introduceti al doilea numar: ";
cin>>n;
cout<<ack(m,n);
return 0;
}

ack (m,n)
inceput
intreg m,n
daca m=0 atunci returneaza n+1
altfel
daca n=0 atunci returneaza ack(m-1, 1)
altfel returneaza ack(m-1, ack(m, n-1))
sfarsit

main
inceput
intreg m,n
scrie "Introduceti prima cifra: "
citeste>>m;
scrie "Introduceti al doilea numar: "
citeste n
afiseaza ack(m,n)
sfarsit






6.

C++ Pseudocod
//Functia Manna Pnueli (varianta recursiva)
#include<iostream.h>
int submannapnueli(int x)
{
if(x>=12)
return x-1;
else
return submannapnueli(submannapnueli(x+2));


int main()
{
int x;
cout<<"Manna Pnueli.\n\n";
cout<<"Introduceti numarul: ";
cin>>x;
cout<<"Rezultatul este " <<submannapnueli(x);
}
submannapnueli (x)
inceput
intreg x
daca x>=12 atunci returneaza x-1
altfel returneaza submannapnueli de submannapnuelli de x+2
sfarsit 

main
inceput
intreg n
scrie "Manna Pnueli"
scrie "Introduceti numarul"
citeste n
scrie "Rezultatul este" submannapnueli (x)
sfarsit




7.

C++ Pseudocod

#include<iostream.h>
int main()
{
long int n, prim, d;
cout<<"Introduceti numarul ";
cin>>n;
prim=1;
d=2;
while (d<=n/2)
{
if (n%d==0)
prim=0;
d=d+1;
}
if (prim==1)
cout<<"Numarul este prim";
else cout<<"Numarul nu este prim";
return 0;
}

main
inceput
intreg n,prim,d
scrie "Introduceti numarul "
citeste n
prim=1
d=2
cat timp d<=n div 2
{
daca n mod d=0 atunci
prim=0
d=d+1
}
daca prim=1 atunci
scrie "Numarul este prim"
altfel scrie "Numarul nu este prim"
sfarsit





8.

C++ Pseudocod
//Combinari (varianta recursiva)
#include<iostream.h>
int combinari(int c,int k)
{
if (k==0)
return 1;
else
if (k>c)
return 0;
else
return (combinari(c-1,k)+combinari(c-1,k-1));
}

int main()
{
int k,c;
cout<<"Combinari.\n\n"
<<"Combinari de ";
cin>>c;
cout<<"Luate cate ";
cin>>k;
cout<<"Rezultatul combinarii este " <<combinari(c,k);
}

combinari (c,k)
inceput
intreg c,k
daca k=0 atunci returneaza 1
altfel
daca k>c atunci returneaza 0
altfel returneaza
combinari de c-1,k+combinari de c-1 si k-1
sfarsit

main
inceput
intreg k,c
scrie "Combinari de"
citeste c
scrie "luate cate"
citeste k
scrie
"Rezultatul combinarii este" combinari (c,k)
sfarsit

Un comentariu: