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

Podobne dokumenty
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

Wstęp do Programowania, laboratorium 02

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

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

Funkcja (podprogram) void

ALGORYTMY I STRUKTURY DANYCH

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

Paradygmaty programowania

Język C++ zajęcia nr 2

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

Wstęp do programowania

5 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota

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

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

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

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

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

Metody Metody, parametry, zwracanie wartości

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

Wskaźniki. Programowanie Proceduralne 1

4. Funkcje. Przykłady

Zmienne, stałe i operatory

Jerzy Nawrocki, Wprowadzenie do informatyki

Pola i metody statyczne

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

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

Język C zajęcia nr 11. Funkcje

tablica: dane_liczbowe

ZAJ CIA 4. Podstawowe informacje o algorytmie. Operatory relacyjne i logiczne, instrukcja warunkowa if

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Język C, instrukcje sterujące (laboratorium)

Wstęp do programowania

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

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

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

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

Paradygmaty programowania. Paradygmaty programowania

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

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

Wskaźniki w C. Anna Gogolińska

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

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

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

DYNAMICZNE PRZYDZIELANIE PAMIECI

Język C, tablice i funkcje (laboratorium)

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

Funkcje. Wprowadzenie. Mirosław Ochodek

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

5. Rekurencja. Przykłady

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Rozdzia l 3. Laboratorium 3. danych zawierajac

typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }

Funkcja, argumenty funkcji

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Programowanie 2. Język C++. Wykład 2.

Argumenty wywołania programu, operacje na plikach

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

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Programowanie - wykład 4

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

3. Instrukcje warunkowe

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

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

Jerzy Nawrocki, Wprowadzenie do informatyki

Język C zajęcia nr 5

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

1. Wprowadzenie do C/C++

Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

KOLOKWIUM PODSTAWY PROGRAMOWANIA

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Warunki logiczne instrukcja if

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Podstawy Kompilatorów

Podstawy programowania C. dr. Krystyna Łapin

Instrukcje sterujące. Programowanie Proceduralne 1

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

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

Tablice, funkcje - wprowadzenie

Referencje do zmiennych i obiektów

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

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

12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy.

1. Wprowadzenie do C/C++

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

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

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa

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

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

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

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

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

Transkrypt:

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

Funkcje Funkcja podprogram. Nazwany blok kodu realizujacy jakieś zadanie. sin(x), arccos(x), min(a, b) Weź duży problem, rozbij go na latwe podproblemy! Funkcje to podstawowe komponenty w programowaniu strukturalnym. Pozwalaja na latwe podzielenie kodu na fragmenty odpowiedzialne za określone elementy algorytmu. 2 of 12

Z czego sk lada si e funkcja? typ_ zwracany nazwa ( typ1 argument1, typ2 argument2 ) operacje ; return wynik_ funkcji ; int minimum ( int a, int b) int minimum ; minimum = a < b? a : b; return minimum ; 3 of 12

Ważne poj ecia nag lowek funkcji cia lo funkcji definicja deklaracja long power ( int x, int p); long power ( int x, int p) long result = 1; int i; for ( i = 0; i < p; ++ i) result *= x; return result ; 4 of 12

Wywo lanie funkcji Funkcje wywo lujemy podajac jej nazwe oraz, w nawiasach, argumenty wywo lania. Przyk lad int fun ( int a, int b)... int main () int x, y; scanf ("%d %d", x, y); fun (x, y); fun (5, 7); fun (y+x, 2*45) ; 5 of 12

Parametry i wartość zwracana. Funkcja może przyjać dowolne kombinacje parametrów. Funkcja, która nie przyjmuje parametrów, na liście argumentów ma void. Argumenty przekazywane sa do funkcji przez wartość (sa kopiowane). Funkcja zwraca wartość o zadanym typie lub nie zwraca wartości (typ void). Funkcja zwraca tylko jedna wartość. Jeżeli nie podamy typu wartości zwracanej, przyjety zostanie int (zależy od standardu). Nie robimy tego! Zawsze należy podawać wszystkie argumenty funkcji. 6 of 12

Deklaracja funkcji Przed wywo laniem funkcji znany musi być jej nag lówek. Jak to osiagn ać? za l aczyć nag lówek z deklaracja tej funkcji (jeżeli zaimplementowana jest w innym pliku *.c) # include <stdio.h> napisać ja przed wykorzystaniem (wyżej w tym samym pliku) przed wykorzystaniem napisać deklaracje funkcji Przyk lady na nast epnym slajdzie! 7 of 12

Deklaracja funkcji # include <stdio.h> void fun ( int x) printf ("%d\n", x); int main () fun (5) ; return 0; 8 of 12 int b( int x); int a() return b (0) ; int b( int x) if( x == 0) return 1; else return a(); int main () return b (1) ;

Zasi eg zmiennych Wyróżniamy trzy podstawowe rodzaje zmiennych: globalne zdefiniowane poza funkcjami, inicjalizowane przez 0, dost epne z każdego miejsca programu lokalne zdefiniowane wewnatrz funkcji (lub bloku), dostepne tylko w jej zakresie, maja losowa wartość trzeba je inicjalizować recznie statyczne zmienne lokalne z modyfikatorem static. Dostepne wewnatrz funkcji, ale zachowuja wartość pomiedzy wywo laniami 9 of 12

Rekurencja (rekursja) Funkcja może wywo lać sama siebie. Ciag Fibonacciego fib(0) = 0 fib(1) = 1 fib(n) = fib(n 1) + fib(n 2) dla n 2 int fib ( int n) if( n == 0 n == 1) return n; return fib (n - 1) + fib (n - 2); int main () int i; scanf ("%d", &i); printf ("%d\n", fib (i)); 10 of 12

Zadania Zadanie 1 Napisz dwie funkcje, min i max, które dla dwóch podanych liczb zwróca, odpowiednio, mniejsza i wieksz a z nich. Wywo laj je dla dwóch liczb wczytanych z konsoli. min(5, 3) = 3; max(5, 3) = 5 Zadanie 2 Korzystajac z funkcji z zadania 1, napisz funkcje, która przyjmuje dwie liczby ca lkowite i zwraca 1, jeżeli wieksza z nich jest wielokrotnościa mniejszej, lub zwraca 0 w przeciwnym wypadku. Wywo laj ja dla liczby wczytanej z konsoli. 11 of 12

Zadania Zadanie 3 Korzystajac z funkcji z zadania 2, napisz funkcje, która sprawdza, czy dana liczba jest pierwsza. Wywo laj ja dla liczby wczytanej z konsoli. Hint: liczba n jest pierwsza, jeżeli nie dzieli sie bez reszty przez żadna liczbe n. Zadanie 4 Korzystajac z funkcji z zadania 3, napisz funkcje, która wypisze wszystkie liczby pierwsze niewieksze od zadanej liczby. Wywo laj ja dla liczby wczytanej z konsoli. 12 of 12