Wstęp do programowania

Podobne dokumenty
Wstęp do programowania

Wstęp do informatyki- wykład 11 Funkcje

Programowanie - wykład 4

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do programowania

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

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

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

Wstęp do programowania

Wstęp do programowania

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

4. Funkcje. Przykłady

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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy programowania skrót z wykładów:

Programowanie strukturalne i obiektowe. Funkcje

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

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

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

Programowanie proceduralne w języku C++ Funkcje

Wstęp do Programowania, laboratorium 02

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

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

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Część 4 życie programu

C++ wprowadzanie zmiennych

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

Programowanie komputerowe. Zajęcia 1

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

1 Podstawy c++ w pigułce.

Programowanie w języku C++

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Wstęp do programowania

Zmienne, stałe i operatory

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

Programowanie komputerowe. Zajęcia 2

C-struktury wykład. Dorota Pylak

Wstęp do Informatyki

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

Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

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

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Projektowanie klas c.d. Projektowanie klas przykład

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Język C zajęcia nr 11. Funkcje

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

Struktury Struktura polami struct struct struct struct

DYNAMICZNE PRZYDZIELANIE PAMIECI

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

Wprowadzenie do programowania w języku C

I - Microsoft Visual Studio C++

Wstęp do programowania

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

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Przekazywanie argumentów wskaźniki

Przesłanianie nazw, przestrzenie nazw

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Podstawy Programowania Podstawowa składnia języka C++

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

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

Wstęp do programowania. Wykład 1

Wyjątki (exceptions)

Wstęp do informatyki- wykład 7

Tablice, funkcje - wprowadzenie

Szablony funkcji i szablony klas

Język C++ zajęcia nr 2

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

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.

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

C-struktury wykład. Dorota Pylak

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

Podstawy programowania w języku C++

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

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

Wstęp do programowania obiektowego, wykład 7

Wstęp do programowania

Wprowadzenie do szablonów szablony funkcji

3. Instrukcje warunkowe

Podstawy programowania w C++

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

Wprowadzenie do szablonów szablony funkcji

Program 14. #include <iostream> #include <ctime> using namespace std;

referencje Wykład 2. Programowanie (język C++) Referencje (1) int Num = 50; zdefiniowano zmienną Num (typu int) nadając jej wartość początkową 50.

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

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

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

C++ - [1-3] Debugowanie w Qt Creator

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

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

Pytania sprawdzające wiedzę z programowania C++

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

Wartości domyślne, przeciażenia funkcji

Transkrypt:

wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019

Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy. języki programowania oferują często dwa rodzaje podprogramów: funkcje i procedury

Różnica miedzy procedurami i funkcjami (w językach z oboma rodzajami podprogramów): funkcja zazwyczaj operuje na pewnych argumentach (nie modyfikując ich) i zwraca pewną obliczoną wartość (jedną) procedura zazwyczaj operuje na pewnych argumentach, może je modyfikować i w ten sposób zwrócić pewną wyliczoną wartość lub wartości Funkcje i procedury zazwyczaj umieszcza się je w części deklaracyjnej programu lub w odrębnej jednostce kompilacyjnej

Podprogramy w C++ w C/C++ mamy tylko funkcje funkcje C/C++ mogą działać jak procedury lub jak funkcje z poprzedniego slajdu, zależnie od podania argumentów i od typu zwracanej wartości

Przykład (Program z funkcją) # include <iostream > using namespace std ; void szczekanie ( int i); // ----------------------- int main () int ile ; cout << " program PIES. podaj liczbe > "; cin >> ile ; szczekanie ( ile ); return 0; // --------------------------- void szczekanie ( int i) for ( int k =1; k <=i; k=k +1) cout << "hau - hau \n";

Każda funkcja: ma nazwę, która ją identyfikuje zwraca wynik pewnego typu ma pewne parametry (argumenty) wywołujemy ją za pomocą nazwy przed pierwszym wywołaniem funkcji wymagana jest jej deklaracja. Definicja funkcji (jej ciało, czyli treść) może nastąpić dalej.

Deklaracja funkcji Składnia deklaracji: typ wyniku nazwa funkcji ( lista parametrów ); Przykłady deklaracji: double pole_kwadratu ( int bok ); int fun ( int p1, float p2, char p3); void f( int a); char funkcja (); int zlicz ( void ); Słowo void oznacza, że funkcja nie zwraca żadnej wartości lub nie ma żadnych argumentów. Nazwa funkcji z pustymi nawiasami oznacza, że funkcja nie ma żadnych argumentów Puste nawiasy również oznaczają że funkcja jest bezparametrowa (nie przyjmuje argumentów) funkcje nie zwracające wartości są podobne do procedur w językach programowania w których dostępne są oba rodzaje podprogramów

Przykład (Funkcja bezparametrowa nie zwracająca wartości) # include <iostream > using namespace std ; void wizytowka (); // to samo co void wizytowka ( void ) // ------------------------------------- int main () wizytowka (); // nie " wizytowka ; " return 0; // ------------------------------------- void wizytowka () cout << " Jan Kowalski \n" " programista C ++\n";

Nazwy argumentów umieszczone w nawiasach deklaracji funkcji są nieistotne dla kompilatora i można je pominąć. Typów pominąć nie można Przykład (Równoważne deklaracje) int potega ( int podstawa, int wykladnik ); int potega (int, int );

