Author Topic: PPJ materialy  (Read 71425 times)

Frodooo

  • Full Member
  • ***
  • Posts: 144
    • View Profile
Re: PPJ materialy
« Reply #275 on: 29.04.2009, 16:13:26 »
v 9. prednaske to mate lenze ak tomu nerozumie clovek tak to moze mat aj vypracovane ale vela to nepomoze....

puq

  • Hero Member
  • *****
  • Posts: 4065
    • View Profile
Re: PPJ materialy
« Reply #276 on: 29.04.2009, 16:28:47 »
ta ked tomu nerozumeju tak im to je tak ci tak na rit...lebo zmeni kollar trochu zadanie ulohy...ina bude gramatika alebo hocico..a su v riti...cize tak ci tak tomu treba pochopit

ppt

  • Hero Member
  • *****
  • Posts: 935
    • View Profile
Re: PPJ materialy
« Reply #277 on: 29.04.2009, 16:34:07 »
pri otazke 1d - neviete co znamenaju tie bodky, ktore su kreslene v tych obrazkoch DKA?

puq

  • Hero Member
  • *****
  • Posts: 4065
    • View Profile
Re: PPJ materialy
« Reply #278 on: 29.04.2009, 16:43:01 »
bodka znamena kde sa nachadza automat v tom momente...odporucam si napr pozriet este:

http://www.tu-ke.com/forum/3-ro269nik/prekladace-skuska-!!!/

buhehe

  • Hero Member
  • *****
  • Posts: 1583
    • View Profile
Re: PPJ materialy
« Reply #279 on: 29.04.2009, 16:53:24 »
ako by vyzerala syn.analyza pri X->A[bC]
Code: [Select]
void X(K){
   A(b|H(C)|K)   //alebo A(b|K)
   //a teraz takto???
   check(b|H(C))
   if(symbol == b){
      getsymbol()
      C(K)
   }
}
check sa dava aj ked je v pravidle []?
« Last Edit: 29.04.2009, 16:55:46 by buhehe »

roman5555

  • Full Member
  • ***
  • Posts: 178
    • View Profile
Re: PPJ materialy
« Reply #280 on: 29.04.2009, 17:11:55 »
nema niekto nejaky sikovny tahacik ????

ppt

  • Hero Member
  • *****
  • Posts: 935
    • View Profile
Re: PPJ materialy
« Reply #281 on: 29.04.2009, 17:17:09 »
bodka znamena kde sa nachadza automat v tom momente...odporucam si napr pozriet este:

http://www.tu-ke.com/forum/3-ro269nik/prekladace-skuska-!!!/
super dik, pomohlo :)

roman5555

  • Full Member
  • ***
  • Posts: 178
    • View Profile
Re: PPJ materialy
« Reply #282 on: 29.04.2009, 17:56:27 »
Na ftp je v rar subore PPJ_09 ten vzorovy test v pdf a potom textovy subor kde su niektore veci vyriesene . Mohol by to niekto este podoplnovat :D:D

libra2

  • Jr. Member
  • **
  • Posts: 80
    • View Profile
Re: PPJ materialy
« Reply #283 on: 29.04.2009, 17:56:59 »
Nevedel by niekto vypracovat 3.otazku, kto vie, ako to ma byt?

kov

  • Full Member
  • ***
  • Posts: 177
    • View Profile
Re: PPJ materialy
« Reply #284 on: 29.04.2009, 18:03:11 »
roman, nerob hanbu romanom...


1a. Definujte lexikalnu gramatiku identifikatorov zacinajucich bud znakom $ alebo lubovolnym velkym pismenom, s naslednym neprazdnym retazcom obsahujucim na kazdej pozicii bud male pismeno alebo desiatkovu cislicu:

   Priklady spravnych identifikatorov: $a, $1, Za, $8a2acd
   Priklady nespravnych identifikatorov: $, A, 1a, a2bcd, AZ

($|L) (E|D) {E|D}
 L -> A..Z
 E -> a..z
 D -> 0..9

 //pre Id -> ${D} | L{E}
 // spravne: $0, $, $110, A, Aa
 // nespravne: A1


1b. Definujte lexikalnu gramatiku binarnej cislice a na jej zaklade lexikalnu gramatiku binarneho cisla.

 B -> 0|1
 Bn -> B{B}


