| Prethodna tema :: Sljedeća tema   | 
	
	
	
		| Autor/ica | 
		Poruka | 
	
	
		matmih Forumaš(ica)
  
  
  Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16 
Spol:   
Lokacija: {Zg, De , Ri} 
		 | 
		
			
				 Postano: 20:15 čet, 22. 3. 2007    Naslov: Pomoć oko zadatka 1.7 | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         [code:1]#include <stdio.h>
 
 int f(int k, int a, int b){
 int cnt=0,x;
 for (x=a; x<=b;x++)
 if (k%x==0) cnt++;
 return cnt;
 }
 
 void zad (int a, int b, int *br){
 int k,i;
 *br=0;
 for (k=b+1;k<=a+b;k++){
 int fk=f(k,a,b);
 if (fk>*br) *br=fk;
 printf("%d: ",k);
 for (i=0;i<fk;i++) printf("#");
 printf("\n");
 }
 }
 
 int main(void) {
 int res;
 zad(3, 9, &res);
 printf("Rezultat: %d\n", res);
 scanf("%%");
 return 0;
 }
 [/code:1]
 
 Zanima me na šta pokazuje *br i kako to vidim?
 I čemu služi:
 [code:1] if (fk>*br) *br=fk; [/code:1]
 
 Zaboravio sam od prošlog tjedna.  :oops: 
					
					 	  | Kod: | 	 		  #include <stdio.h>
 
 
int f(int k, int a, int b){
 
int cnt=0,x;
 
for (x=a; x<=b;x++)
 
if (k%x==0) cnt++;
 
return cnt;
 
}
 
 
void zad (int a, int b, int *br){
 
int k,i;
 
*br=0;
 
for (k=b+1;k<=a+b;k++){
 
int fk=f(k,a,b);
 
if (fk>*br) *br=fk;
 
printf("%d: ",k);
 
for (i=0;i<fk;i++) printf("#");
 
printf("\n");
 
}
 
}
 
 
int main(void) {
 
int res;
 
zad(3, 9, &res);
 
printf("Rezultat: %d\n", res);
 
scanf("%%");
 
return 0;
 
}
 
 | 	  
 
 
Zanima me na šta pokazuje *br i kako to vidim?
 
I čemu služi:
 
 
 