Wywołanie funkcji przez inną funkcję W czasie wykonywania funkcji może nastąpić wywołanie innej funkcji wykonywanie bieżącej funkcji jest wówczas chwilowo przerywane, a rozpoczyna się wykonanie drugiej z funkcji. Po zakończeniu jej wykonania sterowanie wraca do pierwszej funkcji, do miejsca w któym zostało przerwane funkcja wywoływana przez inną funkcję nie musi być zdefiniowana przed wywołaniem (jej ciało może być jeszcze w tym miejscu nieznane ), ale deklaracja funkcji musi już być znana kompilatorowi (tj. nazwa, typ wyniku i typy argumentów)

Zwracanie wyniku zwracanie wartości funkcji odbywa się za pomocą instrukcji return postaci return zwracany wynik ; wykonanie instrucji return kończy działanie funkcji (dalsze jej instrukcje, jeśli istnieją, nie są wykonywane) jeśli typ wyrażenia zwracany wynik nie zgadza się z typem wyniku podanym w deklaracji funkcji, to zwracany wynik jest odpowiednio konwertowany, o ile jest to możliwe

Przykład (Oddzielna deklaracja i definicja) # include <iostream > using namespace std ; // ************************************* int minimum ( int a, int b); // ************************************* int main () int n1,n2; cout << " podaj liczbe "; cin >> n1; cout << " podaj druga liczbe "; cin >> n2; cout << " mniejsza wartoscia jest " << minimum (n1,n2) << "\n"; return 0; int minimum ( int a, int b) if (a<b) return a; else return b;

Przykład (Połączona deklaracja i definicja) # include <iostream > using namespace std ; // ************************************* int minimum ( int a, int b) if (a<b) return a; else return b; // ************************************* int main () int n1,n2; cout << " podaj liczbe "; cin >> n1; cout << " podaj druga liczbe "; cin >> n2; cout << " mniejsza wartoscia jest " << minimum (n1,n2) << "\n"; return 0; %------------------------------------------------

Przykład (Funkcja wywołująca inną funkcję -cz.1) # include <iostream > # include <cmath > using namespace std ; // ------------------------------------------- bool czy_trojkat ( double a, double b, double c); double obwod_trojkata ( double a, double b, double c); double pole_trojkata ( double a, double b, double c); // -------------------------------------------- int main () double b1,b2,b3, pole ; cout << " podaj dlugosci pobow trojkata "; cin >> b1 >> b2 >> b3; if ( czy_trojkat (b1,b2,b3)) pole = pole_trojkata (b1,b2,b3); cout << " pole trojkata wynosi " << pole << ", jego obwod to " << obwod_trojkata (b1,b2,b3) << "\n"; else cout << " liczby nie moga byc bokami trojkata \n"; return 0; // ---------------------------------

Przykład (Funkcja wywołująca inną funkcję - cz.2 (cd)) // --------------------------------- bool czy_trojkat ( double a, double b, double c) if (a <=0 b <=0 c <=0) return false ; if (a+b>c && a+c>b && b+c > a) return true ; else return false ; // --------------------------------- double obwod_trojkata ( double a, double b, double c) return a+b+c; // ---------------------------------- double pole_trojkata ( double a, double b, double c) double p,w; p = obwod_trojkata (a,b,c) /2; w = sqrt (p*(p-a)*(p-b)*(p-c)); return w;

Funkcja main() Główną funkcją programu (wykonywaną gdy uruchamiamy program) jest funkcja main() postaci int main () /*... kod programu... */ return 0; zwrot wartości 0 (do systemu operacyjnego który uruchomił program) oznacza pomyślne zakończenie wykonania

Zmienne globalne i lokalne Możemy zdefiniować pewne zmienne, które są dostępne (widoczne) we wszystkich funkcjach danego programu. Są to tzw. zmienne globalne. użycie wielu zmiennych globalnych utrudnia kontrolę nad ich wartościami Zmienne zadeklarowane wewnątrz funkcji (w jej ciele) są zmiennymi lokalnymi tej funkcji zmienne definiowane wewnątrz funkcji są zazwyczaj przechowywane na tzw. stosie (ang. stack; obszarze podręcznym, zazwyczaj o szybszym dostępie); zmienne globalne są zazwyczaj przechowywane na tzw. stercie (ang, heap; zazwyczaj o wolniejszym dostępie)

nazwa (zmienna) zdefiniowana poza ciałem jakiejkolwiek funkcji ma zasięg globalny (jest dostępna we wszystkich funkcjach programu) lokalne nazwy (zmienne) są widoczne tylko wewnątrz funkcji w których zostały zdefiniowane w obu przypadkach dana nazwa widoczna jest tylko poniżej linii w której została zdefiniowana konsekwencje: funkcja nie może się odwołać do zmiennych lokalnych innej funkcji dwie funkcje mogą mieć zmienne lokalne o takich samych nazwach

Parametry formalne i aktualne Argumenty (parametry) podane w definicji funkcji nazywamy argumentami formalnymi (parametrami formalnymi) Przykład double obwod_trojkata ( double a, double b, double c) return a+b+c; a, b i c to parametry formalne

Parametry formalne i aktualne Argumenty użyte przy wywołaniu funkcji nazywamy argumentami aktualnymi (parametrami aktualnymi) Przykład cout << obwod_trojkata ( b1, b2, b3) ; b1, b2 i b3 to parametry aktualne