Strony

czwartek, 8 lutego 2018

Wypisywanie zawartości tablicy iteracyjnie i rekurencyjnie [C++]

Witam was.
Dziś krótki wpis prezentujący w jaki sposób przekazać tablicę do funkcji, a następnie wypisać jej zawartość na ekran.


Najczęstszym sposobem przekazywania tablicy do wnętrza funkcji jest skorzystanie z następującej właściwości: nazwa tablicy to wskaźnik na element o indeksie zero. Oczywiście język C++ daje inne możliwości przekazywania tablicy do funkcji, jednak my skupimy się na tym za pomocą wskaźnika.


Celem tego wpisuj jest głównie uświadomienie i pokazanie innego sposobu na wypisanie zawartości tablicy na ekran. Rozwiązanie rekurencyjne jest o tyle ciekawe, że wykorzystuje tak zwaną rekurencję ogonową (ang. tail call).
Rozwiązanie omawianego problemu przedstawia poniższy listing:

#include <iostream>
using namespace std;
void wypisz_tab_iter(int *tab, int n)
{
for(int i=0;i<n;i++)cout<<tab[i]<<" ";
}
void wypisz_tab_rek(int *tab, int n,int i=0) //wywolywac zawsze z 2 parametrami
{
if(n>0)
{
cout<<tab[i]<<" ";
wypisz_tab_rek(tab,n-1,++i);
}
}
int main() {
int tablica[]={5,6,7,1,5};
int n=5;
wypisz_tab_iter(tablica,n);
cout<<endl;
wypisz_tab_rek(tablica,n);
return 0;
}

Brak komentarzy:

Prześlij komentarz