Sharp Basic

Cílem semináře je seznámit posluchače s jazykem C#, prostředím platformy .NET a tvorbou aplikací s grafickým uživatelským rozhraním. Předpokládají se znalosti objektově orientovaného programování.
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Sharp Basic

Příspěvek od Almer »

Tak se pochlubte?:)

Parsovani vyrazu dokonceno:) .. jeste vsechny prikazy a routiny:)
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Re: Sharp Basic

Příspěvek od Almer »

Mimochodem vsimli jste si, ze deadline je posunut na 8.3?:) takze asi to stiham:)) na rozdil od puvodniho terminu, kdy by to bylo o prsa asijske skolacky.

JInak zatim cas - asi 5 hodin kodeni expression tree + 3h hledani a cteni jak prevest infix jednoduse do stromu ( nakonec easy bylo infix -> postfix->strom s malym trickem na vnorene fce ) A asi 3 hodiny vcera zaklady prikazu...definice promenne , prirazeni, volani procedury )
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
Polik
Matfyz(ák|ačka) level I
Příspěvky: 12
Registrován: 31. 1. 2006 13:10

Re: Sharp Basic

Příspěvek od Polik »

Napsáno, 47KB, čas nepočítán, ale asi podobně (během částí dvou dnů). Nicméně jsem zvědavý, jestli mne za to nesežerou, pak se pochlubím s jednou šíleností, co jsem tam udělal xD

Jinak v zadání jsou nejasné věci, jako třeba zda je nutné vypsat např. typové chyby (předání argumentu s jiným typem než chce funkce) už při parsování nebo stačí až za běhu (skoro bych chápal že ano, a když je ten čas navíc, asi to tam dopíšu), jak se chovat např. při přetečení intu (neháže to výjimku, tak jsem to prostě nechal tak, jako by se ta proměnná používala přímo v C#) a podobných, nejspíš i něco dalšího, na co jsem narazil při psaní a už zapomněl.

Časově nejnáročnější věc kterou jsem tomu dal na vyhodnocení bylo překoročení max. povolené rekurze, ta výjimka se callstackem propadává několik sekund. A ano, mám to hezky rekurzivní.

Za ten posun bych je kopnul, kdyby to aspoň řekli trochu dřív, takhle jsem se tomu věnoval místo potřebnějších věcí.

Regexpy vládnou světu.
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Re: Sharp Basic

Příspěvek od Almer »

Problem u typove kontroly je ten, ze muzes mit definovany vyraz, ale typy operandu zjistis az nekdy pozdeji. Takze typicky je to bud tesne pred tim, nez to spustis ( to znamena, po kompletnim parsovani ) a nebo az za behu. Nevim co je spravne, a co je pripustne.

Kazdopadne ja to mam zatim runtime. Jestli bude cas, tak to mozna predelam. Nejasnosti je delako vice nez jenom type checking:)
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
Polik
Matfyz(ák|ačka) level I
Příspěvky: 12
Registrován: 31. 1. 2006 13:10

Re: Sharp Basic

Příspěvek od Polik »

Tak ono teoreticky to jde už během parsování, neb si při něm už rovnou můžu sbírat typy proměnných jako bych vyhodnocoval, ovšem ta šílenost co jsem si vymyslel mi tuhle cestu zavřela, tudíž to musím napsat jako extra krok mezi parse a run.
Nicméně je to podle mne chyba ve vstupním souboru, tudíž by se nejspíš měla vypsat dřív než runtime.
SonicTh
Učitel
Učitel
Příspěvky: 30
Registrován: 28. 12. 2008 13:12
Typ studia: Nestuduji ale učím na MFF

Re: Sharp Basic

Příspěvek od SonicTh »

ad detekce chyb: Jelikoz to ma byt interpret, tak vsechny chyby staci detekovat az za behu - tj. pokud je nejaka chyba napr. v procedure, ktera se nikdy nezavola, tak se tato chyba detekovat vubec nemusi.

