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

FJAP

Started by pinko, 14.10.2012, 19:26:45

« predchdzajce - alie »

pinko

nemate niekto nejake priklady na precvicenie konstrukcie konecnostavoveho automatu z regularneho vyrazu? najlepsie aj s vysledkom nech sa to da overit  :)

Rimbaud

Na cviku radil Steingartner vygoogliť "DFA from RE".
Meat is Murder.

pinko

hej pamätam len mi to nejak nenajde to co som chcel.....

Rimbaud

Tak sa na to vytoto... snád bude dobre :)
Meat is Murder.

pinko

ked mame regularny vyraz {a|b}, ktory z tychto retazcov nanho pasuju?:

1. aaaaaa....
2. bbbbbbbbb....
3. aaaaabbbaabbbbaabb....

{} - tranzitivny uzaver
a|b  - vyjadruje a alebo b

Rimbaud

Podľa mňa 1. a 2.
Meat is Murder.

xxx3

nie vsetky ?

kedze "a" alebo "b", tak moze byt aj "abababab" ... nie ?

Rimbaud

Podľa mňa je to alternatíva vo vylučovacom zmysle, teda bud a /  bud b 
Meat is Murder.

xxx3

no, ved tuto je to tiez tak, bud a alebo b: ababab .. ked su taketo zatvorky {} tak to ked sa dobre pamätam je, ze sa to opakuje, cize cyklus ... takze ja si myslim, ze moze byt aj abababa .. prejde cyklus raz, bude "a", prejde druhykrat, bude "ab", prejde tretikrat bude "aba" a tak dalej

pinko

ono osobne by som povedal ze to ma byt BUD aaaaaaa.... ALEBO bbbbbbb..... podla mojho nazoru ale ked to mal na pisomke spravit stavovy diagram a potom automat tak v podstate som zistil ze neviem ako by to vyzeralo tymto stylom (aby bralo len 1. a 2.) a jedine co mi tam pasovalo bol diagram ktory bral aj tretiu moznost

xxx3

keby to malo byt BUD aaaaa ALEBO bbbbb tak by to bolo takto: {a}|{b} aspon podla mna, hlavu by som zato nedal do ohna

veteran

Quote from: xxx3 on  16.10.2012, 18:11:48
keby to malo byt BUD aaaaa ALEBO bbbbb tak by to bolo takto: {a}|{b} aspon podla mna, hlavu by som zato nedal do ohna
Tiež si myslím.

esperian

no podla mna vsetky moznosti su spravne pokial dobre pamatam

-*---------------------->
     ^            |
     |     __a  |
     |     |   |_ |
      --- |   |
           |__b

cize ked tam pustis tu gulicku tak sa ti to moze hocijako opakovat .. bud len same aaaaaaaa alebo bbbbbbbbbb alebo abbbbaaaabb

veteran

#13
Ak by tam mali byť len áčka alebo len béčka, vyzeralo by to asi takto (teda aspoň dúfam ap)

esperian

Quote from: eminkaa on  17.10.2012, 13:33:18
xxx3 a veteran maju pravdu
a esperian zasa nic  ;D

esperian


tas

z toho mála čo si pamätám tak a alebo b v tranzitívnom uzávere znači opakovaný vstup a alebo b, čo môže vyzerať asi takto:
aaaaa
bb
ababababa
aaabbbbbbaa
a tak ďalej...aj by som poradil ako to robím ja, ale myslím, že každý normálny človek by to považoval za neskutočne zložitú obchádzku

nimrod

#17
Neviete niekto popisat co robi prikaz JMP 3?:
           
void translator() {
   // rezervacia miesta pre ukladanie premennej
   putWord(JMP);
   putWord(3);
   putWord(NOP);
...
}


A este chapem tento kod spravne?:

unsigned short stackAddr = 1000;
void translator() {
              ...
       
   // inicializacia SP
   putWord(LDAM);
   putWord(stackAddr);
   putWord(STA);
   putWord(2);
   putWord(LDS);
   putWord(2);
...
}
ze nacitam do akumulatora hodnotu 1000 , ulozim akumulator do registra 2 a nasledne nacitam ten register?

Rimbaud

Zdravím, vedel by mi niekto vysvetliť, prípadne aj odstrániť chybu v kode : http://paste42.de/4364/FJAP&linenr  na riadkoch 67 a 68  ? error: initializer element is not constant
Meat is Murder.

xxx3

#19
Rimbaud - mne ten kod normalne v netbeanse skompiluje bez chyb


Rimbaud

Quote from: xxx3 on  04.11.2012, 04:22:16
Rimbaud - mne ten kod normalne v netbeanse skompiluje bez chyb

Problém je už vyriešený :)
Meat is Murder.

xxx3

nimrod:

putWord(LDAM);
putWord(stackAddr); 
LDAM 1000 -> nacita 1000-ku do akumulatora
putWord(STA);
putWord(2);
STA 2 -> z akumulatora ulozi tu 1000-ku do pamäta do bunky s adresou 2
putWord(LDS);
putWord(2);
LDS 2 -> nacita z pamäta z adresy 2 (tu 1000-ku ktoru tam ulozilo) do stack pointera SP

mishelka

  

#define TRUE FALSE //Happy debugging suckers :D

paloSK

:D

pinko


enum NodeTags {
    INTCONST, FLOATCONST,
    PRINT_OP, ADD_OP, SUB_OP,
    PRINT_INT_OP, PRINT_FLOAT_OP,
    ADD_INT_OP, ADD_FLOAT_OP,
    SUB_INT_OP
};

typedef union ExpTreeNode {
    struct {
        int constTag;
        int constVal;
    } operand;

    struct {
        int binOp;
        ExpTreeNode* leftTree;
        ExpTreeNode* rightTree;
    } binaryop;

    struct {
        int unOp;
        ExpTreeNode* subTree;
    } unaryop;
} ExpTree;

**************************************************************************************

typedef enum NodeTags {
    INTCONST, FLOATCONST,
    PRINT_OP, ADD_OP, SUB_OP,
    PRINT_INT_OP, PRINT_FLOAT_OP,
    ADD_INT_OP, ADD_FLOAT_OP,
    SUB_INT_OP
}NodeTags;

typedef union ExpTreeNode {
    struct {
        int constTag;
        int constVal;
    } operand;

    struct {
        int binOp;
        union ExpTreeNode* leftTree;
        union ExpTreeNode* rightTree;
    } binaryop;

    struct {
        int unOp;
        union ExpTreeNode* subTree;
    } unaryop;
} ExpTree;



vie mi niekto vysvetlit preco mi prvy kod v netbeanse vyhadzuje same errory a v codeblocks to prejde max s nejakym warningom? musel som to upravit tak ako je v druhom kode aby to compiler zobral. Nechapem ale preco nechce ten prvy kod zobrat???