Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

zadatak
WWW:
Idite na 1, 2  Sljedeće
Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Gost






PostPostano: 19:08 sub, 10. 6. 2006    Naslov: zadatak Citirajte i odgovorite

jel mi može netko pojasnit ispis ovog zadatka? :?

char x[]={'a','b','c','d'},*px,*py;
py=&x[3]-2;
px=py--;
*px=px[1]-x[2]+'e';
py[2]=--(*px)-*(x+3)+'a';
printf("%c %c %c %c %d",x[0],x[1],x[2],*px,py-px);

trebalo bi ispisat: a d a d -1
jel mi može netko pojasnit ispis ovog zadatka? Confused

char x[]={'a','b','c','d'},*px,*py;
py=&x[3]-2;
px=py–;
*px=px[1]-x[2]+'e';
py[2]=–(*px)-*(x+3)+'a';
printf("%c %c %c %c %d",x[0],x[1],x[2],*px,py-px);

trebalo bi ispisat: a d a d -1


[Vrh]
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3561)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:32 sub, 10. 6. 2006    Naslov: Citirajte i odgovorite

char x[]={'a','b','c','d'},*px,*py;
:arrow: [b]x: a b c d[/b]
py=&x[3]-2
:arrow: py je adresa od x[3] minus 2, tj. adresa onoga tko se nalazi dva mjesta prije x[3], a to je x[1]
:arrow: [b]py = adresa od x[1][/b]
px=py--;
:arrow: py smanji za jedan, a px-u pridruzi staru vrijednost od py
:arrow: [b]px = adresa od x[1]; py = adresa od x[0][/b]
*px=px[1]-x[2]+'e';
:arrow: elementu na koji pokazuje px pridruzi px[1]-x[2]+'e'
:arrow: px[1] = *(px + 1) = prvi nakon onoga na koga pokazuje px = x[2]
:arrow: *px = [b]x[1] = 'e'[/b]
py[2]=--(*px)-*(x+3)+'a';
:arrow: --(*px) smanji sadrzaj onoga na sto pokazuje px (a to je x[1], cija je vrijednost trenutno 'e') i vrati novu vrijednost,
:nosmile: *(x+3) = x[3]
:nosmile: py[2] = *(py + 2) = *(&x[0] + 2) = *(x + 2) = x[2]
:arrow: [b]x[2] = (x[1] = 'd') - x[3] + 'a' = 'a'; x[1] = 'd'[/b]

Iz svega toga:
:nosmile: x[0] = 'a', x[1] = 'd', x[2] = 'a', x[3] = 'd', px = &x[1], py = &x[0]

printf("%c %c %c %c %d",x[0],x[1],x[2],*px,py-px);
:arrow: a d a d -1

:D
char x[]={'a','b','c','d'},*px,*py;
Arrow x: a b c d
py=&x[3]-2
Arrow py je adresa od x[3] minus 2, tj. adresa onoga tko se nalazi dva mjesta prije x[3], a to je x[1]
Arrow py = adresa od x[1]
px=py–;
Arrow py smanji za jedan, a px-u pridruzi staru vrijednost od py
Arrow px = adresa od x[1]; py = adresa od x[0]
*px=px[1]-x[2]+'e';
Arrow elementu na koji pokazuje px pridruzi px[1]-x[2]+'e'
Arrow px[1] = *(px + 1) = prvi nakon onoga na koga pokazuje px = x[2]
Arrow *px = x[1] = 'e'
py[2]=–(*px)-*(x+3)+'a';
Arrow –(*px) smanji sadrzaj onoga na sto pokazuje px (a to je x[1], cija je vrijednost trenutno 'e') i vrati novu vrijednost,
Empty space 15x15 *(x+3) = x[3]
Empty space 15x15 py[2] = *(py + 2) = *(&x[0] + 2) = *(x + 2) = x[2]
Arrow x[2] = (x[1] = 'd') - x[3] + 'a' = 'a'; x[1] = 'd'

Iz svega toga:
Empty space 15x15 x[0] = 'a', x[1] = 'd', x[2] = 'a', x[3] = 'd', px = &x[1], py = &x[0]

printf("%c %c %c %c %d",x[0],x[1],x[2],*px,py-px);
Arrow a d a d -1

Very Happy



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Gost






