Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
13_mac Forumaš(ica)


Pridružen/a: 23. 10. 2006. (22:56:13) Postovi: (D4)16
Spol: 
|
Postano: 19:21 sri, 19. 12. 2007 Naslov: Zad 7.4. - skripta |
|
|
Malo mi je djelovao [i]kompliciranije[/i], heh...
Al evo pokusaja, molim da me ispravite ako mi je sta krivo!!
#include<stdio.h>
int main(void){
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if((a == 0 || a == 1) && (b == 0 || b == 1) && (c == 0 || c == 1)){
if(a && b || a && c || b && c)
printf("Izraz ab + ac + bc je istinit.\n");
else
printf("Izraz ab + ac + bc je lazan.\n");}
else
printf("Javila se greska:a, b, c nisu dobro definirani.\n");
scanf("%%");
return 0;
}
p.s. Ili nabacite koji komentar da li se moze skratiti program, a da i dalje ostane u funkciji. Malcice mi se cini da sam tu zakomplicirao malo sa if-ovima & else.... Hm... :jutro:
Malo mi je djelovao kompliciranije, heh...
Al evo pokusaja, molim da me ispravite ako mi je sta krivo!!
#include<stdio.h>
int main(void){
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if((a == 0 || a == 1) && (b == 0 || b == 1) && (c == 0 || c == 1)){
if(a && b || a && c || b && c)
printf("Izraz ab + ac + bc je istinit.\n");
else
printf("Izraz ab + ac + bc je lazan.\n");}
else
printf("Javila se greska:a, b, c nisu dobro definirani.\n");
scanf("%%");
return 0;
}
p.s. Ili nabacite koji komentar da li se moze skratiti program, a da i dalje ostane u funkciji. Malcice mi se cini da sam tu zakomplicirao malo sa if-ovima & else.... Hm...
_________________ Đante tanda fandiga?
|
|
[Vrh] |
|
Masiela Forumaš(ica)


Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol: 
Lokacija: Među bananama
|
Postano: 20:02 sri, 19. 12. 2007 Naslov: |
|
|
Kad smo već kod tog zadatka, evo i moja verzija...
[code:1]#include <stdio.h>
int main (void) {
int a, b, c;
printf ("Unesite tri cijela broja.\n");
scanf ("%d %d %d", &a, &b, &c);
if ((a==0 || a==1)&&(b==0 || b==1)&&(c==0 || c==1)) {
if (((a&&b) || (b&&c) || (a&&c))==1)
printf ("Izraz je istinit");
}
else
printf ("Izraz nije istinit");
scanf("%d%d");
return 0;
}[/code:1]
Isto 2 if-a, ali ja nemam taj drugi else koji mi nije ni pao na pamet kao mogućnost.
EDIT: Sad kad gledam, pari mi se da sam rano zatvorila vitičastu zagradu. Čini mi se da bi trebalo iza onog printfa da izraz nije istinit ko što si ti napravio jer će moj ispisati da izraz nije istinit i kad ne učitaš nule i jedinice, a tad bi bilo zgodnije da ispisuje da se radi o pogrešnom unosu (a sad vidim da se to i traži u zadatku :D).
Kad smo već kod tog zadatka, evo i moja verzija...
Kod: | #include <stdio.h>
int main (void) {
int a, b, c;
printf ("Unesite tri cijela broja.\n");
scanf ("%d %d %d", &a, &b, &c);
if ((a==0 || a==1)&&(b==0 || b==1)&&(c==0 || c==1)) {
if (((a&&b) || (b&&c) || (a&&c))==1)
printf ("Izraz je istinit");
}
else
printf ("Izraz nije istinit");
scanf("%d%d");
return 0;
} |
Isto 2 if-a, ali ja nemam taj drugi else koji mi nije ni pao na pamet kao mogućnost.
EDIT: Sad kad gledam, pari mi se da sam rano zatvorila vitičastu zagradu. Čini mi se da bi trebalo iza onog printfa da izraz nije istinit ko što si ti napravio jer će moj ispisati da izraz nije istinit i kad ne učitaš nule i jedinice, a tad bi bilo zgodnije da ispisuje da se radi o pogrešnom unosu (a sad vidim da se to i traži u zadatku ).
_________________ mladac: e.k.s. je možda 8%, moje znanje ni toliko 
|
|
[Vrh] |
|
13_mac Forumaš(ica)


