Użycie zmiennej wskaźnikowej na funkcję na przykładzie funkcji potęgującej
Kod był wyświetlany 1395 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
Administrator WJL
PHP&SQL coded by NOVA-IT