Witam mam sobie takie polecenie:
Jak rozumiem i zamierzam zrobić te zadanie:
Za pomocą tablicy statycznej liczb calkowitych, ktora utworze w main. Dla tablicy nadam jakis staly rozmiar np 20. Zrobie sobie menu za pomoca switch, i dane funkcje:
Jak rozumiem funkcje:
push to rozumiem jak wykonac
top to rozumiem jak wykonac
empty to rozumiem jak wykonac
full rozumiem jak wykonac
Czego nie rozumiem lub nie jestem pewny:
init - przygotowanie stosu do pracy, nie rozumiem kompletnie o co tutaj chodzi
pop - wyczyszczenie pamieci przeznaczonej na ostatnia polozona liczbe?
destroy - zwolnienie pamieci przeznaczonej na cala tablice?
"upewnij się, że program oferuje możliwość pracy z wieloma stosami na raz" ---> Nie wiem za bardzo o co tutaj chodzi? Zamierzam wybrac opcje z tablica statyczna
"niech funkcje komunikują się z programem głównym w sposób programistyczny (pobierają parametry a nie np. wczytują liczby z klawiatury, zwracają wynik a nie np. wypisują odpowiedź na ekran) !!! W ten sposób będą bardziej uniwersalne." ---> Tutaj tez nie bardzo rozumiem, chodzi o to ze te liczby ktore maja znalezc sie na stosie maja byc losowo generowane np.: User uzywa opcji "push" więc odpala sie funkcja ktora generuje losowa liczbe w main i zapisuje ja pod zmienna, a nastepnie ta zmienna idzie do innej funkcji ktora kladzie ta losowa wygenerowana liczbe na wierzch stosu?
"W programie wylosuj losową liczbę liczb ;) i włóż je na kolejno na stos. Następnie wypisz je na ekran, ale w taki sposób, jak byś nie znał rozmiaru tego stosu." ---> Jezeli bd uzywal tablicy statycznej jest to w ogole wykonalna opcja?
0
3
- Dla stosu na statycznej tablicy nic nie musisz pewnie inicjalizować.
- pop() u ciebie tylko przesunie wskaźnik stosu (ale gdybś robił to za pomocą listy to musiałbyś zwolnić pamięć i przepiać wskaźniki)
- destroy u ciebie nic nie będzie robił
- Chodzi o to żebyś nie zrobił jednej zmiennej globalnej "stos", tylko żebyś mógł w programie tworzyć sobie dowolną ilość stosów.
- Nie, chodzi o to żeby funkcje stosu nie czytały z klawiatury ani nie pisały na ekran. Funkcje stosu operują na stosie i tyle. Pobierać dane możesz sobie gdzieś w main i wypisywać też, ale same funkcjie stosu mają takich rzeczy nie robić.
- No musisz wtedy losować max do rozmiaru twojej tablicy ;]
3
-
pop
- zdejmuje liczbę ze stosuint stack::pop(){ /* ... */; return /* ... */; }
-
init
- głupota, od tego są konstruktory. Udawaj, że konstruktory nie istnieją i będzie git -
destroy
- głupota, od tego są destruktory. Udawaj, że destruktory nie istnieją i będzie git. -
upewnij się, że program oferuje możliwość pracy z wieloma stosami na raz
- chodzi o to, żeby wykluczyć ciućwoków chcących zrobić to na zmiennych globalnych. Niech znają swoje miejsce. -
niech funkcje komunikują się z programem głównym w sposób programistyczny
- przykład:
//tak
void stack::push(int num){
//wpychanie danej
}
//o mój boże nie
void stack::push(){
int num;
cout << "Podaj liczbe: ";
//...
}
-
W programie wylosuj losową liczbę liczb ;) i włóż je na kolejno na stos. Następnie wypisz je na ekran, ale w taki sposób, jak byś nie znał rozmiaru tego stosu.
- jak widzisz, w przedstawionym Ci interfejsie nie ma żadnej metodysize
; Chodzi o to, żebyś sciągał liczby tak długo, jak jakieś znajdują się w stosie.
tj:
while(!stack.empty()) {
cout << stack.pop() << "\n";
}