1c. Definujte lexikálnu gramatiku binárnej císlice a na jej základe lexikálnu gramatiku
osmickovej císlice. Potom definujte gramatiku císla v osmickovej sústave.

 B -> 0|1
 Bn -> B{B}

 O -> B|2|3|4|5|6|7
 On -> O{O}
« Last Edit: 29.04.2009, 20:11:29 by kov »

Guisseppe

  • Full Member
  • ***
  • Posts: 169
    • View Profile
Re: PPJ materialy
« Reply #285 on: 29.04.2009, 18:11:25 »
1b. Definujte lexikalnu gramatiku binarnej cislice a na jej zaklade lexikalnu gramatiku binarneho cisla.

 B -> 0|1
 Bn -> B{B}
Na prednaske pisal Kollar na tabulu taketo nieco: Bn -> B{B}#B
Neviete, co znamena to "#B"? Pretoze bez toho mi to je logicke, ale s tym #B ani nie.

kov

  • Full Member
  • ***
  • Posts: 177
    • View Profile
Re: PPJ materialy
« Reply #286 on: 29.04.2009, 18:11:55 »
2a. Definujte gramatiku jazyka zatvorkovanych vyrazov v tvare EBNF. Gramatika ma generovat napriklad tieto vyrazy:
   a, ((a)), (b+C)*d/b, e+x*y-c
   s operandami v tvare jednopismenovych identifikatorov a operatormi +,-,*, a /,
   takymi, ze operatory + a - su asociativne sprava, operator * je neasociativny a operator / je asociativny zlava, pricom ich priorita p je takato:

   p(+) = p(-) > p(*) > p(/)


riesenie:     E -> A {"/" A}
      A -> B ["*" B]
      B -> T [("+"|"-") B]
      T -> Id | "(" E ")"


2b. Za predpokladu, ze Vami definovana gramatika bude pouzita pre syntaxou riadeny preklad vyrazov do postfixneho tvaru, urcte pre zdrojovy vyraz a + b + c * d / e + f jeho postfixny tvar na vystupe.

Postfix [[a + b + c * d / e + f]]
 = abc++d*ef+/

