Procedury a funkce – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Procedury a funkce – Pascal – Fórum – Programujte.comProcedury a funkce – Pascal – Fórum – Programujte.com

 

Tomas
~ Anonymní uživatel
560 příspěvků
13. 11. 2014   #1
-
0
-

Dobrý den,

chtěl bych někoho požádat, aby mě vysvětlil rozdíl, kdy používat funkci, a kdy proceduru. Chápu že funkce vrací hodnotu, a že funkci nemůžu použít, když má být více výsledků než jeden a pak mám poznámku, že do funkce se nemůže načíst hodnota, což moc nechápu, jak je myšleno a obecně to moc nechápu, kdy co použít. 

Děkuji.

Nahlásit jako SPAM
IP: 91.219.240.–
Sniper
~ Anonymní uživatel
215 příspěvků
13. 11. 2014   #2
-
0
-

Pokud se bavíme jenom o pascalu, tak v tom není téměř žádný rozdíl. IMHO procedura je funkce bez návratové hodnoty a naopak.
A to, že funkce nemůže vrátit více jak jeden výsledek, není pravda. "...do funkce se nemůže načíst hodnota" - nesmysl.
Kdy co používat? Tak to záleží pochopitelně co to má dělat a jestli tu návratovou hodnotu potřebuješ nebo ne, případně jak ji chceš dostat (volání funkce můžeš např. přímo vrznout do výpočtu, ale pokud dostáváš výsledek z procedury, tak ho musíš nejdřív uložit do proměnné a tu pak použít).

Snad nepíšu bludy, on mě určitě někdo doplní/opraví.
 

Nahlásit jako SPAM
IP: 90.179.201.–
peter
~ Anonymní uživatel
4014 příspěvků
13. 11. 2014   #3
-
0
-

http://programujte.com/clanek/2005120202-turbo-pascal-8-lekce/
V tech prikladech vidis, ze u fuknce musis definovat vystup. Coz je psani navic. Jine jazyky to proste uz neresi, prekladac si to tam doplni, kdyz to tam neni a vrati aspon true, false, error.

Ty otazky moc nechapu.
Do funkce nacist hodnota jde. Musi. K cemu by pak byla, ze jo? :)
Vystupem sice muze byt jedna promenna, ale ta muze byt objektrem, asociativnim polem, v pascalu se to nazyva datova struktura, pole, "record".
http://www.isd.cz/…dynprom.html

type spoj = ^element 
     element = record 
                 hodnota: datovytyp; 
                 dalsi: spoj; 
               end; 
 var zasobnik : spoj;  

Nebo se asi daji pouzit globalni promenne jako u procedury a funkce pak muze vracet true, false. Tato cesta neni moc cool, ale pascal nenabizi jednoduche reseni, takze se tam frci na globalni promenne.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:7cbf:e0...–
KIIV
~ Moderátor
+43
God of flame
13. 11. 2014   #4
-
0
-

Do funkci a procedur se normalne predavaji parametry hodnotou (tj, ze se zkopirujou), ale je mozne predat hodnotu i odkazem (pracuje se pak s puvodni hodnotou a tudiz se zmeny ve funkci/procedure projevi navenek)

Globalni promenne musi byt velice dobre rozmyslene. Ve vetsine pripadu je to jen zpusob, jak udelat kod pouzitelny jen pro jeden ucel a s jedinou promennou. Chcete mit vice datovejch struktur najednou? Smula, nejde to.

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kit+15
Guru
13. 11. 2014   #5
-
0
-

#1 Tomas
Zjednodušeně:

  • funkce zjišťuje stav a vrací jeho hodnotu (v OOP getter)
  • procedura slouží k modifikaci stavu (v OOP setter)

Funkce i procedury mohou mít parametry, mělo by se preferovat předávání hodnotou.

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

Procedury a funkce — založil xy3000

Funkce a procedury — založil kozomelec

Úkol na procedury a funkce — založil Malirka

Procedury — založil Akk

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý