Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28
Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28
Umiejętność, która otwiera nowe możliwości. Znajomość programowania niezbędna na wielu specjalizacjach. K.Grzelak (Wykład 1) Programowanie w C++ 3 / 28
Języki programowania Programy budowane z poleceń w trybie tekstowym C, C++, Python, Java, Fortran... Jeden z najprostszych programów w C++ K.Grzelak (Wykład 1) Programowanie w C++ 4 / 28
Języki programowania Programy budowane z ikonek w trybie graficznym LabView, VEE, Scratch... Przykład w LabView - z zajęć Indywidualnej Pracowni Wstępnej A; przykład w Scratch - Wikipedia K.Grzelak (Wykład 1) Programowanie w C++ 5 / 28
Dlaczego programowanie w C++? K.Grzelak (Wykład 1) Programowanie w C++ 6 / 28
Wysoka wydajność kodu Bezpośrednia łaczność z urzadzeniami (hardware interface) Nowoczesny, obiektowy, kompilowany język Dużo bibliotek do naukowych zastosowań K.Grzelak (Wykład 1) Programowanie w C++ 7 / 28
C vs C++ C język C, nieobiektowy C++ C plus obiektowość C++xx (np. C++11) kolejne wersje standardu C++ K.Grzelak (Wykład 1) Programowanie w C++ 8 / 28
Od kodu źródłowego do kodu maszynowego Source File Compiler Object File Linker Executable OS Program in Memory Libraries K.Grzelak (Wykład 1) Programowanie w C++ 9 / 28
Od kodu źródłowego do kodu maszynowego w C++ Source File Source File Preprocessor Preprocessor Processed Code Processed Code Compiler Compiler Object File Object File Linker Executable Libraries Kod źródłowy programu może być zapisany w dwóch lub więcej plikach. OS Program in Memory K.Grzelak (Wykład 1) Programowanie w C++ 10 / 28
Zaczynamy pierwszy program K.Grzelak (Wykład 1) Programowanie w C++ 11 / 28
Pierwszy program kod źródłowy Programy zapisujemy w edytorze tekstu, np. gedit, nano i nadajemy nazwę np. prog.cc Poniższy program wypisuje na ekran: Witam #include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 12 / 28
Preprocesowanie, kompilowanie, linkowanie w jednym poleceniu (i uruchamianie programu) Polecenia wpisywane w okienku terminala w Linux ie. $ g++ -o prog prog.cc $./prog $ Witam $ znak zachęty w okienku terminala K.Grzelak (Wykład 1) Programowanie w C++ 12 / 28
#include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 13 / 28
Biblioteki #include<iostream> Biblioteka standardowa Część standardowej instalacji. Dokumentacja: http://www.cplusplus.com/reference/ Biblioteka iostream część standardowej biblioteki; operacje wejścia - wyjścia (input-output); wczytywanie zmiennych z klawiatury (cin) i wypisywanie na ekran (cout) K.Grzelak (Wykład 1) Programowanie w C++ 13 / 28
Biblioteki Jeżeli chcemy korzystać z funkcji zdefiniowanych w bibliotekach to musimy dołaczyć plik (nagłówkowy) z niezbędnymi deklaracjami, np. #include<iostream> Pliki nagłówkowe właczane sa do programu przez preprocesor polecenia dla preprocesora zaczynaja się od # Sama biblioteka jest dołaczana na etapie linkowania ( w przypadku bibliotek standardowych jest to robione automatycznie). K.Grzelak (Wykład 1) Programowanie w C++ 14 / 28
#include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 15 / 28
Przestrzenie nazw using namespace std; Przestrzenie nazw stworzone żeby uniknać konfliktu nazw funkcje w różnych bibliotekach moga się tak samo nazywać. Przestrzeń nazw dla bibliotek standardowych std Funkcja standardowa: std::pow(26.0,3.0) Funkcja programisty AB (przestrzeń nazw AB): AB::pow(26.0,3.0) K.Grzelak (Wykład 1) Programowanie w C++ 15 / 28
Przestrzenie nazw Domyślne ustawianie przestrzeni nazw using namespace std; lub using namespace AB; ogólnie: using namespace nazwa; Jeśli zadeklarowane, że uzywamy konkretnej przestrzeni nazw jak powyżej pożemy użyć funkcji z przykładu piszac pow(26.0,3.0) K.Grzelak (Wykład 1) Programowanie w C++ 16 / 28
#include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 17 / 28
Główny program (funkcja main) int main() { } return 0; main nazwa głównej funkcji return 0 wynik funkcji ( w przypadku main zero oznacza prawidłowo zakończony program ) int typ danych (integer), przed nazwa funkcji oznacza typ jej wyniku Treść programu zapisuje się pomiędzy { i } w funkcji main j.w. Średniki Polecenia kończy się średnikami! K.Grzelak (Wykład 1) Programowanie w C++ 17 / 28
#include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 18 / 28
Standardowy strumień wyjściowy cout «Witam «endl; cout cout - standardowy strumień wyjściowy wypisywanie na ekran tekstu tekst w cudzysłowach endl znak końca linii (end-of-line) Plik nagłówkowy Trzeba pamiętać o dodaniu pliku nagłówkowego iostream. K.Grzelak (Wykład 1) Programowanie w C++ 18 / 28
#include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 19 / 28
Od kodu źródłowego do maszynowego Całość w jednym poleceniu g++ -o prog prog.cc Tylko preprocesor g++ -E prog.cc Tylko kompilacja g++ -c prog.cc Do sprawdzenia na ćwiczeniach co powstaje na każdym etapie. K.Grzelak (Wykład 1) Programowanie w C++ 19 / 28
Uruchamianie programu Tekst wypisze się na ekranie:./prog lub tekst zostanie zapisany do pliku plik.txt:./prog > plik.txt K.Grzelak (Wykład 1) Programowanie w C++ 20 / 28
Nazewnictwo - konwencje Najczęstsze, standardowe rozszerzenia nazw plików: plik źródłowy w C++.cc,.cxx,.cpp... plik źródłowy w C.c plik nagłówkowy.h, lub bez rozszerzenia nazwa wykonywalnej wersji programu standardowo a.out, zwykle nazwa bez rozszerzenia plik po kompilacji (object file).o plik biblioteczny -.so,.a K.Grzelak (Wykład 1) Programowanie w C++ 21 / 28
Drugi program kod źródłowy Deklaracja i definicja; komentarz; dzielenie liczb całkowitych #include<iostream> using namespace std; int main(){ int suma; int liczba=5; suma=15+liczba; } cout << "suma= " << suma << endl; // Jaka liczba wypisze sie na ekranie? cout << liczba/suma << endl; return 0; K.Grzelak (Wykład 1) Programowanie w C++ 21 / 28
Trzeci program kod źródłowy cin - standardowy strumień wejściowy #include<iostream> using namespace std; int main(){ cout << "Podaj liczbe calkowita" << endl; int a; cin >> a; cout << "Wczytana liczba to= " << a << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 22 / 28
Sprawy organizacyjne Na każdym wykładzie wprowadzenie do ćwiczeń + dodatkowy materiał Polecany podręcznik - Jerzy Grębosz, Symfonia C++ standard K.Grzelak (Wykład 1) Programowanie w C++ 22 / 28
Warunki zaliczenia Możliwe zaliczenie eksternistyczne - zgłoszenia do wykładowcy do 12.03 włacznie. K.Grzelak (Wykład 1) Programowanie w C++ 23 / 28
Warunki zaliczenia 1 Sprawdzian 7.05, poniedziałek, sala 0.03, 9:15 pisany na kartkach, max 24 pkt: dwa programy po 6 pkt, pytania testowe z materiału wykładowego (12 pkt); 2 5-minutowe kartkówki przy komputerach na poczatku każdych ćwiczeń (12 kartkówek po 1 pkt); 3 Końcowy, duży program do napisania w domu + rozmowa zaliczeniowa na temat programu i materiału wykładowego, 27.06, sala 1.27; 4 obecność na zajęciach. K.Grzelak (Wykład 1) Programowanie w C++ 24 / 28
Warunki zaliczenia Na sprawdzianach można korzystać jedynie ze ściag ze składnia języka C++, dostarczonych przez prowadzacych. Na kartkówkach nie można korzystać z żadnej pomocy. K.Grzelak (Wykład 1) Programowanie w C++ 25 / 28
Warunki zaliczenia Warunkiem uzyskania zaliczenia jest uzyskanie więcej niż połowy punktów ze sprawdzianu i kartkówek (sumarycznie) i więcej niż połowy punktów za końcowy program. Sumaryczne wyniki z części ćwiczeniowej (kartkówki+sprawdzian) i wyniki z końcowego programu wchodza z ta sama (50%) waga do końcowej oceny. K.Grzelak (Wykład 1) Programowanie w C++ 26 / 28
Strona www Wszystkie informacje na stronie http://www.fuw.edu.pl/ kaste/program2018.html K.Grzelak (Wykład 1) Programowanie w C++ 27 / 28
Znajomość składni języka jest niezbędna, ale najważniejsze jest żeby nabrać doświadczenia piszac samemu dużo programów! K.Grzelak (Wykład 1) Programowanie w C++ 28 / 28