Darmowe Forum

C++ => Podstawy C++ cz. I => W±tek zaczêty przez: admin Listopad 30, 2011, 10:44:32



Tytu³: Funkcja - Rekurencja
Wiadomo¶æ wys³ana przez: admin Listopad 30, 2011, 10:44:32
Funkcjê rekurencyjn± nazywamy tak± funkcjê która wywo³uje sam± siebie.

Uwaga: Funkcja taka musi posiadaæ warunek zakoñczenia rekurencji. Je¿eli takiego warunku by nie posiada³a funkcja wywo³ywa³a by siebie bez koñca.

Zalety czyli dlaczego mo¿na jej u¿yæ: Funkcja taka jest wykonywana trochê wolniej ni¿ funkcja nierekurencyjna, ale kod jest zdecydowanie krótszy.

Zadanie 1. Napisaæ program który korzystaj±c z funkcji silnia wy¶wietli warto¶æ silni wprowadzanej z klawiatury liczby

#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
void imie1(void);
int x;
long int silnia( long int x)
{
   if(x<=1)
      {return 1;}
   else
   {return x*silnia(x-1);}
}
int main(int argc, char *argv[])
{long int y;
cout<<endl<<"Podaj liczbê (1-30):"; cin>>y;
cout<<endl<<"Silnia z liczby "<<y<<" = "<<silnia(y)<<endl;
system ("pause");
}


Tytu³: Odp: Funkcja - Rekurencja
Wiadomo¶æ wys³ana przez: admin Listopad 30, 2011, 10:59:07
Polecenie unsigned  (ang. nieoznaczone). Okre¶la warto¶æ liczby bez znaku -.
Je¿eli napisano unsigned int oznacza to zakres liczb int bez znaku ujemnego, warto¶ci ujemne "przechodz± " na dodatnie.


Tytu³: Odp: Funkcja - Rekurencja
Wiadomo¶æ wys³ana przez: admin Grudzieñ 02, 2011, 11:39:10
Zadanie 2. Napisaæ program prosz±cy o podanie liczby. Nastêpnie obliczyæ silnie z podanej liczby. W programie nie korzystaæ z deklaracji funkcji.

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{int a,b,c;
a=1;
cout<<"Podaj liczbe: ";cin>>b;
if (b>=1){for(c=1;c<=b;c++){a=a*c;}}
cout<<endl<<"silnia= "<<a<<endl;
 system("PAUSE");
    return EXIT_SUCCESS;
}


Tytu³: Odp: Funkcja - Rekurencja
Wiadomo¶æ wys³ana przez: admin Grudzieñ 02, 2011, 12:19:11
Zadanie 3. Proszê napisaæ program obliczaj±cy silniê. W programie wykorzystaæ funkcjê. Funkcja nie mo¿e byæ funkcj± rekurencyjn±.

#include <cstdlib>
#include <iostream>

using namespace std;
int silnia( int z);
int main(int argc, char *argv[])
{int b;
cout<<"Podaj liczbe: ";cin>>b;

cout<<endl<<"silnia= "<<silnia (b)<<endl;
 system("PAUSE");
    return EXIT_SUCCESS;}
int silnia( int z)
{int c,a=1;
    if (z>=1){for(c=1;c<=z;c++){a=a*c;}}
return a;}


Tytu³: Odp: Funkcja - Rekurencja
Wiadomo¶æ wys³ana przez: admin Grudzieñ 02, 2011, 12:22:35
Zadanie 4. Napisaæ program, który prosi o podanie liczby. Nastêpnie korzystaj±c z funkcji rekurencyjnej obliczy sumê liczb od do do podanej liczby.

#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;

int x;
long int suma( long int x)
{
   if(x<=1)
      {return 1;}
   else
   {return x+suma(x-1);}
}

int main(int argc, char *argv[])
{long int y;
cout<<endl<<"Podaj liczbê (1-30):"; cin>>y;
cout<<endl<<"Suma z liczby "<<y<<" = "<<suma(y)<<endl;
system ("pause");
}


Tytu³: Odp: Funkcja - Rekurencja
Wiadomo¶æ wys³ana przez: admin Grudzieñ 02, 2011, 13:03:00
Zadanie 5 . Napisaæ program który prosi o podanie ilo¶ci pieniêdzy do wyp³aty , nastêpnie wyp³aca podan± kwotê w najmniejszej liczbie nomina³ów.


Tytu³: Odp: Funkcja - Rekurencja
Wiadomo¶æ wys³ana przez: admin Grudzieñ 14, 2011, 08:32:24
Zadanie 6. Napisaæ program korzystaj±c z funkcji rekurencyjnej , który obliczy sumê liczb z przedzia³u podanego przez u¿ytkownika.


#include <cstdlib>
#include <iostream>

using namespace std;
int x;
long int suma( long int x, long int v)
{
   if(x<=v)
      {return v;}
   else
   {return x+suma(x-1,v);}
}

int main(int argc, char *argv[])
{long int y,c;
cout<<endl<<"Podaj liczbê od ktorej ma liczyc:"; cin>>c;
cout<<endl<<"Podaj liczbê do ktorej ma liczyc sume :"; cin>>y;
cout<<endl<<"Suma od liczby "<<c<<"do "<<y<<" = "<<suma(y,c)<<endl;
system ("pause");
}



Polityka cookies
Darmowe Fora | Darmowe Forum

zlotasiodemka articz polski-serwer-rpg shaggydogss spw