Zaboravio sam od prošlog tjedna.   
					
 
  
					
					
					
				 | 
			 
		  | 
	
	
		| [Vrh] | 
		 | 
	
	
		vsego Site Admin
  
  
  Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		
			
				 Postano: 21:21 čet, 22. 3. 2007    Naslov: Re: Pomoć oko zadatka 1.7 | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         [code:1]
 void zad(int a, int b, int *br){
 ...
      zad(    3,     9,    &res);[/code:1]
 
 Sada jasnije? :D 
					
					 	  | Kod: | 	 		  
 
void zad(int a, int b, int *br){
 
...
 
     zad(    3,     9,    &res); | 	  
 
 
Sada jasnije?  
					_________________ 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] | 
		 | 
	
	
		matmih Forumaš(ica)
  
  
  Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16 
Spol:   
Lokacija: {Zg, De , Ri} 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		vsego Site Admin
  
  
  Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		matmih Forumaš(ica)
  
  
  Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16 
Spol:   
Lokacija: {Zg, De , Ri} 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		MKova Forumaš(ica)
  
  
  Pridružen/a: 01. 10. 2005. (18:24:38) Postovi: (187)16 
Spol:   
 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		vsego Site Admin
  
  
  Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		matmih Forumaš(ica)
  
  
  Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16 
Spol:   
Lokacija: {Zg, De , Ri} 
		 | 
		
			
				 Postano: 0:20 pet, 23. 3. 2007    Naslov:  | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         Windows nažalost.  :( 
 
 No [url=http://www.cs.utah.edu/dept/old/texinfo/glibc-manual-0.02/library_19.html#SEC313] ovdje [/url] sam vidio da u time.h postoji neka funkcija time_t, samo neznam kako je pozvati.
 A u devC helpu piše:
 Data and Time Functions: <time.h>
 
 clock_t clock(void) 
 
 time_t time(time_t , *tp 
 
 double difftime(time_t time2 , time_t time1) 
 
 time_t mktime(struct tm *tp) 
 
 char *asctime(const time_t *tp) 
 
 char *ctime(const time_t *tp) 
 
 struct tm *gmtime(const time_t *tp) 
 
 struct tm *localtime(const time_t *tp) 
 
 size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp) 
					
					Windows nažalost.    
 
 
No  ovdje  sam vidio da u time.h postoji neka funkcija time_t, samo neznam kako je pozvati.
 
A u devC helpu piše:
 
Data and Time Functions: <time.h>
 
 
clock_t clock(void) 
 
 
time_t time(time_t , *tp 
 
 
double difftime(time_t time2 , time_t time1) 
 
 
time_t mktime(struct tm *tp) 
 
 
char *asctime(const time_t *tp) 
 
 
char *ctime(const time_t *tp) 
 
 
struct tm *gmtime(const time_t *tp) 
 
 
struct tm *localtime(const time_t *tp) 
 
 
size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp)
					
 
  
					
					
					
				 | 
			 
		  | 
	
	
		| [Vrh] | 
		 | 
	
	
		MKova Forumaš(ica)
  
  
  Pridružen/a: 01. 10. 2005. (18:24:38) Postovi: (187)16 
Spol:   
 
		 | 
		
			
				 Postano: 1:23 pet, 23. 3. 2007    Naslov:  | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         pa kako ti je promaklo? Sve ti kaže:
 
 Function: time_t time (time_t *result)
 The time function returns the current time as a value of type time_t. If the argument result is not a null pointer, the time value is also stored in *result. If the calendar time is not available, the value (time_t)(-1) is returned. 
 
 Data Type: time_t
 This is the data type used to represent calendar time. In the GNU C library and other POSIX-compliant implementations, time_t is equivalent to long int. When interpreted as an absolute time value, it represents the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time. (This date is sometimes referred to as the epoch.) 
 
 .... dakle, neisprobano ali trebalo bi raditi:
 [code:1]
 include <time.h>
 //...
 time_t mjerenje1;
 time_t mjerenje2;
 //...
 mjerenje1 = time(null);
 // radi neki vrag što se mjeri...
 mjerenje2 = time(null);
 printf("rezultat je %d", mjerenje2-mjerenje1);
 [/code:1]
 
 edit: ili koristi difftime(), za što i postoji jer kao oduzimanje ne radi svugdje...
 
 edit2:
 [quote="matmih"]Windows nažalost.  :( 
 
 No [url=http://www.cs.utah.edu/dept/old/texinfo/glibc-manual-0.02/library_19.html#SEC313] ovdje [/url] sam vidio da u time.h postoji neka funkcija time_t, samo neznam kako je pozvati.[/quote]
 aha... vidim kako ti je promaklo... time_t nije funckija, već tip podataka koji recimo time() vraća. 
					
					pa kako ti je promaklo? Sve ti kaže:
 
 
Function: time_t time (time_t *result)
 
The time function returns the current time as a value of type time_t. If the argument result is not a null pointer, the time value is also stored in *result. If the calendar time is not available, the value (time_t)(-1) is returned. 
 
 
Data Type: time_t
 
This is the data type used to represent calendar time. In the GNU C library and other POSIX-compliant implementations, time_t is equivalent to long int. When interpreted as an absolute time value, it represents the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time. (This date is sometimes referred to as the epoch.) 
 
 
.... dakle, neisprobano ali trebalo bi raditi:
 
 	  | Kod: | 	 		  
 
include <time.h>
 
//...
 
time_t mjerenje1;
 
time_t mjerenje2;
 
//...
 
mjerenje1 = time(null);
 
// radi neki vrag što se mjeri...
 
mjerenje2 = time(null);
 
printf("rezultat je %d", mjerenje2-mjerenje1);
 
 | 	  
 
 
edit: ili koristi difftime(), za što i postoji jer kao oduzimanje ne radi svugdje...
 
 
edit2:
 
 	  | matmih (napisa): | 	 		  Windows nažalost.    
 
 
No  ovdje  sam vidio da u time.h postoji neka funkcija time_t, samo neznam kako je pozvati. | 	  
 
aha... vidim kako ti je promaklo... time_t nije funckija, već tip podataka koji recimo time() vraća.
					_________________ suradnici za razvoj igre traženi!!  vidi ovo 
					
					
					
				 | 
			 
		  | 
	
	
		| [Vrh] | 
		 | 
	
	
		matmih Forumaš(ica)
  
  
  Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16 
Spol:   
Lokacija: {Zg, De , Ri} 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		milasinovic Moderator
  
  
  Pridružen/a: 25. 11. 2002. (17:03:32) Postovi: (18)16 
Spol:   
Lokacija: FER-D374 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		matmih Forumaš(ica)
  
  
  Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16 
Spol:   
Lokacija: {Zg, De , Ri} 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		vsego Site Admin
  
  
  Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		
			
				 Postano: 0:46 sub, 24. 3. 2007    Naslov:  | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         I sad pretpostavi da imas 1000 puta brze racunalo (sto neces jos dugo imati ;))... i dalje je krvolocno, right? ;)
 
 Eh, to je zato jer je taj algoritam [b]los[/b] u terminima slozenosti (ima exponencijalnu slozenost). :D Nerekurzivni je linearan, sto je bitno bolje (usporedi 1000000 i c^1000000, gdje je c>1; experimentalno izmedju 1.5 i 1.8, ako se ne varam). :D 
					
					I sad pretpostavi da imas 1000 puta brze racunalo (sto neces jos dugo imati  )... i dalje je krvolocno, right?  
 
 
Eh, to je zato jer je taj algoritam los u terminima slozenosti (ima exponencijalnu slozenost).   Nerekurzivni je linearan, sto je bitno bolje (usporedi 1000000 i c^1000000, gdje je c>1; experimentalno izmedju 1.5 i 1.8, ako se ne varam).  
					_________________ 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] | 
		 | 
	
	
		matmih Forumaš(ica)
  
  
  Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16 
Spol:   
Lokacija: {Zg, De , Ri} 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		matmih Forumaš(ica)
  
  
  Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16 
Spol:   
Lokacija: {Zg, De , Ri} 
		 | 
		
			
				 Postano: 22:08 čet, 29. 3. 2007    Naslov:  | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         Upravo sam probao rješiti zadatak 2.3:
 Funkcija je zadana:
 f(a,b)=1, a=b=0
 -f(-2a,b), a<0,b>=0
 -f(-2b,a),  a>=0,b<0
 f(a+1,0)+f(0,b-3), a<0,b<0
 f(7-b,a), inače
 
 I sad, ja sam probao izračunati f(8,8 ).
 Dobijem ovako:
 [code:1]
 f(8,8)=f(-1,8)
 f(-1,8)=-f(2,8)
 f(2,8)=f(-1,2)
 f(-1,2)=-f(2,2)
 f(2,2)=f(5,2)
 f(5,2)=f(5,5)
 f(5,5)=f(2,5)
 f(2,5)=f(2,2) [/code:1]....i tako dobijem beskonačnu rekurziju. Program sam naravno utipkao i u komp i program se sruši. 
					
					Upravo sam probao rješiti zadatak 2.3:
 
Funkcija je zadana:
 
f(a,b)=1, a=b=0
 
-f(-2a,b), a<0,b>=0
 
-f(-2b,a),  a>=0,b<0
 
f(a+1,0)+f(0,b-3), a<0,b<0
 
f(7-b,a), inače
 
 
I sad, ja sam probao izračunati f(8,8 ).
 
Dobijem ovako:
 
 	  | Kod: | 	 		  
 
f(8,8)=f(-1,8)
 
f(-1,8)=-f(2,8)
 
f(2,8)=f(-1,2)
 
f(-1,2)=-f(2,2)
 
f(2,2)=f(5,2)
 
f(5,2)=f(5,5)
 
f(5,5)=f(2,5)
 
f(2,5)=f(2,2)  | 	  ....i tako dobijem beskonačnu rekurziju. Program sam naravno utipkao i u komp i program se sruši.
					
 
  
					
					
					
				 | 
			 
		  | 
	
	
		| [Vrh] | 
		 | 
	
	
		vsego Site Admin
  
  
  Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		 |