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: 
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 19:46 čet, 20. 12. 2007 Naslov: |
|
|
Nije. :ccc:
Za pocetak, kod konvercije [tt]for()[/tt] gubis inicijalizaciju. :(
Nadalje, probaj prebaciti [tt]for()[/tt] odavde tocno prema svom receptu:
[code:1]int n, i;
scanf("%d", &n);
for (i = 17; i < n; i++) printf("%d", i);[/code:1]
i provjeri sto ti ispisuje jedna, a sto druga petlja za - recimo - [tt]n[/tt]-ove 13 i 19. ;)
Slicno i za konverziju [tt]while()[/tt] u [tt]do..while();[/tt] :)
Nije.
Za pocetak, kod konvercije for() gubis inicijalizaciju.
Nadalje, probaj prebaciti for() odavde tocno prema svom receptu:
Kod: | int n, i;
scanf("%d", &n);
for (i = 17; i < n; i++) printf("%d", i); |
i provjeri sto ti ispisuje jedna, a sto druga petlja za - recimo - n-ove 13 i 19.
Slicno i za konverziju while() u do..while();
_________________ 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] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
|
[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
|
|
[Vrh] |
|
13_mac Forumaš(ica)


Pridružen/a: 23. 10. 2006. (22:56:13) Postovi: (D4)16
Spol: 
|
Postano: 11:13 sri, 2. 1. 2008 Naslov: |
|
|
Jesam, i ispalo mi je tocno.
U prijevodu....
[code:1]#include<stdio.h>
int main(void){
int n, i;
scanf("%d", &n);
for(i=17; i<n; i++)
printf("%d", i);
scanf("%%");
return 0;
}[/code:1]
ide u...
[code:1]#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
while(i<n){
printf("%d", i);
i++;
}
scanf("%%");
return 0;
}[/code:1]
ili...
[code:1]#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do{
printf("%d", i);
i++;
}
while(i<n);
scanf("%%");
return 0;
}[/code:1]
I opet mi nije jasno zasto mi sad ovo "drugo" rjesenje koje sam dao ne valja... :?
Jesam, i ispalo mi je tocno.
U prijevodu....
Kod: | #include<stdio.h>
int main(void){
int n, i;
scanf("%d", &n);
for(i=17; i<n; i++)
printf("%d", i);
scanf("%%");
return 0;
} |
ide u...
Kod: | #include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
while(i<n){
printf("%d", i);
i++;
}
scanf("%%");
return 0;
} |
ili...
Kod: | #include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do{
printf("%d", i);
i++;
}
while(i<n);
scanf("%%");
return 0;
} |
I opet mi nije jasno zasto mi sad ovo "drugo" rjesenje koje sam dao ne valja...
_________________ Đante tanda fandiga?
|
|
[Vrh] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
Postano: 15:17 sri, 2. 1. 2008 Naslov: |
|
|
[quote="13_mac"]Jesam, i ispalo mi je tocno.
[code:1]#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do{
printf("%d", i);
i++;
}
while(i<n);
scanf("%%");
return 0;
}[/code:1]
I opet mi nije jasno zasto mi sad ovo "drugo" rjesenje koje sam dao ne valja... :?[/quote]
Jesi li probao unijeti broj koji je [b]manji[/b] od 17? Npr. ako uneses 1, onda ce tvoj program ispisati [tt]17[/tt], a da je rjesenje tocno ne bi ispisao nista.
13_mac (napisa): | Jesam, i ispalo mi je tocno.
Kod: | #include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do{
printf("%d", i);
i++;
}
while(i<n);
scanf("%%");
return 0;
} |
I opet mi nije jasno zasto mi sad ovo "drugo" rjesenje koje sam dao ne valja...  |
Jesi li probao unijeti broj koji je manji od 17? Npr. ako uneses 1, onda ce tvoj program ispisati 17, a da je rjesenje tocno ne bi ispisao nista.
_________________ Extraordinary claims require extraordinary evidence. – Carl Sagan
|
|
[Vrh] |
|
13_mac Forumaš(ica)


