[C++] Rekurencyjne wyświetlanie tablicy od końca

barbak1992
Użytkownik
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

Post autor: barbak1992 »

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.
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.
PabloRal
Użytkownik
Użytkownik
Posty: 34
Rejestracja: 30 wrz 2012, o 13:52
Płeć: Mężczyzna
Lokalizacja: Legnica
Podziękował: 1 raz
Pomógł: 4 razy

[C++] Rekurencyjne wyświetlanie tablicy od końca

Post autor: PabloRal »

Musisz wczytać ten ciąg znaków, a następnie pętlą for po tym ciągu od tyłu lecieć i wypisywać.
lemoid
Użytkownik
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

Post autor: lemoid »

dobrym przykładem rekurencji jest sinlia.

Kod: Zaznacz cały

//przyjmujemy liczba>0
int silnia (int liczba)
{
  if (liczba==1) return 1;
  return liczba*silnia(liczba-1);

}
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.
barbak1992
Użytkownik
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

Post autor: barbak1992 »

poprawcie

Kod: Zaznacz cały

void ZNAKI (char *tab, rozmiar)
{
tab[0]=tab[rozmiar-1]
}
i co dalej?? ta funkcja ma byc void??
lemoid
Użytkownik
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

Post autor: lemoid »

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 
}
barbak1992
Użytkownik
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

Post autor: barbak1992 »

a jeszcze takie pytanie
bo indeksy w tablicy zaczynaja sie od
wiec jak bedzie w tym przypadku trzeba to uwzglednic??
lemoid
Użytkownik
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

Post autor: lemoid »

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
ODPOWIEDZ