Czy dobrze rozumiem te polecenie, jezyk C++, stos

0

Witam mam sobie takie polecenie:
user image
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?

3
  1. Dla stosu na statycznej tablicy nic nie musisz pewnie inicjalizować.
  2. pop() u ciebie tylko przesunie wskaźnik stosu (ale gdybś robił to za pomocą listy to musiałbyś zwolnić pamięć i przepiać wskaźniki)
  3. destroy u ciebie nic nie będzie robił
  4. Chodzi o to żebyś nie zrobił jednej zmiennej globalnej "stos", tylko żebyś mógł w programie tworzyć sobie dowolną ilość stosów.
  5. 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ć.
  6. No musisz wtedy losować max do rozmiaru twojej tablicy ;]
3
  1. pop - zdejmuje liczbę ze stosu int stack::pop(){ /* ... */; return /* ... */; }
  2. init - głupota, od tego są konstruktory. Udawaj, że konstruktory nie istnieją i będzie git
  3. destroy - głupota, od tego są destruktory. Udawaj, że destruktory nie istnieją i będzie git.
  4. 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.
  5. 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: ";
	//...
}
  1. 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 metody size; Chodzi o to, żebyś sciągał liczby tak długo, jak jakieś znajdują się w stosie.

tj:

while(!stack.empty()) {
    cout << stack.pop() << "\n";
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1