program sprawdzający poprawność użycia nawiasów

demka
Użytkownik
Użytkownik
Posty: 133
Rejestracja: 7 cze 2009, o 12:49
Płeć: Kobieta
Podziękował: 4 razy
Pomógł: 11 razy

program sprawdzający poprawność użycia nawiasów

Post autor: demka » 25 lis 2009, o 21:36

nie potrafie poradzic sobie z zadaniem
Napisać program sprawdzający poprawność użycia nawiasów zgodnie ze składnią języka C, sygnalizujący błędy, podający numer linii i kolumny, w których wystąpił błąd
a) dla nawiasów (), [] i {}
b) dodatkowo dla nawiasów łańcucha tekstowego i nawiasów komentarza.

wiem jak napisac program który sprawdza czy po otwartym nawiasie np [ jest jego domkniecie ]
ale nie wiem co zrobic w przypadku nawiasów zagnieżdżonych tzn np {[()]} program nie powinien sygnalizowac bledow a robi to bo idąc po kolei zapamietuje np { czytając kolejny znaki nie mo odrazu domkniecia bo napotyka inne nawiasy i "glupieje"
prosze chociaz o wskazówki
Rekrutacja Instytut Matematyczny, Uniwersytet Wrocławski (gif)

soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1822 razy

program sprawdzający poprawność użycia nawiasów

Post autor: soku11 » 26 lis 2009, o 12:33

Najprościej użyć stosu. Napotykasz nawias - wrzucasz go na stos. Spotykasz następny - znów wrzucasz itd. Jak znajdziesz domknięcie - zrzucasz jedną wartość ze stosu. Jeśli wartość ze stosu to ten sam nawias, co domknięcie - idziesz dalej. Jeśli nie - błąd składniowy.

Pozdrawiam.

demka
Użytkownik
Użytkownik
Posty: 133
Rejestracja: 7 cze 2009, o 12:49
Płeć: Kobieta
Podziękował: 4 razy
Pomógł: 11 razy

program sprawdzający poprawność użycia nawiasów

Post autor: demka » 28 lis 2009, o 15:20

tylko problem w tym ze nie potrafie tego zrobic

soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1822 razy

program sprawdzający poprawność użycia nawiasów

Post autor: soku11 » 28 lis 2009, o 16:10

No i co ja mam w takiej sytuacji zrobić? Metodę ci podałem. Wczytujesz sobie po linijce tekst i go parsujesz. Dalej korzystasz ze stosu i działa.

Pozdrawiam.

Awatar użytkownika
Szemek
Gość Specjalny
Gość Specjalny
Posty: 4819
Rejestracja: 10 paź 2006, o 23:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 43 razy
Pomógł: 1406 razy

program sprawdzający poprawność użycia nawiasów

Post autor: Szemek » 28 lis 2009, o 16:14

demka, skorzystaj z przykładowej implementacji stosu w ANSI C

demka
Użytkownik
Użytkownik
Posty: 133
Rejestracja: 7 cze 2009, o 12:49
Płeć: Kobieta
Podziękował: 4 razy
Pomógł: 11 razy

program sprawdzający poprawność użycia nawiasów

Post autor: demka » 28 lis 2009, o 16:56

na pierwszy rzut oka troche to skomplikowane - ale mysle ze sobie poradze
dzięki wielkie

ODPOWIEDZ