Portál AbcLinuxu, 23. dubna 2024 23:24


Dotaz: Navratova hodnota funkce

12.12.2014 19:19 Petr
Navratova hodnota funkce
Přečteno: 271×
Odpovědět | Admin
Zdravim, ucim se Cecko - zatim jsem prostudoval Herouta a dal se budu ucit pracovat s datovymi strukturami - chtel bych pro experimenty s tridenim a vyhledavanim v polich vytvorit funkci, ktera by mi vygenerovala v danem rozsahu velikosti a hodnot pole naplnene nahodnymi cisly (for (i = 0; i < velikost_pole, i++) {srand((unsigned) time(NULL)); array[i] =(rand() %maximalni_hodnota);}) - ale pak nevim jak pracovat s navratovou hodnotou - lze ji vytvorit jako cele pole a nebo je treba v teto funkci (bez cyklu) jen jednotlive vygenerovat retunove int a cyklus k naplneni vytvorit az ve funkci ktera si pole pozaduje? Neboli, muze byt navratova hodnota i slozitejsi struktura a jak na to? Som volaky zmateny :-)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

pavlix avatar 12.12.2014 20:42 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Navratova hodnota funkce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mohl bys zkusit v komentáři napsat dotaz ještě jednou, pokud možno česky, v jasných a srozumitelných větách? Zatím jsem pochytil jen to, že nevíš jak zkombinovat koncept pole a funkce, která s ním pracuje, potažmo ho vytváří. Měl byses tedy v první řadě seznámit s alokací proměnných na zásobníku a na haldě. Dělá se to tak, že buď funkce pracuje s existujícím polem nebo vrací ukazatel na dynamicky alokované pole. Pole ve smyslu pevně daného počtu prvků se nevrací.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
AraxoN avatar 12.12.2014 22:27 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Navratova hodnota funkce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Celé pole v jazyku C vrátiť nevieš, ani odovzdať ako parameter. Vieš vrátiť smerník na pole, a smerník na pole vieš aj odovzdávať ako parameter. Začni tým, že si pole vyrobíš staticky vo volajúcej funkcii a volanej funkcii odovzdáš smerník. Pomocou smerníka volaná funkcia vie priamo meniť obsah toho poľa a nepotrebuje nič vracať. Potom keď budeš väčší frajer, môžeš pole vytvárať dynamicky v tej volanej funkcii a vracať spät volajúcemu smerník na to pole.

V nesúvisiacej veci ešte dodám, že volanie srand() by si mal spraviť len raz na začiatku programu. Keď ho robíš v cykle, dostaneš veľa krát to isté náhodné číslo.
Jendа avatar 13.12.2014 00:42 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Navratova hodnota funkce
smerník
Pokud bude používat anglickou a českou literaturu, tak je to pointer/ukazatel ;)
AraxoN avatar 13.12.2014 08:32 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Navratova hodnota funkce
Samozrejme je to tak, ďakujem za doplnenie. Vôbec som si neuvedomil, že otázka bola položená v češtine. :)
13.12.2014 10:19 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Navratova hodnota funkce
Nejlepší je IMHO varianta, kdy každý účastník píše ve své rodné řeči a případně doplní anglický pojem. Není to však nutné. Stejně tak není nutné lokalizovat pojmy, které se vžily v anglické verzi.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
pavlix avatar 13.12.2014 13:10 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Navratova hodnota funkce
Kdyby tomu někdo nerozuměl, tak se zeptá. Mě osobně slovenská národní specifika v oblasti počítačové terminologie baví.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
13.12.2014 09:44 Radek Isa | skóre: 14
Rozbalit Rozbalit vše Re: Navratova hodnota funkce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jeste prosimte ten srand((unsigned) time(NULL)) patří před ciklus jinak se ti budou špatně generovat náhodná čísla.

Funkce srand() ti akorat posune generátor náhodných čísel, tak aby se ti negenerovaly po spuštění pořád stejná čísla. Tato funkce se má v kódu spustit pouze jednou. pak náhodná čísla generuješ pouze funkci rand()%MAX_RAND

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.