Wstęp do Programowania 2

Podobne dokumenty
Część 4 życie programu

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

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

I - Microsoft Visual Studio C++

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

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

Programowanie - wykład 4

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

1 Podstawy c++ w pigułce.

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

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

Programowanie komputerowe. Zajęcia 1

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

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

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

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

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

Podstawy Programowania

Pytania sprawdzające wiedzę z programowania C++

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

C++ wprowadzanie zmiennych

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

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

1 Podstawy c++ w pigułce.

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

Podstawy programowania w C++

Programowanie Procedurale

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

Podstawy programowania - 1

Wstęp do programowania. Wykład 1

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

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

Podstawy programowania C. dr. Krystyna Łapin

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

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

Wstęp do Informatyki

Wykład 1

Microsoft IT Academy kurs programowania

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

Podstawy Programowania. Wykład 1

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

Wstęp do programowania

PROGRAMOWANIE w C prolog

2 Przygotował: mgr inż. Maciej Lasota

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

Wstęp do programowania

Przesłanianie nazw, przestrzenie nazw

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

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

Podstawy programowania (1)

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

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

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

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

C-struktury wykład. Dorota Pylak

1. Wprowadzenie do C/C++

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

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

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

tablica: dane_liczbowe

Struktura pliku projektu Console Application

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

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

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

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

( wykł. dr Marek Piasecki )

Programowanie Obiektowe i C++

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

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

1. Wprowadzenie do C/C++

Programowanie strukturalne i obiektowe

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

Język C++ zajęcia nr 1

Wstęp do informatyki- wykład 7

Struktury Struktura polami struct struct struct struct

Programowanie obiektowe w C++ Wykład 1

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

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

Wprowadzenie do szablonów szablony funkcji

Wprowadzenie do szablonów szablony funkcji

Programowanie proceduralne w języku C++ Pętle, tablice

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

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

Wstęp do programowania

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

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

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

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

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory

Języki programowania - podstawy

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

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Organizacja kursu, paradygmaty, ogólnie o C i C++

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie i struktury danych

Transkrypt:

Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 1

Literatura Literatura podstawowa: Prata Stephen. Szkoła programowania. Język C++. Wydanie V. Helion, 2006. Andrzej Stasiewicz. C++. Ćwiczenia praktyczne. Wydanie III. Helion, 2011.

C++ - poczatek Program w języku C++, podobnie jak w języku C, to zbiór funkcji, a każda funkcja to zbiór instrukcji. Plik zawierajacy program w jezyku C++ jest plikiem tekstowym i powinien mieć rozszerzenie cpp (typowe dla kompilatorów firmy Microsoft, Borland) lub CC (typowe dla kompilatorów firmy Sun) lub cc. Kompilacja: g++ -Wall plik.cpp -o plik_wynikowy. Obecnie obowiazujacy stndard: ISO/IEC 14882:2011.

C++ - poczatek Program w języku C++, podobnie jak w języku C, to zbiór funkcji, a każda funkcja to zbiór instrukcji. Plik zawierajacy program w jezyku C++ jest plikiem tekstowym i powinien mieć rozszerzenie cpp (typowe dla kompilatorów firmy Microsoft, Borland) lub CC (typowe dla kompilatorów firmy Sun) lub cc. Kompilacja: g++ -Wall plik.cpp -o plik_wynikowy. Obecnie obowiazujacy stndard: ISO/IEC 14882:2011. Oficjalna strona THE C++ STANDARDS COMMITTEE: http://www.open-std.org/jtc1/sc22/wg21/.

Komentarze Komentarze w C++ sa takie same jak w języku C: jednolinijkowy - zaczyna się od // i kończa się wraz z końcem wiersza. wielolinijkowy - zaczyna się od /* i kończy się na */

Standardowe typy danych Nazwy standardowych typów danych w C++ sa takie same jak w C - ich rozmiary moga się już różnić: Typy całkowite: short, int, long, unsigned short, unsigned int, unsigned long Typ znakowy: char Typy rzeczywiste: float, double, long double

Nazwy plików nagłówkowych Kompilatory C++ zawsze sa dostarczane wraz z szeregiem plików nagłówkowych, z których każdy obsługuje pewna grupę narzędzi. Zgodnie z tradycja języka C plikom nagłówkowym nadawano rozszerzenie.h. Na przykład plik nagłówkowy C math.h zawierał deklaracje funkcji matematycznych. Poczatkowo w C++ sytuacja wygladała tak samo, ale ostatnio zmieniono to. Obecnie rozszerzenie.h zachowano dla starszych plików nagłówkowych C (które moga być cały czas używane), natomiast pliki nagłówkowe samego C++ nie maja rozszerzenia w ogóle. Istnieja też pliki nagłówkowe C, które zostały zamienione na pliki nagłówkowe C++. Plikom tym zmieniono nazwę, odrzucajac rozszerzenie.h oraz poprzedzajac ich nazwy litera c (od języka C). Na przykład w C++ staremu plikowi nagłówkowemu math.h odpowiada plik cmath.

