Podstawy programowania

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Funkcje w PHP ABK.
C++ wykład 2 ( ) Klasy i obiekty.
Język C/C++ Funkcje.
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe
Język ANSI C Funkcje Wykład: Programowanie komputerów
Prowadzący: mgr inż. Elżbieta Majka
Programowanie I Rekurencja.
Static, const, volatile.
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
formatowanie kodu źródłowego
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Podstawy programowania PP – WYK3 Wojciech Pieprzyca.
Podstawy programowania PP – WYK2 Wojciech Pieprzyca.
Podstawy programowania PP – LAB4 Wojciech Pieprzyca.
Java – programowanie obiektowe
Programowanie obiektowe W2
Podstawy programowania
Podstawy programowania II
Instrukcje sterujące część 1
Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Float; Przykład: Wskaźnik przechowuje adres obiektu wskazanego.
Podstawy programowania
Programowanie strukturalne i obiektowe
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
Podstawy programowania w języku C i C++
Podstawy programowania II
Łódź, 3 października 2013 r. Katedra Analizy Nieliniowej, WMiI UŁ Podstawy Programowania Złożona składnia języka C++
Procedury i funkcje.
Generator analizatorów leksykalnych
Przekazywanie argumentów
Podstawy programowania
Jerzy F. Kotowski1 Informatyka I Wykład 8 STRUKTURA PROGRAMU n Funkcje n Klasy zmiennych n Projekt.
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Podstawy programowania w języku C i C++
Jerzy F. Kotowski1 Informatyka I Wykład 14 DEKLARATORY.
Jerzy F. Kotowski1 Informatyka I Wykład 15 PIERWSZE KROKI.
Andrzej Repak Nr albumu
Podstawy programowania
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Składnia instrukcji warunkowej if…
Składnia pętli do … while do instrukcja while (wyrażenie); gdzie: instrukcja – instrukcja pojedyncza lub blok instrukcji wyrażenie – wyrażenie przyjmujące.
Podstawy języka Instrukcje - wprowadzenie
Programowanie strukturalne i obiektowe C++
Funkcje w C++ Funkcja – wydzielony fragment kodu użyty w programie (raz lub więcej razy) spełniający określone zadanie, np. obliczenie średniej ocen.
Programowanie strukturalne i obiektowe C++
Instrukcje wyboru.
Programowanie proceduralne Podstawy Programowania dla geoinformatyków Wykład 3 Rafał Witkowski, 2015.
Pętle Zajęcia 6.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Język C/C++ Instrukcje
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
STOS. STL (ang. Standard Template Library) jest to biblioteka zawierająca algorytmy, pojemniki, iteratory oraz inne konstrukcje w formie szablonów, gotowe.
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

Podstawy programowania Zachodniopomorska Szkoła Biznesu Podstawy programowania Wykład 4: Funkcje

Podstawy programowania - Funkcje Co to jest funkcja? Funkcja to wydzielony fragment programu (podpogram), któremu nadano nazwę. Może on zawierać deklaracje lokalne oraz instrukcje. Funkcję można wywołać w dowolnym miejscu programu (poniżej jej deklaracji!) podając tylko jej nazwę z nawiasami ( ) Funkcji używa się w sytuacji, gdy: Pewien niemały fragment programu powtarza się kilkakrotnie w jednakowej lub zbliżonej formie Program jest długi i skomplikowany, dobrze jest wtedy podzielić go na mniejsze zadania, budować całość z mniejszych „klocków” W języku C++ działanie każdej funkcji wiąże się z wygenerowaniem (zwracaniem) pewnej wartości, której typ musi zostać określony w jej nagłówku. Podstawy programowania - Funkcje

Składnia definicji funkcji typ nazwa() // nagłówek (nawiasy konieczne) { // nawiasy klamrowe konieczne deklaracje lokalne instrukcje } Jeżeli funkcja ma nie zwracać żadnej wartości, nadajemy jej typ void. Można ją wtedy nazwać procedurą. Jeżeli zwracany jest typ inny niż void, przed zakończeniem działania funkcji musi pojawić się instrukcja return wyrażenie; // typ zgodny z nagłówkiem! Jeżeli funkcja jest typu void, można (ale nie trzeba) w dowolnym jej miejscu użyć instrukcji return; która powoduje natychmiastowe zakończenie działania funkcji. Podstawy programowania - Funkcje

Przykłady definicji funkcji (1) void pusta() // funkcja minimum { } float pi() // funkcja minimum z typem { return 3.1415; } int signum() // sprawdzenie znaku { // globalnej zmiennej ‘a’ if (a<0) // (musi być zadeklarowana) return -1; else return (a>0); Podstawy programowania - Funkcje

Przykłady definicji funkcji (2) void odliczanie() // wypisanie na ekranie { // liczb od 10 do 1 int i; // zmienna lokalna for (i=10; i>0; i--) cout << i << endl; // wypisanie elementu } // tu nie musi być ‘return’ void wypisz_dodatnia() { int liczba; cout << "Podaj liczbę dodatnią: "; cin >> liczba; if (liczba <=0) return; // wyskoczenie z funkcji cout << liczba; // wypisanie liczby } Podstawy programowania - Funkcje

Typowe błędy w definicji funkcji Brak return w funkcji innej niż void int BrakReturn1() { cout >> "Działa funkcja" } // funkcja zwróci wartość przypadkową!!! int BrakReturn2() // nie ma ‘return’ dla { if (i==5) // wszystkich możliwych return 1; } // przypadków Zły typ zwacanej wartości void ZlyTyp1() { return 1; } // funkcja jest typu void! int ZlyTyp2() { return "abc"; } // niezgodność typów int ZlyTyp3() { return 2.5; } // funkcja zwróci 2 !!! Podstawy programowania - Funkcje

Podstawy programowania - Funkcje Wywołanie funkcji W celu uruchomienia gotowej funkcji należy umieścić jej wywołanie wewnątrz innej funkcji (np. w funkcji main) Składnia: nazwa_funkcji(); // nawiasy konieczne! W tym przypadku wartość zwracana przez funkcję jest ignorowana. Jeżeli funkcja jest innego typu niż void, można jej wywołanie umieścić w wyrażeniu w celu wykorzystania wartości zwracanej przez tę funkcję, np. x=2*nazwa_funkcji()+1; Oznacza to wykonanie funkcji i użycie zwróconej przez nią wartości do obliczeń. Podstawy programowania - Funkcje

Wywołanie funkcji - schemat main() Ustaw(); Zeruj(); Ustaw() a1=b1=1; a2=b2=2; Zeruj() a1=b1=0; a2=b2=0; Podstawy programowania - Funkcje

Przykłady wywołania funkcji (1) int a1, a2, b1, b2; // zmienne globalne void Ustaw() { a1=b1=1; a2=b2=2; } void Zeruj() { a1=b1=a2=b2=0; } void main() { Ustaw(); // wywołanie funkcji ‘Ustaw’ Zeruj(); // wywołanie funkcji ‘Zeruj’ Ustaw(); Zeruj(); } Podstawy programowania - Funkcje

Przykłady wywołania funkcji (2) float pi() // ta funkcja musi być pierwsza { return 3.1415; } float dwapi() { return 2* pi(); // wywołanie ‘pi’ } void main() { float Pole, Obwod, r=5; Pole = pi() * r*r; // wywołanie ‘pi’ Obwod= dwapi() * r; // wywołanie ‘dwapi’ } Podstawy programowania - Funkcje