Pridružen/a: 23. 10. 2006. (22:56:13) Postovi: (D4)16
Spol: 
|
|
[Vrh] |
|
Masiela Forumaš(ica)


Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol: 
Lokacija: Među bananama
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 5:05 čet, 20. 12. 2007 Naslov: |
|
|
Izraz [tt]a && b || a && c || b && c[/tt] se moze skratiti (logika sudova, remember?). ;)
@13_mac: please, kodove pakiraju u [tt][co[i][/i]de]...[/code][/tt]. :)
@Masiela: ne treba ti [tt]==1[/tt], a program nece nista ispisati ako je unos dobar, ali je izraz lazan (npr za a=b=c=0). :? I cemu [tt]scanf("%d%d");[/tt]? :-k To ucitava dva [tt]int[/tt]-a, a ne das mu varijable u koje ih treba spremiti, sto - cini mi se - moze izazvati cudne posljedice. :|
Izraz a && b || a && c || b && c se moze skratiti (logika sudova, remember?).
@13_mac: please, kodove pakiraju u [code]...[/code].
@Masiela: ne treba ti ==1, a program nece nista ispisati ako je unos dobar, ali je izraz lazan (npr za a=b=c=0). I cemu scanf("%d%d");? To ucitava dva int-a, a ne das mu varijable u koje ih treba spremiti, sto - cini mi se - moze izazvati cudne posljedice.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
13_mac Forumaš(ica)


Pridružen/a: 23. 10. 2006. (22:56:13) Postovi: (D4)16
Spol: 
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
13_mac Forumaš(ica)