Wejście i wyjście w C++ W C++ można używać funkcji wyjścia/wejścia z języka C - printf(),scanf() i im podobnych - wystarczy w tym celu dołaczyć standardowy nagłówek języka C - stdio.h. Natomisat kiedy w programie chcemy użyć zwykłych narzędzi C++ do obsługi wejścia i wyjścia, konieczne jest dodanie dwóch następujacych wierszy: #include <iostream> using namespace std;

Uwaga o zgodności ze standardem W przypadku użycia starszego kompilatora zamiast dyrektywy #include <iostream> należy użyć dyrektywy #include <iostream.h> oraz pominać wiersz using namespace std.

Uwaga o zgodności ze standardem Obsługa wejścia-wyjścia w C++ opiera się na kilku definicjach z pliku iostream: Definicję standardowego strumienia wyjścia (ekran monitora) cout Definicję standardowego strumienia wejścia (klawiatura) cin Definicję standardowego strumienia błędów (ekran monitora) cerr

Uwaga o zgodności ze standardem #include <iostream> using namespace std; int main() { cout << "Zabawe C++ czas zaczac!"; cout << endl; cout << "Zobaczysz spodoba Ci się!" << endl; return 0; }

Uwaga o zgodności ze standardem #include <iostream> using namespace std; int main() { cout << "A teraz coś wczytamy!"; cout << endl; int a; cin >> a; cout << "Przeczytałeś liczbę całkowitą: " << a << "!" << endl; return 0; }

Przestrzenie nazw Przestrzeń nazw to nowa cecha języka C++, która ma pomagać pisać programy składajace się z kodu pochodzacego od różnych dostawców. Trzeba się liczyć z tym, że w dwóch nabytych pakietach moga istnieć tak samo nazywajace się funkcje, np. funkcja wanda(). Jeśli użyjemy funkcji wanda(), kompilator nie będzie wiedział, o która nam chodzi. Przestrzeń nazw pozwala zgrupować ze soba wszystkie moduły jednego dostawcy i rozwiazać problem z wanda :).