PostPostano: 10:00 ned, 11. 6. 2006    Naslov: Citirajte i odgovorite

sad mi je jasno! :D

HVALA!
sad mi je jasno! Very Happy

HVALA!


[Vrh]
nana
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 29. 11. 2005. (12:24:35)
Postovi: (2AD)16
Spol: žensko
Sarma = la pohva - posuda
95 = 158 - 63

PostPostano: 10:30 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

[quote]Napisite program koji ucitava prirodan broj a, dinamicki alocira mjesto za polje p od a podataka tipa char, te ucitava elemente tog polja. Program treba stvoriti praznu vezanu listu, te iz polja p u vezanu listu
ubaciti sva mala slova koja se pojavljuju u polju p. Ubacivanje u vezanu listu treba realizirati ubacivanjem na kraj vezane liste. Nakon toga, iz liste treba izbaciti svaki treci cvor, tj. treba izbaciti prvi, cetvrti, sedmi, itd.
cvor.[/quote]

Smijem li elemnete polja ucitati kao string?
Smijem li pretpostavit da će biti učitana samo slova?
Citat:
Napisite program koji ucitava prirodan broj a, dinamicki alocira mjesto za polje p od a podataka tipa char, te ucitava elemente tog polja. Program treba stvoriti praznu vezanu listu, te iz polja p u vezanu listu
ubaciti sva mala slova koja se pojavljuju u polju p. Ubacivanje u vezanu listu treba realizirati ubacivanjem na kraj vezane liste. Nakon toga, iz liste treba izbaciti svaki treci cvor, tj. treba izbaciti prvi, cetvrti, sedmi, itd.
cvor.


Smijem li elemnete polja ucitati kao string?
Smijem li pretpostavit da će biti učitana samo slova?



_________________
Kad sam bila mala htjela sam biti statističarka Very Happy
[tex]\omega \in \Omega[/tex] Srce
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
HijenA
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 23. 01. 2004. (16:46:04)
Postovi: (3D2)16
Spol: muško
Sarma = la pohva - posuda
-26 = 44 - 70
Lokacija: Prazan skup ;-)

PostPostano: 11:17 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

[quote="nana"][quote]Napisite program koji ucitava prirodan broj a, dinamicki alocira mjesto za polje p od a podataka tipa char, te ucitava elemente tog polja. Program treba stvoriti praznu vezanu listu, te iz polja p u vezanu listu
ubaciti sva mala slova koja se pojavljuju u polju p. Ubacivanje u vezanu listu treba realizirati ubacivanjem na kraj vezane liste. Nakon toga, iz liste treba izbaciti svaki treci cvor, tj. treba izbaciti prvi, cetvrti, sedmi, itd.
cvor.[/quote]

Smijem li elemnete polja ucitati kao string? [/quote]

ako mislis na deklaraciju:

[code:1]
char polje_znakova[100];[/code:1]

onda da jer se takvo polje znakova zapravo interpretira kao string.

[quote]
Smijem li pretpostavit da će biti učitana samo slova?[/quote]

kod ucitavanja stringova je svejedno sto upisujes jer se svaki znak upisuje u to polje u obliku ASCII koda (zato i jest velicina jednog chara 1 bajt, odnosno 8 bitova, odnosno mogucih 256 kombinacija koda). tako da je odgovor: ne. ne mozes pretpostaviti da se ucitavaju samo slova jer su i brojevi i specijalni znakovi isto tako dio ASCII standarda. eventualno mozes napomenuti kod upisa da trazis da se upisuju samo slova.
nana (napisa):
Citat:
Napisite program koji ucitava prirodan broj a, dinamicki alocira mjesto za polje p od a podataka tipa char, te ucitava elemente tog polja. Program treba stvoriti praznu vezanu listu, te iz polja p u vezanu listu
ubaciti sva mala slova koja se pojavljuju u polju p. Ubacivanje u vezanu listu treba realizirati ubacivanjem na kraj vezane liste. Nakon toga, iz liste treba izbaciti svaki treci cvor, tj. treba izbaciti prvi, cetvrti, sedmi, itd.
cvor.


Smijem li elemnete polja ucitati kao string?


ako mislis na deklaraciju:

Kod:

char polje_znakova[100];


