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

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

Podstawy Informatyki

Część 4 życie programu

I - Microsoft Visual Studio C++

2 Przygotował: mgr inż. Maciej Lasota

C++ wprowadzanie zmiennych

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

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

1 Podstawy c++ w pigułce.

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

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

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

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

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

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

Struktura pliku projektu Console Application

Wstęp do Programowania 2

Programowanie komputerowe. Zajęcia 1

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

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

Język C++ Różnice między C a C++

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

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

1 Podstawy c++ w pigułce.

Podstawy Programowania. Wykład 1

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

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

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

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

Podstawy Informatyki. Wykład 5 Różne pożyteczne algorytmy

3. Instrukcje warunkowe

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych

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

Wstęp do programowania. Wykład 1

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 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

( wykł. dr Marek Piasecki )

Proste programy w C++ zadania

Języki C i C++ Wykład: 1. Wstęp Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Języki C i C++, sem.

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

Podstawy Programowania

Język ludzki kod maszynowy

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.

Programowanie strukturalne i obiektowe

1. Wprowadzenie do C/C++

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

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

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

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

Podstawy programowania C. dr. Krystyna Łapin

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

Operatory, wyrażenia i typy proste

1. Wprowadzenie do C/C++

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do Programowania, laboratorium 02

Wstęp do programowania

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Pytania sprawdzające wiedzę z programowania C++

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Podstawy programowania w C++

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

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

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. dr inż. Tadeusz Jeleniewski

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

Zmienne, stałe i operatory

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Wstęp do programowania

Informatyka 2. Informatyka 2. Wykład nr 1 ( ) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2)

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

Wykład 1

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

Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni

dr inż. Paweł Myszkowski Wykład nr 8 ( )

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Pliki wykład 2. Dorota Pylak

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

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

Transkrypt:

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

Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard ANSI C 1983 - C++ (Bjarne Stroustrup) Do chwili obecnej nie stosuje się jednego standardu!

Kompilatory C++ Microsoft Visual C++ (w ramach licencji MSDN AA) Darmowe: Linux (PC), Solaris (SUN) : http://gcc.gnu.org/ - g++ Windows : http://www.bloodshed.net/dev/devcpp.html - Dev-C++ http://www.delorie.com/djgpp/ - DJGPP http://www.mingw.org/ - MinGW

Kompilacja nagłówki moduły biblioteki *.cpp kompilator linker programm błędy błędy UNIX Kompilacja: 1) g++ prog.cpp 2) g++ -o prog prog.cpp Uruchomienie: 1) a.out 2) prog

Pierwszy program #include <iostream> #include <string> using namespace std; int main() { string komunikat; double a,b,c; komunikat = "Koniec obliczeń"; cout <<"Podaj a i b: "; cin >>a>>b; c=a+b; cout <<" suma "<<a<<" i "<<b<<" wynosi "<<c<<'\n'; cout<<komunikat<<'\n'; return 0; }

Dyrektywy preprocesora #include <iostream> Program przed kompilacją dołącza zewnętrzne pliki np pliki nagłówkowe, biblioteki. Biblioteka iostream (ang. input/output stream) - strumień wejścia/wyjścia. Biblioteka ta umożliwia wprowadzanie informacji ze standardowych urządzeń wejścia (klawiatura) i kierowanie ich do urządzeń wyjścia (ekran). Iostream wspiera kontrolę typów, co sprzyja zmniejszeniu liczby popełnianych błędów oraz umożliwia tworzenie rozszerzeń - klasy biblioteki można dziedziczyć.

Obiekty wejścia/wyjścia cin standardowe wejście, z reguły jest to klawiatura, odpowiada to wskaźnikowi stdin, cout standardowe wyjście, z reguły jest to ekran, odpowiada to wskaźnikowi stdout, cerr standardowe wyjście dla błędów, z reguły ekran, odpowiada wskaźnikowi stderr, clog w pełni buforowana wersja cerr. Podobne biblioteki fstream - operacja wejścia/wyjścia na plikach zewnętrznych. sstream - operacja wejścia/wyjścia na obiektach klasy string cstdio - operacja wejścia/wyjścia, biblioteka języka C.

Fragment pliku iostream: extern _IO_istream_withassign cin; // clog->rdbuf() == cerr->rdbuf() extern _IO_ostream_withassign cout, cerr; string #include <string> Łańcuchy znaków w stylu języka C są częstą przyczyną błędów programu, a na dodatek ich używanie jest dosyć kłopotliwe. Nic wiec dziwnego, że biblioteka standardowa posiada zaimplementowaną uogólnioną klasę napisów zwaną string. Taka klasa daje jednolity, niezależny od systemu i bezpieczny interfejs do manipulowania napisami.

