Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 18. 05. 2010 20:00 — Editoval gladiator01 (19. 06. 2010 16:17)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

kalkulačka - EBNF,syn.diagramy,...

Ahoj,

Dělám jako semestrálku, na předmět programovací jazyky a překladače, vědeckou kalkulačku - je to klasická kalkulačka, která umí základní operace (+,-,*,/), goniometrické fce apod měla by pracovat s reálnými čísly (nebo celými).

Př. vstupu: 5+3= nebo (3-4)*7= nebo (3-4)*7+cos(90)= apod.

Kdyby něco nešlo přečíst nebo nebylo jasné co jsem myslela, tak dovysvětlím. Děkuji.




Prosím spěchá.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

  • (téma jako vyřešené označil(a) gladiator01)

#2 19. 06. 2010 16:20 — Editoval gladiator01 (20. 06. 2010 00:22)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

Mohl by mi někdo polopaticky vysvětlit jak u označených pravidel 6,21,25 (viz obr.) výpočíst (udělat) fci FOLLOW (nebo SELECT).
Sice nepředpokládám, že by to někdo udělal, ale kdyby to bylo dovečera tak bych byla moc ráda, jsem nějaká natvrdlá a nemůžu pochopit jak to udělat.

http://forum.matweb.cz/upload/1276986160-Hlavacova-kalkulacka-dokumentace1.jpg

Nebo nezná někdo nějaký online applet, který by dokázal fce FIRST A FOLLOW sám vygenerovat z bezkontextové gramatiky?


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#3 19. 06. 2010 17:37

jelena
Jelena
Místo: Opava
Příspěvky: 30020
Škola: MITHT (abs. 1986)
Pozice: plním požadavky ostatních
Reputace:   100 
 

Re: kalkulačka - EBNF,syn.diagramy,...

Offline

 

#4 19. 06. 2010 18:23

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ jelena:
Jo díky to jsem také našla, ale nevím nakolik tomu mám věřit.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#5 19. 06. 2010 18:48

jelena
Jelena
Místo: Opava
Příspěvky: 30020
Škola: MITHT (abs. 1986)
Pozice: plním požadavky ostatních
Reputace:   100 
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ gladiator01: tak asi jak všemu, co najdeme na Internetu.

A vytvořilo to něco? Asi moc nebudu nápomocná.

Offline

 

#6 19. 06. 2010 18:59

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ jelena:
No já jsem to už zkoušela dřív na gramatice která byla určitě správně sestavená a měla jsem k ní i správné fce FIRST A FOLLOW a dávalo to úplně jiný výsledek, ale třeba to špatně zadávám nebo to počítá jinak (?).

Jestli tomu nerozumíš tak to neřeš, on se někdo možná ozve, ono to není tak důležité (znalost FOLLOW u těch tří pravidel), ale díky za snahu.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#7 19. 06. 2010 23:38

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: kalkulačka - EBNF,syn.diagramy,...

Není mi jasné, co myslíš FOLLOW u pravidla. Follow je vlastnost neterminálu, případně neterminálu v nějakém kontextu, ne?

Jinak ten applet vznikl jako bakalářská práce pod panem Barnátem, na jehož stránkách je uvedeno, že občas počítá špatně.
http://www.fi.muni.cz/~xbarnat/tafj/sll/
Na stejném webu jsou i skripta, kde je algoritmus na výpočet FOLLOW přijatelně popsán: http://www.fi.muni.cz/~xbarnat/IA006/IA … n_2009.pdf

A víme, o jakou gramatiku má jít? LL(k)/SLL(k)/LR(k)/LALR(k),..., jaké je k?


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#8 20. 06. 2010 00:32 — Editoval gladiator01 (20. 06. 2010 00:50)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

špatně jsem se vyjádřila, měla jsem namysli neterminály Zv, R' a Zr u těch jediných potřebuji FOLLOW při výpočtu SELECT protože v pravidlech 5, 35 a 39 přejdou na epsilon, ne?
Skripta mam taky jen mi to prostě nějak nedochází, nešlo by aby jsi vzal třeba neterminál Zv a krok po kroku napsal jak zjistit co všechno patří do FOLLOW?

Gramatika by měla být LL(1), ale je nějaká divoká, kdyby jsi měl čas tak se na ní prosím koukni já bych to potřebovala už dodělat.

Díky za případnou pomoc.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#9 20. 06. 2010 02:01

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: kalkulačka - EBNF,syn.diagramy,...

Ok, takže počítáme FOLLOW1 od Zv. Koukneme, kde je všude Zv na pravé straně:
* v pravidle 4, FOLLOW Zv obsahuje FOLLOW V', tedy )
* pravidlo 6 nám nic nového nepřidá
vyšlo {)}
Pro R' je to zajímavější{epsilon}
* z 33 je tam FOLLOW (R), což je dle (2) FOLLOW(V), což je množina obsahující epsilon (dle 2), ) (dle 3,4,5), FIRST(Zv)={epsilon,(,-,c} (dle 6),FIRST(Zo1)={+,-,*,/,^} (dle 9)
* jinak R' na pravé straně není


Jen mi přijde ta gramatika divná, bo v ní funguje odvození
V=> (V') => (VZv) => (VVZv) => (VV) => (VR) => (RR)
a vzhledem k tomu, že R je reálné číslo, tak tato gramatika není jednoznačná a proto nemůže být LL(k)

Jinak pokud znáš význam té gramatiky tak můžeš FOLLOW určovat bez algoritmů jen úvahou typu: co může následovat v rozumném výraze po reálném čísle? určitě ),+,-,*,/,^.

A na to EBNF máš nějakou zpětnou vazbu? Na první pohled vypadá rozumně, ale spoustu výrazů, které normální kalkulačka počítá, v něm nevyrobím (třeba sin(1+2)).


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#10 20. 06. 2010 11:10 — Editoval gladiator01 (20. 06. 2010 13:24)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ Kondr:

Jen mi přijde ta gramatika divná, bo v ní funguje odvození V=> (V') => (VZv) => (VVZv) => (VV) => (VR) => (RR)

Tohoto jsem si nevšimla, já zkoušela jen levé derivace. (Vždyť jsem říkala, že je divná.)
Kdybych přidala ještě že R->e, nebo nějaké pravidlo upravila?

A šla by nějak upravit, aby byla LL(1)? Musí být vůbec LL(k) abych mohla udělat ty dva body níže (resp. to g)?

A na to EBNF máš nějakou zpětnou vazbu? Na první pohled vypadá rozumně, ale spoustu výrazů, které normální kalkulačka počítá, v něm nevyrobím (třeba sin(1+2)).

Nemám, já už to takhle odevzdávám pozdě, tak bych to neřešila já potřebuju, aby to alespoň (třeba) umělo základní aritmetické operace a dostala bych zápočet a alespoň těch 10 bodů co my zbývá do E. Kdyby bylo víc času, tak bych to zkusila napravit.

Ještě mi zbývá udělat
f)    Popis vnitřní reprezentace (formy)        - tady nevím co napsat (nebo jaká forma by byla nejlepší) (tady a tady jsou když tak skripta)
g)    Atributová nebo překladová gramatika


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#11 20. 06. 2010 12:11

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ gladiator01: No průšvih je, že to EBNF vůbec nezvládne ani slibované (3-4)*7=, zkrátka do závorky umím dát jen VYRAZ, což je reálné číslo případně s minuskem a obalené do závorek.

Oprava gramatiky, co mě napadla
V'->V Zo1
V' -> Zo2
pravidlo 4 zrušit, tím odpadne i neterminál Zv. Po téhle úpravě už ale gramatika neodpovídá EBNF -- tam by bylo dobré spravit diagram pro VYRAZ -- přidat větve
( OPERACE1 )
OPERACE2
tím se spraví nejvážnější nedostatek, aby to bylo plně OK, bylo by třeba dělat úprav víc, na to už asi není čas.

S překladovou gramatikou a vnitřní reprezentací jsem se zatím nepotkal, tak se snad někdo ozve.


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#12 20. 06. 2010 13:18 — Editoval gladiator01 (20. 06. 2010 14:37)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

Díky, jednoduché výrazy tedy už fungují, i třeba cos(90) jde.

VYRAZ     = [-](REALNE | ´( ´ VYRAZ  ´)´  ) - mohl by jsi tam doplnit to OPERACE1,2 jak jsi to myslel já už jsem nějaká natvrdlá.


Jako tu vnitřní formu jsem zvolila syntaktický strom (nevim jestli to je správné, ale připadalo my to nejlepší).


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#13 20. 06. 2010 20:59

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: kalkulačka - EBNF,syn.diagramy,...

VYRAZ     = [-](REALNE | ´( ´ VYRAZ  ´)´ | ´( ´ OPERACE1  ´)´| OPERACE2 )


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#14 20. 06. 2010 21:01

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#15 23. 06. 2010 10:58 — Editoval gladiator01 (23. 06. 2010 11:15)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

Tak já to asi odevzdám (zouškové je jen do pátku, tak aby neřekl, že už nemá čas to opravit), i když tím přepisem do toho syntaktického stromu, jsem to dosti znefunkčnila. Nyní fungují jen aritmetické operace s celými čísly. Ale to osatní vypadá celkem dobře, tak třeba se smiluje.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#16 07. 07. 2010 16:45

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ gladiator01: Ahoj,
a jak jsi nakonec dopadla?


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#17 07. 07. 2010 17:11 — Editoval gladiator01 (07. 07. 2010 17:17)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ RePRO:
Už jsem tady někde psala, že mi Müller dal E.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#18 07. 07. 2010 17:42

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ gladiator01: Tak to jo. A počítačovou grafiku jsi dala?


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#19 07. 07. 2010 17:58

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: kalkulačka - EBNF,syn.diagramy,...

↑ RePRO:
Za B.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson