Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
aenima Forumaš(ica)
Pridružen/a: 17. 09. 2004. (17:03:42) Postovi: (57)16
Spol:
|
Postano: 16:30 pon, 10. 7. 2006 Naslov: logički izrazi |
|
|
Može li mi netko objasniti što se točno misli pod tim kad se u zadatku traži da se logički izraz prebaci iz jedne u drugu notaciju? :oops:
Da li se tu misli samo na izraze s operandima i čisto logičkim operatorima
( && , || , ! ) ili se tu još misli i na relacijske operatore(<=,>=,==,!=) ?
:roll:
Može li mi netko objasniti što se točno misli pod tim kad se u zadatku traži da se logički izraz prebaci iz jedne u drugu notaciju?
Da li se tu misli samo na izraze s operandima i čisto logičkim operatorima
( && , || , ! ) ili se tu još misli i na relacijske operatore(<=,>=,==,!=) ?
|
|
[Vrh] |
|
vili Forumaš(ica)
Pridružen/a: 08. 06. 2005. (22:40:59) Postovi: (14A)16
Spol:
Lokacija: Keglić
|
|
[Vrh] |
|
ivo34 Forumaš(ica)
Pridružen/a: 03. 02. 2005. (10:11:04) Postovi: (171)16
Spol:
|
|
[Vrh] |
|
aenima Forumaš(ica)
Pridružen/a: 17. 09. 2004. (17:03:42) Postovi: (57)16
Spol:
|
|
[Vrh] |
|
goranm Forumaš(ica)
Pridružen/a: 12. 11. 2002. (20:09:12) Postovi: (906)16
Spol:
|
|
[Vrh] |
|
aenima Forumaš(ica)
Pridružen/a: 17. 09. 2004. (17:03:42) Postovi: (57)16
Spol:
|
|
[Vrh] |
|
goranm Forumaš(ica)
Pridružen/a: 12. 11. 2002. (20:09:12) Postovi: (906)16
Spol:
|
|
[Vrh] |
|
ivo34 Forumaš(ica)
Pridružen/a: 03. 02. 2005. (10:11:04) Postovi: (171)16
Spol:
|
Postano: 22:40 pon, 10. 7. 2006 Naslov: |
|
|
Da, rekao bih da se misli na bilo kakav logicki izraz (znaci sa ili bez relacijskih operatora). Jer, na primjer kada stavis izraz !(2>3)==1 u recimo if naredbu, ona ce gledati cijeli taj izraz i zakljuciti je li on istina (1) ili laz (0). Naravno, mogu tu biti i aritmeticki operatori.
Imas u vjezbama Dijkstrin algoritam u kojem je rijecima opisano kako se stavlja neki izraz koji sadrzi neke operatore u sebi. Treba to implementirati u c-u, nije tesko, samo treba pazit na prioritete operatora.
Da, rekao bih da se misli na bilo kakav logicki izraz (znaci sa ili bez relacijskih operatora). Jer, na primjer kada stavis izraz !(2>3)==1 u recimo if naredbu, ona ce gledati cijeli taj izraz i zakljuciti je li on istina (1) ili laz (0). Naravno, mogu tu biti i aritmeticki operatori.
Imas u vjezbama Dijkstrin algoritam u kojem je rijecima opisano kako se stavlja neki izraz koji sadrzi neke operatore u sebi. Treba to implementirati u c-u, nije tesko, samo treba pazit na prioritete operatora.
|
|
[Vrh] |
|
aenima Forumaš(ica)
Pridružen/a: 17. 09. 2004. (17:03:42) Postovi: (57)16
Spol:
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
ivo34 Forumaš(ica)
Pridružen/a: 03. 02. 2005. (10:11:04) Postovi: (171)16
Spol:
|
Postano: 23:18 uto, 11. 7. 2006 Naslov: |
|
|
Pa znaci pretpostavimo da je cijeli izraz zapisan u nekakvom char polju. I sada ides redom, znak po znak. Imat ces hrpu if-ova, npr. za operande (koji ne idu na stog nego se odmah izbacuju na izlaz) imas uvjet ako je *p>='A' && *p<='Z' onda izbaci na izlaz (ekran ili neko drugo polje) i jos ide ++p (aritmetika operatora, znaci pomaknes pokazivac na sljedeci znak). Ako je npr. sljedeci znak '!' (znaci if (*p == '!') ) onda u tom if-u prvo napises ++p, zatim ide if (*p == '=') {provjeri da li je na stogu neki operator veceg prioriteta, ako je ispisi ga/njih, ako nije stavi != na stog (neka ti u strukturi stoga bude definirano dvoclano char polje); ++p;}. Itd.
Nadam se da si shvatio/la sta te mucilo, ak nes nije jasno pitaj :)
P.S. Moglo se ovo malo spretnije napravit sa 2-d char poljem koje ima samo dva stupca, pa onda ne trebas dva if-a za operatore sa dva znaka (!=, <=, >=...)
Pa znaci pretpostavimo da je cijeli izraz zapisan u nekakvom char polju. I sada ides redom, znak po znak. Imat ces hrpu if-ova, npr. za operande (koji ne idu na stog nego se odmah izbacuju na izlaz) imas uvjet ako je *p>='A' && *p<='Z' onda izbaci na izlaz (ekran ili neko drugo polje) i jos ide ++p (aritmetika operatora, znaci pomaknes pokazivac na sljedeci znak). Ako je npr. sljedeci znak '!' (znaci if (*p == '!') ) onda u tom if-u prvo napises ++p, zatim ide if (*p == '=') {provjeri da li je na stogu neki operator veceg prioriteta, ako je ispisi ga/njih, ako nije stavi != na stog (neka ti u strukturi stoga bude definirano dvoclano char polje); ++p;}. Itd.
Nadam se da si shvatio/la sta te mucilo, ak nes nije jasno pitaj
P.S. Moglo se ovo malo spretnije napravit sa 2-d char poljem koje ima samo dva stupca, pa onda ne trebas dva if-a za operatore sa dva znaka (!=, <=, >=...)
|
|
[Vrh] |
|
|