Przestrzenie nazw Załóżmy, że firma Kowalski umieszcza swoje definicje w przestrzeni nazw Kowalski. Wtedy ich funkcja wanda() będzie się nazywała Kowalski::wanda(). Analogicznie przestrzeń nazw Nowak może również zawierać funkcję wanda(), ale w tym przypadku funkcja ta będzie nazywała się Nowak::wanda(). Mojac do dyspozycji dwie przestrzenie nazw Kowalski i Nowak, program będzie mógł używać obu funkcji: Kowalski::wanda( Wand to ta co nie chciała... ; // funkcja z przestrzeni nazw Kowalski Nowak::wanda( Nowak & Nowak ); // funkcja z przestrzeni nazw Nowak

Standardowa przestrzeń nazw Klasy, funkcje i zmienne będace standardowymi składnikami kompilatora C++ trafiły do przestrzeni nazw std Dzieje się tak w wersjach plików nagłówkowych nieposiadajacych rozszerzeń. Na przykład, zmienna cout używana do przekazywania danych na zewnatrz, zdefiniowana w iostream, tak naprawdę nazywa się std::cout, zmienna cin używana do pobierania danych z zewnatrz to tak naprawdę std::cin, a manipulator endl stosowany do wprowadzania nowego wiersza, to tak naprawdę std::endl.

Standardowa przestrzeń nazw #include <iostream> int main() { std::cout << "Zabawe C++ czas zaczac!"; std::cout << std::endl; std::cout << "Zobzczysz spodoba Ci się!" << std::endl; return 0; }

Dyrektywa using Aby używać nazw z przestrzeni std bez dopisywania przedrostka std::, wystarczy napisać poniższa instrukcję: using namespace std; Dyrektywa using powoduje bowiem, że wszystkie nazwy z przestrzeni std staja się dostępne. Obecnie przyjmuje się, że jest to podejście zbyt wygodnickie; należy raczej udostępnić te nazwy, których będziemy później używać, stosujac inna formę dyrektywy using: using std::cout; // udostępnienie cout using std::endl; // udostępnienie endl using std::cin; // udostępnienie cin

Dyrektywa using #include <iostream> int main() { using namespace std; cout << "Zabawę z C++ czas zacząć!"; cout << endl; cout << "Nie pożałujesz!" << endl; return 0; } albo #include <iostream> int main() { using std::cout; using std::endl; cout << "Zabawę z C++ czas zacząć!"; cout << endl; cout << "Nie pożałujesz!" << endl; return 0; }

Rozmiary standardowych typów danych - przykład #include <iostream> using namespace std; int main(void) { cout << "char = "<< sizeof(char)<< "\n"; cout << "string = "<< sizeof(string)<< "\n"; cout << "short = "<< sizeof(short)<< "\n"; cout << "int = "<< sizeof(int)<< "\n"; cout << "long = "<< sizeof(long)<< "\n"; cout << "long int= "<< sizeof(long int)<< "\n"; cout << "long long= "<< sizeof(long long)<< "\n"; cout << "long long int= "<< sizeof(long long int)<< "\n"; cout << "float = "<< sizeof(float)<< "\n"; cout << "double = "<< sizeof(double)<< "\n"; cout << "long double = "<< sizeof(long double)<< "\n"; return 0; }

Wyprowadzanie danych różnych typów - przykład #include <iostream> using namespace std; int main(void) { int i = 34; cout << "i = "; cout << i; cout << "\n"; long long l = 100000; cout << "l = " << l << "\n"; float f = 321.434; cout << "f = " << f << "\n"; double d = 321.434; cout << "d = " << d << "\n"; char c = a ; cout << "c = " << c << "\n"; const char *wc = "napis"; cout << "wc = " << wc << "\n"; string s = "napis w C++"; cout << "s = " << s << "\n"; return 0; }

Wyprowadzanie danych różnych typów - przykład #include <iostream> #include <iomanip> using namespace std; int main(void) { float f = 321.434; cout << "f = " << f << endl; cout << "f = " << setw(10) << f << endl; double d = 321.434; cout << "d = " << d << endl; cout << "d = " << setw(10)<< d << endl; return 0; }

Operatory arytmetyczne i struminie #include <iostream> int main() { using namespace std; int marchewka = 25; cout <<"Mam "<< marchewka <<" marchewek."<< endl; marchewka = marchewka - 1; cout <<"Chrum. Teraz mam "<< marchewka <<" marchewki."<< endl; marchewka -= 1; cout <<"Chrum. Teraz mam "<< marchewka <<" marchewki."<< endl; marchewka--; cout <<"Chrum. Teraz mam "<< marchewka <<" marchewki."<< endl; --marchewka; cout <<"Chrum. Teraz mam "<< marchewka <<" marchewki."<< endl; cout <<"Chrum. Teraz mam "<< marchewka-- <<" marchewki."<< endl; cout <<"Chrum. Teraz mam "<< --marchewka <<" marchewki."<< endl; return 0; }

Wprowadzanie danych #include <iostream> int main() { using namespace std; int carrots; cout << "Ile masz marchewek?" << endl; cin >> carrots; cout << "Proszę, oto jeszcze dwie. "; carrots = carrots + 2; cout << "Teraz masz " << carrots << " marchewek." << endl; return 0; }

Wprowadzanie danych #include <iostream> int main() { using namespace std; int carrots; cout << "Ile masz marchewek?" << endl; cin >> carrots; cout << "Proszę, oto jeszcze dwie. "; carrots += 2; cout << "Teraz masz " << carrots << " marchewek." << endl; return 0; }

Operatory Operatory arytmetyczne takie jak w C: + - * / % Operatory przypisania takie jak w C: = += -= *= /= %= Operatory bitowe takie jak w C: & ^ ~ << >> Operatory porownania takie jak w C: < > <= >=!= == Operatory logiczne takie jak w C: &&!

Instrukcje warunkowe, wyboru i iteracyjne Instrukcja warunkowa if - else, instrukcja wyboru switch, oraz instrukcje iteracyjne while, do-while i for maja w języku C++ taka sama składnię i semantykę jak w C. Instrukcje break i continue maja w języku C++ taka sama składnię i semantykę jak w C.

Wskaźniki Wskaźniki maja w języku C++ taka sama składnię i semantykę jak w C. Arytmetyka wskaźników jest taka sama jak w C. Zwiazek tablic i wskaźników jest taki sama jak w C.

Tablice i funkcje Definicje i używanie tablic jest takie samo jak w C. Definicje i używanie funkcji jest takie samo jak w C. Dodatkowo wprowadzone zostaja jednak funkcje przeciażone, szablony funkcji oraz nowy sposób przekazywania argumentów - przez referencje. O tym na późniejszych wykładach.

Struktury Definicja, semantyka i używanie struktur jest podobne jak w C. Natomiast dodatkowo wprowadza się pojęcie klasy, szblonu klasy, dziedziczenia i polimorfizmu. O tym na późniejszych wykładach.

Pliki Pliki w języku C++ można oczywiście obsługiwać metodami z języka C. Istnieje jednak rozwi azanie typowe tylko dla C++ i jest oparte o strumienie. O tym na późniejszych wykładach.