ad prodlouzeni terminu: Puvodne jsme opravdu zadne prodlouzeni neplanovali (preci jenom na to bylo 5 tydnu), ale v poslednich 3 dnech se od vas! nahromadilo vetsi mnozstvi zadosti o prodlouzeni, proto jsme se nakonec rozhodli pro prodlouzeni vsem.

PJ
Manicka
Matfyz(ák|ačka) level I
Příspěvky: 26
Registrován: 28. 6. 2006 18:20

Re: Sharp Basic

Příspěvek od Manicka »

Ahoj,

chtela jsem se zeptat jak jste resili tu rekurzi? 10000 je podle me moc, protoze po tomhle cisle mi pada Visual Studio, tudiz pokud mam volani SharpBasic funkce naprogramovane jako volani vice nez jedne, do sebe vnorene, funkce v C#, tak mi to spadne driv na StackOverflow, nez mi pretece to pocitadlo rekurze. Je mozne, ze jsem tu cast zadani pochopila spatne, tak me kdyztak uvedte na pravou miru...:)

Diky Manicka.
SonicTh
Učitel
Učitel
Příspěvky: 30
Registrován: 28. 12. 2008 13:12
Typ studia: Nestuduji ale učím na MFF

Re: Sharp Basic

Příspěvek od SonicTh »

ad rekurze: Ta konstanta 10000 vas mela navest na implementaci te rekurze bez rekurzivnich volani ve vasem zdrojovem kodu. Jelikoz se ale zda, ze velka cast z vas se vydala prave smerem implementace rekurze pomoci rekurze, tak toto reseni nakonec budeme tez brat jako spravne.

PJ
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Re: Sharp Basic

Příspěvek od Almer »

Muzu se zeptat na postup, jakym by se to melo delat bez rekurze? Protoze mne napadl pouze trick se zasobnikem, ale to je porad nachylne na StackOverFlowException..
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
SonicTh
Učitel
Učitel
Příspěvky: 30
Registrován: 28. 12. 2008 13:12
Typ studia: Nestuduji ale učím na MFF

Re: Sharp Basic

Příspěvek od SonicTh »

Co si predstavujete pod "trickem se zasobnikem"? Pokud myslite "procesorovy zasobnik", tak tam opravdu k StackOverflowException dochazi, nicmene to je prave ta rekurze. Pokud myslite napr. tridu Stack<T>, tak to je jedno z moznych reseni - tam ale neni proc by k StackOverflowException dochazelo. Jinak dulezity je prave rozdil v dostupne pameti pro tyto dve reseni - 1 MB vs. 1,5 GB.
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Re: Sharp Basic

Příspěvek od Almer »

Konkretne jsem myslel ten C# Stack<T>. O tom, jak funguje opravdu rekurze ( ukladani kontextu vlakna - potazmo funkce, a navratova adresa ) vim. Takze nejde vlastne o reseni , nybrz o odlozeni ( protoze vyresime velikost mozne rekurze tim, ze zvetsime dostupnou pamet - nikoliv prevedeni na nerekurzivni formu ) te StackOverFlowException.
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: Sharp Basic

Příspěvek od hippies »

StackOverFlowException ti Stack<T> asi tezko vyvola .. takze je to reseni.. maximalne ti dojde veskera pamet (vcetne swapu) a Exception ti sice vyskoci, ale jaksi jina.
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Re: Sharp Basic

Příspěvek od Almer »

Tak co decka? :) Finishujete? :twisted: :twisted: :twisted:
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Re: Sharp Basic

Příspěvek od Almer »

Muzu mit dotaz?

Proc mi tohle nefunguje?

Kód: Vybrat vše

			Double value = 0.0;
			Boolean check = double.TryParse( "1.00", out value );

Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
SonicTh
Učitel
Učitel
Příspěvky: 30
Registrován: 28. 12. 2008 13:12
Typ studia: Nestuduji ale učím na MFF

Re: Sharp Basic

Příspěvek od SonicTh »

Nemate ve Windows nastavene ceske prostredi?

PJ
Odpovědět

Zpět na „NPRG035 Jazyk C# a platforma .NET“