Author Topic: FJAP  (Read 121097 times)

orsi

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: FJAP
« Reply #475 on: 23.11.2011, 22:50:52 »
ziadna klikacka vraj nebude
prečo?
string je prostre string, ako si nadefinujes koniec je podla teba, ale zacina znakom a-z. ak si povies ze len tieto znaky mozu byt v stringu, tak potom vies jasne, ze ak ti pride lubovlny iny znak na vstup, tak uz to nie je string. neviem ci nejako presne definoval co je koniec, ale zaciatok vravel ze ma byt a-z
už som to vyriešil a dobre mi to robí, lexikalna analyza prebehla správne.

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: FJAP
« Reply #476 on: 23.11.2011, 22:56:23 »
ziadna klikacka vraj nebude
prečo?
Však na FJaPku má byť normálna písomka - taká, že tam treba aj písať, nie test. Alebo nie?

ultimate

  • Sr. Member
  • ****
  • Posts: 337
    • View Profile
Re: FJAP
« Reply #477 on: 24.11.2011, 00:03:00 »
riadna pisomka na papier bude, ziadne moodle a klikaci test s moznostami  >:(

milaninho

  • Jr. Member
  • **
  • Posts: 99
    • View Profile
Re: FJAP
« Reply #478 on: 24.11.2011, 00:59:48 »
1. u kollara som klikacku este nezazil
2. to ze lexikalna analyza prebehne bez chyby este nemusi znamenat ze je spravne implementovana pre danu gramatiku

orsi

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: FJAP
« Reply #479 on: 24.11.2011, 04:16:05 »
2. to ze lexikalna analyza prebehne bez chyby este nemusi znamenat ze je spravne implementovana pre danu gramatiku
tak toto si mal pravdu, zase...  :D
asi 4 hodiny som programoval 2 osetrenia, teda pripad ked sa zada napr. Kosice aby vyhodilo serror, a ked sa zada napr. 35kosice aby tiez dalo serror. vsetky mozne pripady a kombinacie cisielok a pismen ci malych alebo velkych by malo chodit. no zda sa mi ze takychto ošetrení by bolo treba daleko viac, napríklad pre špeciálne znaky (to si radšej nechcem predstaviť) v každom pripade len toto bolo narocne nakodit a zlozitost kodu je dost vysoka.

dal som si aj vypisat co sa kopiruje z pola sourceString do instring (to som si najprv vynuloval) a pekne vidim co tam je ulozene (nieco ako atribut pri integeri), tak mohlo by to uz byt.  :)
« Last Edit: 24.11.2011, 04:17:52 by orsi »

milaninho

  • Jr. Member
  • **
  • Posts: 99
    • View Profile
Re: FJAP
« Reply #480 on: 24.11.2011, 23:07:09 »
podla mna to zbytocne komplikujes. neverim ze niektory cviciaci by ziadal neviem ake sialene retazce, pretoze cielom tohto druheho zadania nie je lex analyza (a takto sa zbytocne zabijes na lexikalnej analyze). co som pozeral zadanie, vsetko co je o retazci zadane, je ze ma zacinat malym pismenom tj. a-z, z toho podla mna vyplyva, ze mozes lex analyzu spravit tak, ze string bude zacinat znakom a-z, a bude interpretovat vstup ako sucast retazca, pokial tam budu znaky z tej mnoziny. krasne zlozito som sa vyjadril, ale cielom bolo povedat, ze retazec moze byt takyto: [a-z]{a-z} (tj ze sa sklada iba z malych znakov), resp. ak chces tak [a-z]{a-zA-Z}. do getsymbol ti staci v default vetve otestovat po tom co sa testuje vstup na cislo rovnako testovat vstup na znak a-z (a citat znaky kym su tam znaky a-z).

napr. nieco na tento sposob:

Code: [Select]
default  : if (c >='0' && c <= '9')
{ // celé číslo } else
              if (c >='a' && c <= 'z') {
....
               while(c>='a' && c<='z') // popr. while( (c>='a' && c<='z') || (c>='A' && c<='Z') ) - to sa mozno daj aj jednoduchsie v ASCII ale nepamatam sa a nechce sa mi googlit ako vyzera ASCII
....
}

Ak si si nie isty, tak si to kludne over u cviciaceho, ale osobne si myslim ze s tym problem ziadny cviciaci mat nebude, lebo ako vravim, nie je zamerom zatazovat vas sialenymi kodmi pre lexikalnu analyzu.

orsi

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: FJAP
« Reply #481 on: 25.11.2011, 03:33:54 »
no tak pome k hlavnemu problemu  :D ako zreťaziť int * string a string * int aby bol vysledok string?
skusil som takyto trik, kompilator sa nestazoval, ale program nefungoval a padol. nejake napady ma niekto?
Code: [Select]
....je to vo funkcii MonoType* Evaluate(ExpTree* tree)  ktora ohodnocuje vyrazy. PO typovej kontrole, ktora prebehla spravne samozrejme.

tu je switch a jednotlive pripady roznych typov sa ohodnocuju
toto som si vytvoril na int * string (aj do typovej kontroly to vlozil volanie na tento case)

case MUL_INT_STRING_OP:
cellLeft = Evaluate(tree->binaryop.leftTree);
cellRight = Evaluate(tree->binaryop.rightTree);
itoa(cellLeft->intval, cellLeft->stringval, 10);
cellLeft->stringval = strcat(cellLeft->stringval, cellRight->stringval);
return cellLeft;

mino

  • Full Member
  • ***
  • Posts: 181
    • View Profile
Re: FJAP
« Reply #482 on: 25.11.2011, 03:46:19 »
Ja som pouzil fcie sprintf() a strdup() ...

matus217

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: FJAP
« Reply #483 on: 25.11.2011, 09:02:48 »
no tak pome k hlavnemu problemu  :D ako zreťaziť int * string a string * int aby bol vysledok string?
skusil som takyto trik, kompilator sa nestazoval, ale program nefungoval a padol. nejake napady ma niekto?
Code: [Select]
....je to vo funkcii MonoType* Evaluate(ExpTree* tree)  ktora ohodnocuje vyrazy. PO typovej kontrole, ktora prebehla spravne samozrejme.

tu je switch a jednotlive pripady roznych typov sa ohodnocuju
toto som si vytvoril na int * string (aj do typovej kontroly to vlozil volanie na tento case)

case MUL_INT_STRING_OP:
cellLeft = Evaluate(tree->binaryop.leftTree);
cellRight = Evaluate(tree->binaryop.rightTree);
itoa(cellLeft->intval, cellLeft->stringval, 10);
cellLeft->stringval = strcat(cellLeft->stringval, cellRight->stringval);
return cellLeft;
Code: [Select]
char x[8];
...
itoa (cellLeft->intval, x, 10);
cellLeft->stringval = x;
...
np  8)
« Last Edit: 25.11.2011, 09:05:04 by matus217 »

mishelka

  • Hero Member
  • *****
  • Posts: 4269
  • Bacikova, nie Kreutzova. Bacikova!! :D
    • View Profile
Re: FJAP
« Reply #484 on: 25.11.2011, 16:58:03 »
1. upravis lexikalnu gramatiku aby boli podporovane nove vstupne typy ktore mas podporovat;
uz tu je problem lebo vaclavik vymyslel to ze string nebude zacinat a koncit uvodzovkami. co je dost neprijemna vec naprogramovat kedze nemam pevne dany koncovy znak. aspon prve pokusy mi nevysli, asi len cisto na to nacitanie si musim daky program skusit vytvorit. :D
Kedze string sa sklada len z velkych alebo malych pismen, tak koncovy znak je kazdy iny ako velke alebo male pismeno... Podotykam, ze string musi zacinat malym pismenom.
  

#define TRUE FALSE //Happy debugging suckers :D