onda da jer se takvo polje znakova zapravo interpretira kao string.

Citat:

Smijem li pretpostavit da će biti učitana samo slova?


kod ucitavanja stringova je svejedno sto upisujes jer se svaki znak upisuje u to polje u obliku ASCII koda (zato i jest velicina jednog chara 1 bajt, odnosno 8 bitova, odnosno mogucih 256 kombinacija koda). tako da je odgovor: ne. ne mozes pretpostaviti da se ucitavaju samo slova jer su i brojevi i specijalni znakovi isto tako dio ASCII standarda. eventualno mozes napomenuti kod upisa da trazis da se upisuju samo slova.



_________________
Chuck Norris can divide by zero.

I bow before you Veliki Limun, on je kiseo i zut Bow to the left

[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
nana
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 29. 11. 2005. (12:24:35)
Postovi: (2AD)16
Spol: žensko
Sarma = la pohva - posuda
95 = 158 - 63

PostPostano: 11:31 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

[quote="HijenA"] [[code:1]
char polje_znakova[100];[/code:1]

onda da jer se takvo polje znakova zapravo interpretira kao string.

[/quote]Treba dinamički alocirati tako da mi ovo ne bi prošlo.
Nisam mislila na deklaraciju već kod učitavanja polja. Mogu li ga učitat kao string ili znak po znak?

Ovo za mala velika slova mislila sam mogu li korisniku reć da učitava samo slova.

[size=9]sve me strah da li ću na analizi proć uz ovakvo neprecizno izražavanje :cry: [/size]
HijenA (napisa):
[
Kod:

char polje_znakova[100];


onda da jer se takvo polje znakova zapravo interpretira kao string.

Treba dinamički alocirati tako da mi ovo ne bi prošlo.
Nisam mislila na deklaraciju već kod učitavanja polja. Mogu li ga učitat kao string ili znak po znak?

Ovo za mala velika slova mislila sam mogu li korisniku reć da učitava samo slova.

sve me strah da li ću na analizi proć uz ovakvo neprecizno izražavanje Crying or Very sad



_________________
Kad sam bila mala htjela sam biti statističarka Very Happy
[tex]\omega \in \Omega[/tex] Srce
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
HijenA
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 23. 01. 2004. (16:46:04)
Postovi: (3D2)16
Spol: muško
Sarma = la pohva - posuda
-26 = 44 - 70
Lokacija: Prazan skup ;-)

PostPostano: 12:28 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

[quote="nana"][quote="HijenA"] [code:1]
char polje_znakova[100];[/code:1]

onda da jer se takvo polje znakova zapravo interpretira kao string.

[/quote]Treba dinamički alocirati tako da mi ovo ne bi prošlo.[/quote]

svejedno moras znati otprilike duljinu stringa, barem koliko ja znam. ako koristis pointer, sto moras napravit u ovom slucaju, moras ga inicijalizirati jer sama deklaracija pointera nista ne znaci. dakle...mora biti nekakvo gornje ogranicenje duljine stringa i do te duljine normalnim putem malloc funkcijom rezervirati mjesto u memoriji:

[code:1]
int n; // neka konstanta broja znakova
char* string;
...

string=(char *) malloc(sizeof(char)*n);
...

[/code:1]

ili, ako imamo neki pocetni string sa fiksnom duljinom:
[code:1]
char string1[100];
char* string2;
...

string2=(char *) malloc(strlen(string1)+1);
...
[/code:1]

ovaj +1 je uvijek dobro dodat zbog end string znaka, odnosno '\0' :-)

[quote]
Nisam mislila na deklaraciju već kod učitavanja polja. Mogu li ga učitat kao string ili znak po znak?[/quote]

mozes i kao jedno i kao drugo. zavisno od implementacije.

[quote]
Ovo za mala velika slova mislila sam mogu li korisniku reć da učitava samo slova.[/quote]

mozes...no to moras naznaciti na pocetku programa.

[quote]
[size=9]sve me strah da li ću na analizi proć uz ovakvo neprecizno izražavanje :cry: [/size][/quote]

nah...naj se brinut :-)
nana (napisa):
HijenA (napisa):
Kod:

char polje_znakova[100];


onda da jer se takvo polje znakova zapravo interpretira kao string.

