• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

FJAP

Started by PaliP, 09.09.2011, 19:14:44

« predchdzajce - alie »

esperian

1.spustis computron
2.LOAD
3.najdes si ten bin subor v PC
4.kliknes nanho a das open
5. RUN
;D

ultimate

aku syntakticku chybu by malo vypisat toto?

1&&(1

ze ocakava pravu zatvorku ? Alebo ze ocakava podvyraz ?

Mitwoc

Pravu zatvorku... aspon mne tak robi, tak dufam, ze to je dobre  ;D

ultimate

co je podvyraz ? napr 2*3 alebo aj so znamienkom vpredu  *2*3 ?

SteLa

#379
Mam problem, je vyraz, ktory ked zadam tak mi v computrone vyjde zly vysledok.

- zotavenie mi spravi v poriadku aj v computrone aj v interpretatore
- v interpretatore dobre vyhodnoti vyraz
- kod vygenerovany pre computron je tiez v poriadku(kontrolovali sme to dvaja), ked si ho prejdem tak vsetko je tak ako ma byt O.o

Stalo sa to uz niekomu?? Kde moze byt chyba?? Lebo nezda sa mi ze by sa Kollar mohol v computrone pomylit:D 

Painkiller03

kupim zadanie , ak niekto robi / predava sm dikes

SteLa

Quote from: ultimate on  01.11.2011, 19:46:28
co je podvyraz ? napr 2*3 alebo aj so znamienkom vpredu  *2*3 ?

ked mas 1*(2/(3*4))   3*4 je podvyraz a sucasne 2/(3*4) je podvyraz... podvyraz *2*3 by bol zvlastny

ultimate

potom aky ma zmysel chybova hlaska, ze ocakava sa /,* alebo podvyraz ? .... ked das napr. 2*3y*3  ... tam napise ze ocakava * / podvyraz ... ale tam mi velmi nesedi miesto toho y-ka podvyraz typu (2*3)

SteLa

tak si tam daj nu hlasku^^ podvyraz vby som skor cakala medzi   2*3*y*3  alebo tak neak, ocakava podvyraz alebo hodnotu

Hessesian

Taka otazka

void expr(SetType keys)
{
// Pomocna premenna na pamatanie operatora
SymType symbol2 = PLUS;
SetType loopkeys, allkeys;
loopkeys = E PLUS | E MINUS | HTerm;
allkeys = loopkeys | keys;
// Generujem kod pre prvy podvyraz
term(allkeys);
check(1, allkeys);
while( E symbol & loopkeys ) {
// Odpamatanie operatora a jeho vypis
if( E symbol & (E PLUS | E MINUS)) {
symbol2 = symbol;
putWord(LDAM);
putWord((symbol2==PLUS)?'+':'-');
putWord(OUTC);
getsymbol();
}
....


Naco pouzivame vsade to Ecko, viem ze posuva bity ale preco to robime, dalej co robi ta podmienka vo while ? a preco je vsade to E ? :D

SteLa

Quote from: Hessesian on  01.11.2011, 21:42:33
Taka otazka

void expr(SetType keys)
{
// Pomocna premenna na pamatanie operatora
SymType symbol2 = PLUS;
SetType loopkeys, allkeys;
loopkeys = E PLUS | E MINUS | HTerm;
allkeys = loopkeys | keys;
// Generujem kod pre prvy podvyraz
term(allkeys);
check(1, allkeys);
while( E symbol & loopkeys ) {
// Odpamatanie operatora a jeho vypis
if( E symbol & (E PLUS | E MINUS)) {
symbol2 = symbol;
putWord(LDAM);
putWord((symbol2==PLUS)?'+':'-');
putWord(OUTC);
getsymbol();
}
....


Naco pouzivame vsade to Ecko, viem ze posuva bity ale preco to robime, dalej co robi ta podmienka vo while ? a preco je vsade to E ? :D

keby si nedal E pred symbol tak ti tam da cislo symbolu napriklad 4 a porovnava ho s cislom aktualnych loopkeys, ktore je binarne.  Takze aj ked je symbol obsiahnuty v zozname loopkeys tak ti vypise chybu lebo 4 s tym nebude vediet porovnat. Bez E sa pytas naprikald ci  4 patri do 11101, s E sa pytas ci 10000 patri do 11101 .. tak neako by to malo byt.. respektive mne to tak funguje.

SteLa

Inak ked dam ako vstupny vyraz,resp. hodnotu 1, tak je v poriadku ked mi to vyhodnoti ako 1 bez syntaktickych chyb? Lebo vpodstate tam nic nie je zleO.o

mino

#387

// Mul -> Term [ <*> Term ]
int Mul(SetType keys) {
int leftOp, rightOp;
SetType allkeys;

allkeys=(E SMUL) | HTerm | keys;
leftOp=Term(allkeys);
check(3,allkeys);
if((E symbol) & ((E SMUL) | HTerm)) {
if(symbol==SMUL) getsymbol(); else error(4,HTerm | keys);
rightOp = Term(keys);
leftOp = leftOp * rightOp;
}

return leftOp;
}


Vie mi niekto povedat, ci mam dobre tuto funkciu pre horeuvedenu gramatiku?
Mam pocit, ze tu niekde bude nejaka chyba, lebo zvysne funkcie si myslim, ze su OK, ale vyraz 5*4*3 mi vyhodnoti ako 6.  bu

//Edit: Podla zvratenej inf. logiky to asi bude dobre: 5*4=20. Kedze * je neasoc. , program ocakava /. Sice ho nenajde, ale "zotavi sa z toho" a predpoklada, ze tam / je => 20/3 = 6. :D :D

mino

Quote from: SteLa on  01.11.2011, 22:39:14
Inak ked dam ako vstupny vyraz,resp. hodnotu 1, tak je v poriadku ked mi to vyhodnoti ako 1 bez syntaktickych chyb? Lebo vpodstate tam nic nie je zleO.o
Aj ja to tak mam.

xxx3

ten Computron ako funguje ? najskor spravi to co ma vyssiu prioritu, vypise cely priklad na obrazovku a potom spravi postupne operacie s nizsou prioritou , da = a napise vysledok ?

Hessesian

Dalsia vec co mi nejde do hlavy je ako mozeme mixovat asociativitu v kode ? Mam napriklad && pravo a || lavo, ako sa to prejavi v preklade a ako to mam implementovat a ako to ovplivni vysledok ?

bEnd3r

vyraz 1a4*2 ma vyhodnotit ako 14*2, ňe? ci to uz netreba osetrovat?

Tren

ludia co ste pri Bacikovej, zotavenie ste robili podla prezentacie vsetko?

bEnd3r

tren: no snazil som sa.. len to este neni stopercentne

xxx3

LDAM 01  ... nacita do akumulatora ... ale co ? Hodnotu z adresy 01 z pamäte alebo odkial ? Co je to 01 ?

SteLa

#395
Ti co mate s Halupkom ako robite ten referat?? On hovoril nieco o postupe, ale tie instrukcie od Bacikovej co su na fore o postupe nic nehovoria, tak neviem ci sa mi to zmesti na A4 ak tam budem pisat slohy o tom co som robilaO.o Vela veci som robilaO.o

veteran

Quote from: SteLa on  02.11.2011, 01:15:33
Ti co mate s Halupkom ako robite ten referat?? On hovoril nieco o postupe, ale tie instrkcie od Bacikovej co su na fore o postupe nic nehovori, tak neviem ci sa mi to zmesti na A4 ak tam budem pisat slohy o tom co som robilaO.o Vela veci som robilaO.o
Myslíš, že cvičiaci bude pri odovzdávaní čítať celý referát? To by sme zadania odovzdávali na 3 cvičeniach  :D Referát je len pre vedúceho, ten si ho vraj zvykne brávať na skúšku  :) Takže ja to stavím na slohovú prácu, nech je tam toho veľa  :D Ako som počul, Kollár obľubuje husto zaplnený papier  :D ;)

SteLa

Ved preto sa pytam:P Tazee bude sloh:D Na skusku sa viac viac bojim ako na odovzdanie zadania co som si mala dva tyzdne doma kodit..

SteLa

#398
A este daco:D  Zeee nevie niekto neake pekne znenie zadania okrem toho ze Vytvorte intepretator jazyka s dvoma operatrmi. To zahrna aj preklad do computronu ?

veteran

Quote from: SteLa on  02.11.2011, 01:22:46
A este daco:D  Zeee nevie niekto neake pekne znenie sadania okrem toho ze Vytvorte intepretator jazyka s dvoma operatrmi. To zahrna ajpreklad do computronu ?
Mne napadlo niečo takéto:

QuoteVytvoriť interpretátor a prekladač zátvorkovaných výrazov do kódu programu Computron VM pre zadané operácie s určenou prioritou a asociativitou. Výpočet v prekladači je potrebné realizovať v postfixnom tvare a použiť zásobník. Do programu je potrebné implementovať funkciu putword() pre zápis inštrukcií do binárneho tvaru. Vygenerovaný súbor *.bin má byť spustiteľný v Computrone VM. V zadaní je podobné realizovať zotavenie z chýb.

A už mám 5 riadkov z referátu  ;D