Przekazywanie danych z/do funkcji Większość funkcji potrzebuje do swego działania danych wejściowych. Przekazanie ich do funkcji może odbywać się poprzez: Zmienne globalne, które są dostępne zarówno w funkcji wywołującej jak i w funkcji wywoływanej Parametry wywołania funkcji Dane wyjściowe, "wyprodukowane" przez funkcję wywoływaną, można przekazać do funkcji wywołującej poprzez: Wartość zwracaną w instrukcji return (tylko jedna wartość) Zmienne globalne Zapisanie danych pod adresem (wskaźnik lub referencja) otrzymanym od funkcji wywołującej. Podstawy programowania - Funkcje

Przekazywanie wartości przez zmienne globalne float a,b,c,delta, x1,x2; void Obliczdelta() // funkcja wymaga danych! { delta=b*b-4*a*c; } void ObliczDwa() { x1=(-b-sqrt(delta)) / (2*a); // wynik do zmiennych x2=(-b+sqrt(delta)) / (2*a); // globalnych } void main() { a=2, b=3, c=-1; // dane dla funkcji!!! Obliczdelta(); if (delta>0) { ObliczDwa(); cout << "x1=" << x1 << endl; // wypis wyniku cout << "x2=" << x2 << endl; } Podstawy programowania - Funkcje

Zmienne globalne i lokalne Nie wolno w tym samym zakresie zdefiniować dwóch symboli o tej samej nazwie, bez względu na ich typ Symbole definiowane wewnątrz funkcji nazywane są lokalnymi Symbole lokalne tworzone są podczas rozpoczęcia wykonania bloku i niszczone przy opuszczeniu najwęższego bloku, w którym zostały zadeklarowane Zmienne lokalne powstają na tzw. stosie i po utworzeniu mogą zawierać wartości przypadkowe, podczas gdy zmienne globalne zawsze inicjalizowane są zerami. Symbol lokalny o mniejszym zakresie może mieć tę samą nazwę co symbol o szerszym zakresie (np. globalny), ale utrudnia lub uniemożliwia jego wykorzystanie, przesłania go Do przesłoniętego symbolu globalnego można uzyskać dostęp dzięki operatorowi zakresu :: umieszczonemu przed nazwą, np. ::zmienna Podstawy programowania - Funkcje

Przykłady deklaracji zmiennych globalnych i lokalnych int a=1,b=2; // deklaracje symboli globalnych float a; // błąd: powtórzona nazwa ‘a’ int b() // błąd: powtórzona nazwa ‘b’ {} void fun() { int a=3; // zmienne lokalne float b=5; // przesłaniające globalne { int a=10; // zmienna podwójnie lokalna cout << a; // 10 } cout << a; // 3 cout << ::a; // 1 } Podstawy programowania - Funkcje

Podstawy programowania - Funkcje Parametry funkcji Parametry wywołania funkcji pozwalają na przekazanie danych wejściowych dla funkcji w sposób jawny i czytelny. Jeżeli funkcja została zadeklarowana z parametrami, podczas wywołania muszą być one podane Składnia definicji funkcji z parametrami: typ NazwaFunkcji(typ1 par1, typ2 par2, itd.) { ... } Wywołanie funkcji z parametrami: NazwaFunkcji(wartość_typu1, wartość_typu2, itd.) Liczba wartości podanych w wywołaniu i ich typy muszą być zgodne z nagłówkiem funkcji Parametry funkcji można rozumieć jako deklaracje zmiennych lokalnych, które „wypełniane” są przy uruchomieniu funkcji kopiami przekazanych wartości Podstawy programowania - Funkcje

Przykłady funkcji z parametrami float PoleKola(float r) // funkcja z 1 parametrem { return 3.1415*r*r; // użycie parametru 'r } float Delta(float a, float b, float c) // 3 parametry { return b*b-4*a*c; // użycie parametrów void main() { float aa=1,bb=3,cc=-2, r=2; // inne r! float P, D, x; P=PoleKola(1); P=PoleKola(r+2); if (Delta(aa,bb,cc)==0) x=-b/(2*a); Podstawy programowania - Funkcje