Treba dinamički alocirati tako da mi ovo ne bi prošlo.


svejedno moras znati otprilike duljinu stringa, barem koliko ja znam. ako koristis pointer, sto moras napravit u ovom slucaju, moras ga inicijalizirati jer sama deklaracija pointera nista ne znaci. dakle...mora biti nekakvo gornje ogranicenje duljine stringa i do te duljine normalnim putem malloc funkcijom rezervirati mjesto u memoriji:

Kod:

int n; // neka konstanta broja znakova
char* string;
...

string=(char *) malloc(sizeof(char)*n);
...



ili, ako imamo neki pocetni string sa fiksnom duljinom:
Kod:

char string1[100];
char* string2;
...

string2=(char *) malloc(strlen(string1)+1);
...


ovaj +1 je uvijek dobro dodat zbog end string znaka, odnosno '\0' Smile

Citat:

Nisam mislila na deklaraciju već kod učitavanja polja. Mogu li ga učitat kao string ili znak po znak?


mozes i kao jedno i kao drugo. zavisno od implementacije.

Citat:

Ovo za mala velika slova mislila sam mogu li korisniku reć da učitava samo slova.


mozes...no to moras naznaciti na pocetku programa.

Citat:

sve me strah da li ću na analizi proć uz ovakvo neprecizno izražavanje Crying or Very sad


nah...naj se brinut Smile



_________________
Chuck Norris can divide by zero.

I bow before you Veliki Limun, on je kiseo i zut Bow to the left

[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Geliriell
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 10. 2005. (14:48:40)
Postovi: (84)16
Spol: žensko
Sarma = la pohva - posuda
= 8 - 1

PostPostano: 20:33 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

Zasto mi je odmah u prvom prolasku kroz prvu for petlju i=5???

[code:1]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
char prvi[]="12345";
char drugi[]="67890";
int i,size;
char *pc;

size=strlen(prvi)+strlen(drugi)+1;
printf("prvi=%s\n",prvi);
printf("drugi=%s\n",drugi);
printf("%d",size);
pc=(char*)malloc(size);
for(i=0; i<strlen(prvi); i++);
{

pc[i]=prvi[i];

}
for(i=0; i<strlen(drugi); i++);
{
pc[i+strlen(prvi)]=drugi[i];
}
pc[size-1]='\0';
printf("pc=%s\n",pc);
getchar();
free(pc);
return 0;
}
[/code:1]
Zasto mi je odmah u prvom prolasku kroz prvu for petlju i=5???

Kod:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
          char prvi[]="12345";
          char drugi[]="67890";
          int i,size;
          char *pc;
         
          size=strlen(prvi)+strlen(drugi)+1;
          printf("prvi=%s\n",prvi);
          printf("drugi=%s\n",drugi);         
          printf("%d",size);
          pc=(char*)malloc(size);
          for(i=0; i<strlen(prvi); i++);
          {
           
                   pc[i]=prvi[i];
                   
          }
          for(i=0; i<strlen(drugi); i++);
          {
                   pc[i+strlen(prvi)]=drugi[i];
          }
          pc[size-1]='\0';
          printf("pc=%s\n",pc);
          getchar();
          free(pc);
          return 0;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Geliriell
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 10. 2005. (14:48:40)
Postovi: (84)16
Spol: žensko
Sarma = la pohva - posuda
= 8 - 1

PostPostano: 20:56 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

; iza for petlje. :oops: Sad me sram
; iza for petlje. Embarassed Sad me sram


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
nana
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 29. 11. 2005. (12:24:35)
Postovi: (2AD)16
Spol: žensko
Sarma = la pohva - posuda
95 = 158 - 63

PostPostano: 21:09 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

[quote]mozes...no to moras naznaciti na pocetku programa. [/quote]

Samo me zanimalo mogu li u ovom slucaju to zahtjevat. Jer mi se čini da ne smijem uvijek. Onda bi to u neku ruku bilo jednostavnije za isprogramirat kada bi uvijek mogla.
Citat:
mozes...no to moras naznaciti na pocetku programa.


Samo me zanimalo mogu li u ovom slucaju to zahtjevat. Jer mi se čini da ne smijem uvijek. Onda bi to u neku ruku bilo jednostavnije za isprogramirat kada bi uvijek mogla.



