Funkcja (podprogram) void



Podobne dokumenty
Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Co nie powinno być umieszczane w plikach nagłówkowych:

2 Przygotował: mgr inż. Maciej Lasota

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Tablice, funkcje - wprowadzenie

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Wstęp do Programowania, laboratorium 02

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

PROGRAMOWANIE w C prolog

Podstawy programowania C. dr. Krystyna Łapin

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Wykład 1

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

Język C zajęcia nr 11. Funkcje

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wskaźniki w C. Anna Gogolińska

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Zmienne, stałe i operatory

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

Wstęp do informatyki- wykład 11 Funkcje

Język C, tablice i funkcje (laboratorium)

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Wstęp do programowania

Wstęp do informatyki- wykład 9 Funkcje

Laboratorium nr 10. Temat: Funkcje cz.2.

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

tablica: dane_liczbowe

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Tablice deklaracja, reprezentacja wewnętrzna

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Programowanie Proceduralne

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania 1

Wprowadzenie do programowania w języku C

Język C, tablice i funkcje (laboratorium, EE1-DI)

Szablony klas, zastosowanie szablonów w programach

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Języki i metodyka programowania. Wprowadzenie do języka C

IX. Wskaźniki.(3 godz.)

5 Przygotował: mgr inż. Maciej Lasota

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Wskaźniki. Programowanie Proceduralne 1

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Operacje wejścia/wyjścia odsłona pierwsza

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

WYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5

Część 4 życie programu

Tablice, funkcje, wskaźniki - wprowadzenie

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Podział programu na moduły

Język C++ zajęcia nr 2

1 Podstawy c++ w pigułce.

Wstęp do programowania 1

Elementarne wiadomości o języku C

Język C - podstawowe informacje

Podstawy programowania w języku C++

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

KURS C/C++ WYKŁAD 1. Pierwszy program

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Biblioteka standardowa - operacje wejścia/wyjścia

Podstawy programowania komputerów

Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Stałe, tablice dynamiczne i wielowymiarowe

( wykł. dr Marek Piasecki )

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)

Pliki. Informacje ogólne. Obsługa plików w języku C

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

Wykład Funkcje Struktura funkcji Deklaracja i definicja funkcji Przekazywanie parametrów do funkcji

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Programowanie - wykład 4

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Transkrypt:

Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji Funkcje biblioteczne Makrodefinicje 104

Co to jest funkcja? Funkcja (podprogram) to wydzielony fragment kodu przeznaczony do wielokrotnego użycia w programie. Nazwany fragment programu, do którego można się odwoływać, powodując wykonanie składających się na niego instrukcji. Funkcja może zwracać wartość określonego typu lub wartość pustą void. Funkcja, która zwraca wartość przekazuje tę wartość w miejsce swojego wywołania. 105

Dlaczego używamy funkcji? Powody uzasadniające użycie funkcji (podprogramów): dbałość o przejrzystą strukturę programu (podział programu na podprogramy); unikanie powtarzania tych samych ciągów instrukcji w wielu miejscach programu (zwartość i mniejszy rozmiar kodu); możliwość korzystania z gotowych funkcji (podprogramów) rozwiązujących mniejsze fragmenty zadania (programu) (wielokrotne użycie). Wielokrotne użycie funkcji umożliwia zmniejszenie rozmiaru kodu, ale obsługa wywołań funkcji zajmuje dodatkowy czas procesora. 106

Budowa funkcji NAGŁÓWEK FUNKCJI 1 2 3 <typ zwracany> <nazwa> ( <arg1>, <arg2>,... ) <deklaracja 1>; <deklaracja 2>;... część deklaracyjna (zawsze na początku) <instrukcja 1>; <instrukcja 2>;... instrukcje 4 CIAŁO FUNKCJI return <wartość>; instrukcja powrotu 107

Budowa funkcji NAGŁÓWEK FUNKCJI <typ zwracany> <nazwa> ( <arg1>, <arg2>,... )... PARAMETRY FORMALNE (zmienne lokalne) Wywołanie funkcji <nazwa> ( <arg1>, <arg2>,... ); PARAMETRY AKTUALNE 108

Deklaracja, definicja i wywołanie funkcji #include <stdio.h> void drukuj(int n); int main() int a; DEKLARACJA ZAPOWIADAJĄCA (PROTOTYP) printf( Podaj a = ); scanf( %d, &a); drukuj(a); WYWOŁANIE return 0; void drukuj(int n) int i; for (i = 1; i <= n; i++) printf( Napis %d\n, i); DEFINICJA 109

Deklaracja, definicja i wywołanie funkcji #include <stdio.h> void drukuj(int n) int i; for (i = 1; i <= n; i++) printf( Napis %d\n, i); DEFINICJA int main() int a; printf( Podaj a = ); scanf( %d, &a); drukuj(a); return 0; DEKLARACJA ZAPOWIADAJĄCA (PROTOTYP) JEST ZBĘDNA WYWOŁANIE 110

Przykład 1 brak argumentów void opis(); DEKLARACJA ZAPOWIADAJĄCA (PROTOTYP) void opis() DEFINICJA printf( Program oblicza to i tamto\n ); printf( Autor: Jan Kowalski\n ); opis(); WYWOŁANIE 111

