Functii 2

1. Se citesc de la tastatură elemente până la introducerea caracterului *. Să se afişeze in ordine inversă caracterele citite, fără a se afişa asteriscul.

#include<iostream.h>

void cuvant()

{

char c;

cin>>c;

if(c!='*'){cuvant();cout<<c;}

}

void main()

{cuvant();

}

Modificaţi programul astfel încât să se afişeze şi *.

#include<iostream.h>

void cuvant()

{

char c;

cin>>c;

if(c!='*')cuvant();

cout<<c;

}

void main()

{cuvant();

}

 

2. Se citeşte de la tastatură un număr n. Să se afişeze numerele de la 1..n şi numerele de la n..1 folosind subprograme recursive. Atenţie! Fiecare cerinţă se poate realiza prin 2 metode. Noi vom prezenta câte o metodă pentru fiecare #include<iostream.h>

 

int n;

void nr(int i)

{

cout<<i;

if(i<n) nr(i+1);

}

void nr1(int i)

{

if(i<n) nr1(i+1);

cout<<i;

}

void main()

{

cout<<"n="; cin>>n;

nr(1);

cout<<"\n";

nr1(1);

cout<<"\n";

}

 

3. Se citesc de la tastatură cele n elemente intregi ale unui vector. Să se afişeze elementele vectorului în ordinea citirii şi în ordinea inversă a citirii.

#include<iostream.h>

int a[100],n;

void citire(int i)

{

cout<<"a["<<i<<"]=";cin>>a[i];

if(i<n)citire(i+1);

}

void afisare(int i)

{

cout<<a[i]<<" ";

if(i<n) afisare(i+1);

}

void afisareinv(int i)

{

if(i<n)afisareinv(i+1);

cout<<a[i]<<" ";

}

void main()

{

cout<<"n=";cin>>n;

citire(1);

cout<<endl;

afisare(1);

cout<<endl;

afisareinv(1);

cout<<endl;

}

4. Se citesc de la tastatură cele n elemente întregi ale unui vector. Să se afişeze valoarea minimă din şir.

#include<iostream.h>

int a[100],n;

void citire(int i)

{

cout<<"a["<<i<<"]=";cin>>a[i];

if(i<n)citire(i+1);

}

void afisare(int i)

{

cout<<a[i]<<" ";

if(i<n) afisare(i+1);

}

void afisareinv(int i)

{

if(i<n)afisareinv(i+1);

cout<<a[i]<<" ";

}

void main()

{

cout<<"n=";cin>>n;

citire(1);

cout<<endl;

afisare(1);

cout<<endl;

afisareinv(1);

cout<<endl;

}

 

5. Se citesc de la tastatură n numere. Să se afişeze valoarea maximă din şir şi poziţiile pe care se găsesşte aceasta în şir.

#include<iostream.h>

int a[100],n,m;

void citire(int i)

{

cout<<"a["<<i<<"]=";cin>>a[i];

if(i<n)citire(i+1);

}

void afisare(int i)

{

cout<<a[i]<<" ";

if(i<n) afisare(i+1);

}

void max(int i,int &m)

{

if (a[i]>m)m=a[i];

if(i<n)max(i+1,m);

}

void pozitiemax(int i,int m)

{if(a[i]==m)cout<<i<<" ";

if(i<n)pozitiemax(i+1,m);

}

void main()

{

cout<<"n=";cin>>n;

citire(1);

cout<<endl;

afisare(1);

m=a[1];

max(1,m);

cout<<"\nmax="<<m<<endl;

cout<<"maximul se afla pe pozitiile :";

pozitiemax(1,m);

}

6. Se citesc de la tastatură n numere. Câte numere prime se găsesc în şir?

#include<iostream.h>

int a[100],n,nr;

void citire(int i)

{

cout<<"a["<<i<<"]=";cin>>a[i];

if(i<n)citire(i+1);

}

void afisare(int i)

{

cout<<a[i]<<" ";

if(i<n) afisare(i+1);

}

void max(int i,int &m)

{

if (a[i]>m)m=a[i];

if(i<n)max(i+1,m);

}

int prim(int i,int x)

{

if(x<2) return 0;

if(i<=x/2)if(x%i==0) return 0;

                else

                return prim(i+1,x);

if(i>x/2)return 1;

}

counter for wordpress

View My Stats