Funkcje tworzenie w języku C przykłady z objaśnieniem - Trzy Kody (2024)

Funkcje tworzenie w języku C przykłady z objaśnieniem - Trzy Kody (1)

Funkcje czyli porządek w kodzie!

Funkcje c/c++ w programowaniu są czymś tak naturalnym że nawet nie zdajemy sobie sprawy że z nich korzystamy. Do tej pory poznałeś funkcje main() bez której programowanie byłoby niemożliwe. Jest to główna funkcja c/c++ która “kontroluje” cały kod. Program kończy się gdy zwróci ona wartość 0 chodź zakończenie można wymusić funkcjąexit. Innymi funkcjami z których do tej pory korzystałeś sąprintf()scanf() z biblioteki stdio.h. Teraz czas na to aby pisać własne funkcje i ułatwić sobie programowanie. Funkcja jest określonego typu (na przykład int, void, float) ma unikatową nazwę oraz nawiasy okrągłe. W nawiasach podaje się agrumenty/zmienne z których będzie korzystać. Następnie są nawiasy klamrowe a w nich ciało czyli kod. Dosyć tego przydługawego wstępu pora zobaczyć to na jakiś przykładach.

Proste przykłady wprowadzające

Coś prostego na początek aby lepiej zrozumieć istotę tworzenia.

#include <stdio.h>void przywitanie() //funkcja{ printf("Witaj\nAhoj\nHello\nBonjour\nAloha"); //"\n" znak nowej linii}int main(){ przywitanie(); //wywołanie funkcji return 0;}

Ciekawić może typ funkcji void. Jest to typ pusty, nie przedstawia on żadnej konkretnej wartości wykorzystuje się w funkcjach takich jak ta. Funkcja przywitanie nie zwraca nam żadnej wartości jedynie co robi to wita się z nami w 5 różnych językach. A zatem nie ma potrzeby nadawania jej żadnego konkretnego typu skoro i tak nic nie zwraca (return). Teraz trochę bardziej rozbudowany przykład.

#include <stdio.h>int dodawanie(int a, int b) //tworzymy funckję{ return a+b;}int main(){ int x,y,wynik; printf("Jakie liczby dodac: "); scanf("%d %d", &x,&y); wynik = dodawanie(x,y); //wywołujemy funkcję i przekazujemy argumenty printf("Wynik: %d", wynik); return 0;}

Jak widzisz chodzi o to że funkcje pozwalają nam fragmentować kod. Funkcja dodawanie jest typuint a jako argumenty przyjmuje zmiennea ib które również są typuint. Nazwy tych argumentów mogą być dowolne i są one widoczne tylko w ciele funkcji (zmienne lokalne) a więc jeżeli mamy zmienną ai funkcji również jest zmiennaanie zachodzi kolizja. Przejdźmy teraz do funkcjimain a dokładniej mówiąc do 13 linijki. Wywołujemy tam naszą wcześniej stworzoną funkcje dodawanie a w jej nawiasach okrągłych podajemy zmienne do obliczenia. Oczywiście my nie pracujemy na “oryginalnych” zmiennych x y tylko na ich kopiacha b. Funkcja dodawanie zwraca nam sumę a ta jest przypisana do zmiennejwynik. Dużo teorii jak na sam początek a więc przejdźmy teraz do praktyki.

Kalkulator i biblioteka math.h

Kod jest podany modułowo najpierw będzie funkcjamain w której to dzieję się cała “magia” a następnie funkcje przez nas stworzone. Ułatwi to czytanie i zrozumienie kodu. A więc zaczynajmy

#include <stdio.h>#include <math.h> //biblioteka matematyczna potrzebna do wartość PIint main(){ float x,y,wynik; int wybor; while(1) //nieskoczona pętla { printf("Podaj pierwsza liczbe: "); scanf("%f", &x); printf("Podaj druga liczbe: "); scanf("%f", &y); printf("Wybierz dzialanie:\n"); printf("Dodawanie - 1 Odejmowanie - 2 Mnozenie - 3"); printf("\nDzielenie - 4 Liczba PI - 5 Wyjscie - 0"); printf("\nwybor: "); scanf("%d",&wybor); if(wybor==1) wynik = dodawanie(x,y); else if(wybor==2) wynik = odejmowanie(x,y); else if(wybor==3) wynik = mnozenie(x,y); else if(wybor==4) wynik = dzielenie(x,y); else if(wybor==5) wynik = liczbaPI(); else break; //przerwanie pętli printf("Wynik: %.2f",wynik); //wynik z dokładnością 2 miejsc po przecinku printf("\n\n"); //zabieg estetyczny } return 0;}

A poniżej funkcje wykorzystywane w programie

float dodawanie(float a, float b){ return a+b;}float odejmowanie(float a, float b){ return a-b;}float mnozenie(float a, float b){ return a*b;}float dzielenie(float a, float b){ if(b==0) printf("Nie dzieli sie przez 0\n"); //pamiętamy else return a/b;}float liczbaPI(){ return M_PI; //liczba PI potrzebna biblioteka math.h}

Aby przetestować program należy powyższe funkcje “wkleić” do kompilatora tak aby oba fragmenty stanowiły jedną spójną całość. Oczywiście napisanie takiego kalkulatora bez użycia funkcji było by o wiele szybsze i prostsze. Zgodzę się z tym jednak chodzi o to aby pokazać zastosowanie funkcji w praktyce. Funkcji najczęściej używa się przy dużych programach gdzie pewien blok kodu (załóżmy 20 linijek) trzeba użyć kilka razy ale dla różnych wartości. Wówczas zamiast pisać na przykład 5 takich bloków dla pięciu zestawów zmiennych wystarczy napisać go tylko raz. A następnie pięć razy wywołać a więc jest to olbrzymia oszczędność kodu co przekłada się na czytelność.

Podsumowanie

Pamiętaj że funkcje są po to aby ułatwić pracę i zapobiec tak zwanemu spaghetti code. Funkcje należy pisać w taki sposób aby były jak najbardziej elastyczne i funkcjonalne. Pozwoli to na wykorzystaniu ich wiele razy a być może nawet w innych programach. W takim przypadku należy stworzyć własny plik nagłówkowy (z rozszerzeniem .h) i w nim umieścić ciało funkcji a powstałą w ten sposób bibliotekę podpiąć. Analogicznie tak jak ma to miejsce z bibliotekę stdio.h i funkcją printf().

Funkcje tworzenie w języku C przykłady z objaśnieniem - Trzy Kody (2024)

References

Top Articles
Latest Posts
Article information

Author: Velia Krajcik

Last Updated:

Views: 5780

Rating: 4.3 / 5 (54 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Velia Krajcik

Birthday: 1996-07-27

Address: 520 Balistreri Mount, South Armand, OR 60528

Phone: +466880739437

Job: Future Retail Associate

Hobby: Polo, Scouting, Worldbuilding, Cosplaying, Photography, Rowing, Nordic skating

Introduction: My name is Velia Krajcik, I am a handsome, clean, lucky, gleaming, magnificent, proud, glorious person who loves writing and wants to share my knowledge and understanding with you.