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

Podobne dokumenty
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Wykład VI PASCAL procedury i funkcje przekazywanie parametrów,

Wykład 5: Klasy cz. 3

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład 9: Polimorfizm i klasy wirtualne

Wykład 1: Wskaźniki i zmienne dynamiczne

Wykład 8: klasy cz. 4

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

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

Wykład 9: Metody wirtualne i polimorfizm

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 11. Trochę różnych przykładów. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wykład 3 Składnia języka C# (cz. 2)

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

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

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do programowania

Lab 9 Podstawy Programowania

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

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

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

Zmienne, stałe i operatory

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Laboratorium nr 10. Temat: Funkcje cz.2.

Język C++ Różnice między C a C++

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Języki i paradygmaty programowania

Wstęp do informatyki- wykład 10 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Referencje do zmiennych i obiektów

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Języki C i C++ Wykład: 1. Wstęp Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Języki C i C++, sem.

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

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Wstęp do programowania

Metodyki i techniki programowania

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

Wykład 2 Składnia języka C# (cz. 1)

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Zaawansowane programowanie w języku C++ Klasy w C++

Wskaźniki. Informatyka

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

Definicje klas i obiektów. Tomasz Borzyszkowski

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Argumenty wywołania programu, operacje na plikach

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Wykład 4: Klasy i Metody

Język C++ zajęcia nr 2

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Przekazywanie argumentów wskaźniki

Programowanie obiektowe

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Obsługa wyjątków. Język C++ WW12

Materiały do zajęć VII

Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Rozdział 4 KLASY, OBIEKTY, METODY

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Wstęp do Programowania, laboratorium 02

Wykład 7 Okna dialogowe, menu, pasek stanu itp.

Pola i metody statyczne

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Podstawy Programowania

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

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

Języki i techniki programowania Ćwiczenia 2

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Wstęp do programowania

Spis treści JĘZYK C - FUNKCJE. Metodyki i techniki programowania. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia MITP10

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

ZASADY PROGRAMOWANIA KOMPUTERÓW

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Podstawy Programowania Obiektowego

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wprowadzenie do programowania w języku C

Wstęp do programowania. Wykład 1

Transkrypt:

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

programowania w C++ Funkcje 2 dr Artur Bartoszewski - programowania sem. 1 - WYKŁAD

Funkcje Deklaracja funkcji (nagłówki funkcji) Funkcja ma swoją nazwę, która ją identyfikuje. Wszystkie nazwy - przed pierwszym odwołaniem się do nich muszą zostać zadeklarowane. Wymagana jest więc także deklaracja nazwy funkcji. 3 dr Artur Bartoszewski - programowania sem. 1 - WYKŁAD

Funkcje 4 dr Artur Bartoszewski - programowania sem. 1 - WYKŁAD

IV. Procedury i funkcje Funkcje z argumentami (parametrami) Argumenty formalne i aktualne 1. Argumenty formalne a) deklarowane są w nagłówku funkcji b) są to identyfikatory (nazwy) symbolizujące dane przekazywane do funkcji; 2. Argumenty aktualne a) rzeczywiste wartości zmiennych, stałych i wyrażeń podstawiane podczas wywołania w miejsce argumentów formalnych Argumenty formalne opisują jedynie postać informacji przekazywanej do funkcji; Rzeczywistą informację niosą ze sobą dopiero argumenty aktualne. 5 dr Artur Bartoszewski - Informatyka i systemy informatyczne, sem. 1- WYKŁAD

Funkcje Przesyłanie argumentów do funkcji przez wartość Załóżmy, że mamy funkcję: Argumenty formalne W programie wywołujemy tę funkcję tak: Argumenty aktualne 6 dr Artur Bartoszewski - programowania sem. 1 - WYKŁAD

Funkcje - Przesyłanie argumentów do funkcji przez wartość Argumenty przesłane do funkcji przez wartość - są tylko kopiami. Jakiekolwiek działanie na nich nie dotyczy oryginału. Wywołując powyższą funkcję w następujący sposób: Otrzymamy: 7 Przed wywołaniem, aktu = 2 W funkcji modyfikuje arg formalny i teraz arg formalny = 1002 Po wywołaniu, aktu = 2 dr Artur Bartoszewski - programowania sem. 1 - WYKŁAD

IV. Procedury i funkcje Przekazywanie argumentów Poniższa procedura zamienia ze sobą zawartość zmiennych x i y Procedura po wywołaniu, rezerwuje 3 komórki pamięci o nazwach: x, y, temp 8 dr Artur Bartoszewski - Informatyka i systemy informatyczne, sem. 1- WYKŁAD

IV. Procedury i funkcje Przekazywanie argumentów Program główny wywołuje procedurę z argumentami a i b Program rezerwuje 2 komórki pamięci o nazwach: a, b 9 dr Artur Bartoszewski - Informatyka i systemy informatyczne, sem. 1- WYKŁAD

IV. Procedury i funkcje Przekazywanie argumentami Co będzie się działo w tych trzech komórkach pamięci (x, y, temp), gdy wywołamy procedurę? wejście do procedury temp = x x = y ; y = temp; Wszystko wygląda prawidłowo, jednak ta procedura tak naprawdę nic nie robi! 10 dr Artur Bartoszewski - Informatyka i systemy informatyczne, sem. 1- WYKŁAD