Przesłanianie zmiennych globalnych przez parametry funkcji int a=1; void funkcja(int a) // ta sama nazwa ‘a’ (a=2) { a=a+5; // a=7 cout << a; // 7, użycie zmiennej lokalnej } void main() cout << a; // 1, użycie zmiennej globalnej funkcja(2); cout << a; // 1, zmienna globalna bez zmian Podstawy programowania - Funkcje

Deklaracja funkcji (prototyp) Do użycia istniejącej programiście (a także kompilatorowi podczas kompilacji) potrzebna jest tylko wiedza o jej nazwie, zwracanym typie oraz parametrach wywołania. Tzw. ciało funkcji niezbędne jest dopiero na etapie tzw. linkowania, a więc może znajdować się w dalszej części programu lub nawet w oddzielnym pliku (np. w bibliotece). Niezbędnego opisu funkcji dostarcza jej deklaracja, zwana też prototypem lub (ang. header - nagłówek). Składnia: typ NazwaFunkcji(typ1 par1, typ2 par2, ...); // uwaga na średnik !!! Jeżeli taka deklaracja znajdzie się w programie, to w dalszym ciągu pliku można wywoływać tę funkcję normalnie, tak jakby była w pełni zdefiniowana. Kompletna definicja tej funkcji musi jednak gdzieś się znajdować: albo pod spodem albo w innym pliku projektu. Podstawy programowania - Funkcje

Przykład użycia prototypu float potega(float a, int wyk); // prototyp void main() { float x=potega(2,5); // wywołanie funkcji } float potega(float a, int wyk) // definicja funkcji { // zgodność nagłówków! int i; float p=1; for (i=0; i<wyk; i++) p*=a; return p; Podstawy programowania - Funkcje

Podstawy programowania - Funkcje Biblioteki W wielu programach, jakie są tworzone powtarza się znaczna liczba różnych elementarnych zadań. W celu ułatwienia pracy programisty wiele z nich zostało już wcześniej zaprogramowane i zebrane w różnego rodzaju bibliotekach, zwykle dołączonych do kompilatora. Biblioteki zawierają przede wszystkim gotowe funkcje W celu skorzystania z funkcji bibliotecznej należy wcześniej albo samodzielnie wpisać jej prototyp (np. na podstawie dokumentacji) albo dokonać importu pliku nagłówkowego (ang. header file) za pomocą dyrektywy #include Próba wywołania w programie funkcji bibliotecznej bez podania wcześniej prototypu spowoduje błąd kompilacji (nieznany symbol) Zwykle domyślnie ustawiona jest opcja kompilatora nakazująca poszukiwanie we wskazanych bibliotekach tych funkcji, które w programie znalazły się jedynie w formie deklaracji (prototypu) Podstawy programowania - Funkcje

Podstawy programowania - Funkcje Preprocesor Integralną częścią koncepcji języka C/C++ jest preprocesor czyli moduł dokonujący pewnych operacji na tekście programu jeszcze przed jego kompilacją Działa on w oparciu o tzw. dyrektywy, które są poleceniami rozpoczynającymi się od znaku # (hash), który musi być pierwszym znakiem w danej linii programu (nie licząc spacji, tabulacji lub ewentualnie komentarza ograniczonego parą znaków /* i */ ) Standardowe dyrektywy to: #include #define #undef #if #ifdef #ifndef #else #elif #endif #line #error #pragma Podstawy programowania - Funkcje

Podstawy programowania - Funkcje Dyrektywa #include Składnia: #include <nazwa_pliku> lub #include ”nazwa_pliku” Dyrektywa ta powoduje, że preprocesor w jej miejsce wkleja podany plik w całości Zazwyczaj wklejanymi plikami są pliki nagłówkowe z rozszerzeniem .h . Zawierają one m.in. prototypy funkcji Podany plik poszukiwany jest w katalogach wyszczególnionych w opcjach kompilatora jako „include directories”. Znajdują się tam pliki nagłówkowe związane z bibliotekami kompilatora Jeżeli nazwę pliku podano w cudzysłowach (” ”), plik poszukiwany jest najpierw w katalogu, w którym znajduje się plik programu, a dopiero później w katalogach standardowych Wkleja się w ten sposób własne pliki nagłówkowe zawierające m.in. prototypy funkcji zdefiniowanych w różnych plikach Podstawy programowania - Funkcje