Przykład 2 jeden argument void drukuj(int n); DEKLARACJA ZAPOWIADAJĄCA (PROTOTYP) void drukuj(int n) DEFINICJA int i; for (i = 1; i <= n; i++) printf( Napis %d\n, i); int a = 2, b = 3;... drukuj(5); drukuj(a); drukuj(a+b); WYWOŁANIE 112

Przykład 3 jeden argument i zwrócenie float pole(float promien); float pole(float promien) float p; const float pi = 3.14; DEKLARACJA ZAPOWIADAJĄCA (PROTOTYP) DEFINICJA p = pi*promien*promien; return p; float r = 3, S; S = pole(2.5); printf( %f, pole(r)); S = pole(4*sqrt(r)); WYWOŁANIE 113

Przykład 4 dwa argumenty i zwrócenie int dodaj(int a, int b); int dodaj(int a, int b) int c; DEKLARACJA ZAPOWIADAJĄCA (PROTOTYP) DEFINICJA c = a+b; return c; return a+b; int x = 2, y = 4, z;... z = dodaj(2, -7); printf( %d, dodaj(x, y)); WYWOŁANIE 114

Przykład 5 n! = 1 * 2 *... n unsigned long silnia(unsigned int n); unsigned long silnia(unsigned int n) unsigned int i; unsigned long wynik = 1; DEKLARACJA ZAPOWIADAJĄCA (PROTOTYP) if (n > 12) return 0; for ( i = 1; i <= n; i++ ) wynik = wynik*i; return wynik; DEFINICJA printf( %ld, silnia(5)); WYWOŁANIE 115

Przekazywanie argumentów do funkcji METODA 1: PRZEZ WARTOŚĆ DEFINICJA: int dodaj(int a, int b) return a+b; WYWOŁANIE: int x = 2, y = 3, z;... z = dodaj(x, y); 116

Przekazywanie argumentów do funkcji METODA 2: PRZEZ ADRES (WSKAŹNIK) DEFINICJA: void dodaj(int a, int b, int *c) *c = a+b; WYWOŁANIE: int x = 2, y = 3, z;... dodaj(x, y, &z); 117

Przykład DEFINICJA: void swap1(int a, int b) int c; c = a; a = b; b = c; WYWOŁANIE: int x = 1, y = 2;... swap1(x, y); Funkcja operuje na kopiach zmiennych x i y Zostaną zamienione miejscami kopie zmiennych x i y, a nie oryginały! 118

Przykład DEFINICJA: void swap2(int *a, int *b) int c; c = *a; *a = *b; *b = c; WYWOŁANIE: int x = 1, y = 2;... Funkcja operuje na swap2(&x, &y); adresach zmiennych x i y Zostaną zamienione miejscami wartości znajdujące się pod adresami zmiennych x i y. 119

int main() int x = 1, y = 2; Przykład 1 2 3 printf( x = %d, y = %d\n, x,y); swap1(x, y); printf( x = %d, y = %d\n, x,y); swap2(&x, &y); printf( x = %d, y = %d\n, x,y); return 0; 1 2 3 x = 1, y = 2 x = 1, y = 2 x = 2, y = 1 _ 120

Tablica jako argument funkcji #include <stdio.h> int a[3] = 10, 20, 30 ; int b[] = 1, 2, 3, 4, 5 ; UNIEMOŻLIWIA MODYFIKACJĘ ZAWARTOŚCI TABLICY void drukuj( const int tablica[], int N ) int i; for (i = 0; i < N; i++) printf( element[%d] = %d\n, i, tablica[i]); /* tablica[0] = 5; */ NIEWYKONALNE Nazwa tablicy jest adresem pierwszego int main() elementu (wskaźnikiem na pierwszy element): a &a[0] drukuj(a, 3); b &b[0] drukuj(b, sizeof b/sizeof (int)); 121

Funkcje biblioteczne Biblioteka standardowa: pliki nagłówkowe assert.h ctype.h errno.h float.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stddef.h stdio.h stdlib.h string.h time.h diagnostyka kodu (asercje) funkcje do klasyfikowania znaków ograniczenia implementacji (arytmetyka zmiennopozyc.) ograniczenia implementacji (typy całkowite) funkcje matematyczne funkcje do obsługi tzw. skoków odległych funkcje do obsługi sygnałów (zdarzeń wyjątkowych) funkcje do obsługi zmiennej listy argumentów funkcje obsługujące standardowe wejście-wyjście funkcje narzędziowe funkcje do operacji na ciągach znaków funkcje do obsługi daty i czasu 122

Makrodefinicje #include <stdio.h> #define KWADRAT(a) ((a)*(a)) #define MAX((a), (b)) ( ((a) > (b))? (a) : (b) ) int maximum(int a, int b) return (a > b)? a : b; if (a > b) return a; else return b; void main() int a; a = KWADRAT(3); a = MAX(2, 5); a = maximum(3, -2); WYWOŁANIE MAKRODEFINICJI (MAKROWYWOŁANIE MAKROINSTRUKCJA) WYWOŁANIE FUNKCJI 123