Funkcje - Przesyłanie argumentów do funkcji przez referencję Przesyłanie argumentów przez referencję int nasza_funkcja (int &zmienna); Wywołując funkcję o powyższej deklaracji w następujący sposób: int a1=100; nasza_funkcja(a1); zamiast wartość zmiennej a1 (liczby 100), do funkcji został wysłany adres zmiennej a1. Na jego podstawie w funkcji stworzona została referencja zmiennej a1 druga nazwa dla tego samego obiektu w pamięci operacyjnej. Funkcja może modyfikować wartość zmiennej przekazanej przez referencję. 11 dr Artur Bartoszewski - programowania sem. 1 - WYKŁAD

IV. Procedury i funkcje Przekazywanie argumentów W tej wersji procedury zastosowano inny sposób przekazywania parametrów: Tym razem zmienne lokalne x, y zostaną powiązane ze zmiennymi, które procedura otrzyma w trakcie jej wywołania. 12 dr Artur Bartoszewski - Informatyka i systemy informatyczne, sem. 1- WYKŁAD

IV Procedury i funkcje Przekazywanie argumentów Co będzie się działo w tych trzech komórkach pamięci (x, y, temp), gdy wywołamy procedurę? wejście do procedury temp = x ; x = y ; &a = &b; y = temp; &b= temp; 13 dr Artur Bartoszewski - Informatyka i systemy informatyczne, sem. 1- WYKŁAD

IV. Procedury i funkcje Przekazywanie argumentów Po zakończeniu procedury zmienne lokalne x,y,temp znikają, lecz powiązane z nimi zmienne a i b mają już nową wartość. Po wykonaniu procedury Metoda ta pozwala na przekazywanie wyniku z wnętrza procedury do programu ją wywołującego 14 dr Artur Bartoszewski - Informatyka i systemy informatyczne, sem. 1- WYKŁAD

Funkcje Argumenty domniemane Nagłówek funkcji: int nasza_funkcja (int a =100, int argument = 0); Możliwe sposoby wywołania: Nasza_funkcja(10, 10); Argument = 10; Nasa_funkcja(10); Argument = 0;. 15 dr Artur Bartoszewski - programowania sem. 1 - WYKŁAD

programowania w C++ Przeciążanie nazw funkcji 16 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Przeciążanie nazw funkcji Przeciążanie nazw funkcji umożliwia zdefiniowanie kilku funkcji o tej samej nazwie różniących się listą parametrów. Np.: int funkcja (); int funkcja (int a); int funkcja (int a, int b); int funkcja (int a, int b, inc c); 17 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Przeciążanie nazw funkcji 18 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Przeciążanie nazw funkcji 19 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

programowania w C++ Zakres ważności nazwy i czasu życia obiektu 20 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Obiekty globalne Obiekt zdeklarowany na zewnątrz wszystkich funkcji ma zasięg globalny. Obiekt jest dostępny wewnątrz wszystkich funkcji znajdujących się w tym pliku. Jest znany dopiero od linijki, w której nastąpiła jego deklaracja, w dół, do końca programu. #include <iostream.h> int liczba; // zmienna globalna void jaksa_funkcja(); Int main() { } void jaksa_funkcja() { } 21 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Obiekty automatyczne Zmienne automatyczne - w momencie gdy kończymy blok, w którym je zdefiniowaliśmy automatycznie przestają istnieć. (obiekty automatyczne komputer przechowuje na stosie). Jeśli po raz drugi wejdziemy do danego bloku (np. przy powtórnym wywołaniu funkcji) to zmienne tam zdefiniowane zostaną powołane do życia po raz drugi. Wynikają z tego dwa wnioski: nie możemy liczyć na to, że przy ponownym wywołaniu funkcji zastaniemy zdefiniowany tam z wartością, którą miał na gdy poprzednio korzystaliśmy z tej funkcji. skoro obiekt przestaje istnieć, to nie ma sensu by funkcja zwracała jego adres. 22 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Obiekty automatyczne Zmienne globalne są wstępnie inicjalizowane wartością zero. Zmienne automatyczne - zawierają na stracie losową wartość. 23 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Obiekty lokalne statyczne Zmienne lokalne statyczne pozwalają, by zmienna lokalna dla danej funkcji przy ponownym wejściu do tej funkcji miała taką wartość, jak przy ostatnim opuszczaniu tejże funkcji. W odróżnieniu od zmiennych globalnych są one jednak znane tylko w obrębie funkcji, w której je zdefiniowano. 24 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Obiekty lokalne statyczne 25 dr Artur Bartoszewski - programowania, sem. 1 - WYKŁAD

Literatura: W prezentacji wykorzystano przykłady i fragmenty: Grębosz J. : Symfonia C++, Programowanie w języku C++ orientowane obiektowo, Wydawnictwo Edition 2000. Jakubczyk K.: Turbo Pascal i Borland C++ Przykłady, Helion. Warto zajrzeć także do: Sokół R. : Microsoft Visual Studio 2012 Programowanie w Ci C++, Helion. Kerninghan B. W., Ritchie D. M.: język ANSI C, Wydawnictwo Naukowo Techniczne. Dla bardziej zaawansowanych: Grębosz J. : Pasja C++, Wydawnictwo Edition 2000. Meyers S.: język C++ bardziej efektywnie, Wydawnictwo Naukowo Techniczne 26 dr Artur Bartoszewski - programowania, sem 1 - WYKŁAD