Witam
Mam mały problem z pewnym programem oto jego tresc
"Proszę napisać funkcje rekurencyjna, która przyjmie jako argument tablice znaków ZNAKI i wyświetli ją od końca"
to jest czesc zadania wgl nie wiem jak sie do tego zabrac, prosze o wytłumaczenie.
oczywiscie chodzi mi tylko funkcje rekurencyjna i jej wywolanie.
[C++] Rekurencyjne wyświetlanie tablicy od końca
-
- Użytkownik
- Posty: 20
- Rejestracja: 29 mar 2013, o 13:27
- Płeć: Mężczyzna
- Lokalizacja: polska
- Podziękował: 2 razy
[C++] Rekurencyjne wyświetlanie tablicy od końca
Ostatnio zmieniony 5 kwie 2013, o 17:00 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 199
- Rejestracja: 24 maja 2012, o 23:36
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 5 razy
- Pomógł: 30 razy
[C++] Rekurencyjne wyświetlanie tablicy od końca
dobrym przykładem rekurencji jest sinlia.
Podobnie będzie z twoją funkcją.
Funkcja wywoływać będzie kolejne znaki o coraz mniejszych indeksach w tabeli i kiedy indeks==0 funkcja zwróci ostatni znak i zakończy działanie.
Kod: Zaznacz cały
//przyjmujemy liczba>0
int silnia (int liczba)
{
if (liczba==1) return 1;
return liczba*silnia(liczba-1);
}
Funkcja wywoływać będzie kolejne znaki o coraz mniejszych indeksach w tabeli i kiedy indeks==0 funkcja zwróci ostatni znak i zakończy działanie.
-
- Użytkownik
- Posty: 20
- Rejestracja: 29 mar 2013, o 13:27
- Płeć: Mężczyzna
- Lokalizacja: polska
- Podziękował: 2 razy
[C++] Rekurencyjne wyświetlanie tablicy od końca
poprawcie
i co dalej?? ta funkcja ma byc void??
Kod: Zaznacz cały
void ZNAKI (char *tab, rozmiar)
{
tab[0]=tab[rozmiar-1]
}
-
- Użytkownik
- Posty: 199
- Rejestracja: 24 maja 2012, o 23:36
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 5 razy
- Pomógł: 30 razy
[C++] Rekurencyjne wyświetlanie tablicy od końca
Kod: Zaznacz cały
void rekurencja(char* tab, int indeks) //funkcja void bo nie zwraca niczego, tylko drukuje
{
cout << tab[indeks] << endl; //wyswietlamy znak
if(indeks>0) rekurencja(tab,indeks-1); // funkkcja wywołuje samą siebie,, tylko z indeksem o jeden mniejszym
}
int main()
{
char tab[] = "ZNAKI"; //tworzymy tablice
rekurencja(tab, 4); //wywolujemy funkcje rekurencja
}
-
- Użytkownik
- Posty: 20
- Rejestracja: 29 mar 2013, o 13:27
- Płeć: Mężczyzna
- Lokalizacja: polska
- Podziękował: 2 razy
[C++] Rekurencyjne wyświetlanie tablicy od końca
a jeszcze takie pytanie
bo indeksy w tablicy zaczynaja sie od
wiec jak bedzie w tym przypadku trzeba to uwzglednic??
bo indeksy w tablicy zaczynaja sie od
wiec jak bedzie w tym przypadku trzeba to uwzglednic??
-
- Użytkownik
- Posty: 199
- Rejestracja: 24 maja 2012, o 23:36
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 5 razy
- Pomógł: 30 razy
[C++] Rekurencyjne wyświetlanie tablicy od końca
indeksy zaczynają się od zera, elementem granicznym jest rozmiarTabeli-1.
W przypadku tablicy znaków rozmiar możesz sprawdzić za pomocą funkcji sizeof() - dla pustej tablicy znaków wyświetla 1, dla jednego znaku 2, więc tutaj to przesunięcie jest o -2
W przypadku tablicy znaków rozmiar możesz sprawdzić za pomocą funkcji sizeof() - dla pustej tablicy znaków wyświetla 1, dla jednego znaku 2, więc tutaj to przesunięcie jest o -2