Zdefiniowanie przestrzeni nazw: using namespace std; Podczas pracy nad dużymi programami, w których używa się wielu bibliotek z licznymi deklaracjami, możemy w końcu natknąć się na problem konfliktu nazw - gdy kilka obiektów, typów czy funkcji ma tę samą nazwę. Rozwiązaniem może być np. zamknięcie nazw w "zakresach", w celu oddzielenia ich. Z pomocą przychodzi nam mechanizm przestrzeni nazw. Bez zdefiniowanej domyślnej przestrzeni fragment naszego programu wyglądał by tak: std::cout <<"Podaj a i b: "; std::cin >>a>>b; itd. W przestrzeni nazw std znajdziemy mnóstwo różnych narzędzi, bardzo przydatnych funkcji, np. sortowania.

Program główny int main() {...... return 0; } Program główny traktowany jest jak funkcja musi zwrócić jakąś wartość (typu integer) Zwracając do systemu operacyjnego wartość 0 informujemy, że program zakończył się bez błędu.

Deklaracja zmiennych string komunikat; double a,b,c; short int - typ całkowity krótki int - typ całkowity. long int - typ całkowity długi float - typ zmiennoprzecinkowy pojedynczej precyzji. double - typ zmiennoprzecinkowy podwójnej precyzji. long double - typ zmiennoprzecinkowy podwójnej precyzji długi. char - typ znakowy string ciąg znaków Nazwy zmiennych mogą składać się z liter,cyfr i podkreślenia _ Nazwa nie może się zaczynać od cyfry unsigned zmienna bez znaku (tylko dodatnia) dla typów int int ( 127,128) unsigned int (0,255)

Tablice int calkowite[20]; - przechowuje 20 liczb typu int char znaki[5]; - p. 5 znaków double liczby[1000]; - p. 1000 liczb typu double string napisy[5]; - p. 5 napisów (wieloznakowych) Uwaga! Rozmiar tablicy musi być podany przed kompilacją znaki[0] - pierwszy element tablicy znaki znaki[4] piąty element tablicy

int calk[5]={2,-3,4,8,12}; int aa[3]={12,-3}; Inicjacja tablicy Nie zainicjowane wyrazy otrzymują wartość 0 Nie zainicjowana tablica ma nieokreślone wartości. int bb[3]={2,-3,4,8}; //Kompilator wykaże błąd! a=bb[4] program nie zasygnalizuje błędu, ale przeczyta nieprzewidywalne dane!

Operatory komunikat = "Koniec obliczeń"; c=a+b; operator przypisania = operator dodawania + operator odejmowania - operator mnożenia * operator dzielenia / operator reszty z dzielenia (modulo) % operator znaku liczby (np. -45)

Operatory złożone += zmienna += 2 zmienna = zmienna + 2 - = zmienna -= 7 zmienna = zmienna - 7 *= zmienna *= 3 zmienna = zmienna * 3 /= zmienna /= 5 zmienna = zmienna / 5 %= zmienna %= 3 zmienna = zmienna % 3

Operatory inkrementacji i dekrementacji ++ zwiększenie wartości o 1, np. i++ to jest to samo co i=i+1 -- zmniejszenie wartości o 1, np. i-- to jest to samo co i=i-1 Uwaga! Operatory te można stosować przed i po zmiennej, tzn. liczba++ lub ++liczba. Podobnie dla --. Mimo, że działanie operatora w obu wypadkach jest podobne, to nie jest jednak identyczne! ++liczba najpierw dodaje do liczby 1, a potem zwraca jej wartość liczba++ najpierw zwraca wartość, a potem dodaje liczba =5; a) cout<<++liczba; drukuje 6 b) cout<<liczba++; drukuje 5 a liczba jest po instrukcji a lub b zawsze równa 6

== równa się!= jest różne > jest większe >= jest większe lub równe < jest mniejsze <= jest mniejsze lub równe Operatory relacji Operatory logiczne suma - prawdziwe jeśli którekolwiek z wyrażeń jest prawdziwe && iloczyn - prawdziwe jeśli oba wyrażenia są prawdziwe! negacja logiczna - powoduje zaprzeczenie wyrażenia Uwaga! Przypisanie = zwraca wartość przypisania czyli np. a=3 zwraca wartość 3, a każda liczba różna od zera jest w języku C++ traktowana jako prawda. Tylko wartość 0 jest traktowana jako fałsz. (a=2) (3==5) zawsze prawda; (a==2) (3==5) niekoniecznie

Opercje wejścia i wyjścia Strumienie biblioteka iostream cout - powiązany ze standardowym urządzeniem wyjścia cin - powiązany ze standardowym urządzeniem wejścia cerr - strumień błędów - połączony ze standardowym urządzeniem wyjścia clog - podobnie jak cerr, ale buforowany << - operator wysyłania do strumienia >> - operator pobierania ze strumienia np. cin >>a>>b; cout <<x1; cout <<y1<<' '<<y2<<'\n';