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

Zobrazi prspevky

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Zobrazi prspevky Menu

Messages - LubomirR

#1
2. ročník / Re: Operacne systemy
26.04.2011, 20:45:49
Quote from: vreckovka789 on  26.04.2011, 17:29:04
Robim zadanie a neviem si rady s TCP pripojenim. Uz 4 hodiny sa s tym babrem a nie a nie sa nanho pripojit.. strukturu mam takto
struct sockaddr_in adresa;
    adresa.sin_family = AF_INET;
    adresa.sin_addr.s_addr = inet_addr("127.0.0.1");
    adresa.sin_port = 6789;
    bzero(&(adresa.sin_zero), 8);

a napajam sa takto:
int sockfd = socket(PF_INET, SOCK_STREAM,0);
        connect (sockfd, (struct sockaddr *) &adresa, sizeof(adresa));

ale connect mi vzdy vracia chybu Connection refused .. v zadani je napisane ze sa mam pripojit na tcp port s ip 127.0.0.1 .. neviete mi poradit kde robim chybu?

sin_port musí byť v network byte order (big endian). Použi funkciu htons na prekonvertovanie:

adresa.sin_port = htons(6789);
#2
2. ročník / Re: Matematicka logika
16.12.2010, 03:07:13
Quote from: totaluser on  16.12.2010, 02:18:25
ale mozem tam ist aj ked som mal prednasky s Drazenskou, ci nie?

Radšej sa vopred dohodni, lebo aj dnes na predtermíne u Myškovej tam ktosi prišiel od Draženskej a nebola z toho nadšená.
#3
Quote from: Shwollo on  29.11.2010, 17:57:22
čo presne robí toto?

if(strcmp(key,ptr->key)==0)return 1;

Porovná reťazce key a ptr->key a ak sú zhodné, vráti číslo 1.
(Funkcia strcmp vracia 0 v prípade, že sú zadané reťazce zhodné, preto treba porovnávať takto: if(strcmp(...) == 0), resp. if(!strcmp(...)).)
#4
Quote from: antil kiprest on  29.11.2010, 05:17:13
ok.. mmnt .. takze tam ako mam ten while { + B +B + B}, ked niekde bude chybat + tak sa to zotavi na VALUE alebo LPAR ?? ked je to tak, tak som ani zadanie spravne nepochopil ;D
ale inac chlape teraz si ma uz uplne poplietol... ja mam ten kod asi uplne inak ako ma byt ;D  napr vo while v error mam v podmienke aj symbol!=SEOF a v tych ostatnych funkciach posielam kde co...funguje mi to pekne, vypisuje co kde chyba, ale co z toho ked ten test aj tak asi nedam... to mam za to ze k tomu pristupujem intuitivne a nie podla ucebnic hehe... potom som mimo hry v takychto veciach

K tomu while ti skúsim napísať príklad, snáď je správne.


/* A -> B {"+" B} */
int a(SetType K) {
  int left, right;
  left = b(E PLUS | H_B | K);

  check(n, E PLUS | H_B | K);
  while ((E symbol) & (E PLUS | H_B)) {
    if (symbol == PLUS) {
      getsymbol();
    } else {
      error(n, E PLUS | H_B | K);
    }
    right = b(E PLUS | H_B | K);
    left += right;

    check(n, E PLUS | H_B | K);
  }

  return left;
}


To SEOF nemusíš dávať nikde (len raz pri volaní A z mainu), lebo sa ti vďaka K dostane všade.
#5
A -> B {"+" B}

Za prvým B môžu nasledovať plus a B, teda:
B(E PLUS | H_B | K);
Za druhým B môžu nasledovať opäť plus a B, pretože {} môže zabezpečiť ďalšie opakovanie (+ B + B + B...) a ak by chýbalo napr. plus, tak sa zrecoveruje vďaka tomu, že vo while sa testuje, či je aktuálny symbol z (E PLUS | H_B), nie len E PLUS.
B(E PLUS | H_B | K);


B -> C [ "-" B ]

Za C sa dáva len mínus. Nemalo by zmysel dávať do množiny aj H_B, pretože ak by sme dali aj H_B a bolo by vynechané mínus a vďaka nejakému erroru by aj prišlo k začiatku B, tak aj tak nám to nepomôže, lebo volanie B je v ife, ktorý sa celý nevykoná. (Na toto sme sa boli pýtať priamo Kollára, je to podobné ako A -> B ( c d e | f g h ) C - tu sa B zavolá s E c | E f | H_C | K.)
C(E MINUS | K);
Za posledným B už nejde nič (v tomto pravidle):
B(K);


C -> D [ "*" D ]

Podobne ako predchádzajúce:
D(E MUL | K);
D(K);


D -> value | "(" A ")"

Tu bude switch, v default bude error s K (pozor, tu mal Kollár v niektorých príkladoch chybu, dal tam aj E VALUE a E LPAR).
Za A ide len RPAR, čiže:
A(E RPAR | K);


Quote from: antil kiprestno a potom predsa nemozes len tak dostat SEOF kym sa Ti neuzavrie zatvorka...

To SEOF musí ísť do každého erroru už len kvôli tomu, aby sa ukončil ten while v errore, keď sa narazí na SEOF. Aby si nevolal getsymbol aj vtedy, keď už nie sú dostupné ďalšie symboly.
#6
Potvrdzujem.
#7
1. ro?ník / Re: online multiplayer hra
28.06.2010, 18:09:10
Ursus, pokiaľ ťa zaujíma sieťové programovanie v C, pozri si napríklad Beej's Guide to Network Programming (http://beej.us/guide/bgnet/).