Prefix: /*+a+bcd+ef
« Last Edit: 30.04.2009, 03:24:36 by kov »

kov

  • Full Member
  • ***
  • Posts: 177
    • View Profile
Re: PPJ materialy
« Reply #287 on: 29.04.2009, 18:13:59 »
Na prednaske pisal Kollar na tabulu taketo nieco: Bn -> B{B}#B
Neviete, co znamena to "#B"? Pretoze bez toho mi to je logicke, ale s tym #B ani nie.

mna napada len zretazenie... Kollar tiez napisal na tabulu nieco take ze

On -> O{O} #O
Dn -> D{D} #D

pricom skonstatoval ze pri decimalnych cislach to "#D" nema byt ale pri osmickovych ma... mne to osobne tiez dava viac zmysel bez toho #
« Last Edit: 29.04.2009, 18:24:30 by kov »

kov

  • Full Member
  • ***
  • Posts: 177
    • View Profile
Re: PPJ materialy
« Reply #288 on: 29.04.2009, 18:23:06 »
4a. Nech gramatika prikazu while je definovana pravidlom (zatvorky v uvodzovkach su terminalne symboly):

   While_Stat -> while "(" Expr ")" "{" Stat_Seq "}"

Za predpokladu, vyznam tohto prikazu je rovnaky ako v jazyku C, definujete pren schemu prekladu do postfixneho jazyka, pricom pouzite virtualne instrukcie jump a falsejump

   T [[ while "(" Expr ")" "{" Stat_Seq "}" ]]
   = label<L1> E[[Expr]] falsejump<L2> S[[Stat_Seq]] jump<L1> label<L2>

   //Expr - hodnota v zasobniku (0 or 1, false or true)


4b. Nech gramatika prikazu if je definovana pravidlom (zatvorky v uvodzovkach su terminalne symboly):

   If_Stat -> if "(" Expr ")" "{" Stat_Seq "}" [ else "{"Stat_Seq "}"]

Definujte schemu prekladu tohto prikazu do postfixneho jazyka, pricom pouzite virtualne instrukcie jump a falsejump

   T [[ if "(" Expr ")" "{" Stat_Seq "}" ]]
   = E[[Expr]] falsejump<L1> S[[Stat_Seq]] label<L1>

   T [[ if "(" Expr ")" "{" Stat_Seq "}" else "{"Stat_Seq "}"  ]]
   = E[[Expr]] falsejump<L1> S[[Stat_Seq]] jump<L2> label<L1> S[[Stat_Seq]] label<L2>


4c. Nech gramatika prikazu do...while je definovana pravidlom (zatvorky v uvodzovkach su terminalne symboly):

   Do_While_Stat -> do "{" Stat_Seq "}" while "(" Expr ")"

Za predpokladu, vyznam tohto prikazu je rovnaky ako v jazyku C, definujte pren schemu prekladu do postfixneho jazyka, pricom pouzite virtualne instrukcie jump a falsejump

   T [[ do "{" Stat_Seq "}" while "(" Expr ")"  ]]
   = label<L1> S[[Stat_Seq]] E[[Expr]] falsejump<L2> jump<L1> label<L2>
« Last Edit: 29.04.2009, 18:24:49 by kov »

morrfun23

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: PPJ materialy
« Reply #289 on: 29.04.2009, 18:37:47 »
a ten treti priklad nema nikto spraveny?

Frodooo

  • Full Member
  • ***
  • Posts: 144
    • View Profile
Re: PPJ materialy
« Reply #290 on: 29.04.2009, 18:39:21 »
ako funguje ten 4 typ prikladov stale som na to neprisiel...:(

buhehe

  • Hero Member
  • *****
  • Posts: 1583
    • View Profile
Re: PPJ materialy
« Reply #291 on: 29.04.2009, 19:01:58 »
3. A -> B { d E } ( c | F )

Code: [Select]
void A(K){
   B(d|H(E)|c|H(F)|K)
   check(d|H(E)|c|H(F)|K)
   while (symobl in d|H(E) ){
      if(symbol==d) getsymbol()
      else error(d|H(E)|c|H(F)|K)
      E(d|H(E)|c|H(F)|K)
      check(d|H(E)|c|H(F)|K)
   }
   check(c|H(F)|K)
   switch(sym)
      case c: getsymbol()
      case H(F) : F(K)
      default : error(c|H(F)|K)
}

tak nejak...
« Last Edit: 29.04.2009, 19:51:58 by buhehe »

puq

  • Hero Member
  • *****
  • Posts: 4065
    • View Profile
Re: PPJ materialy
« Reply #292 on: 29.04.2009, 19:32:47 »
podla mna to neje dobre

buhehe

  • Hero Member
  • *****
  • Posts: 1583
    • View Profile
Re: PPJ materialy
« Reply #293 on: 29.04.2009, 19:41:32 »
oprav jak si myslis...

Mao

  • Sr. Member
  • ****
  • Posts: 392
    • View Profile
Re: PPJ materialy
« Reply #294 on: 29.04.2009, 19:46:56 »
B(H(B)|d|H(E)|c|H(F)|K)
check(d|H(E)|c|H(F)|K)
while (symobl in d|H(E) )
{
if(symbol==d)
   getsymbol()
else
   error(d|H(E)|c|H(F)|K)
 E(d|H(E)|c|H(F)|K)
check(d|H(E)|c|H(F)|K)
}
..
.
zvysok je asi ok
 
« Last Edit: 29.04.2009, 20:16:24 by Mao »

puq

  • Hero Member
  • *****
  • Posts: 4065
    • View Profile
Re: PPJ materialy
« Reply #295 on: 29.04.2009, 19:49:30 »
zdielam rovnaky nazor :D dufam ze je spravny ;)

buhehe

  • Hero Member
  • *****
  • Posts: 1583
    • View Profile
Re: PPJ materialy
« Reply #296 on: 29.04.2009, 19:51:22 »
opravene thx...som si neuvedomil ze ten cyklus nemusi zbehnut a zabudol som tu podmienku pri getsymbol
« Last Edit: 29.04.2009, 19:53:00 by buhehe »

morrfun23

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: PPJ materialy
« Reply #297 on: 29.04.2009, 19:54:54 »
a tela funkcii Error a Check maju vyzerat ako?

buhehe

  • Hero Member
  • *****
  • Posts: 1583
    • View Profile
Re: PPJ materialy
« Reply #298 on: 29.04.2009, 19:55:17 »
ved to mas vsetko v tom pdf

morrfun23

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: PPJ materialy
« Reply #299 on: 29.04.2009, 19:59:59 »
a na ktorej strane to je len tak mimochodom?