Odzávorkování 25/1/19

Základní kurs objektově orientovaného programování v C++. Třídy a objekty, zapouzdření, metody, plymorfismus. Abstraktní datové typy, přetěžování. Kontejnery, iterátory, algoritmy. Šablony, generické programování, kompilační polymorfismus. Výjimky. Bezpečné a přenositelné programování, vazby na OS.
Lukaskub
Matfyz(ák|ačka) level I
Příspěvky: 4
Registrován: 25. 1. 2019 15:27
Typ studia: Informatika Bc.

Odzávorkování 25/1/19

Příspěvek od Lukaskub »

Zadání
Zadání
Tentokrát byl úkol jednoduchý - naprogramovat parser algebraických výrazů, který pak všechny nadbytečné závorky nebude vypisovat.

Vstup file/stdin na každé řádce jedna expression.
Výstup stdout.
Errory jakkoli, ale nesmí odletět

Šlo udělat nějaký zajímavý polymorfní strom, do kterého byste rozparsovali výraz, pak byste v něm prošetřeli, jestli náhodou nejsou nějaké závorky navíc, ty odstranili a pak to nějak vypsali.
Nebo!
Projít každou řádku, o každé závorce v dané úrovni se rozhodnout, jestli ji můžu smazat nebo ne na základě relativně jednoduché heuristiky.

Své řešení přikládám v přiloze.
Polymorfnost je zlá.
Přílohy
zavorky.h
(210 bajtů) Staženo 294 x
zavorky.cpp
(4.37 KiB) Staženo 315 x
main.cpp
(570 bajtů) Staženo 287 x
Odpovědět

Zpět na „NPRG041 Programování v C++“