_________________
Kad sam bila mala htjela sam biti statističarka Very Happy
[tex]\omega \in \Omega[/tex] Srce
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3561)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 21:20 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

[quote="nana"][quote]mozes...no to moras naznaciti na pocetku programa. [/quote]
Samo me zanimalo mogu li u ovom slucaju to zahtjevat. Jer mi se čini da ne smijem uvijek. Onda bi to u neku ruku bilo jednostavnije za isprogramirat kada bi uvijek mogla.[/quote]

Klasika: ne smijes uvesti ogranicenje koje zadatak ne postavlja; sve ostalo se racuna da ce biti bas kako i pise, pa se mozes tako i ponasati. :D

Dakle, ako ja trazim program koji radi sa slovima, on mora [b]tocno[/b] raditi sa slovima. 8) Ako ja upisem neki znak koji nije slovo, program smije raditi stogod jer tu nisam nista definirao u zadatku. :)
nana (napisa):
Citat:
mozes...no to moras naznaciti na pocetku programa.

Samo me zanimalo mogu li u ovom slucaju to zahtjevat. Jer mi se čini da ne smijem uvijek. Onda bi to u neku ruku bilo jednostavnije za isprogramirat kada bi uvijek mogla.


Klasika: ne smijes uvesti ogranicenje koje zadatak ne postavlja; sve ostalo se racuna da ce biti bas kako i pise, pa se mozes tako i ponasati. Very Happy

Dakle, ako ja trazim program koji radi sa slovima, on mora tocno raditi sa slovima. Cool Ako ja upisem neki znak koji nije slovo, program smije raditi stogod jer tu nisam nista definirao u zadatku. Smile



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
fatima
Gost





PostPostano: 23:08 sub, 24. 6. 2006    Naslov: Citirajte i odgovorite

[code:1]#include <stdio.h>
main()
{
int x[]={1, 3, 5, 6}, *px, *py;
px=x+x[0]; py=px++;
*py=*px-*(x+1);
*px=py[1] - x[0] + x[3]--;
printf ("%d %d %d %d %d", x[1], x[2], x[3], *px, py-px);
scanf ("%%");
}[/code:1]

jel mi može ko pojasnit što bi trebao ispisat ovaj zadatak?????
Kod:
#include <stdio.h>
main()
{
int x[]={1, 3, 5, 6}, *px, *py;
px=x+x[0]; py=px++;
*py=*px-*(x+1);
*px=py[1] - x[0] + x[3]--;
printf ("%d %d %d %d %d", x[1], x[2], x[3], *px, py-px);
scanf ("%%");
}


jel mi može ko pojasnit što bi trebao ispisat ovaj zadatak?????


[Vrh]
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3561)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 7:56 ned, 25. 6. 2006    Naslov: Citirajte i odgovorite

NHF, ali logika je identicna onome gore, pa prouci to. 8)

Kad program compiliras i izvedes vidjet ces sto ispisuje, pa usporedi s gornjim objasnjenjima. :) Ako za neku konkretnu varijablu nije jasno, napisi sto ti mislis da ispisuje i sto stvarno ispisuje, pa cemo naci gdje grijesis. ;)
NHF, ali logika je identicna onome gore, pa prouci to. Cool

Kad program compiliras i izvedes vidjet ces sto ispisuje, pa usporedi s gornjim objasnjenjima. Smile Ako za neku konkretnu varijablu nije jasno, napisi sto ti mislis da ispisuje i sto stvarno ispisuje, pa cemo naci gdje grijesis. Wink



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Gost






PostPostano: 8:24 ned, 25. 6. 2006    Naslov: Citirajte i odgovorite

Probat ću ti raspisati svaki red, možda bude jasnije:
int x[]={1, 3, 5, 6}
To znaci x[0]=1, x[1]=3, x[2]=5, x[3]=6.

