[solved]Funkcje w c

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
lukasz6547
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 23 mar 2008, 10:06
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME

[solved]Funkcje w c

Post autor: lukasz6547 »

Czytam kurs ale nie rozumiem deklaracji funkcjii:
int func(własnie nie rozumiem tego co sie daje w te nawiasy i jak sie do tego odnosi i skąd je bioree)
{
cos tam;
cos tam
return cos tam do main;
}
o co chodzi z tymi deklaracjami??
ziemniak
Sędziwy Jeż
Sędziwy Jeż
Posty: 42
Rejestracja: 11 lut 2008, 13:31
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: Funkcje w c

Post autor: ziemniak »

int - typ liczbowy liczby całkowite około (-32k,32)
int na początku oznacza, że funkcja ma zwracać coś typu int
w nawiasach podajemy sobie argumenty jakie funkcja pobiera.
Napiszę tobie przykładowy program

Kod: Zaznacz cały

int dodaj (int x, int y) {
     return x+y;
}
int main (){
     printf("%d",dodaj(5,2);
}
Na ekranie pojawi się 7.
adrian5632
Przyjaciel
Przyjaciel
Posty: 259
Rejestracja: 17 gru 2006, 16:07
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: Funkcje w c

Post autor: adrian5632 »

int - typ liczbowy liczby całkowite około (-32k,32)
int na początku oznacza, że funkcja ma zwracać coś typu int
w nawiasach podajemy sobie argumenty jakie funkcja pobiera.
Napiszę tobie przykładowy program
Kod:

Kod: Zaznacz cały

int dodaj (int x, int y) {
     return x+y;
}
int main (){
     printf("%d",dodaj(5,2);
}
Na ekranie pojawi się 7.
Oj nie pojawi :P Nawiasu nie zamknąłeś (tego od printf) i poza tym znaku nowej linii nie dałeś :P
Warto jeszcze wspomnieć, że za "%d" program podstawi wartość liczby z kolejnego argumentu.

Kod: Zaznacz cały

#include <stdio.h>

int dodaj( int x, int y )
{
     return x + y;
}
int main()
{
     printf( "%d\n", dodaj(5,2) );
}
[IMG]http://www.ubudsl.com/media/UbuDSL.png[/IMG]
Masz problem z UbuDSL? Nie zapomnij wygenerować i załączyć loga do postu!
Awatar użytkownika
lukasz6547
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 23 mar 2008, 10:06
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME

Odp: Funkcje w c

Post autor: lukasz6547 »

Ale dokładnie to co jest nawiasach opiszcie,reszte to rozumiem...skąd te zmienne biore co wpisuje w nawiasy, czy one są z main skąd???...z góry dzieki
tomchito
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 23 sie 2007, 09:54
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86

Odp: Funkcje w c

Post autor: tomchito »

Są to argumenty przekazywane do funkcji. Czyli jak w powyższym przykładzie w funkcji main wywoływana jest funkcja dodaj(5,2), to przesyłanymi argumentami są 5 i 2. Zatem w momencie gdy program zaczyna wykonywać funkcję dodaj to podstawia sobie:
x=5
y=2
i wykonuje to co jest wewnątrz funkcji - w tym przypadku zwraca sumę tych dwóch liczb.
Awatar użytkownika
lukasz6547
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 23 mar 2008, 10:06
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME

Odp: Funkcje w c

Post autor: lukasz6547 »

To wiec własciwie nie jest to tak bardzo potrzebne bo przeciez mozna to wszystko zrobic w mainie, co nie??...zalezy wszystko od upodoban...
tomchito
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 23 sie 2007, 09:54
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86

Odp: [solved]Funkcje w c

Post autor: tomchito »

W przypadku dodawania nie jest potrzebne, ale to był tylko prosty przykład. Możesz sobie napisać funkcję wykonującą bardziej złożone obliczenia. Później w programie wywołujesz jedynie swoją funkcję tyle razy ile chcesz podając jej nazwę (wraz z ewentualnymi parametrami), a nie wykonujesz za każdym razem wszystkich tych obliczeń w main-ie.
Awatar użytkownika
lukasz6547
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 23 mar 2008, 10:06
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME

Odp: [solved]Funkcje w c

Post autor: lukasz6547 »

ale na razie i tak nie bede pisał skomplikowanych programow, juz sobie załatwiam algorytmy jakies, ale sie zajme tym dopiero po trestach:)
px33
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 119
Rejestracja: 14 wrz 2006, 18:02
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

Odp: [solved]Funkcje w c

Post autor: px33 »

Funkcje (ale lepiej klasy) się przydają, jeśli piszesz wiele projektów, które zawierają trochę identycznego kodu - pakuje się go wtedy w funkcję i do pliku nagłówkowego, który można potem dołączyć do projektów (

Kod: Zaznacz cały

#include plik.h
). Np. jeśli piszesz gry 3d w OpenGL może ci się przydać klasa, która inicjalizuje ekran i wczytuje obiekty z plików 3ds.
Awatar użytkownika
pixelenter
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 194
Rejestracja: 31 gru 2009, 15:41
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: [solved]Funkcje w c

Post autor: pixelenter »

px33, muszę ciebie uświadomić że w C nie ma klas. C to nie c++.
http://uwolnijlaptopa.pl
http://counter.li.org/cgi-bin/certificate.cgi/528644
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: [solved]Funkcje w c

Post autor: beluosus »

@pixelenter: muszę Cię uświadomić, że wykopujesz wątki sprzed ponad dwóch lat.
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
Awatar użytkownika
pixelenter
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 194
Rejestracja: 31 gru 2009, 15:41
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: [solved]Funkcje w c

Post autor: pixelenter »

Oj sorry... nie zauważyłem
http://uwolnijlaptopa.pl
http://counter.li.org/cgi-bin/certificate.cgi/528644
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości