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: (3560)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: (3560)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: (3560)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: (3560)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: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
|