px=x+x[0]; py=px++;
px i x su pokazivaci, x pokazuje na x[0]. (aritmetika nad pokazivacima : px = uzmi x(taj pokazuje na prvoga) i pomakni se za 1 integer (jer imamo +x[0], a to je 1. ) Sada px pokazuje na x[1].

py=px++;
pokazivac py pokazuje isto gdje i px (znaci py pokazuje na x[1]) s time da jos moramo pomaknuti pokazivac px za jedno mjesto, dakle px pokazuje sada na x[2].

*py=*px-*(x+1);
operator dereferenciranja. Vrijednost na koju pokazuje py upisi :ono na sto pokazuje px oduzmi za ono sto pise kad se od nultog elementa pomaknemo za 1: dakle *py=5-3=2, tj. x[1]=2 (jer py pokazuje na x[1]).

*px=py[1] - x[0] + x[3]--;
sada moramo promijeniti vrijednost na koju pokazuje px (tj. x[2]).
py pokazuje na x[1] (ujedno i py[0] pokazuje na to). Dakle py[1] pokazuje na x[2]. sada to izracunamo *px=5-1+6=10 s time da x[3]=5 jer imamo na kraju x[3]--. Sada je x[2]=10.

konacno ispis: 2 10 5 10 -1.
zasto -1? jer pokazivac px pokazujena na x[2], a py na x[1]. Razlika u adresama je -1, tj. preciznije razlika je (px - py)/sizeof(int) jer imamo polje intova.
Nadam se da sam pomogao.
Meni bi trebala pomoc oko stringova, npr. 4. zadatak iz zadace ili drugi s zadatka za vjezbu sto se nalazi na degiorgi.math.hr/c. Mislim, samo mi dajte hint. Unaprijed zahvaljujem.
Probat ću ti raspisati svaki red, možda bude jasnije:
int x[]={1, 3, 5, 6}
To znaci x[0]=1, x[1]=3, x[2]=5, x[3]=6.

px=x+x[0]; py=px++;
px i x su pokazivaci, x pokazuje na x[0]. (aritmetika nad pokazivacima : px = uzmi x(taj pokazuje na prvoga) i pomakni se za 1 integer (jer imamo +x[0], a to je 1. ) Sada px pokazuje na x[1].

py=px++;
pokazivac py pokazuje isto gdje i px (znaci py pokazuje na x[1]) s time da jos moramo pomaknuti pokazivac px za jedno mjesto, dakle px pokazuje sada na x[2].

*py=*px-*(x+1);
operator dereferenciranja. Vrijednost na koju pokazuje py upisi :ono na sto pokazuje px oduzmi za ono sto pise kad se od nultog elementa pomaknemo za 1: dakle *py=5-3=2, tj. x[1]=2 (jer py pokazuje na x[1]).

*px=py[1] - x[0] + x[3]–;
sada moramo promijeniti vrijednost na koju pokazuje px (tj. x[2]).
py pokazuje na x[1] (ujedno i py[0] pokazuje na to). Dakle py[1] pokazuje na x[2]. sada to izracunamo *px=5-1+6=10 s time da x[3]=5 jer imamo na kraju x[3]–. Sada je x[2]=10.

konacno ispis: 2 10 5 10 -1.
zasto -1? jer pokazivac px pokazujena na x[2], a py na x[1]. Razlika u adresama je -1, tj. preciznije razlika je (px - py)/sizeof(int) jer imamo polje intova.
Nadam se da sam pomogao.
Meni bi trebala pomoc oko stringova, npr. 4. zadatak iz zadace ili drugi s zadatka za vjezbu sto se nalazi na degiorgi.math.hr/c. Mislim, samo mi dajte hint. Unaprijed zahvaljujem.


[Vrh]
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3561)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 10:13 ned, 25. 6. 2006    Naslov: Citirajte i odgovorite

[quote="Anonymous"]Meni bi trebala pomoc oko stringova, npr. 4. zadatak iz zadace ili drugi s zadatka za vjezbu sto se nalazi na degiorgi.math.hr/c. Mislim, samo mi dajte hint. Unaprijed zahvaljujem.[/quote]

4. zadatak iz zadace (koju je netko negdje na Forumu cijelu rijesio):[list=1][*]Prebroji koliko takvih razmaka ima
[code:1]brojac = 0;
for(i = 1; i < strlen(text); i++)
if (text[i-1] = ' ' && (text[i] = '.' || text[i] = '?' || text[i] = '!' || text[i] = ',')) {
j = i - 1;
while (j >= 0 && text[j] == ' ') j--;
brojac += (i - j - 1);
}[/code:1][*]Alociraj memoriju za novi string:
[code:1]novi = (char *)malloc(strlen(text) - brojac + 1);[/code:1]
Mozes i bez ova dva koraka; samo deklariras [tt]char novi[1000];[/tt] ali to je zato jer tako pise u zadatku. :? Da se trazi tocna alokacija, bez ogranicenja na duljinju texta, ove dvije tocke bi bile potrebne. 8)
[*]Napuni string [tt]novi[/tt] s podacima:
[code:1]novi[0] = text[k=0];
for(i = 1; i < strlen(text); i++)
if (text[i-1] = ' ' && (text[i] = '.' || text[i] = '?' || text[i] = '!' || text[i] = ',')) {
j = i - 1;
while (j >= 0 && text[j] == ' ') j--, k--;
} else novi[++k] = text[i];[/code:1]
Ovo je pisano dosta napamet, pa je moguce da sam fulao neki detalj. :blush: No, pitao si za ideju i nadam se da je ona jasna. 8)
[*]Na kraju, nemoj zaboraviti postaviti [tt]'\0'[/tt] na kraj novog stringa: [tt]novi[++k] = '\0';[/tt][/list:o]
Onaj iz zadataka za vjezbu je jos laksi, jer ubacujes [b]jednu[/b] crticu (za razliku od zadace gdje brises, opcenito, po [b]nekoliko[/b] razmaka). :D Dakle, klasika: jedna petlja za prebrojati koliko crtica trebas i druga petlja koja radi to isto, samo sto ne broji nego dodaje crtice (i usput kopira ostale znakove). 8) Trebaju ti dva indeksa (u primjeru od zadace, ja sam ih nazvao [tt]i[/tt] i [tt]k[/tt]) za pozicioniranje u dva stringa. 8)

