Upload
dejan-marinkovic
View
15
Download
3
Embed Size (px)
DESCRIPTION
Za razliku od znaka, koji nastaje i mimo čovekove volje, svaki simbol je uvek ljudska tvorevina. Već je rečeno da se univerzum otkriva kroz nepregledno mnoštvo znakova u kojima čovek pronalazi određena značenja. Samo se po sebi razume da čulima, kojima ostvaruje prvi kontakt i upija znak iz okruženja, čovek ne može dosegnuti značenje znaka. U proces poimanja znaka uključuju se, gotovo trenutno posle čulne percepcije, razum i emocije. To je trenutak u procesu preobražaja znaka u simbol.Sliku sveta, u prostorno vremenskom beskraju, čovek sagledava i stiče mnoštvom znakova ili signala. • Znak se, budući da ukazuje na nešto, uvek ispoljava kroz jedinstvo dva svoja strukturna elementa - oznaku i označeno. Najčešće su oznaka i označeno posebni entiteti: • Slovo A je oznaka za glas A • Ime označava ličnost • Suza u oku radost ili tugu Za razliku od znaka, koji nastaje i mimo čovekove volje, svaki simbol je uvek ljudska tvorevina. Već je rečeno da se univerzum otkriva kroz nepregledno mnoštvo znakova u kojima čovek pronalazi određena značenja. Samo se po sebi razume da čulima, kojima ostvaruje prvi kontakt i upija znak iz okruženja, čovek ne može dosegnuti značenje znaka. U proces poimanja znaka uključuju se, gotovo trenutno posle čulne percepcije, razum i emocije. To je trenutak u procesu preobražaja znaka u simbol.
Citation preview
04/10/23 1
Funkcije, nizovi, pokazivači, parametri, prenošenje argumenata ...
• Prenošenja nizova kao argumenata može se analizirati na problemu određivanja broja studenata koji su imali natprosečne rezultate na proveri znanja iz osnova programskog jezika C.
• Algoritam ovog problema se može razložiti na sledeće module
Učitavanje vrednosti elemenata niza Izračunavanje prosečnog rezultata Prebrojavanje natprosečnih rezultata Ispis izlaznog izveštaja
04/10/23 2
Example No ….• Main()• Int n,i,broj,ocena[50]; /*niz od 50 elemenata*/• Float prosek();• Print('\nUnesi broj takmicara:');• Scan(%d',&n);• /*ucitavanje elemenata niza*/• print('\nUnesi rezultate:\n');• for (i:=0;i<n;i++)• {• print('ocena[%d]+',i);• scan('%d”,&ocena[i])• }
• To be continue…
04/10/23 3
Contnue….• /*prebrojavanje natprosecnih rezultata*/• broj=0• for(i=0;i<n;i++)• if(ocena[i]>prosek(ocena,n))• broj++;• printf(''prosecan rezultat je:%f.\n'',prosek(ocena,n));• printf (''natprosecne rezultate je imalo:%d takmicara.\n'',broj);• }• Float prosek(int x [],int n)• {• int i,suma;• suma=0;• for(i=0;i<n;suma+=x[i],i++);• return((float)suma/n);
04/10/23 4
Funkcije, nizovi, pokazivači, parametri, prenošenje argumenata ...
• Pri definiciji funkcije prosek() koja se poziva iz main () deklaracija Int x[]
• kreira, ne niz, već pokazivač na niz• Float prosek(int x [],int n)• {• int i,suma;• suma=0;• for(i=0;i<n;suma+=x[i],i++);• return((float)suma/n);• }
04/10/23 5
Funkcije, nizovi, pokazivači, parametri, prenošenje argumenata ...
• Poziv funkcije • Prosek (ocena,n) sadrži ime ocena koje predstavlja
adresu nultog elementa od najviše 50 elemenata.• Time se pri pozivu funkcije predaje pokazivačka
konstanta (adresa nultog elementa niza)• Ocena = &ocena[0]• • To znači da je formalni parametar funkcije
pokazivačkog tipa pa se u funkciji prosek() može izvršiti deklaracija na sledeći način
• prosek(int *x,int n)
04/10/23 6
Funkcije, nizovi, pokazivači, parametri, prenošenje argumenata ...
• Operatori • Int x [];• Int*x;• Su ekvivalentni jer oba deklarišu promenljivu x kao pokazivač
na niz celih brojeva • ... Operatori koji u funkciji prosek () koriste pokazivač *X
rade sa nizom ocena koji se nalazi u telu funkcije main() Poziv funkcije inicijalizuje pokazivač X tako da pokazuje na ocena [0] Kada index i u funkciji prosek () uzme vrednost 4 tada je izraz x [4] ekvivalentan sa *(x+4).
04/10/23 7
Funkcije, nizovi, pokazivači, parametri, prenošenje argumenata ...
• Znači pošto (x+0) pokazuje na ocena [0] to x+4 pokazuje na ocena [4] Prenos jednodimenzionalnih nizova se ostvaruje navođenjem imena niza u pozivu funkcije bez ikakvog indeksa. Na ovaj način u funkciju se prenosi informacija (adresa ) o lokaciji niza u pozivajućoj funkciji.
04/10/23 8
Funkcije, nizovi, pokazivači, parametri, prenošenje argumenata ...
• Čak i deklaracija x [100] ima isto značenje kao i x [] jer C kompajler generiše kod koji funkciji predaje pokazivač tako da je beznačajna specificirana dužina niza.
• X== &x[0] • X +0== &x[0] • X+2 ==&x[2] /*jer su im iste adrese*/• *(x+2) == x[2] /*jer su im iste vrednosti*/• *(x+i) == x[i]• Prema tome jednodimenzionalni nizovi se prenose
isključivo po adresi