Inicjatywy społeczne Rzecznika Praw Obywatelskich Anna Grzelak Zespół Społeczny
Wykład 1 Katarzyna Grzelak 26 luty 2018 - fuw.edu.plkaste/prog2018/wyklad1.pdf · Sama biblioteka...
Transcript of Wykład 1 Katarzyna Grzelak 26 luty 2018 - fuw.edu.plkaste/prog2018/wyklad1.pdf · Sama biblioteka...
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
Umiejetnosc, która otwiera nowemozliwosci.Znajomosc programowania niezbedna nawielu specjalizacjach.
K.Grzelak (Wykład 1) Programowanie w C++ 3 / 28
Jezyki programowania
Programy budowane z polecen w trybie tekstowymC, C++, Python, Java, Fortran . . .
Jeden z najprostszych programów w C++
K.Grzelak (Wykład 1) Programowanie w C++ 4 / 28
Jezyki programowania
Programy budowane z ikonek w trybie graficznymLabView, VEE, Scratch . . .
Przykład w LabView - z zajec Indywidualnej Pracowni Wstepnej 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 wydajnosc koduBezposrednia łacznosc z urzadzeniami (hardwareinterface)Nowoczesny, obiektowy, kompilowany jezykDuzo bibliotek do naukowych zastosowan
K.Grzelak (Wykład 1) Programowanie w C++ 7 / 28
C vs C++
C – jezyk C, nieobiektowyC++ – C plus obiektowosc
C++xx (np. C++11) – kolejne wersje standardu C++
K.Grzelak (Wykład 1) Programowanie w C++ 8 / 28
Od kodu zródłowego do kodu maszynowego
File
Object
Program
in
Memory
Executable
Source
FileCompiler
OS
Linker
Libraries
K.Grzelak (Wykład 1) Programowanie w C++ 9 / 28
Od kodu zródłowego do kodu maszynowego w C++
Processed
Code
File
Source Processed
Code
File
Object
File
Object
File
Source
Program
in
Memory
Executable
Preprocessor Compiler
CompilerPreprocessor
OS
Linker
Libraries
Kod zródłowy programu moze byc zapisany w dwóch lub wiecej plikach.
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 zródłowyProgramy zapisujemy w edytorze tekstu, np. gedit, nanoi nadajemy nazwe np. prog.ccPonizszy 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 jednympoleceniu (i uruchamianie programu)
Polecenia wpisywane w okienku terminala w Linux’ie.
$ g++ -o prog prog.cc$ ./prog$ Witam$ – znak zachety 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 standardowaCzesc standardowej instalacji.Dokumentacja:http://www.cplusplus.com/reference/
Biblioteka iostreamczesc standardowej biblioteki;operacje wejscia - wyjscia (input-output); wczytywanie zmiennychz klawiatury (cin) i wypisywanie na ekran (cout)
K.Grzelak (Wykład 1) Programowanie w C++ 13 / 28
Biblioteki
Jezeli chcemy korzystac z funkcji zdefiniowanych w bibliotekach tomusimy dołaczyc plik (nagłówkowy) z niezbednymi deklaracjami,np. #include<iostream>
Pliki nagłówkowewłaczane sa do programu przez preprocesorpolecenia dla preprocesora zaczynaja sie od #
Sama biblioteka jest dołaczana na etapie linkowania ( w przypadkubibliotek 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 zeby uniknac konfliktu nazw –funkcje w róznych bibliotekach moga sie tak samo nazywac.Przestrzen nazw dla bibliotek standardowych – std
Funkcja standardowa: std::pow(26.0,3.0)Funkcja programisty AB (przestrzen nazw AB):AB::pow(26.0,3.0)
K.Grzelak (Wykład 1) Programowanie w C++ 15 / 28
Przestrzenie nazw
Domyslne ustawianie przestrzeni nazwusing namespace std;lubusing namespace AB;ogólnie:using namespace nazwa;
Jesli zadeklarowane, ze uzywamy konkretnej przestrzeni nazw jakpowyzej – pozemy uzyc funkcji z przykładu piszacpow(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 funkcjireturn 0 – wynik funkcji ( w przypadku main zero oznaczaprawidłowo zakonczony program )int – typ danych (integer), przed nazwa funkcji oznacza typ jejwynikuTresc programu zapisuje sie pomiedzy { i } w funkcji main j.w.
SrednikiPolecenia konczy sie srednikami !
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 strumien wyjsciowy
cout « ”Witam” « endl;
coutcout - standardowy strumien wyjsciowywypisywanie na ekran tekstu – tekst w cudzysłowachendl – znak konca linii (end-of-line)
Plik nagłówkowyTrzeba pamietac 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 zródłowego do maszynowego
Całosc w jednym poleceniug++ -o prog prog.cc
Tylko preprocesorg++ -E prog.cc
Tylko kompilacjag++ -c prog.cc
Do sprawdzenia na cwiczeniach co powstaje nakazdym etapie.
K.Grzelak (Wykład 1) Programowanie w C++ 19 / 28
Uruchamianie programu
Tekst wypisze sie na ekranie:./proglub tekst zostanie zapisany do plikuplik.txt:./prog > plik.txt
K.Grzelak (Wykład 1) Programowanie w C++ 20 / 28
Nazewnictwo - konwencje
Najczestsze, standardowe rozszerzenia nazw plików:plik zródłowy w C++ – .cc, .cxx, .cpp . . .plik zródłowy w C – .cplik nagłówkowy – .h, lub bez rozszerzenianazwa wykonywalnej wersji programu – standardowo a.out,zwykle nazwa bez rozszerzeniaplik po kompilacji (object file) – .oplik biblioteczny - .so, .a
K.Grzelak (Wykład 1) Programowanie w C++ 21 / 28
Drugi program – kod zródłowyDeklaracja 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 zródłowycin - standardowy strumien wejsciowy
#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 kazdym wykładzie wprowadzenie do cwiczen + dodatkowymateriałPolecany podrecznik - Jerzy Grebosz, Symfonia C++ standard
K.Grzelak (Wykład 1) Programowanie w C++ 22 / 28
Warunki zaliczenia
Mozliwe zaliczenie eksternistyczne - zgłoszenia dowykł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 nakartkach, 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 kazdychcwiczen (12 kartkówek po 1 pkt);
3 Koncowy, duzy program do napisania w domu + rozmowazaliczeniowa na temat programu i materiału wykładowego, 27.06,sala 1.27;
4 obecnosc na zajeciach.
K.Grzelak (Wykład 1) Programowanie w C++ 24 / 28
Warunki zaliczenia
Na sprawdzianach mozna korzystac jedynie ze sciag ze składniajezyka C++, dostarczonych przez prowadzacych.Na kartkówkach nie mozna korzystac z zadnej pomocy.
K.Grzelak (Wykład 1) Programowanie w C++ 25 / 28
Warunki zaliczenia
Warunkiem uzyskania zaliczenia jest uzyskanie wiecej niz połowypunktów ze sprawdzianu i kartkówek (sumarycznie) i wiecej nizpołowy punktów za koncowy program.Sumaryczne wyniki z czesci cwiczeniowej (kartkówki+sprawdzian)i wyniki z koncowego programu wchodza z ta sama (50%) wagado koncowej oceny.
K.Grzelak (Wykład 1) Programowanie w C++ 26 / 28
Strona www
Wszystkie informacje na stroniehttp://www.fuw.edu.pl/∼kaste/program2018.html
K.Grzelak (Wykład 1) Programowanie w C++ 27 / 28
Znajomosc składni jezyka jest niezbedna,ale najwazniejsze jest zeby nabracdoswiadczenia piszac samemu duzoprogramów !
K.Grzelak (Wykład 1) Programowanie w C++ 28 / 28