Jasnije? :D
Anonymous (napisa):
Meni bi trebala pomoc oko stringova, npr. 4. zadatak iz zadace ili drugi s zadatka za vjezbu sto se nalazi na degiorgi.math.hr/c. Mislim, samo mi dajte hint. Unaprijed zahvaljujem.


4. zadatak iz zadace (koju je netko negdje na Forumu cijelu rijesio):
  1. Prebroji koliko takvih razmaka ima
    Kod:
    brojac = 0;
    for(i = 1; i < strlen(text); i++)
      if (text[i-1] = ' ' && (text[i] = '.' || text[i] = '?' || text[i] = '!' || text[i] = ',')) {
        j = i - 1;
        while (j >= 0 && text[j] == ' ') j--;
        brojac += (i - j - 1);
      }
  2. Alociraj memoriju za novi string:
    Kod:
    novi = (char *)malloc(strlen(text) - brojac + 1);

    Mozes i bez ova dva koraka; samo deklariras char novi[1000]; ali to je zato jer tako pise u zadatku. Confused Da se trazi tocna alokacija, bez ogranicenja na duljinju texta, ove dvije tocke bi bile potrebne. Cool
  3. Napuni string novi s podacima:
    Kod:
    novi[0] = text[k=0];
    for(i = 1; i < strlen(text); i++)
      if (text[i-1] = ' ' && (text[i] = '.' || text[i] = '?' || text[i] = '!' || text[i] = ',')) {
        j = i - 1;
        while (j >= 0 && text[j] == ' ') j--, k--;
      } else novi[++k] = text[i];

    Ovo je pisano dosta napamet, pa je moguce da sam fulao neki detalj. Blush No, pitao si za ideju i nadam se da je ona jasna. Cool
  4. Na kraju, nemoj zaboraviti postaviti '\0' na kraj novog stringa: novi[++k] = '\0';

Onaj iz zadataka za vjezbu je jos laksi, jer ubacujes jednu crticu (za razliku od zadace gdje brises, opcenito, po nekoliko razmaka). Very Happy Dakle, klasika: jedna petlja za prebrojati koliko crtica trebas i druga petlja koja radi to isto, samo sto ne broji nego dodaje crtice (i usput kopira ostale znakove). Cool Trebaju ti dva indeksa (u primjeru od zadace, ja sam ih nazvao i i k) za pozicioniranje u dva stringa. Cool

Jasnije? Very Happy



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Gost






PostPostano: 10:35 ned, 25. 6. 2006    Naslov: Citirajte i odgovorite

