Darmowe Forum
Grudzieñ 22, 2024, 02:47:47
Witamy,
Go¶æ
.
Zaloguj siê
lub
zarejestruj
.
Czy dotar³ do Ciebie
email aktywacyjny?
1 Godzina
1 Dzieñ
1 Tydzieñ
1 Miesi±c
Zawsze
Zaloguj siê podaj±c nazwê u¿ytkownika, has³o i d³ugo¶æ sesji
Aktualno¶ci
: Forum zosta³o uruchomione!
Strona g³ówna
Pomoc
Zaloguj siê
Rejestracja
Darmowe Forum
>
C+++
>
A Kuba powiedzia³
>
Funkcja rekurencyjna
Strony: [
1
]
« poprzedni
nastêpny »
Drukuj
Autor
W±tek: Funkcja rekurencyjna (Przeczytany 2935 razy)
admin
Administrator
Ekspert
Wiadomo¶ci: 821
Funkcja rekurencyjna
«
:
Grudzieñ 12, 2012, 10:57:46 »
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;
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");
}
«
Ostatnia zmiana: Styczeñ 02, 2013, 11:54:47 wys³ane przez admin
»
Zapisane
admin
Administrator
Ekspert
Wiadomo¶ci: 821
Odp: Funkcja rekurencyjna
«
Odpowiedz #1 :
Grudzieñ 12, 2012, 12:34:03 »
Zadanie,
wykorzystuj±ce rekurencjê do obliczenia sumy liczb od 1 do wprowadzonej warto¶ci.
#include <cstdlib>
#include <iostream>
using namespace std;
void imie1(void);
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ê do ktorej liczyc sume:"; cin>>y;
cout<<endl<<"Suma z liczb od 1 do "<<y<<" = "<<suma(y)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Zapisane
admin
Administrator
Ekspert
Wiadomo¶ci: 821
Odp: Funkcja rekurencyjna
«
Odpowiedz #2 :
Grudzieñ 19, 2012, 09:16:21 »
Przyk³ad 3
Przedstawiaj±cy porównanie algorytmu rekurencyjnego z iteracyjnym, przy obliczaniu silni z podanej liczby.
#include <cstdlib>
#include <iostream>
using namespace std;
int y;
long int silnia(long int x)
//to jest funkcja rekurencyjna//
{if(x<=1){return 1;}else
{return x*silnia(x-1);} }
long int silnia1(long int x)
//to jest funkcja z algorytmem iteracyjnym//
{int a,s=1;
for(a=1;a<=x;a++){s=s*a;}
return s;}
int main(int argc, char *argv[])
{cout<<"Podaj liczbe: "; cin>>y;
cout<<endl<<"Silnia liczby "<<y<<" = "<<silnia(y)<<endl;
cout<<endl<<"Silnia liczby "<<y<<" = "<<silnia1(y)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
«
Ostatnia zmiana: Grudzieñ 19, 2012, 09:22:19 wys³ane przez admin
»
Zapisane
admin
Administrator
Ekspert
Wiadomo¶ci: 821
Odp: Funkcja rekurencyjna
«
Odpowiedz #3 :
Grudzieñ 19, 2012, 09:45:20 »
Zadanie 4.
Wersja zadania poprzedniego powiêkszona o dodawanie.
#include <cstdlib>
#include <iostream>
using namespace std;
int y;
long int silnia(long int x)
{if(x<=1){return 1;}else
{return x*silnia(x-1);} }
long int silnia1(long int x)
{int a,s=1;
for(a=1;a<=x;a++){s=s*a;}
return s;}
long int sumarek(long int x){if(x<=1){return 1;} else
{return x+sumarek(x-1);}}
long int sumait(long int x){
int suma=0;
for(int a=1;a<=x;a++){suma=a+suma;}
return suma;}
int main(int argc, char *argv[])
{cout<<"Podaj liczbe: "; cin>>y;
cout<<endl<<"Silnia liczby "<<y<<" = "<<silnia(y)<<endl;
cout<<endl<<"Silnia liczby "<<y<<" = "<<silnia1(y)<<endl;
cout<<endl<<"Suma liczb od 1 do "<<y<<" = "<<sumarek(y)<<endl;
cout<<endl<<"Suma liczb od 1 do "<<y<<" = "<<sumait(y)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Zapisane
Strony: [
1
]
Drukuj
« poprzedni
nastêpny »
Skocz do:
Wybierz cel:
-----------------------------
Zadanie C++ lutego -Agnieszka
-----------------------------
=> Nowy dzia³
=> Zadanie
-----------------------------
E14
-----------------------------
=> DIV
=> Java Script
=> php
-----------------------------
Dla Magdy i Wojtka
-----------------------------
=> Liczby dwójkowe
-----------------------------
Przyk³ady stron internetowych
-----------------------------
=> Strona zbudowana z tabelek
-----------------------------
Podstawy PHP
-----------------------------
=> Przesy³anie danych z formularza php
=> Pêtle w php
-----------------------------
Java Script
-----------------------------
=> Java Script
-----------------------------
C++ Nowe rozdanie
-----------------------------
=> C++
-----------------------------
Java JDK
-----------------------------
=> Java ale nie Script
-----------------------------
Hyde Park
-----------------------------
=> Informacje
-----------------------------
C+++
-----------------------------
=> A Kuba powiedzia³
-----------------------------
Multimedia
-----------------------------
=> Photoshop
=> Nowy dzia³
=> Java Script
=> Corel
-----------------------------
Html-strony internetowe
-----------------------------
=> Podstawy HTML- ramki/ frames
=> Podstawy HTML- tabelki
-----------------------------
C++
-----------------------------
=> Podstawy C++ cz. I
=> Kompilatory C++
=> Programowanie obiektowe w C++
=> Problem w C++
=> Podstawy
=> C++ po raz pierwszy
-----------------------------
Turbo Pascal
-----------------------------
=> Turbo Pascal semestr II
=> Projekt A¦KA
=> Turbo Pascal semestr I
=> Podstawy Turbo Pascal
£adowanie...
Polityka cookies
Darmowe Fora
|
Darmowe Forum
shaggydogss
spw
mylittlepony
moikrewni
proskills