Funkcje w C... Moglby mi to ktos wytlumaczyc?

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Funkcje w C... Moglby mi to ktos wytlumaczyc?

Post autor: Kulpina » 01 gru 2008, 16:46

Z gory przepraszam za brak polskich znakow, ale siedze teraz na linuxie livecd ktorego odpalilem angielska wersje, wiec ich tu nie ma...

Mam pytanie dotyczace funkcji w jezyku C. O co wlasciwie chodzi z tymi funkcjami? Probuje przerabiac kurs c z EdW, ale zacialem sie na tym i jakos nie moge zrozumiec...Chcialem wiec zapytac czy ktos moglby mi jeszcze raz wytlumaczyc po co sie tworzy funkcje i jak dokladnie one dzialaja. Czy w bascomie bylo jakies podobne do tego polecenie?

Awatar użytkownika
robson
Użytkownik
Posty: 226
Rejestracja: 22 sty 2006, 19:51
Lokalizacja: S.M.
Kontakt:

Post autor: robson » 01 gru 2008, 16:51

Najlepiej będzie, jak przeczytasz sobie odpowiedni rozdział w Symfonii C++ Grębosza. Jest drobna różnica pomiędzy C a C++, ale jak zrozumiesz czym jest funkcja w C++ to i z C nie będziesz miał żadnego problemu. Polecam przeczytać ją całą - super pozycja.

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 01 gru 2008, 17:01

Nie, zebym robil reklame, ale to chodzi o ta ksiazke: http://www.allegro.pl/item494792500_sym ... rakow.html
?
W sumie jesli c++ to jest mi nie zaszkodzi :]

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 01 gru 2008, 19:33

A na matematyce funkcje miałeś? Choćby zwykłą liniową y=ax+b? Jeśli tak to dobrze, bo funkcje w programowaniu to prawie to samo. Wtedy powyższą funkcję można zapisać następująco:

Kod: Zaznacz cały

int funkcja(int x)
{
  return(a*x+b);
}
...

int main (void)
{
  int y=funkcja(liczba); //y=a*liczba+b jw. w funkcji
  ...
To jest podstawowe zastosowanie funkcji, po prostu zamiast wielokrotnie powtarzać te same obliczenia na innych liczbach lepiej jest zastosować funkcję.
Załóżmy że mamy wykonać te same instrukcje w różnych częściach programu, zamiast wielu powtarzających się bloków poleceń możemy umieścić jednorazowo taki blok w funkcji, a następnie odwoływać się do funkcji. Program stanie się mniejszy i bardziej przejrzysty.

aktus
Użytkownik
Posty: 379
Rejestracja: 06 sie 2007, 20:44
Lokalizacja: Tychy

Post autor: aktus » 01 gru 2008, 23:57

Innymi słowy: funkcja to jest taki podprogram, który na podstawie argumentów przekazanych do niej ( lub też nie ) zwraca jakiś wynik ( to jest właśnie to "return x" na końcu ). Funkcja typu void nic nie zwraca, tylko może zmieniać zmienne ( działa wówczas jak procedura ).

ODPOWIEDZ