Autor Wątek: Stos.  (Przeczytany 1801 razy)

Offline _user

  • Użytkownik

# Czerwiec 12, 2015, 00:21:14
Witam :)

Mam problem z jednym zadaniem, otoz niezbyt rozumiem jak program ma dzialac i jak sie do niego zabrac, skopiuje tutaj tresc, prosilbym o male naprowadzenie.Program ma byc napisany w jezyku C.


Napisz program, który w 10-elementowej tablicy symuluje działanie stosu. Na początku stos jest pusty, a następnie ma się zapełniać lub opróżniać zgodnie z wczytanymi z wejścia poleceniami.
Wejście

Na wejście programu podana zostanie pewna nieokreślona liczba zestawów danych. Zestawy składają się albo z jednej linii zawierającej znak - (polecenie zdjęcia liczby ze stosu i wypisania jej na wyjście), albo dwóch linii, z których pierwsza zawiera znak + (polecenie wstawienia liczby na stos), a druga niewielką liczbę całkowitą. Poszczególne zestawy zostaną rozdzielone znakiem nowej linii.
Wyjście

Na wyjściu programu ma się pojawić ciąg napisów będących rezultatem wykonania pojawiających się na wejściu poleceń (jeżeli polecenie udało się wykonać, to wypisujemy jego rezultat: w przypadku wstawienia liczby na stos wypisujemy ':)'; w przypadku zdjęcia liczby jej wartość; w przypadku błędu ':('). Poszczególne napisy należy rozdzielić znakami nowej linii.
Przykład

Wejście:
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
0
+
1
-
-
-
-
-
-
-
-
-
-
-

Wyjście:
:)
:)
:)
:)
:)
:)
:)
:)
:)
:)
:(
0
9
8
7
6
5
4
3
2
1
:(

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline maro

  • Użytkownik

  • +2
# Czerwiec 12, 2015, 00:40:37
Małe naprowadzenie: http://pl.wikipedia.org/wiki/Stos_%28informatyka%29
Czego konkretnie nie rozumiesz?

Offline _user

  • Użytkownik

# Czerwiec 12, 2015, 03:22:03
Rozumiem czym jest stos.
No nie rozumiem jak napisac ten program. Nie widze zaleznosci miedzy inputem a outputem przykladowym.

Offline Xirdus

  • Moderator

  • +1
# Czerwiec 12, 2015, 09:59:03
Wejście czytasz linia po linii. W danej linii będziesz miał plus albo minus - jak plus, to w następnej linii będziesz miał liczbę, którą masz wrzucić na stos - jak się da to wypisujesz ":)", jak nie to wypisujesz ":(". Kiedy masz minus na wejściu, żadnej dodatkowej linii nie ma, za to masz wypisać liczbę, którą zdejmiesz ze stosu, lub ":(" gdy stos jest pusty. Tyle.

Offline _user

  • Użytkownik

# Czerwiec 12, 2015, 12:14:36
Aaaa, chyba ze tak ;) Okej, dzieki.

Offline _user

  • Użytkownik

# Czerwiec 17, 2015, 23:03:12
Aha moment jeszcze jednej rzeczy nie rozumiem tutaj, bo jesli chodzi o wczytywanie po linii... no to jesli zamiast tego na wejscie podam cos takiego na przyklad:
+1+2+3+4
+5
+6
+7
+8+9
No to do 1 miejsca w stosie powinno wczytac liczbe 10 czy zawsze powinno przejsc do kolejnego elementu stosu po znaku '+' ?? W jednej linii moze byc +1+2+3+4 i to wczytac ma kazda z liczb do innego miejsca w stosie czy w kazdej linii ma byc tylko jeden znak lib jedna liczba ?

Offline Kyroaku

  • Użytkownik

# Czerwiec 17, 2015, 23:42:11
Na wejściu możesz mieć maksymalnie 2 znaki, więc nie możesz napisać "+1+2"
Na wejściu możesz mieć tylko 1 znak.

Offline Xirdus

  • Moderator

# Czerwiec 18, 2015, 11:07:29
To, w jakiej formie akceptujesz dane wejściowe, zależy tylko i wyłącznie od ciebie (chyba, że robisz na konkurs, to wtedy trzymasz się ściśle tego co napisane).