Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podobne dokumenty
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

1 Podstawy c++ w pigułce.

Programowanie komputerowe. Zajęcia 1

Programowanie - wykład 4

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

3. Instrukcje warunkowe

1 Podstawy c++ w pigułce.

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

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

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

C++ wprowadzanie zmiennych

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

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

Część 4 życie programu

I - Microsoft Visual Studio C++

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

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Wstęp do programowania

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Struktura pliku projektu Console Application

Języki i metodyka programowania. Wprowadzenie do języka C

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

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

Wprowadzenie do języka Java

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

Wstęp do programowania

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 w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Wstęp do Programowania, laboratorium 02

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

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wstęp do programowania

Podstawy Programowania

Wstęp do programowania

Wstęp do programowania

Podstawy Programowania.

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Wstęp do programowania. Wykład 1

Pytania sprawdzające wiedzę z programowania C++

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

Podstawy Programowania

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

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

Wstęp do informatyki- wykład 7

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

Wstęp do programowania

Wstęp do informatyki- wykład 11 Funkcje

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Wstęp do informatyki- wykład 9 Funkcje

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

Programowanie strukturalne i obiektowe

Struktury Struktura polami struct struct struct struct

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

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

Język C, tablice i funkcje (laboratorium)

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

Programowanie Obiektowe i C++

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

2 Przygotował: mgr inż. Maciej Lasota

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Wstęp do informatyki- wykład 6

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

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

Przesłanianie nazw, przestrzenie nazw

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

Język C, tablice i funkcje (laboratorium, EE1-DI)

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

Podstawy Programowania. Wykład 1

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

4. Funkcje. Przykłady

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Wstęp do Informatyki

Program 14. #include <iostream> #include <ctime> using namespace std;

C-struktury wykład. Dorota Pylak

Projektowanie klas c.d. Projektowanie klas przykład

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

7. Pętle for. Przykłady

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

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

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

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

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

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

Proste programy w C++ zadania

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

C-struktury wykład. Dorota Pylak

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Wstęp do programowania

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Transkrypt:

M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN

Przygotowanie środowiska pracy Niniejsza prezentacja stanowi minimalny wstęp do praktyk. Dyskutowane komendy będą często używane w praktyce. Przed praktykami należy dokładnie zapoznać się z treścią kursu i samodzielnie wykonać zadania! Proszę nie przesyłać nam odpowiedzi. Ćwiczenia można wykonywać używając dowolnego kompilatora C/C++. Wiele darmowych programów jest dostępnych w sieci. Przykłady instalacji oraz uruchamiania można znaleźć w Internecie. Ważne! W przypadku jakichkolwiek problemów z instalacją należy szukać pomocy w Internecie lub u kolegów. To samo dotyczy problemów z kompilacją, działaniem programu, itp. W czasie trwania praktyk będziemy używali narzędzi zainstalowanych i przetestowanych w chmurze CC1. Nie będzie trzeba posiadać kompilatora na własnym komputerze. Proszę nie zwracać się o pomoc do koordynatorów praktyk! W Internecie istnieje bardzo dużo kursów C++, którymi można się wspomóc. Dla przykładu: http://cpp0x.pl/kursy/kurs-c++/1 http://miroslawzelent.pl/kurs-c++/ http://main.edu.pl/en/user.phtml?op=show&page=cpp&c=70000 M. Trzebiński C++ 2/14

Tworzenie minimalnego, działającego programu M. Trzebiński C++ 3/14 1 int main() { 2 return 0; 3 } Program zawiera funkcję główną main(). W tym przypadku funkcja ta zwraca (return) liczbę całkowitą(int); tutaj jest to 0. Wszystkie polecenia wykonywane w ramach tej funkcji muszą się znaleźć pomiędzy nawiasami klamrowymi. Skompilować i uruchomić program. Jaki jest wynik? Dodatek: kompilacja i uruchomienie programu z terminala(linuks) Skompilować program(trzeba być w zawierającym go katalogu): $ g++-o program1 program1.cpp Uruchomić program: $./program1

Witaj świecie M. Trzebiński C++ 4/14 1 #include <iostream> 2 3 using namespace std; 4 5 int main() { 6 cout << Witaj swiecie! << endl; 7 return 0; 8 } Program przekierowuje(<<) do konsoli(cout, ang. console output) napis Witaj swiecie! oraz znak końca linii(endl). Polecenia te nie są podstawowe w języku C++. Ich definicja znajduje się w osobnej bibliotece(iostream), którą należy dołączyć do programu(#include). Ponadto, polecenia znajdują się w przestrzeni nazw std. Kompilator jest o tym informowany przez dyrektywę using namespace. Każdy ciąg poleceń kończymy średnikiem. Skompilować i uruchomić program. Jaki jest wynik?

Definiowanie zmiennych M. Trzebiński C++ 5/14 1 int main() { 2 int a; //deklaracja zmiennej typu calkowitego (integer) 3 //zmienne mozna deklarowac po kilka, oddzielajac je przecinkami 4 //mozne tez przypisac im wartosc poczatkowa 5 int b = 3, c = 10; 6 float A= 10.25; //liczba zmiennoprzecinkowa (pojedyncza precyzja) 7 double B; //liczba zmiennoprzecinkowa (podwojna precyzja) 8 B= 0.015; //przypisanie zmiennej B wartosci 0.015 9 B= 1.25e5; //a teraz zmienna Bma wartosc 125000 10 char znak = A ; //pojedynczy znak 11 string ciag = Ciag znakow bla, bla, bla... ; //ciag znakow; biblioteka <string >; namespace std 12 bool p = true, f = false; //zmienna logiczna prawda/falsz 13 14 a = b; //przypisanie liczbie a wartosci b 15 a = a + 1; //zwiekszenie wartosci a o 1 16 a += 1; //jw. 17 a++; //jw. 18 19 a = b + c; //przypisanie liczbie a wartosci sumy b + c 20 a = b c; //odejmowanie 21 a = b c; //mnozenie 22 a = b / c; //dzielenie 23 24 return 0; 25 }

Zadania M. Trzebiński C++ 6/14 1.Jakijestwynikdziałań1/2(obieliczbytypuint)oraz1./2.(obieliczbytypu double)? Czy otrzymane wartości są takie same? 2. Zadeklarować zmienne całkowite i1 = 2, i2 = 3 oraz zmiennoprzecinkowe f1 =0.5,f2=2.5.Stworzyćiwyświetlićnaekranzmiennea=i1+i2,b=f1+ f2,c=i1+f2,d=i1/i2,e=i1/f1,f=i1*f1,g=f1*i1. 3. Wyświetlić resztę z dzielenia 12331 przez 334.

Pętle M. Trzebiński C++ 7/14 1 #include <iostream> 2 using namespace std; 3 4 int main() { 5 for (int a=0; a<100; a++) 6 { 7 cout << Wyswietlam liczbe calkowita\t << a << endl; 8 } 9 10 for (double b= 3.5; b<3.5; b+=0.5) 11 { 12 cout << Wyswietlam liczbe zmiennoprzecinkowa\t << b << endl; 13 } 14 return 0; 15 } Pętle służą do wielokrotnego wykonywania poleceń. W powyższym kodzie wykorzystana jest pętla for. Wykonywana jest do czasu, gdy wartość zadeklarowanej zmiennej o ustalonej wartości początkowej(int a=0) nie przekroczy danej wartości(a<100). Po każdej iteracji zmienna a ma zostać zwiększona o 1. Drugi przykład jest analogiczny, liczba typu double jest zwiększana o 0.5.

Warunki if, else, else if 1 #include <iostream> 2 using namespace std; 3 4 int main() { 5 for (int a=0; a<100; a++) 6 { 7 if (a<10) cout << a << endl; //wyswietl a jezeli jest ono mniejsze niz 10 8 else if (a<50) //wykonaj, jezeli powyzszy warunek nie jest spelniony i a jest mniejsze niz 50 9 { 10 //warunkiem moze byc objetych kilka linijek 11 cout << ponad << endl; 12 cout << 50 << endl; 13 } 14 else cout << Ponad\t << a << endl; //wykonaj gdy wszystkie poprzednie warunki nie sa spelnione 15 } 16 return 0; 17 } Porównanie wartości: a>b,a<b//awiększeniżb,amniejszeniżb a>=b,a<=b//awiększelubrówneb,amniejszelubrówneb a ==b//arówneb a! =b//anierówneb Operacje logiczne: A&&B//koniunkcjalogiczna(AiB) A B// alternatywa logiczna(a lub B)!A// negacja logiczna(nieprawda że A) M. Trzebiński C++ 8/14

Instrukcje continue i break M. Trzebiński C++ 9/14 1 #include <iostream> 2 using namespace std; 3 4 int main() { 5 for (int a=0; a<100; a++) 6 { 7 if (a<10) continue; 8 if (a==50) break; 9 cout << Wyswietlam\t << a << endl; 10 } 11 cout << Koniec! << endl; 12 return 0; 13 } Powyższy program wyświetli liczby od 10 do 49. W pętli najpierw sprawdzany jestwaruneka<10jeżelijestspełnionytoprogramwracadopoczątkupętli, zwiększając zmienną a(w tym przykładzie o 1). Instrukcje po linijce z continue nie są wykonywane. Jeżeli wartość a będzie wynosić 50, to pętla zostanie zakończona(break).

Funkcje M. Trzebiński C++ 10/14 1 #include <iostream> 2 using namespace std; 3 4 void wyswietl(string napis){ 5 cout << napis << endl; 6 } 7 8 double xpow(double x, int y){ 9 double wynik = x; 10 for (int a=1; a<y; a++) wynik = x; 11 return wynik; 12 } 13 14 int main() { 15 wyswietl( Poczatek programu ); 16 double a; 17 a = xpow(10., 4); 18 cout << wyswietl( 3.5ˆ4 wynosi: ) << xpow(3.5, 4) << endl; 19 return 0; 20 } Wprogramieznajdująsiętrzyfunkcje.Każdaznichjestinnegotypu program oczekuje, że funkcja będzie zwracać(return) określoną wartość: main jest typu całkowitego(int), x pow zwraca liczbę z podwójną precyzją (double), wyswietl jest typu void nie zwraca wartości. Funkcja wyswietl przyjmuje jeden parametr(typu string): napis, a funkcja x pow dwa parametry(pierwszy typu double, drugi int).

Zadania M. Trzebiński C++ 11/14 1. Napisać program, który sprawdzi czy 113 jest liczbą pierwszą. 2. Napisać funkcję, która sprawdzi czy liczba podana w argumencie jest pierwsza. 3. Przyśpieszyć funkcję z pkt. 2, aby nie szukała dalej po pierwszym stwierdzeniu podzielności. 4. Wypisać 1000 pierwszych liczb pierwszych. 5. Zabezpieczyć funkcję z pkt. 4 tak, aby działała tylko w przypadku podania dodatniej liczby całkowitej. W innych przypadkach ma informację o błędzie.

Klasy 1 #inlcude <iostream> 2 using namespace std; 3 4 class Wektor{ 5 public: //prawo dostepu: publiczne 6 void ustaw(double, double); //deklaracja funkcji 7 double dlugosc(); //deklaracja funkcji 8 private: //prawo dostepu: prywatne (widoczne z poziomu klasy) 9 double x, y; //deklaracja zmiennych 10 }; //klase konczymy srednikiem 11 12 //definicja funkcji ustaw z klasy Wektor 13 void Wektor::ustaw(double a, double b){ 14 x = a; y = b; 15 } 16 17 //definicja funkcji dlugosc z klasy Wektor 18 void Wektor::dlugosc(){ 19 return sqrt(x x + y y); 20 } 21 22 int main() { 23 Wektor v;//utworzenie obiektu klasy Wektor 24 v.ustaw(3., 4.); 25 cout << v.dlugosc() << endl; 26 return 0; 27 } W programie znajduje się klasa Wektor. Zawiera deklaracje dwóch zmiennych(x oraz y) oraz dwóch funkcji(ustaw(double, double), dlugosc()). Funkcje są zdefiniowane w dalszej części programu. Kompilator wie, że należą one do klasy przez określenie Wektor:: w definicji funkcji. M. Trzebiński C++ 12/14

Struktura programu M. Trzebiński C++ 13/14 Plik program.h zawiera informacje o: bibliotekach, przestrzeniach nazw, klasach, funkcjach. 1 #include <iostream> 2 3 using namespace std; 4 5 class Wektor{ 6 public: 7 void ustaw(double, double); 8 double dlugosc(); 9 private: 10 double x, y; 11 }; 12 13 void Wektor::ustaw(double a, double b){x = a; y = b;} 14 15 void Wektor::dlugosc(){return sqrt(x x + y y);} Plik program.cpp zawiera program główny. 1 #include program.h 2 3 int main() { 4 Wektor v; 5 v.ustaw(3., 4.); 6 cout << v.dlugosc() << endl; 7 return 0; 8 }

Zadania M. Trzebiński C++ 14/14 1. Dodać funkcję, która skaluje wektor o zadaną liczbę. Definicje mają się znajdować w pliku.h. 2. Zmienić współrzędne na public zdefiniować operator dodawania dwóch wektorów.