orsi

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: FJAP
« Reply #485 on: 25.11.2011, 18:24:15 »
Kedze string sa sklada len z velkych alebo malych pismen, tak koncovy znak je kazdy iny ako velke alebo male pismeno... Podotykam, ze string musi zacinat malym pismenom.
dobre toto je idealny pripad, ktory som spravil. a co ked zadam 78247jhfsjfJSFHSJ87872adhjASj76 ??
vypisalo by integer, retazec, integer, retazec, integer. tak som to opravil aby vypisal jeden velky ERROR. a to nebolo jednoduche. len toľko k tomu.

mishelka

  • Hero Member
  • *****
  • Posts: 4269
  • Bacikova, nie Kreutzova. Bacikova!! :D
    • View Profile
Re: FJAP
« Reply #486 on: 25.11.2011, 19:36:10 »
no ved zotavenie musi byt naimplementovane ;) to sa neriesi v lexikalnej analyze, ale v zotaveni. V lex. analyze by to nacitalo symboly ako si napisal, retazec, cislo, retazec, cislo, .... S chybami a vysledkom sa vysporiada interpretator a zotavenie, pricom vysledkom by bola prva polozka.

Este raz opakujem, ze definicia zadania u mna (a pokial viem aj u peta vaclavika) je taka, ze string su len pismena
« Last Edit: 25.11.2011, 19:46:17 by mishelka »
  

#define TRUE FALSE //Happy debugging suckers :D

Cici

  • Jr. Member
  • **
  • Posts: 98
    • View Profile
Re: FJAP
« Reply #487 on: 25.11.2011, 22:10:14 »
riadna pisomka na papier bude, ziadne moodle a klikaci test s moznostami  >:(
asi som zas bol v risi snov a nie na prednaske :/

drakeman

  • Newbie
  • *
  • Posts: 44
    • View Profile
Re: FJAP
« Reply #488 on: 26.11.2011, 04:44:24 »
No a už mám toho dosť...
Chcem vedieť podľa čoho sa vyhodnocuje výraz z požiadaviek:    true||(2||3)  -> true

počul som už 4 verzie:
1. keďže je naľavo true tak to musí byť true
2. 2||3 to sa neda lebo tam musia byť 1 alebo 0 iné to nemá zmysel
3. 2||3 vysledok je false lebo 2 je mensie ako 3 ak by bolo vacsie je to true
4. 2||3 vysledok je false lebo 2 sa nerovna 3, ak by bolo 2||2 bolo by to true...

 bu bu bu
BTW: nemam zadanie OR a AND ale MUL a DIV, chcem to vedieť zo zvedavosti nie z povinnosti a nehovorte mi že keď to nemusím vedieť tak nech sa radšej nestarám :P vdaka...

Tren

  • Moderator
  • Hero Member
  • *****
  • Posts: 1060
  • Fortes fortuna adiuvat
    • View Profile
Re: FJAP
« Reply #489 on: 26.11.2011, 05:18:42 »
No a už mám toho dosť...
Chcem vedieť podľa čoho sa vyhodnocuje výraz z požiadaviek:    true||(2||3)  -> true

počul som už 4 verzie:
1. keďže je naľavo true tak to musí byť true
2. 2||3 to sa neda lebo tam musia byť 1 alebo 0 iné to nemá zmysel
3. 2||3 vysledok je false lebo 2 je mensie ako 3 ak by bolo vacsie je to true
4. 2||3 vysledok je false lebo 2 sa nerovna 3, ak by bolo 2||2 bolo by to true...

 bu bu bu
BTW: nemam zadanie OR a AND ale MUL a DIV, chcem to vedieť zo zvedavosti nie z povinnosti a nehovorte mi že keď to nemusím vedieť tak nech sa radšej nestarám :P vdaka...
spravne je podla 4.) a bude TRUE || FALSE vysledok TRUE  ;) ( nic ine nerobis len porovnavas ci su rovnake, ked hej TRUE ked nie FALSE )

Fanky

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: FJAP
« Reply #490 on: 26.11.2011, 05:57:56 »
No a už mám toho dosť...
Chcem vedieť podľa čoho sa vyhodnocuje výraz z požiadaviek:    true||(2||3)  -> true

