Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 1
O mnie prowadzący wykład i laboratoria: Dariusz Wardowski pokój: 102 dyżur:??? e-mail: wardd@math.uni.lodz.pl www: www.math.uni.lodz.pl/ wardd Dane do logowania na stronie: nazwa użytkownika: pwsz hasło: pwsz11 dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 2
Zasady zaliczenia Laboratorium 2 kolokwia (7 zajęcia i przedostatnie) Wykład egzamin w sesji (termin jeszcze nieznany) dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 3
Literatura [1] B. Stroustrup, Język C++, WNT 2002 [2] S. Prata, Szkoła Programowania Język C++, Robomatic 2002 [3] B. S. Lippman, J. Lajoie, Podstawy języka C++, WNT 2003 [4] http://wazniak.mimuw.edu.pl *5+ J. Grębosz, Symfonia C++ Tom I, II, III, Oficyna Kallimach 1999 [6] www.cplusplus.com [7] http://en.cppreference.com/w/cpp dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 4
C++, czyli C i coś więcej Język C (początek lat 70-tych) Pojęcia: dane (informacje przetwarzane przez program), algorytmy (pewne sposoby postępowania metody, jakie używa dany program), Język C realizuje tzw. paradygmat programowania proceduralnego i strukturalnego (imperatywnego), Programowanie od góry w dół. Język C++ (początek lat 80-tych) Język C++ to wzbogacenie mechanizmów charakterystycznych dla języka proceduralnego C o możliwośd programowania obiektowego i generycznego (z wykorzystaniem szablonów). Twórcą języka jest Bjarne Stroustroup. C C++ Każdy poprawny program w C jest poprawnym programem w C++! dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 5
Standard programowania Standard programowania to zbiór norm przyjętych opisujących dokładne działanie języka mających na celu zachowanie zgodności i przenośności programów. Standardy: Rok 1998 obowiązuje standard ISO/IEC 14882:1998 Rok 2009 ogłoszono nowy standard C++0x (ISO/IEC 14882:2011) Szczegóły: http://en.cppreference.com/w/cpp dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 6
Tworzenie programu KOD ŹRODŁOWY (.cpp,.cc,.cxx) KOMPILATOR (GNU C++) KOD OBIEKTOWY (.o) KONSOLIDACJA (LINKOWANIE) KOD WYKONYWALNY (EXE, a.out) dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 7
Pierwszy program //pierwszy.cpp #include <iostream> using namespace std; //komentarz //dyrektywa preprocesora //użycie przestrzeni nazw std cout << Witam w C++! ; cout << \n ; cin.get(); //nagłówek funkcji //instrukcje wewnątrz funkcji //instrukcja powrotu //koniec funkcji main dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 8
Funkcja main instrukcje nagłówek funkcji, int typ wartości jaką funkcja zwraca, Kod pomiędzy nawiasami i to definicja funkcji (ciało funkcji), - instrukcja powrotu Uwaga. Wielkośd liter i pisownia ma znaczenie! Samodzielny program w języku C++ musi mięć zaimplementowaną funkcję main. dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 9
Komentarze Komentarz, to tekst, który jest ignorowany podczas kompilacji. Jest on głownie przeznaczony dla osoby, która czyta kod (w celu wyjaśnienia działania fragmentu kodu lub dla samego twórcy programu). Komentarz w języku C++ zaczynamy dwoma ukośnikami // i trwa on do kooca wiersza. Komentarze między symbolami /* */ (pochodzi z C) również występuje w C++. //komentarze.cpp //to jest komentarz, który nie ma żadnego wpływu na działanie programu /* To też jest poprawny i bardzo ważny komentarz */ To już nie jest komentarz, chyba będzie źle :-) dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 10
#include Przed właściwą kompilacją kodu źródłowego uruchamiany jest automatycznie program (zwany preprocesorem), którego zadaniem jest przetworzenie pliku źródłowego. Preprocesor obsługuje dyrektywy występujące po znaku #. Przetworzenie pliku polega na przykład na dołączeniu odpowiedniej biblioteki. Np. #include <iostream> Biblioteka iostream odpowiada za instrukcje związane z wyjściem i wejściem informacji do i z programu. dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 11
Pliki nagłówkowe Plik nagłówkowy to zbiór funkcji (o określonym przeznaczeniu )zebrany w jednym pliku. Poniżej przedstawiono przykłady plików nagłówkowych i ich notacji: iostream (starsze iostream.h) plik obsługujący instrukcje wejścia/wyjścia cmath (starsze math.h) plik obsługujący funkcje matematyczne cstring (starsze string.h) plik obsługujący funkcje związane z łaocuchami znakowymi //matematyka.cpp #include <iostream> #include <cmath> using namespace std; cout << sin(m_pi/2); dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 12
namespace Przestrzenie nazw (charakterystyczne dla języka C++) to specjalnie wydzielone w plikach nagłówkowych bloki funkcji, klas i zmiennych. Mają za zadanie upraszczad pisanie programów, które korzystają z istniejącego już kodu pochodzącego z różnych źródeł. Przykładem przestrzeni nazw jest std, która zawiera standardowe składniki kompilatora C++. #include <iostream> using namespace std; cout <<??? ; #include <iostream> std::cout <<??? ; #include <iostream> using std::cout; cout <<??? ; dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 13
cout Instrukcja cout << Studenci PWSZ słuchają w skupieniu wykładu ; wyświetli komunikat zawarty między znakami. (cout jest obiektem pewnej klasy zdefiniowanej w pliku iostream). Operator << znany z C został przeciążony do obsługi strumieni. Ciąg znaków zawarty miedzy znakami nazywamy łaocuchem. Inne przykłady użycia obiektu cout: cout << Napiszę tekst i przejdę do nowego wiersza\n ; cout << Ala\n ma\n \kota\n ; cout << Inny sposób przejścia do nowego wiersza << endl; int x = 10; cout << Zmienna x ma wartosc: << x << endl; \n znak nowego wiersza endl obiekt realizujący przejście do nowego wiersza, który musi wystąpid z operatorem <<. dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 14
cin Obiekt cin pochodzacy z klasy istream (zdefiniowanej również w pliku iostream) odpowiada za pobieranie informacji ze standardowego wejścia i przekazanie informacji do zmiennej. //wiek.cpp #include <iostream> using std::cin; using std::cout; cout << Ile masz lat? ; int x; cin >> x; cout << Masz tylko << x << jesteś bardzo młody\n ; dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 15
Pisz starannie :-) //pierwszy.cpp #include <iostream> using namespace std; int main () cout << Witam w C++! ; cout << \n ;cin.get(); A teraz lepiej? //pierwszy.cpp #include <iostream> using namespace std; cout << Witam w C++! ; cout << \n ; Pisząc kod źródłowy przestrzegajmy następujących reguł: 1. Jedna instrukcja w jednym wierszu, 2. Nawiasy ograniczające blok, - w oddzielnych wierszach, 3. Instrukcje w funkcji wcięte w stosunku do nawiasów klamrowych, 4. Nie stosuj odstępów wokół nawiasów dot. funkcji. cin.get(); dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 16
Koniec Dziękuję za uwagę! dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 17