Pridružen/a: 23. 10. 2006. (22:56:13) Postovi: (D4)16
Spol: 
|
Postano: 16:39 sri, 2. 1. 2008 Naslov: |
|
|
Znam, unio sam, i vidio, ali reko-nije to tolko vazno za zad.... :oops: :oops:
I evo odmah ispravljeno:
[code:1]#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do{
[b]if(i<n)[/b]
printf("%d", i);
i++;
}
while(i<n);
scanf("%%");
return 0;
}[/code:1]
... i na kraju tocan zad. 8.5. :
/*rjesenje od (a) */
[code:1]prvi korak;
do{
if(UVJET){
TIJELO;
}
INKREMENT;
}
while(UVJET);
[/code:1]
//*Rjesenje od (b)*//
[code:1]prvi korak;
do{
if(UVJET){
TIJELO;
}
}
while(UVJET);[/code:1]
plz recite da je tocno ovaj put.......... :shock: :oops: :)
Znam, unio sam, i vidio, ali reko-nije to tolko vazno za zad....
I evo odmah ispravljeno:
Kod: | #include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do{
[b]if(i<n)[/b]
printf("%d", i);
i++;
}
while(i<n);
scanf("%%");
return 0;
} |
... i na kraju tocan zad. 8.5. :
/*rjesenje od (a) */
Kod: | prvi korak;
do{
if(UVJET){
TIJELO;
}
INKREMENT;
}
while(UVJET);
|
//*Rjesenje od (b)*//
Kod: | prvi korak;
do{
if(UVJET){
TIJELO;
}
}
while(UVJET); |
plz recite da je tocno ovaj put..........
_________________ Đante tanda fandiga?
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 16:51 sri, 2. 1. 2008 Naslov: |
|
|
[quote="13_mac"]Znam, unio sam, i vidio, ali reko-nije to tolko vazno za zad.... :oops: :oops:[/quote]
Kako onda mozes reci
[quote="13_mac"]Jesam, i ispalo mi je tocno.[/quote]
:?:
Inace, [tt]if()[/tt] stavi izvan petlje (nema potrebe da se izvrsava u svakom prolazu, plus sto ce ti ovako konacna vrijednost od [tt]i[/tt] biti razlicita). :)
Nadalje, zasto mislis da nemas slicni problem u podzadatku b)? :-k Lijepo primijeni rjesenje na neku [tt]while()[/tt] petlju i provjeri na isti nacin i vidjet ces da se opet vrti [b]barem jednom[/b], cak i u situacijama kad ne bi smjela niti jednom. 8)
13_mac (napisa): | Znam, unio sam, i vidio, ali reko-nije to tolko vazno za zad....  |
Kako onda mozes reci
13_mac (napisa): | Jesam, i ispalo mi je tocno. |
Inace, if() stavi izvan petlje (nema potrebe da se izvrsava u svakom prolazu, plus sto ce ti ovako konacna vrijednost od i biti razlicita).
Nadalje, zasto mislis da nemas slicni problem u podzadatku b)? Lijepo primijeni rjesenje na neku while() petlju i provjeri na isti nacin i vidjet ces da se opet vrti barem jednom, cak i u situacijama kad ne bi smjela niti jednom.
_________________ 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: 
|
Postano: 16:27 pet, 4. 1. 2008 Naslov: |
|
|
Konacno rjesenje (ako sada ne valja... uh... :cry: :? :shock: :x ):
prvo tvoj zad. :
(1) for( ) u do...while( )
[code:1]#include<stdio.h>
int main(void){
int n, i;
scanf("%d", &n);
for(i=17; i<n; i++)
printf("%d", i);
scanf("%%");
return 0;
}[/code:1]
ide u:
[code:1]#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do{
if(i<n)
printf("%d", i);
i++;
}while(i<n);
scanf("%%");
return 0;
}[/code:1]
(2)while( ) u do...while( )
[code:1]#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
while(i<n){
printf("%d", i);
i++;
}
scanf("%%");
return 0;
}[/code:1]
ide u:
[code:1]#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
if(i<n){
do{
printf("%d", i);
i++;
}while(i<n);
}
scanf("%%");
return 0;
}[/code:1]
i [i]konacno[/i] [b]pravi zad. [size=18]8.5.[/size][/b]
(1)for( ) u do...while( )
[code:1]prvi korak;
if(UVJET){
do{
TIJELO;
INKREMENT;
}while(UVJET);[/code:1]
(2)while( ) u do...while( )
[code:1]prvi korak;
if(UVJET){
do{
TIJELO;
}while(UVJET);[/code:1]
Mislim da je sad tocno... 8)
[b]p.s.[/b]
Btw,
@sego - "Inace, if() stavi izvan petlje (nema potrebe da se izvrsava u svakom prolazu, plus sto ce ti ovako konacna vrijednost od i biti razlicita). Smile" - @sego
--> kolko sam ja skuzio, po ponasanju programa prilikom kompajliranja & izvodjenja nije bitan if, jel on izvan petlja ili ne(moze se namjestiti oboje) nego je bitno da li ide prvo printf("%d", &i) ili i++ ! (a ti nisi ispustio inkrement i stavio ga prije printf-a ;))
Posto si ti dao taj primjer-zadatak gdje u for petlji program prvo ispise 17, pa tek onda izvodi inkrement.... :wink:
Konacno rjesenje (ako sada ne valja... uh... ):
prvo tvoj zad. :
(1) for( ) u do...while( )
Kod: | #include<stdio.h>
int main(void){
int n, i;
scanf("%d", &n);
for(i=17; i<n; i++)
printf("%d", i);
scanf("%%");
return 0;
} |
ide u:
Kod: | #include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do{
if(i<n)
printf("%d", i);
i++;
}while(i<n);
scanf("%%");
return 0;
} |
(2)while( ) u do...while( )
Kod: | #include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
while(i<n){
printf("%d", i);
i++;
}
scanf("%%");
return 0;
} |
ide u:
Kod: | #include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
if(i<n){
do{
printf("%d", i);
i++;
}while(i<n);
}
scanf("%%");
return 0;
} |
i konacno pravi zad. 8.5.
(1)for( ) u do...while( )
Kod: | prvi korak;
if(UVJET){
do{
TIJELO;
INKREMENT;
}while(UVJET); |
(2)while( ) u do...while( )
Kod: | prvi korak;
if(UVJET){
do{
TIJELO;
}while(UVJET); |
Mislim da je sad tocno...
p.s.
Btw,
@sego - "Inace, if() stavi izvan petlje (nema potrebe da se izvrsava u svakom prolazu, plus sto ce ti ovako konacna vrijednost od i biti razlicita). Smile" - @sego
→ kolko sam ja skuzio, po ponasanju programa prilikom kompajliranja & izvodjenja nije bitan if, jel on izvan petlja ili ne(moze se namjestiti oboje) nego je bitno da li ide prvo printf("%d", &i) ili i++ ! (a ti nisi ispustio inkrement i stavio ga prije printf-a )
Posto si ti dao taj primjer-zadatak gdje u for petlji program prvo ispise 17, pa tek onda izvodi inkrement....
_________________ Đante tanda fandiga?
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 21:33 pet, 4. 1. 2008 Naslov: |
|
|
[tt]if(UVJET){[/tt] :arrow: ili je [tt]{[/tt] visak ili to treba negdje zatvoriti. :P
Sto se polozaja [tt]if()[/tt]-a tice, u onom konretnom primjeru nije bitan (do na brzinu izvrsavanja, sto je zanemarivo), no cijelo vrijeme trazimo opcenita rjesenja. :? Vidi:
[code:1]$ cat t.c; gcc t.c && echo 13 | ./a.out
#include<stdio.h>
int main(void){
int n, i;
scanf("%d", &n);
for(i=17; i<n; i++) printf("%d\n", i);
printf("i = %d\n", i);
return 0;
}
i = 17
$ cat t2.c; gcc t2.c && echo 13 | ./a.out
#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do {
if (i < n) printf("%d\n", i);
i++;
} while (i < n);
printf("i = %d\n", i);
return 0;
}
i = 18[/code:1]
Na tvoje kodove sam dodao samo [tt]printf("i = %d\n", i);[/tt] iza petlje i - dobio razlicito! :-o Je l' sada jasnije zasto se ta dva programa ne ponasaju ekvivalentno? ;)
if(UVJET){ ili je { visak ili to treba negdje zatvoriti.
Sto se polozaja if()-a tice, u onom konretnom primjeru nije bitan (do na brzinu izvrsavanja, sto je zanemarivo), no cijelo vrijeme trazimo opcenita rjesenja. Vidi:
Kod: | $ cat t.c; gcc t.c && echo 13 | ./a.out
#include<stdio.h>
int main(void){
int n, i;
scanf("%d", &n);
for(i=17; i<n; i++) printf("%d\n", i);
printf("i = %d\n", i);
return 0;
}
i = 17
$ cat t2.c; gcc t2.c && echo 13 | ./a.out
#include<stdio.h>
int main(void){
int n, i=17;
scanf("%d", &n);
do {
if (i < n) printf("%d\n", i);
i++;
} while (i < n);
printf("i = %d\n", i);
return 0;
}
i = 18 |
Na tvoje kodove sam dodao samo printf("i = %d\n", i); iza petlje i - dobio razlicito! Je l' sada jasnije zasto se ta dva programa ne ponasaju ekvivalentno?
_________________ 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] |
|
|