Użycie zmiennej wskaźnikowej na funkcję na przykładzie funkcji potęgującej
Kod był wyświetlany 1548 razy.
/*
Name: Użycie zmiennej wskaźnikowej na funkcję na przykładzie funkcji potęgującej
Copyright:GPL GNU
Date: 03-04-10 20:47
Description:
program pokazuje użycie zmiennej wskaźnikowej na funkcję na przykładzie funkcji
potęgującej
Potega - zmienna wskaźnikowa na funkcję
Potega1 - funkcja rekurencyjna
Potega2 - funkcja iteracyjna
*/
#include <iostream>
#include <conio.h>
using namespace std;
long Potega1(long _liczba, unsigned long _wykl);
long Potega2(long _liczba, unsigned long _wykl);
long (*Potega)(long _liczba, unsigned long _wykl);
int main()
{
long liczba, wykladnik, numer;
cout << "Wybierz numer funkcji" << endl;
cout << "1. Rekurencyjna" << endl;
cout << "2. Iteracyjna" << endl;
cin >> numer;
if(numer == 1) Potega = &Potega1;
else if(numer == 2) Potega = &Potega2;
else
{
cout << "Zly numer funkcji!" << endl;
getch();
return 1;
}
cout << "Podaj liczbe do potegowania: ";
cin >> liczba;
cout << "Podaj wykladnik potegi: ";
cin >> wykladnik;
liczba = Potega(liczba, wykladnik);
cout << "Wynik potegowania: " << liczba;
getch();
}
long Potega1(long _liczba, unsigned long _wykl) // potęgowanie metodą rekurencyjną
{
if(_wykl) return _liczba*Potega1(_liczba, _wykl-1);
else return 1;
}
long Potega2(long _liczba, unsigned long _wykl) // potęgowanie metodą iteracyjną
{
long temp=_liczba;
while(--_wykl) temp *= _liczba;
return temp;
}
Pobierz plik tekstowy