Pridružen/a: 23. 10. 2006. (22:56:13) Postovi: (D4)16
Spol: 
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 16:19 čet, 20. 12. 2007 Naslov: Re: Zad 7.4. - skripta |
|
|
Skracivanje mozes postici uvjetnim operatorom i prebacivanjem "[tt]x==0[/tt]" u "[tt]!x[/tt]":
[code:1]#include<stdio.h>
int main(void){
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (!a || a == 1) && (!b || b == 1) && (!c || c == 1))
printf("Izraz ab + ac + bc %s istinit.\n", a && b || a && c || b && c ? "je" : "nije");
else
printf("Javila se greska:a, b, c nisu dobro definirani.\n");
return 0;
}[/code:1]
8)
Skracivanje mozes postici uvjetnim operatorom i prebacivanjem "x==0" u "!x":
Kod: | #include<stdio.h>
int main(void){
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (!a || a == 1) && (!b || b == 1) && (!c || c == 1))
printf("Izraz ab + ac + bc %s istinit.\n", a && b || a && c || b && c ? "je" : "nije");
else
printf("Javila se greska:a, b, c nisu dobro definirani.\n");
return 0;
} |
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
Masiela Forumaš(ica)


Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol: 
Lokacija: Među bananama
|
Postano: 17:03 čet, 20. 12. 2007 Naslov: |
|
|
[quote="vsego"]@Masiela: ne treba ti [tt]==1[/tt], a program nece nista ispisati ako je unos dobar, ali je izraz lazan (npr za a=b=c=0). :? I cemu [tt]scanf("%d%d");[/tt]? :-k To ucitava dva [tt]int[/tt]-a, a ne das mu varijable u koje ih treba spremiti, sto - cini mi se - moze izazvati cudne posljedice. :|[/quote]
Ne znam gledaš li onaj kod sa ili bez onog edita. Nešto sam mijenjala. Uglavnom konačna verzija mi je:
[code:1]#include <stdio.h>
int main (void) {
int a, b, c;
printf ("Unesite tri cijela broja.\n");
scanf ("%d %d %d", &a, &b, &c);
if ((a==0 || a==1)&&(b==0 || b==1)&&(c==0 || c==1)) {
if (((a&&b) || (b&&c) || (a&&c))==1)
printf ("Izraz je istinit");
else
printf ("Izraz nije istinit");
}
else
printf ("Pogresan unos varijabli");
scanf("%%");
return 0;
}[/code:1]
Za unos 0, 0, 0 mi ispisuje [i]Izraz nije istinit[/i].
scanf("%d%d") je zabuna :( Nisam skužila :oops: Valjda sam mehanički natipkala jer se ranije pojavljuju %d-ovi. U zagradu ide samo "%%".
Hoće li se uzimati za zlo viškovi tipa taj moj ==1? Što mi još ne valja ili traži izmjenu? :angel:
(Samo da maknem ==1 i to je to što se tog reda tiče?)
vsego (napisa): | @Masiela: ne treba ti ==1, a program nece nista ispisati ako je unos dobar, ali je izraz lazan (npr za a=b=c=0). I cemu scanf("%d%d");? To ucitava dva int-a, a ne das mu varijable u koje ih treba spremiti, sto - cini mi se - moze izazvati cudne posljedice.  |
Ne znam gledaš li onaj kod sa ili bez onog edita. Nešto sam mijenjala. Uglavnom konačna verzija mi je:
Kod: | #include <stdio.h>
int main (void) {
int a, b, c;
printf ("Unesite tri cijela broja.\n");
scanf ("%d %d %d", &a, &b, &c);
if ((a==0 || a==1)&&(b==0 || b==1)&&(c==0 || c==1)) {
if (((a&&b) || (b&&c) || (a&&c))==1)
printf ("Izraz je istinit");
else
printf ("Izraz nije istinit");
}
else
printf ("Pogresan unos varijabli");
scanf("%%");
return 0;
} |
Za unos 0, 0, 0 mi ispisuje Izraz nije istinit.
scanf("%d%d") je zabuna Nisam skužila Valjda sam mehanički natipkala jer se ranije pojavljuju %d-ovi. U zagradu ide samo "%%".
Hoće li se uzimati za zlo viškovi tipa taj moj ==1? Što mi još ne valja ili traži izmjenu?
(Samo da maknem ==1 i to je to što se tog reda tiče?)
_________________ mladac: e.k.s. je možda 8%, moje znanje ni toliko 
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 17:14 čet, 20. 12. 2007 Naslov: |
|
|
Nece se "uzeti za zlo"; trazimo da programi rade ono sto se trazi, u skladu sa standardnim (ANSI) C-om, te eventualno u gabaritima koji se traze (stajzanam, ako pise "koristite samo [tt]for()[/tt] petlje", onda ne prihvacamo [tt]while()[/tt], no takvi zahtjevi su rijetki). :)
Ne inzistiramo na skracivanju, optimalnosti i sl. :) To sto vas ja ucim i tome... i sami znate da naglasim kako je to "za one koji to zele znati, ali nije nuzno". ;)
Nece se "uzeti za zlo"; trazimo da programi rade ono sto se trazi, u skladu sa standardnim (ANSI) C-om, te eventualno u gabaritima koji se traze (stajzanam, ako pise "koristite samo for() petlje", onda ne prihvacamo while(), no takvi zahtjevi su rijetki).
Ne inzistiramo na skracivanju, optimalnosti i sl. To sto vas ja ucim i tome... i sami znate da naglasim kako je to "za one koji to zele znati, ali nije nuzno".
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
Masiela Forumaš(ica)


Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol: 
Lokacija: Među bananama
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 17:42 čet, 20. 12. 2007 Naslov: |
|
|
Pa, meni izgleda ispravno. :) Da sam uocio neku gresku, napisao bih to, ne? ;)
Pa, meni izgleda ispravno. Da sam uocio neku gresku, napisao bih to, ne?
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
Masiela Forumaš(ica)


Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol: 
Lokacija: Među bananama
|
|
[Vrh] |
|
|