počul som už 4 verzie:
1. keďže je naľavo true tak to musí byť true
2. 2||3 to sa neda lebo tam musia byť 1 alebo 0 iné to nemá zmysel
3. 2||3 vysledok je false lebo 2 je mensie ako 3 ak by bolo vacsie je to true
4. 2||3 vysledok je false lebo 2 sa nerovna 3, ak by bolo 2||2 bolo by to true...

 bu bu bu
BTW: nemam zadanie OR a AND ale MUL a DIV, chcem to vedieť zo zvedavosti nie z povinnosti a nehovorte mi že keď to nemusím vedieť tak nech sa radšej nestarám :P vdaka...
operátor || bude realizovať porovnanie čísel, kde návratovou hodnotou je logická
hodnota true alebo false (ak sú rovnaké, true, ak sú rôzne, false).

Cici

  • Jr. Member
  • **
  • Posts: 98
    • View Profile
Re: FJAP
« Reply #491 on: 26.11.2011, 21:10:44 »
tak ako Tren pise -ak by si tam nemal zatvorku tak zavisi od asociativity

milaninho

  • Jr. Member
  • **
  • Posts: 99
    • View Profile
Re: FJAP
« Reply #492 on: 27.11.2011, 03:08:28 »
false||(2||3) -> false
false||(3||3) -> true

esperian

  • Hero Member
  • *****
  • Posts: 873
    • View Profile
Re: FJAP
« Reply #493 on: 28.11.2011, 20:20:57 »
chcel by som sa spytat ze ak mam krat a delene, a pouzivam krat na spajanie stringov, tak tie slova maju byt napisane s malym pismenom zaciatocnym alebo cele slovo?

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: FJAP
« Reply #494 on: 28.11.2011, 20:39:09 »
chcel by som sa spytat ze ak mam krat a delene, a pouzivam krat na spajanie stringov, tak tie slova maju byt napisane s malym pismenom zaciatocnym alebo cele slovo?
Ako napíšeš, tak bude, nie?

Ja keď dám 2*"FeRo", tak mi to vypľúva 2FeRo.
Keď dám "Fero"*"JANO", tak mi vypíše FeroJANO.

Dúfam, že to je dobre, lebo sa mi to už veľmi nechce prerábať.  ;D

drakeman

  • Newbie
  • *
  • Posts: 44
    • View Profile
Re: FJAP
« Reply #495 on: 28.11.2011, 20:52:01 »
veteran:
string musi zacinat s malym pismenom... cvicaci povedal ze ak ti vezme aj velke tak to uz nie je podla zadania spravne... ale myslim ze dajaky postih z toho nebude...
lebo ako ja som tam mal napriklad aj float a mi povedal ze si ho mam dat prec lebo podla zadania mi to nema brat a potom mam vlastne zle zadanie... takze si to oprav aby ti to bralo iba slova s prvym pismenkom malym... :)

drakeman

  • Newbie
  • *
  • Posts: 44
    • View Profile
Re: FJAP
« Reply #496 on: 28.11.2011, 20:52:52 »
zadania 1-14 mám už hotové :)
ešte musím dokončiť 15-28 :D
sranda... celkom ma to baví :)

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: FJAP
« Reply #497 on: 28.11.2011, 20:56:59 »
veteran:
string musi zacinat s malym pismenom... cvicaci povedal ze ak ti vezme aj velke tak to uz nie je podla zadania spravne... ale myslim ze dajaky postih z toho nebude...
A sakra...

Prichádza na rad použitie fcie tolower() ;D

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: FJAP
« Reply #498 on: 28.11.2011, 20:57:49 »
zadania 1-14 mám už hotové :)
ešte musím dokončiť 15-28 :D
sranda... celkom ma to baví :)
Vypýtaj si 28*10 bodov  ;D

SteLa

  • Full Member
  • ***
  • Posts: 128
    • View Profile
Re: FJAP
« Reply #499 on: 30.11.2011, 00:08:29 »
Neaky sikovnik co bol dnes na fjap a ma sajnu co asi bolo??? Neake poznamky nemozte poskytnut?