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

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

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

Wstęp do programowania

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

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

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

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

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

Wstęp do programowania. Wykład 1

1. Wypisywanie danych

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

Wstęp do informatyki- wykład 11 Funkcje

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Wstęp do informatyki- wykład 9 Funkcje

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

Wstęp do programowania

Wyjątki (exceptions)

Programowanie komputerowe. Zajęcia 1

Część 4 życie programu

Podstawy programowania. Wykład 3 Konstrukcje sterujące. 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.

4. Funkcje. Przykłady

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

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

Wstęp do Programowania, laboratorium 02

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

Programowanie - wykład 4

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

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

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

3. Instrukcje warunkowe

I - Microsoft Visual Studio C++

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

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

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

Podstawy Programowania. Wykład 1

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

#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 ); }

Przekazywanie argumentów wskaźniki

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

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

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

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

Wstęp do programowania obiektowego, wykład 7

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

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

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

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

Techniki Programowania wskaźniki 2

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

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

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

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

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

Wstęp do Informatyki

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

Przesłanianie nazw, przestrzenie nazw

Programowanie strukturalne i obiektowe. Funkcje

tablica: dane_liczbowe

1 Podstawy c++ w pigułce.

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

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

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

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

Szablony. Szablony funkcji

Język C++ wykład VIII

Podstawy Programowania

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

Proste algorytmy w języku C

Programowanie Obiektowe i C++

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 :

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

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

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

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

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

Programowanie - instrukcje sterujące

Programowanie komputerowe. Zajęcia 2

praktyczne. Wydanie III

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

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

Wstęp do Programowania 2

Podstawy programowania w C++

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

Projektowanie klas c.d. Projektowanie klas przykład

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Technologie cyfrowe semestr letni 2018/2019

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

1 Podstawy c++ w pigułce.

Wstęp do programowania

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

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

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory

Transkrypt:

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

Zakres ważności obiektów K.Grzelak (Wykład 1) Programowanie w C++ 2 / 35

Zakres ważności obiektów Zakres ważności obiektu, to ta część programu w której można go używać (nazwa obiektu jest znana). Bloki poleceń Blok poleceń pomiędzy dwoma nawiasami klamrowymi. { double masa=1.5; Zakres ważności obiektu Nazwa zmiennej znana do końca bloku. K.Grzelak (Wykład 1) Programowanie w C++ 3 / 35

Czytelny kod źródłowy podstawowe zasady Wcięcia (gdy zaczyna się nowy blok poleceń): 2-3 spacje, tabulator... if (i%3==0) { suma=suma+i*i; i++; Znaczace nazwy zmiennych (np. suma zamiast s). Komentarze Czytelny komunikat po uruchomieniu programu Wypisywanie wyniku na ekran z objaśnieniem K.Grzelak (Wykład 1) Programowanie w C++ 4 / 35

Zalety czytelnego kodu Oszczędność czasu: łatwiej poprawiać błędy na etapie kompilacji, trudniej o popełnienie błędu, samemu traci się mniej czasu usiłujac zrozumieć co napisaliśmy w programie. Najważniejsze Konieczność, jeżeli współpracuje się z innymi. K.Grzelak (Wykład 1) Programowanie w C++ 5 / 35

Jeszcze o czytelności kodu zły przykład: K.Grzelak (Wykład 1) Programowanie w C++ 6 / 35

#include <iostream> #include <cmath> using namespace std; int main(){ double p,o,r; cout << "Podaj trzy liczby: p, o i r" << endl; cin >> p >> o >> r; double d=o*o-4*p*r,e=1e-6; if(d<0){cout << "Brak rozwiazan" << endl; else if(fabs(d)<e){ double x=-o/(2.*p); cout << "x= " << x << endl; else{ cout << "x1= " << (-o+sqrt(d))/(2*p) << " i x2= " << (-o-sqrt(d))/(2*p) << endl; return 0; K.Grzelak (Wykład 1) Programowanie w C++ 7 / 35

Jeszcze o czytelności kodu dobry przykład: K.Grzelak (Wykład 1) Programowanie w C++ 7 / 35

int main(){ double a,b,c; cout << "Wpisz wspolczynniki a, b i c" << endl; cin >> a >> b >> c; double delta=b*b-4*a*c; double epsilon=1e-6; if(delta<0){ cout << "Brak rzecz. pierwiastkow"<< endl; else if(fabs(delta)<epsilon){ double x=-b/(2.*a); cout << "Jeden pierwiastek x= " << x << endl; else{ cout << "Dwa pierwiastki, x1= " << (-b+sqrt(delta) << " i x2= " << (-b-sqrt(delta))/(2*a) << en return 0; K.Grzelak (Wykład 1) Programowanie w C++ 8 / 35

Do sprawdzenia przy komputerze Jak działa program do liczenia pierwiastków równania kwadratowego dla a=1, b=-0.2 i c=0.01? Do sprawdzenia dwie wersje porównujace deltę do zera (delta ==0 i fabs(delta)<epsilon) K.Grzelak (Wykład 1) Programowanie w C++ 8 / 35

Funkcje K.Grzelak (Wykład 1) Programowanie w C++ 9 / 35

Potęgowanie 5 3 bez użycia funkcji int main(){ int pow5_3=1; for(int i=0;i<3;i++){ pow5_3=pow5_3*5; return 0; K.Grzelak (Wykład 1) Programowanie w C++ 10 / 35

Potęgowanie 5 3, 5 7, 3 8 bez użycia funkcji int main(){ int pow5_3=1; for(int i=0;i<3;i++){ pow5_3=pow5_3*5; int pow5_7=1; for(int i=0;i<7;i++){ pow5_7=pow5_7*5; int pow3_8=1; for(int i=0;i<8;i++){ pow3_8=pow3_8*3; return 0; K.Grzelak (Wykład 1) Programowanie w C++ 11 / 35

Prościej jeżeli używa się funkcji 5 3, 5 7, 3 8 int main(){ int pow5_3=potega(5,3); int pow5_7=potega(5,7); int pow3_8=potega(3,8); return 0; Gdzie i jak zdefiniować funkcję potega? K.Grzelak (Wykład 1) Programowanie w C++ 12 / 35

Definicja własnej funkcji int potega(int podstawa, int wykladnik){ int wynik=1; for(int i=0;i<wykladnik;i++){ wynik=wynik*podstawa; return wynik; int main(){ int pow5_3=potega(5,3); int pow5_7=potega(5,7); int pow3_8=potega(3,8); return 0; Każda funkcja zdefiniowana w niezależnym bloku. K.Grzelak (Wykład 1) Programowanie w C++ 13 / 35

Zalety własnych funkcji Kod czytelniejszy Trudniej o popełnienie błędu Zmiana algorytmu zmiana jednej funkcji Tę sama funkcję można użyć w innym programie Tę sama funkcję moga użyć inne osoby K.Grzelak (Wykład 1) Programowanie w C++ 14 / 35

Definicja funkcji int potega(int podstawa, int wykladnik){ int wynik=1; for(int i=0;i<wykladnik;i++){ wynik=wynik*podstawa; return wynik; int main(){ int wynik=potega(3,4); return 0; Funkcje można umieszczać przed lub za funkcja main. K.Grzelak (Wykład 1) Programowanie w C++ 15 / 35

Definicja i deklaracja funkcji int potega(int podstawa, int wykladnik); int main(){ int wynik=potega(3,4); return 0; int potega(int podstawa, int wykladnik){ int wynik=1; for(int i=0;i<wykladnik;i++){ wynik=wynik*podstawa; return wynik; Jeżeli definicja funkcji jest za main, to przed main musi być jej deklaracja. K.Grzelak (Wykład 1) Programowanie w C++ 16 / 35

Przykład funkcji int potega(int podstawa, int wykladnik){ int wynik=1; for(int i=0;i<wykladnik;i++){ wynik=wynik*podstawa; return wynik; potega nazwa funkcji (int podstawa, int wykladnik) argumenty funkcji za return to co funkcja zwraca przed nazwa funkcji typ wyniku K.Grzelak (Wykład 1) Programowanie w C++ 17 / 35

Przykłady deklaracji funkcji int fun1(); double f2(double czas, int typ); void rysuj(char znak, int n); K.Grzelak (Wykład 1) Programowanie w C++ 18 / 35

Wynik działania funkcji Funkcja zwraca co najwyżej jedna wartość. Przykład, gdy nie zwraca niczego: void rysuj(char znak, int n); K.Grzelak (Wykład 1) Programowanie w C++ 19 / 35

Rysowanie kwadratu z przekatnymi void rysuj(char znak, int n){ for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ char znak_rys; if(i==1 j==1 i==j j==n-i+1 j==n i cout << znak; else{ cout << " "; cout << endl; int main(){ rysuj( *,10); K.Grzelak (Wykład 1) Programowanie w C++ 20 / 35

Rysowanie kwadratu z przekatnymi K.Grzelak (Wykład 1) Programowanie w C++ 21 / 35

Wynik działania jednej funkcji może być różny Polecenie return może być w kilku miejscach. double sr_geom(double a, double b){ double iloczyn=a*b; if(iloczyn<0){ return -999.; return sqrt(iloczyn); K.Grzelak (Wykład 1) Programowanie w C++ 22 / 35

Stos podręczna pamięć Stos (ang. stack) LIFO(Last In, First Out) K.Grzelak (Wykład 1) Programowanie w C++ 23 / 35

Odwrotna Notacja Polska czyli jak działa stos Przykład ((3+8)/3+(15-6)*5)/2 W odwrotnej notacji polskiej: 3 8 + 3 / 15 6-5 * + 2 / Niepotrzebne nawiasy! K.Grzelak (Wykład 1) Programowanie w C++ 24 / 35

Odwrotna Notacja Polska czyli jak działa stos 3 8 + 3 / 15 6-5 * + 2 / Dla kolejnych symboli: Jeśli symbol jest liczba odkładamy go na stos Jeżeli symbol jest operatorem: zdejmij ze stosu dwa elementy (i i j) odłóż na stos wynik operacji i operator j K.Grzelak (Wykład 1) Programowanie w C++ 25 / 35

Odwrotna Notacja Polska czyli jak działa stos, cd Dla kolejnych symboli: Jeżeli symbol jest funkcja: zdejmij ze stosu tyle elementów ile jest parametrów funkcji odłóż na stos wynik funkcji K.Grzelak (Wykład 1) Programowanie w C++ 26 / 35

Przesyłanie argumentów do funkcji przez wartość K.Grzelak (Wykład 1) Programowanie w C++ 27 / 35

Przesyłanie argumentów do funkcji przez wartość (np. double sumuj(int typ);): Do funkcji przesyłana jest tylko liczbowa wartość Wartość używana do inicjalizacji zmiennej lokalnej na stosie Funkcja pracuje na kopii obiektu K.Grzelak (Wykład 1) Programowanie w C++ 28 / 35

Przesyłanie argumentów do funkcji przez referencję K.Grzelak (Wykład 1) Programowanie w C++ 29 / 35

Przesyłanie argumentów do funkcji przez referencję (np. double sumuj(int & typ);): Do funkcji przesyłany jest tylko adres zmiennej w pamięci komputera Na stosie tworzona jest referencja (przezwisko) obiektu Funkcja pracuje na oryginale obiektu K.Grzelak (Wykład 1) Programowanie w C++ 30 / 35

Przeładowanie funkcji K.Grzelak (Wykład 1) Programowanie w C++ 31 / 35

Przeładowanie funkcji Funkcje moga mieć tę sama nazwę, ale różna liczbę argumentów Funkcje moga mieć tę sama nazwę, tę sama liczbę argumentów, ale inne ich typy void rysuj(char znak, int typ); void rysuj(char znak); void rysuj(char znak, char znak2); K.Grzelak (Wykład 1) Programowanie w C++ 32 / 35

Funkcje biblioteczne K.Grzelak (Wykład 1) Programowanie w C++ 33 / 35

Funkcje biblioteczne Biblioteka matematyczna, cmath Plik nagłówkowy: #include <cmath> Podnoszenie do potęgi (a do potęgi b): pow(a,b) Pierwiastek: sqrt Wartość bezwzględna: fabs Funkcje trygonometryczne: sin, cos, tan, asin, acos, atan, atan2 Funkcje eksponencjalne i logarytmiczne: exp,log,log10... Dokumentacja standardowej biblioteki: http://www.cplusplus.com/reference/ K.Grzelak (Wykład 1) Programowanie w C++ 34 / 35

Funkcje Program Programowanie proceduralne, np. w języku C W C++ też można programować proceduralnie, ale ++ oznacza programowanie obiektowe K.Grzelak (Wykład 1) Programowanie w C++ 35 / 35