Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
sara Forumaš(ica)
Pridružen/a: 18. 09. 2006. (22:10:57) Postovi: (4)16
|
|
[Vrh] |
|
sara Forumaš(ica)
Pridružen/a: 18. 09. 2006. (22:10:57) Postovi: (4)16
|
|
[Vrh] |
|
pecina Forumaš(ica)
Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol:
Lokacija: Happily traveling through space since 1986!
|
Postano: 21:14 pet, 22. 9. 2006 Naslov: |
|
|
1. zadatak
[code:1]int *func(int polje[], int n, int *m)
{
// odma upola manje indeksa jer gledamo samo neparne
int *y = (int*)malloc(sizeof(int) * n / 2 + 1);
*m = 0; // resetiraj brojac
for (int i = 0; i < n; ++i)
{
if (i % 2) // index neparan
{
int potencija = 0, index = i;
// dijeli sa dva
while (index % 2 == 0) {potencija++; index %= 2}
if (potencija % 2 == 0)
{
// dodaj element
y[*m] = polje[i];
++(*m);
}
}
}
if (!*m)
{
// ne triba nam y
free(y);
return 0;
}
// ovo nisam siguran da li triba ali ono, reda radi smanji y jer očito ima viška elemenata
y = realloc(y, sizeof(int) * *m);
return y;
}[/code:1]
pitaj sto ti je nejasno
1. zadatak
Kod: | int *func(int polje[], int n, int *m)
{
// odma upola manje indeksa jer gledamo samo neparne
int *y = (int*)malloc(sizeof(int) * n / 2 + 1);
*m = 0; // resetiraj brojac
for (int i = 0; i < n; ++i)
{
if (i % 2) // index neparan
{
int potencija = 0, index = i;
// dijeli sa dva
while (index % 2 == 0) {potencija++; index %= 2}
if (potencija % 2 == 0)
{
// dodaj element
y[*m] = polje[i];
++(*m);
}
}
}
if (!*m)
{
// ne triba nam y
free(y);
return 0;
}
// ovo nisam siguran da li triba ali ono, reda radi smanji y jer očito ima viška elemenata
y = realloc(y, sizeof(int) * *m);
return y;
} |
pitaj sto ti je nejasno
_________________ -- space available for rent --
|
|
[Vrh] |
|
pecina Forumaš(ica)
Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol:
Lokacija: Happily traveling through space since 1986!
|
Postano: 21:25 pet, 22. 9. 2006 Naslov: 2. zadatak |
|
|
[code:1]int main(int argv, char *argc[])
{
// ulazna je druga a izlazna treća varijabla
// otvorimo je dakle!
FILE *pUlazna = fopen(argc[1], "r")
, *pIzlazna = fopen(argc[2], "w");
char pstrRijec[64] = "";
// dok ne dodem do kraja
while (!feof(pFile))
{
fscanf(pUlazna, "%s", pstrRijec);
if (strlen(pstrRijec) < 6)
{
for (int i = 0; i < 6; ++i)
if (isalpha(pstrRijec[i]))
{
fprintf(pIzlazna, "%s\n", pstrRijec);
break;
}
}
}
// uvijek čistimo za sobom
fclose(pUlazna);
fclose(pIzlazna);
return 0;
}[/code:1]
Nisam siguran jer pišem napamet ali otprilike ovako. Pliz ispravite me ko zna :oops:
Kod: | int main(int argv, char *argc[])
{
// ulazna je druga a izlazna treća varijabla
// otvorimo je dakle!
FILE *pUlazna = fopen(argc[1], "r")
, *pIzlazna = fopen(argc[2], "w");
char pstrRijec[64] = "";
// dok ne dodem do kraja
while (!feof(pFile))
{
fscanf(pUlazna, "%s", pstrRijec);
if (strlen(pstrRijec) < 6)
{
for (int i = 0; i < 6; ++i)
if (isalpha(pstrRijec[i]))
{
fprintf(pIzlazna, "%s\n", pstrRijec);
break;
}
}
}
// uvijek čistimo za sobom
fclose(pUlazna);
fclose(pIzlazna);
return 0;
} |
Nisam siguran jer pišem napamet ali otprilike ovako. Pliz ispravite me ko zna
_________________ -- space available for rent --
|
|
[Vrh] |
|
sara Forumaš(ica)
Pridružen/a: 18. 09. 2006. (22:10:57) Postovi: (4)16
|
Postano: 18:42 sub, 23. 9. 2006 Naslov: |
|
|
e,puno ti fala!Nego,jel mogu ovaj prvi malo drukcije,sad cu napisat kod i neka ga neko pliz popravi jer mislin da to bas i ne valja i nadopuni sta fali:
int *izdvoji(int *X, int n, int *m){
int *Y, i, l, br=0;
*m=0;
for(i=1; i<n; i+=2){
for(l=0; pow(2,l)<=X[i]; l++){
if((X[i]%pow(2,l))==0){
if(l%2==0)
Y[*m]=X[i];
}
}
++(*m);
++br;
}
Y=(int*)malloc(br*sizeof(int));
for(i=1; i<n; i+=2)
printf("%d",Y[i]);
}
e,puno ti fala!Nego,jel mogu ovaj prvi malo drukcije,sad cu napisat kod i neka ga neko pliz popravi jer mislin da to bas i ne valja i nadopuni sta fali:
int *izdvoji(int *X, int n, int *m){
int *Y, i, l, br=0;
*m=0;
for(i=1; i<n; i+=2){
for(l=0; pow(2,l)⇐X[i]; l++){
if((X[i]%pow(2,l))==0){
if(l%2==0)
Y[*m]=X[i];
}
}
++(*m);
++br;
}
Y=(int*)malloc(br*sizeof(int));
for(i=1; i<n; i+=2)
printf("%d",Y[i]);
}
|
|
[Vrh] |
|
pecina Forumaš(ica)
Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol:
Lokacija: Happily traveling through space since 1986!
|
Postano: 9:35 ned, 24. 9. 2006 Naslov: |
|
|
Ne možeš ispuniti Y ako ga jos nisi kreirala, malloc mora doći prije nego što puniš Y.
[code:1]for(l=0; pow(2,l)<=X[i]; l++)
{
if((X[i]%pow(2,l))==0)
{
if(l%2==0)
Y[*m]=X[i];
}
} [/code:1]
To nije dobro. Ti tražiš najveću potenciju kojom je djeljiv X[i] i da ona bude neparna.. Logičnije je naći najveću kojom je djeljiv, pogledati da li je parna (ako je neparna onda ništa) i onda ga dodati. Ti ovdje stavlješ isti element u Y više puta tj. za svaku parnu potenciju kojom je djeljiv,
Šta se tiče optimizacije, kako već u startu gledaš samo neparne indekse, taj uvjet gledaš prvi jer je lakše taj uvjet provjeriti. Dapače, možeš si petlju napraviti da ide samo po parnim indeksima :)
-------------------------------------------------------------
Naša sam grešku u mom kodu. Umjesto
[code:1]int potencija = 0, index = i; [/code:1]
ide
[code:1]int potencija = 0, index = polje[i]; [/code:1]
Ne možeš ispuniti Y ako ga jos nisi kreirala, malloc mora doći prije nego što puniš Y.
Kod: | for(l=0; pow(2,l)<=X[i]; l++)
{
if((X[i]%pow(2,l))==0)
{
if(l%2==0)
Y[*m]=X[i];
}
} |
To nije dobro. Ti tražiš najveću potenciju kojom je djeljiv X[i] i da ona bude neparna.. Logičnije je naći najveću kojom je djeljiv, pogledati da li je parna (ako je neparna onda ništa) i onda ga dodati. Ti ovdje stavlješ isti element u Y više puta tj. za svaku parnu potenciju kojom je djeljiv,
Šta se tiče optimizacije, kako već u startu gledaš samo neparne indekse, taj uvjet gledaš prvi jer je lakše taj uvjet provjeriti. Dapače, možeš si petlju napraviti da ide samo po parnim indeksima
-------------------------------------------------------------
Naša sam grešku u mom kodu. Umjesto
Kod: | int potencija = 0, index = i; |
ide
Kod: | int potencija = 0, index = polje[i]; |
_________________ -- space available for rent --
|
|
[Vrh] |
|
beba Forumaš(ica)
Pridružen/a: 17. 08. 2006. (00:00:41) Postovi: (41)16
Lokacija: st-ZG
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
MKova Forumaš(ica)
Pridružen/a: 01. 10. 2005. (18:24:38) Postovi: (187)16
Spol:
|
Postano: 15:21 pon, 12. 3. 2007 Naslov: |
|
|
scanf("%%"); bi trebao raditi... vjerovatno ni ne dođe do toga, ajde napiši samo program koji ima samo red ispisa i tu naredbu u mainu pa vidi jel radi.
ako to ne upali:
odi do svog direktorija u windows exploreru gdje si kompajlirala taj program i kopiraj path (lokaciju pod adress), npr. [i]"E:\Downloads\Temp2"[/i]
win + run>cmd>enter
sad imaš taj crni terminal, napiši "cd ime_dira", gdje je ime_dira ono što si kopirala prije, stisni enter. Kod našeg primjera to je [i]"cd E:\Downloads\Temp2"[/i] + enter.
program pokreni tako da napišeš njegovo ime + enter, npr "program" + enter.
scanf("%%"); bi trebao raditi... vjerovatno ni ne dođe do toga, ajde napiši samo program koji ima samo red ispisa i tu naredbu u mainu pa vidi jel radi.
ako to ne upali:
odi do svog direktorija u windows exploreru gdje si kompajlirala taj program i kopiraj path (lokaciju pod adress), npr. "E:\Downloads\Temp2"
win + run>cmd>enter
sad imaš taj crni terminal, napiši "cd ime_dira", gdje je ime_dira ono što si kopirala prije, stisni enter. Kod našeg primjera to je "cd E:\Downloads\Temp2" + enter.
program pokreni tako da napišeš njegovo ime + enter, npr "program" + enter.
_________________ suradnici za razvoj igre traženi!! vidi ovo
|
|
[Vrh] |
|
beba Forumaš(ica)
Pridružen/a: 17. 08. 2006. (00:00:41) Postovi: (41)16
Lokacija: st-ZG
|
Postano: 18:22 pon, 12. 3. 2007 Naslov: |
|
|
#include <stdio.h>
int main (void){
int a, b, c, rez;
int absa, absb, absc;
printf("unesite brojeve:");
scanf("%d %d %d ",&a, &b,&c);
if(a>=0)
absa=a;
else absa=-a;
if(b>=0)
absb=b;
else absa=-b;
if(c>=0)
absa=c;
else absa=-c;
rez=a;
if(absb<absa){
rez=b;
if (absc<absb)
rez=c;
}
else
if (absc<absa)
rez=c;
printf("trazeni broj je:%d",rez);
scanf("%%");
return 0;
}
#include <stdio.h>
int main (void){
int a, b, c, rez;
int absa, absb, absc;
printf("unesite brojeve:");
scanf("%d %d %d ",&a, &b,&c);
if(a>=0)
absa=a;
else absa=-a;
if(b>=0)
absb=b;
else absa=-b;
if(c>=0)
absa=c;
else absa=-c;
rez=a;
if(absb<absa){
rez=b;
if (absc<absb)
rez=c;
}
else
if (absc<absa)
rez=c;
printf("trazeni broj je:%d",rez);
scanf("%%");
return 0;
}
|
|
[Vrh] |
|
pecina Forumaš(ica)
Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol:
Lokacija: Happily traveling through space since 1986!
|
Postano: 19:04 pon, 12. 3. 2007 Naslov: |
|
|
imaš grešku[code:1]if(c>=0)
absa=c;
else absa=-c; [/code:1]
treba biti[code:1]if(c>=0)
absc=c;
else absc=-c; [/code:1]
E i promijeni
[code:1]scanf("%d %d %d ",&a, &b,&c);[/code:1]
u[code:1]scanf(" %d %d %d",&a, &b,&c);[/code:1]
Pogledaj di dolazi razmak, prije '%' a ne nakon '%d'
imaš grešku Kod: | if(c>=0)
absa=c;
else absa=-c; |
treba biti Kod: | if(c>=0)
absc=c;
else absc=-c; |
E i promijeni
Kod: | scanf("%d %d %d ",&a, &b,&c); |
u Kod: | scanf(" %d %d %d",&a, &b,&c); |
Pogledaj di dolazi razmak, prije '%' a ne nakon '%d'
_________________ -- space available for rent --
|
|
[Vrh] |
|
beba Forumaš(ica)
Pridružen/a: 17. 08. 2006. (00:00:41) Postovi: (41)16
Lokacija: st-ZG
|
|
[Vrh] |
|
dosed_girl Forumaš(ica)
Pridružen/a: 04. 12. 2006. (21:01:46) Postovi: (6F)16
Spol:
Lokacija: -zG-
|
Postano: 16:18 sub, 17. 3. 2007 Naslov: |
|
|
eto, da ne otvaram novi topic bzvz, ovdje cu napisat..
ovako..pocetnik sam u programiranju. i pocela sam pisat te programcice neke u c-u i kompajlirat. uglavnom sam pisala one zadatke iz skripte, koje smo radili na vjezbama..al dosta tih programa se krivo izvrsava il se uopce ne izvrsi..npr. zadatak 5.4.: napisite program koji ucitava prirodne brojeve i ispisuje njihovu sumu. ucitavanje treba prekinuti kad korisnik upise nulu.
i sad ja napisem sve tocno onak kak pise u skripti. program se kompajlira, ali kad unesem npr. dva broja on mi napise:
unesite broj: unesite broj:
neznam, glupo mi je ic s takvim zadacicima na demonstrature il konzultacije..recimo da me sram. pa eto, ak bi mi neko mogao rec tocno rjesenje ovak. fala :wink:
eto, da ne otvaram novi topic bzvz, ovdje cu napisat..
ovako..pocetnik sam u programiranju. i pocela sam pisat te programcice neke u c-u i kompajlirat. uglavnom sam pisala one zadatke iz skripte, koje smo radili na vjezbama..al dosta tih programa se krivo izvrsava il se uopce ne izvrsi..npr. zadatak 5.4.: napisite program koji ucitava prirodne brojeve i ispisuje njihovu sumu. ucitavanje treba prekinuti kad korisnik upise nulu.
i sad ja napisem sve tocno onak kak pise u skripti. program se kompajlira, ali kad unesem npr. dva broja on mi napise:
unesite broj: unesite broj:
neznam, glupo mi je ic s takvim zadacicima na demonstrature il konzultacije..recimo da me sram. pa eto, ak bi mi neko mogao rec tocno rjesenje ovak. fala
_________________ a part of me gets sick / a part of me gets sore
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 16:26 sub, 17. 3. 2007 Naslov: |
|
|
Ovo je prvi put da se radi po toj skripti i ima gresaka. :oops: Vecinu bi studenti morali znati samostalno ispraviti (ali bih volio i da mi javite greske ;)). Na primjer, ovdje je greska u
[tt]scanf("[color=red]&[/color]u", &x);[/tt]
Treba, naravno, biti
[tt]scanf("%u", &x);[/tt]
:)
Ovo je prvi put da se radi po toj skripti i ima gresaka. Vecinu bi studenti morali znati samostalno ispraviti (ali bih volio i da mi javite greske ). Na primjer, ovdje je greska u
scanf("&u", &x);
Treba, naravno, biti
scanf("%u", &x);
_________________ 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] |
|
dosed_girl Forumaš(ica)
Pridružen/a: 04. 12. 2006. (21:01:46) Postovi: (6F)16
Spol:
Lokacija: -zG-
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 16:50 sub, 17. 3. 2007 Naslov: |
|
|
Vecina tih programa nastaje copy/paste-om, pa je obicno rijec o istoj greski. :) Sad ispravih (nadam se) sve takve greske i ispade da ih ima 14. :shock: Necu jos uploadati; mozda iskrsne jos ponesto, ali racunaj da nisam radio cuda sa [tt]scanf()[/tt]-om, pa niti u jednom ne bi smjelo biti stvari koje nisu formati (ako i ima, to je onda jako naglaseno). ;)
Druga greska koja se dogadja je kod [tt]printf()[/tt], kad imas nesto ovakvo:
[code:1]printf("Najveci ucitani broj je %d, ucitan");
printf(" %d. po redu.\n", max, im);[/code:1]
Ovdje je jedan [tt]printf()[/tt] razbijen na dva zbog prijeloma stranica. :) No, nije izvedeno ispravno; treba ici
[code:1]printf("Najveci ucitani broj je %d, ucitan", max);
printf(" %d. po redu.\n", im);[/code:1]
Ovo ne mogu skuziti automatski (kao onih 14 gore), pa molim da mi javite i ostale takve greske, preferably u PM ili mail (da se ne blamiram bas previse u javnosti ;)).
Vecina tih programa nastaje copy/paste-om, pa je obicno rijec o istoj greski. Sad ispravih (nadam se) sve takve greske i ispade da ih ima 14. Necu jos uploadati; mozda iskrsne jos ponesto, ali racunaj da nisam radio cuda sa scanf()-om, pa niti u jednom ne bi smjelo biti stvari koje nisu formati (ako i ima, to je onda jako naglaseno).
Druga greska koja se dogadja je kod printf(), kad imas nesto ovakvo:
Kod: | printf("Najveci ucitani broj je %d, ucitan");
printf(" %d. po redu.\n", max, im); |
Ovdje je jedan printf() razbijen na dva zbog prijeloma stranica. No, nije izvedeno ispravno; treba ici
Kod: | printf("Najveci ucitani broj je %d, ucitan", max);
printf(" %d. po redu.\n", im); |
Ovo ne mogu skuziti automatski (kao onih 14 gore), pa molim da mi javite i ostale takve greske, preferably u PM ili mail (da se ne blamiram bas previse u javnosti ).
_________________ 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] |
|
|