1. Zacznijmy od zadania.. Tak więc:
a) Aby zliczyć poszczególne powtórzenia potrzebujesz dwóch prostych pętli i tablicy zawierającej wiersze z dwoma kolumnami tj. [Słowo][Ilość powtórzeń]. Nazwijmy tą tablicę Tab.. Teraz sprawdzając wszystkie słowa po kolei, sprawdzasz, czy gdzieś już w tablicy Tab takie słowo nie zostało zapisane, jeżeli już takie słowo wystąpiło to dodajesz 1 do Ilości powtórzeń.. jeżeli okaże się, że takiego słowa jeszcze nie było to na końcu tablicy dodajesz nowe słowo, a potem w ilość powtórzeń wpisujesz 1. Resztę tego podpunktu zrobisz bez problemu, gdy już będziesz miał wypełnioną tablicę Tab.
b) Tutaj podpowiem ci, że w każdym systemie liczbowym (tj. oktalny, binarny, heksadecymalny, dziesiętny) podzielność przez dwa zawsze zależy od pierwszej cyfry. Przykładowo w systemie dziesiętnym.. jeżeli na końcu liczby jest 0,2,4,6,8 to oznacza, że jest ona podzielna przez dwa.. rozpisz sobie na kartce kilka liczb (np. od 1 do 24) w postaci szesnastkowej i przypatrz się im x)
c) Aby sprawdzić czy słowo jest palindromem wystarczy sprawdzać tablicę w ten sposób:
Text: ABCBA
[A][B][C][B][A] wielkość: 5
od i=0, póki i<wielkość/2, wykonuj i++
sprawdź, czy [i]!=[wielkosc-1-i],
jeżeli "prawda", to Text nie jest palindromem
2. Co do twojego drugiego pytania.. Od razu ostrzegam, że jeżeli nie masz pojęcia o czymś takim jak "wskaźnik" to prawdopodobnie nie zrozumiesz zapisu poniżej.. Obejrzyj najpierw jakiś tutorial dotyczący wskaźników, albo poczytaj gdzieś na ten temat (dużo tego w internecie.. wystarczy, że wpiszesz frazę w Google: "wskaźniki c++")
bool *Tab oznacza po prostu wskaźnik na zmienną typu bool..
Jeżeli mamy do czynienia z tablicą, to aby ją przesłać wystarczy mieś wskaźnik do jej pierwszego elementu.. tj Tab (lub jak kto woli &Tab[0]). Teraz możemy się odwołać do innych jej komórek:
bool Tablica[4];
bool *Tab=Tablica; //Lub bool *Tab=&Tablica[0];
Tab[0]=false; // lub *Tab=false;
Tab[1]=true; // lub *(Tab+1)=true;
Tab[2]=true; // lub *(Tab+2)=true;
Tab[3]=false; // lub *(Tab+3)=false;