Hvala! Pokusat cu! Dan je dug!
Hvala! Pokusat cu! Dan je dug!


[Vrh]
Gost






PostPostano: 14:41 ned, 25. 6. 2006    Naslov: Citirajte i odgovorite

Jel bi neko bio tako dobar da stavi na forum 4. zadatak iz onih zadataka za vježbu? Bio bi jako zahvalan. :roll:
Jel bi neko bio tako dobar da stavi na forum 4. zadatak iz onih zadataka za vježbu? Bio bi jako zahvalan. Rolling Eyes


[Vrh]
fireball
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 10. 2005. (18:49:17)
Postovi: (4AB)16
Spol: muško
Sarma = la pohva - posuda
26 = 100 - 74
Lokacija: s rukom u vatri i nogom u grobu

PostPostano: 14:54 ned, 25. 6. 2006    Naslov: Citirajte i odgovorite

[quote="Anonymous"]Jel bi neko bio tako dobar da stavi na forum 4. zadatak iz onih zadataka za vježbu? Bio bi jako zahvalan. :roll:[/quote]

ako ću ga pisti, postat ću ga, ali gore ti jeobjašnjen princip zadatka
Anonymous (napisa):
Jel bi neko bio tako dobar da stavi na forum 4. zadatak iz onih zadataka za vježbu? Bio bi jako zahvalan. Rolling Eyes


ako ću ga pisti, postat ću ga, ali gore ti jeobjašnjen princip zadatka



_________________
I bow before you Veliki Limun, on je kiseo i zut Bow to the left
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
nana
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 29. 11. 2005. (12:24:35)
Postovi: (2AD)16
Spol: žensko
Sarma = la pohva - posuda
95 = 158 - 63

PostPostano: 15:47 ned, 25. 6. 2006    Naslov: Citirajte i odgovorite

[code:1]#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
FILE* ulaz;
char *p;
int n,a,i;
char tmp[7];
ulaz=fopen("novcici.txt","rt");
fscanf(ulaz,"%d",&n);
p=(char*)malloc((n+1)*sizeof(char));
for (i=0;i<n;i++) p[i]='P';
p[n]='\0';
while (fscanf(ulaz,"%s %d",tmp,&a)==2){
if ((strcmp(tmp, "izbaci"))==0) p[a-1]='-';
if ((strcmp(tmp, "okreni"))==0) p[a-1]='G';
}

printf("%s",p);

fclose(ulaz);
free(p);
return 0;
}
[/code:1]
Za pokretanje ovog programa potrebno je imat tekstualnu datoteku "novcici.txt."
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
    FILE* ulaz;
    char *p;
    int n,a,i;
   char tmp[7];
    ulaz=fopen("novcici.txt","rt");
    fscanf(ulaz,"%d",&n);
    p=(char*)malloc((n+1)*sizeof(char));
    for (i=0;i<n;i++) p[i]='P';
    p[n]='\0';
    while (fscanf(ulaz,"%s %d",tmp,&a)==2){
          if ((strcmp(tmp, "izbaci"))==0) p[a-1]='-';
          if ((strcmp(tmp, "okreni"))==0) p[a-1]='G';
          }
   
    printf("%s",p);
   
    fclose(ulaz);
    free(p);
    return 0;
    }

Za pokretanje ovog programa potrebno je imat tekstualnu datoteku "novcici.txt."



_________________
Kad sam bila mala htjela sam biti statističarka Very Happy
[tex]\omega \in \Omega[/tex] Srce
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Gost






PostPostano: 16:24 ned, 25. 6. 2006    Naslov: Citirajte i odgovorite

Program ti ne radi sve kaj bi trebo. Ako više puta okreneš isti novčić on će ti registrirat ko da si ga okrenula jedanput. Ja sam napisao isti program ko i ti, samo kaj mogu više puta okrenuti isti novčić, al mi program općenito ne radi.
Program ti ne radi sve kaj bi trebo. Ako više puta okreneš isti novčić on će ti registrirat ko da si ga okrenula jedanput. Ja sam napisao isti program ko i ti, samo kaj mogu više puta okrenuti isti novčić, al mi program općenito ne radi.


[Vrh]
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Idite na 1, 2  Sljedeće
Stranica 1 / 2.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan