Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Funkcija i njena povratna vrednost

[es] :: C/C++ programiranje :: Funkcija i njena povratna vrednost

[ Pregleda: 3233 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.56.eunet.yu.



+2 Profil

icon Funkcija i njena povratna vrednost22.01.2006. u 00:24 - pre 221 meseci
Spremam neke ispite kod čika Lasla i sve sam fino naučio samo me još nekako muče te povratne vrednosti, pa bih molio iskusnije programere da mi objasne. Vikend je pa nemam konsultacije, a prilično je hitno :) Radim sa jednostruko povezanim listama i elemente predstavljam u obliku strukture

Code:

typedef struct elem { int broj; struct elem* sled; } Elem;


I sad npr. ako pravim funkciju za ispisivanje cele liste to radim u ovom obliku:
Code:

void pisi(Elem* lst){
dalje neki kod
}

A ako bi pravio f-ju za ubacivanje novog elementa na početak liste, to bih radio ovako:
Code:

Elem* naPocetak(Elem** lst, int broj){
opet kod za dodavanje

return *lst;
}


E sad mene zanima zašto trebam kod funkcije naPocetak da imam povratnu vrednost kad sve super radi i sa void?

Hvala!
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.32.eunet.yu.



+9 Profil

icon Re: Funkcija i njena povratna vrednost22.01.2006. u 00:35 - pre 221 meseci
Verovatno to imaš u beleškama pa ti nije baš najjasnije. :)

E sada, generalno... možeš to da uradiš bilo kako, ali je povratna vrednost verovatno vrednost novog početka te liste. Možda se time postiglo elegantnije rešenje...ali to možeš da uradiš kako god ti padne na pamet.
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.56.eunet.yu.



+2 Profil

icon Re: Funkcija i njena povratna vrednost22.01.2006. u 00:54 - pre 221 meseci
Ne fora u je u tome sto mi povratna vrednost uopste nije potrebna.
Npr. imam funkciju za brisanje elementa s pocetka ili kraja liste, nebitno.
I sad funkcija ide kao:
int saKraja(Elem** lst);
A kao povratna vrednost je broj koji je obrisan.
Sad ovde mi je ta povratna vrednost potpuno bespotrebna no čika Laslo insistira na tome. Ja bih to naravno radio sa void ali čim on toliko insitira sa povratnim vrednostima znači da ima nečemu služi.
Jedan njegov asistent isto to primenjuje, ali nisam stigao da ga pitam što, a ispit se bliži.
Znam da savršeno radi i bez toga ali što da mi džabe skida bodove na ispitu, pa me je zato zanimalo pravilo kada je obavezno koristiti tj. da je u duhu jezika C, a kada idem sa void.
Hvala.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

to3a

Član broj: 72527
Poruke: 6
*.beotel.net.



Profil

icon Re: Funkcija i njena povratna vrednost22.01.2006. u 12:50 - pre 221 meseci
Generalno mozes napraviti funkciju koja nema povratnu vrednost, odnosno odradjuje neki posao a pri tome je rezultat tog posla irelevantan. E sada poprilicno je zgodno imati povratnu vrednost cak i u takvim slucajevima posto ne kosta mnogo (u vidu resursa). Na primer imas funkciju koja brise neki element liste celih brojeva a povratna vrednost je neki broj, koji je element liste. U jednom trenutku treba ti neki log sistem da vidis koji su sve brojevi obrisani. Varijanta 1 bez povratne vrednosti je da logujes brojeve iz same funkcije cime koplikujes istu i gubis na njenoj robusnosti a varijanta 2 je da imas povratnu vrednost i logujes posle poziva funkcije tako da ti je logovanje na nivou druge funkcije odnosno programa te osnovna funkcija za brisanje elemenata ostaje dovoljno "cista". U principu radice i jedna i druga varijanta menja se samo stil pisanja i citljivost koda.
Recimo da imas listu celih brojeva sa pojedinim negativnim brojevima koji predstavljaju neke posebne vrednosti (na primer neke specijalne greske, eventi ili tako nesto) i imas funkciju koja brise elemente liste i da imas zahtev da kada obrises negativni element treba da se odradi jos neki dodatni posao. U tom slucaju veoma je zgodno imati kod

if (BrisiElement(...neki parametri...) < 0 ) {
// uradi jos neki dodatni posao
}

nego sve to unutar funkcije koja brise elemente, jer ovako funkcija koja brise elmente liste ostaje dovoljno robusna te se moze primenjivati i kada ne treba da se odradi neki dodatni posao a/ili nema potrebe za njime ...

pozdrav, TO3A!
 
Odgovor na temu

vladab
Vladimir Bašanović
Beograd

Član broj: 9512
Poruke: 498
212.200.116.*



Profil

icon Re: Funkcija i njena povratna vrednost22.01.2006. u 13:49 - pre 221 meseci
Citat:
Pharos: ... ali čim on toliko insitira sa povratnim vrednostima znači da ima nečemu služi....
...ali što da mi džabe skida bodove na ispitu...

Laslo ima obicaj da skuda bodove za kod koji u duhu njegovih vezbi. Meni je skidao bodove sa obrazlozenjem da on "nije navikao na takav stil" i zbog toga mi je dao za jednu ocenu manje. Nemoj da se cimas oko toga da li je nesto pogresno ako Laslo skida bodove na tome. On to radi da bi ljudi dolazili na njegove vezbe.
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Funkcija i njena povratna vrednost23.01.2006. u 11:58 - pre 221 meseci
A meni nikada nije bilo jasno sto strcpy vraca pokazivac na destination string :).
Pa ono resili ljudi da funkcija vrati nesto sto ce mozda nekada da se koristi :).

E tako je i Laslo vratio nesto sto ces mozda da koristis nekada :).

Da se ne bi mnogo mucio, cim nadjzes zasto strcpy vraca pokazivac na string, onda ces znati i zasto je to u onim vasim funkcijama.
CHUPCKO
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.3dnet.co.yu.



+2 Profil

icon Re: Funkcija i njena povratna vrednost23.01.2006. u 13:35 - pre 221 meseci
E sad sam skapirao :)
Pa veoma je korisno to što ima povratnu vrednost.
Npr. ako želim da mi se ispiše lista posle dodavanja nekog elementa na početak liste, da ne bi u dva reda pozivao dve f-je (pisi i naPocetak) to lepo uradim sa npr. pisi( naPocetak(&lst, 3) );
Dodam 3 na početak liste i odmah ispišem listu :) Ima Laslo ideja, to stoji.

Zahvaljujem se na odgovorima.


[Ovu poruku je menjao Pharos dana 23.01.2006. u 14:36 GMT+1]
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Funkcija i njena povratna vrednost23.01.2006. u 15:28 - pre 221 meseci
Pa nije bas njegova ideja, ali je dosta prakticno :).

CHUPCKO
 
Odgovor na temu

[es] :: C/C++ programiranje :: Funkcija i njena povratna vrednost

[ Pregleda: 3233 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.