Podstawy programowania - Funkcje Dyrektywa #define Składnia: #define NAZWA ciąg znaków lub #define NAZWA // ciąg pusty Każde wystąpienie w tekście programu symbolu NAZWA zostanie przed kompilacją zamienione na podany ciąg znaków Jeżeli chcemy aby ciąg znaków zawierał więcej niż jedną linię, można go kontynuować w linii następnej pod warunkiem, że na końcu poprzedniej pojawi się znak \ (backslash), znak ten nie będzie wklejany jako część ciągu: #define NAZWA ciąg znaków \ kontynuacja ciągu znaków\ kontynuacja ciągu znaków Dyrektywę tę wykorzystuje się również do tworzenia tzw. makr Podstawy programowania - Funkcje

Przykłady użycia dyrektywy #define Tworzenie stałych #define PI 3.1415 float x=PI/2; #define N 10 ... for (i=1; i<N; i++)... Zamiana wybranych słów na inne #define float double W programie poniżej tej dyrektywy wszystkie napisy float zmienią się na double Usuwanie wybranych słów #define unsigned // zamiana na ciąg pusty ... unsigned int x; // unsigned zniknie Podstawy programowania - Funkcje

Podstawy programowania - Funkcje Biblioteka iostream Każdy algorytm czy program wymaga wprowadzania danych wejściowych i wyprowadzania wyniku Podstawowym sposobem wprowadzania danych jest ich wpisywanie z klawiatury, a wyprowadzania danych - wyświetlanie na ekranie Tzw. operacje wejścia-wyjścia realizowane są za pomocą funkcji (lub obiektów) z bibliotek. W języku C++ zwykle korzysta się w tym celu ze zbioru nagłówkowego iostream.h (W języku C stosowano raczej zbiór nagłówkowy stdio.h) Bibliotea ta umożliwia wprowadzanie danych z klawiatury oraz ich wyświetlanie na ekranie Biblioteka iostream.h jest skonstruowana w sposób obiektowy, udostępnia więc przede wszystkim klasy i obiekty, ale również funkcje (jako składniki klas) Podstawy programowania - Funkcje

Wyświetlanie tekstu: obiekt cout cout jest obiektem odpowiadającym standardowemu strumieniowi wyjściowemu, który domyślnie połączony jest z wyświetlaniem tekstu na ekranie. Wyświetlenie tekstu uzyskuje się dzięki przedefiniowanemu operatorowi << Składnia: cout << wyświetlany_element; cout << element1 << element2 << element3; W celu przechodzenia na początek następnej linii zdefiniowano symbol endl cout << 100.99 << endl; Wyświetlenie tekstu podanego wprost w programie wymaga umieszczenia go w cudzysłowie: cout << ”Liczba PI= ”<< 3.14 << endl; Podstawy programowania - Funkcje

Wprowadzanie danych: obiekt cin cin jest obiektem odpowiadającym standardowemu strumieniowi wejściowemu, który domyślnie połączony jest z wprowadzanie danych z klawiatury Wprowadzanie danych uzyskuje się dzięki specjalnie zdefiniowanemu operatorowi >> Wprowadzanie danych odbywa się zawsze do pamięci, a więc musimy podać nazwę zmiennej, która ma zapamiętać dane Składnia: int a,b,c; cin >> a; // po znaku << musi być zmienna cin >> a >> b >> c; Zwykle najpierw wyświetla się żądanie podania danych, np. cout << „Podaj swoją cenę: ”; cin >> cena; Podstawy programowania - Funkcje

To już jest koniec++ Dziękuję za uwagę