| 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:
Nije.
 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] :)
   
 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.
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... :?
 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:
Znam, unio sam, i vidio, ali reko-nije to tolko vazno za zad....
 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:  :)
     
 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 ):
Konacno rjesenje (ako sada ne valja... uh...
 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:
        ): 
 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
if(UVJET){
 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? ;)
  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] |  | 
	
		|  |