Programowanie w C++ Wykład 1 Katarzyna Grzelak 25 luty 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38
Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 38
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 / 38
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 / 38
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 / 38
Języki programowania Język kompilowany vs interpretowany Język kompilowany kod źródłowy jest najpierw tłumaczony do postaci kodu maszynowego (kod binarny) i potem program jest samodzielnie uruchamiany (przykład C++) Język interpretowany kod źródłowy jest każdorazowo, w momencie uruchomienia interpretowany przez interpreter (przykład Python) K.Grzelak (Wykład 1) Programowanie w C++ 6 / 38
Dlaczego programowanie w C++? K.Grzelak (Wykład 1) Programowanie w C++ 7 / 38
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++ 8 / 38
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++ 9 / 38
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++ 10 / 38
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++ 11 / 38
Zaczynamy pierwszy program K.Grzelak (Wykład 1) Programowanie w C++ 12 / 38
Pierwszy program - kod źródłowy Programy zapisujemy w edytorze tekstu, np. gedit, nano i nadajemy nazwę np. prog.cc (inne używane rozszerzenia:.cpp,.cxx,.c) Poniższy program będzie wypisywał na ekran słowo Witam #include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 13 / 38
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++ 14 / 38
Składnia - podstawy Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia w kodzie nie sa konieczne, ale bardzo poprawiaja czytelność kodu Instrukcje sa grupowane za pomoca nawiasów klamrowych Instrukcje sa zakończone średnikami K.Grzelak (Wykład 1) Programowanie w C++ 15 / 38
Pierwszy program w C++ #include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 16 / 38
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++ 17 / 38
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++ 18 / 38
Pierwszy program w C++ #include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 19 / 38
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++ 20 / 38
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++ 21 / 38
Pierwszy program w C++ #include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 22 / 38
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++ 23 / 38
Pierwszy program w C++ #include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 24 / 38
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++ 25 / 38
Pierwszy program w C++ #include<iostream> using namespace std; int main(){ cout << "Witam" << endl; } return 0; K.Grzelak (Wykład 1) Programowanie w C++ 26 / 38
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++ 27 / 38
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++ 28 / 38
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++ 29 / 38
Drugi program w C++ 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++ 30 / 38
Trzeci program w C++ 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++ 31 / 38
Sprawy organizacyjne Na każdym wykładzie wprowadzenie do ćwiczeń + dodatkowy materiał Materiał wykładowy szerszy niż ten na ćwiczeniach Polecany podręcznik - Jerzy Grębosz, Symfonia C++ standard K.Grzelak (Wykład 1) Programowanie w C++ 32 / 38
Warunki zaliczenia Możliwe zaliczenie eksternistyczne - zgłoszenia na wykładzie do 11.03 włacznie. K.Grzelak (Wykład 1) Programowanie w C++ 33 / 38
Warunki zaliczenia 1 Sprawdzian 27.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, 21.06, sala 1.28; 4 obecność na zajęciach. K.Grzelak (Wykład 1) Programowanie w C++ 34 / 38
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++ 35 / 38
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++ 36 / 38
Strona www Wszystkie informacje na stronie http://www.fuw.edu.pl/ kaste/programfizyka.html K.Grzelak (Wykład 1) Programowanie w C++ 37 / 38
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++ 38 / 38