Spis treści. Wprowadzenie 7 Rozdział 1. Nasz programistyczny warsztat 11 Rozdział 2. Nasz pierwszy program 15

Podobne dokumenty
Spis treści. Czy to działa?...j...j Sposób na znikanie okienka konsoli...j... 18

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

praktyczne. Wydanie III

1 Podstawy c++ w pigułce.

Wstęp do Programowania 2

Utworzenie pliku. Dowiesz się:

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

1. Wypisywanie danych

Programowanie w języku C++ Grażyna Koba

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

Wstęp do programowania. Wykład 1

Programowanie - wykład 4

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 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Programowanie obiektowe i C++ dla matematyków

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?

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

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 języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Podstawy Programowania. Wykład 1

Wstęp do programowania

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

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

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 C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Pliki. Operacje na plikach w Pascalu

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

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

Podstawy programowania w C++

Podstawy Programowania

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

Część 4 życie programu

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

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

Podstawy programowania - 1

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

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

C++ - [1-3] Debugowanie w Qt Creator

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

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

Programowanie komputerowe. Zajęcia 1

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

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

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

Podstawy programowania (1)

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

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

Wstęp do Programowania, laboratorium 02

Programowanie Obiektowe i C++

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

3. Instrukcje warunkowe

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

Programowanie w języku Python. Grażyna Koba

I - Microsoft Visual Studio C++

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

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

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

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

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Spis treści. Podstawy posługiwania się komputerem

Proste algorytmy w języku C

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

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

Pytania z języka C/C++ main dyrektywy preprocesora #include 15. #define 16. #define słowa zastrzeżone \n, \t, \f 26.

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

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

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

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Wstęp do programowania

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

Programowanie i struktury danych

Przekazywanie argumentów wskaźniki

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

KURS C/C++ WYKŁAD 1. Pierwszy program

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

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

Wprowadzenie do środowiska Qt Creator

Stawiamy pierwsze kroki

Fragment wykładu z języka C ( )

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

Struktura pliku projektu Console Application

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

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

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

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

Laboratorium 1 - Programowanie proceduralne i obiektowe

r. Tablice podstawowe operacje na tablicach

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Transkrypt:

Spis treści Wprowadzenie 7 Rozdział 1. Nasz programistyczny warsztat 11 Rozdział 2. Nasz pierwszy program 15 Czy to działa? 15 Sposób na znikanie okienka konsoli 19 Podsumowanie 21 Rozdział 3. Pliki źródłowe w języku C++ 23 Pliki jako nośniki programów 23 Nośniki programów w C++ 24 Dyrektywa #include i scalanie plików cpp i h 25 Podsumowanie 28 Rozdział 4. Więcej o strumieniach cin i cout 29 Standardowe strumienie wejścia i wyjścia 30 Kaskadowe posługiwanie się strumieniami 33 Odrobina formatowania 35 Podsumowanie 39 Rozdział 5. Przestrzeń na Twoje algorytmy 41 Początek najlepsze miejsce na dyrektywy #include 41 Po nagłówkach dostęp do biblioteki standardowej 43 Po bibliotece standardowej nasze własne deklaracje 44 Funkcja main() centrum programu 46 Po funkcji main() definicje innych funkcji 48 Podsumowanie 49

6 C++. Ć wiczenia praktyczne Rozdział 6. Algorytmy 51 Zwrotnica if() else 51 Zwrotnica switch{...} 57 Pętla for(...;...;...) 63 Pętla while(...) 68 Pętla do {...} while(...) 71 Instrukcje break i continue 73 Podsumowanie 78 Rozdział 7. Funkcje 79 Deklarowanie funkcji 79 Definiowanie funkcji 81 Argumenty funkcji i referencja 88 Podsumowanie 93 Rozdział 8. Dane 95 Typy danych 95 Deklarowanie i inicjowanie prostych danych 98 Deklarowanie i inicjowanie danych tablicowych 100 Deklarowanie i inicjowanie danych wskaźnikowych 105 Operacje na danych 110 Podsumowanie 117 Rozdział 9. Klasy i obiekty 119 Klasa jako nowy typ danych 119 Wewnętrzny ustrój klasy dane 121 Wewnętrzny ustrój klasy algorytmy 125 Pewien specjalny algorytm, zwany konstruktorem 129 Podsumowanie 137 Rozdział 10. Kontenery na dane 139 Podsumowanie 149 Zakończenie 150

3 Pliki źródłowe w języku C++ Pliki jako nośniki programów Treść programu komputerowego zazwyczaj umieszczamy w plikach dyskowych. Zawartość tych plików będzie odczytywana przez kompilator języka C++ i tłumaczona na ciąg binarnych poleceń dla procesora komputera. Programowanie nie zawsze jest równoznaczne z zapisywaniem czegoś w plikach np. w przemyśle spotykamy się z sytuacjami wprowadzania programu do komputera za pomocą odpowiedniego ustawiania mikroprzełączników. Kiedyś powszechne było umieszczanie programu na odpowiedniej ilości dziurkowanych kart. Przygotowywanie programu w formie zapisów umieszczanych w plikach jest bardzo wygodne, tanie i uniwersalne. Zawsze można taki program odtworzyć, poprawić, zlecić jego wykonanie, zarchiwizować na całe lata. Zapis programu dla komputera zazwyczaj ma strukturę zwykłego tekstu mamy zatem do czynienia z plikami tekstowymi. Rzeczywiście, program napisany w zdecydowanej większości znanych języków daje

24 C++. Ć wiczenia praktyczne się otworzyć i przeczytać za pomocą zwykłego Notatnika. Jest to dodatkowe uproszczenie sposobu kodowania i przechowywania współczesnych programów. Skoro pliki źródłowe są zwyczajnymi plikami tekstowymi, do programowania wystarczy najzwyklejszy edytor tekstowy np. popularny Notatnik. Jednak większość współczesnych środowisk programistycznych udostępnia programiście własne, wbudowane edytory. Są to edytory tekstowe, ale znające składnię języka i na przykład odpowiednio kolorujące niektóre frazy języka. Praca nad programem w takim edytorze jest prawdziwą przyjemnością! Pamiętajmy jednak, że poradzilibyśmy sobie także, dysponując zwykłym Notatnikiem. Nośniki programów w C++ W języku C++ przyjęto powszechnie konwencję, że głównym nośnikiem algorytmów jest plik o rozszerzeniu cpp, czyli np. plik o nazwie test.cpp. Spotkamy się także z plikami o rozszerzeniu h, czyli np. o nazwie test.h, które są nośnikami nie tyle algorytmów, ile ich zapowiedzi lub ściślej deklaracji. Wiadomo, skąd pochodzi nazwa cpp, natomiast literka h w nazwie pliku z deklaracjami wzięła się od słowa header nagłówek. Swoje programy będziemy spisywać w pliku o nazwie np. test.cpp lub przyklad.cpp, lub cokolwiek.cpp. Plik ten powinien mieć strukturę zwykłego pliku tekstowego i mógłby być przygotowany w dowolnym edytorze, potem odczytany przez kompilator języka C++, skompilowany i uruchomiony. Ć WICZENIE 3.1 Pliki źródłowe na dysku Pliki źródłowe naszych programów: 1. Po wykonaniu ćwiczeń z poprzedniego rozdziału na dysku Twojego komputera powinny pojawić się ich pliki źródłowe. Odszukaj katalog, w którym środowisko DEV zapisało te pliki (rysunek 3.1). 2. Spróbuj otworzyć swoje pliki źródłowe za pomocą zwykłego Notatnika.

Rysunek 3.1. Oto rzut oka na katalog roboczy widzimy tutaj dwa pliki źródłowe (są to programy napisane w poprzednim rozdziale) i utworzone w wyniku ich kompilacji dwa finalne pliki exe, nadające się do uruchamiania w systemie Windows Rozdział 3. Pliki źródł owe w języku C++ 25 Najprostsze programy w całości spisuje się w pliku cpp. Jeśli zachodzi konieczność zadeklarowania czegokolwiek, odpowiednie frazy umieszcza się raczej w górnej części tego pliku (gdzieś przed zasadniczą funkcją main()) niż w oddzielnym pliku h. Umieszczanie deklaracji w pliku nagłówkowym jest wyrazem profesjonalizmu programisty, jego wysokiej kultury, dobrego smaku i zamiłowania do porządku. Jednak drobniutkie algorytmy z całym spokojem możemy umieszczać wyłącznie w pliku cpp. Postarajmy się zapamiętać, że język C++ w najlepszym, profesjonalnym wydaniu operuje parą plików cpp i h oraz że para ta nazywa się modułem. Dyrektywa #include i scalanie plików cpp i h A oto następny szczegół, na który powinniśmy zwrócić uwagę. Skoro język C++ wprowadza do gry dwa pliki źródłowe, tym samym rozdzielając tak zwane deklaracje (zapowiedzi algorytmów) od tak zwanych implementacji (algorytmów), to w strukturze języka powinna znaleźć się dyrektywa łączenia pary takich plików w całość. Dla porównania w Pascalu, Fortranie czy Basicu problem ten nie występuje, bo zarówno deklaracje, jak i implementacje umieszczamy w jednym i tym samym pliku.

26 C++. Ć wiczenia praktyczne Zazwyczaj na samej górze pliku cpp czyli na samym początku spisywanych algorytmów pojawia się dyrektywa nakazująca kompilatorowi spojrzeć w jakiś plik nagłówkowy. Przypomnijmy sobie którykolwiek z programów z poprzedniego rozdziału: #include <iostream> using namespace std; int main() {... Widoczna tutaj w pierwszej linii dyrektywa nakazuje kompilatorowi przeczytanie pewnego innego pliku, tutaj o nazwie iostream. Co prawda plik ten nie ma oczekiwanej nazwy iostream.h, a tylko iostream, i jest to swego rodzaju naruszenie zasad uświęconych tradycją, ale dyrektywie wklejania w niczym to nie przeszkadza. Rzeczywiście wklejaniu za pomocą dyrektywy #include podlegają wszelkie pliki, nawet te o najdziwniejszych nazwach, czego raczej nie należy nadużywać. Wklejać pliki nagłówkowe trzeba praktycznie zawsze. Oddzielną sprawą jest orientowanie się, jaki plik akurat należy wkleić. Jeśli potrzebne jest wyprowadzanie informacji na ekran chętnie wklejamy plik nagłówkowy iostream. Jeśli potrzebujemy jakiejś funkcji matematycznej, wkleimy prawdopodobnie plik math.h lub jego nowszą wersję cmath zawierające zapowiedzi instrumentów matematycznych stałej pi, sinusa, pierwiastka czy logarytmu (porównaj rysunek 3.2). Ć WICZENIE 3.2 Dołączanie plików nagłówkowych Teraz zrobimy coś złego. Z któregoś z poprzednich programów usuńmy dyrektywę #include i poddajmy program kompilacji oraz uruchomieniu (porównaj rysunek 2.3): //#include <iostream> using namespace std; int main() { cout << "Twoje imie i nazwisko"; return 0; }

Rysunek 3.2. Poważniejsze programy intensywnie wykorzystują dyrektywę wklejania. Niech nas nie zaniepokoją cudzysłowy zamiast ostrych nawiasów, jak w naszych mikroprogramach jest to pozostałość po dawnych czasach, gdy maszyny nie były tak szybkie jak dzisiaj. Ostre nawiasy nakazują rozpoczęcie wyszukiwania od katalogów bibliotecznych kompilatora. Kultura nakazuje, by swoje deklaracje wklejać w średnikach, biblioteczne w nawiasach ostrych Rozdział 3. Pliki źródł owe w języku C++ 27 Pierwsza linia została poprzedzona podwójnym ukośnikiem, zatem jest zamieniona na komentarz i nie podlega kompilacji. Czy ten program się uruchamia? Nie. Nawet się nie kompiluje kompilacja kończy się komunikatem niezadeklarowane cout, nie rozumiem cout, nie wiem, co znaczy cout! Widocznie w pliku iostream znajdował się opis algorytmu cout. Częsty błąd: zapomnienie o dyrektywie #include, dołączającej deklaracje napisów wykorzystywanych w dalszej części programu. Wklejanie starszej wersji plików nagłówkowych, np. math.h, zamiast współczesnej cmath.

28 C++. Ć wiczenia praktyczne Podsumowanie Nośnikami współczesnych programów komputerowych są zazwyczaj zwykłe pliki tekstowe. Języki rezerwują sobie rozszerzenia nazw plików i tak pliki w języku C++ mają nazwy *.cpp i *.h, pliki pascalowe nazywają się *.pas, pliki z Fortranem *.for itd. Zapisuj swoje algorytmy w swoich plikach i strzeż ich jak oka w głowie! Staraj się wyrobić w sobie nawyk, by pliki każdego programu umieszczać w oddzielnym katalogu. Jest to ważne, dlatego że współczesne, duże programy zazwyczaj składają się z wielu plików źródłowych i trudno jest lokalizować je, gdy mieszają się z plikami innych programów. Plik *.cpp jest głównym nośnikiem algorytmów spisanych w języku C++. Plik *.h zwyczajowo mieści deklaracje (zapowiedzi) algorytmów w języku C++. Plik *.h jest włączany do pliku głównego *.cpp za pomocą dyrektywy #include "nazwa_pliku.h" lub #include <nazwa_pliku.h>. Niekiedy, szczególnie przy małych programach, pomija się plik *.h i deklaracje umieszcza bezpośrednio w pliku *.cpp. Deklaracje algorytmów biblioteki standardowej języka C++ zwyczajowo umieszcza się w plikach, w których nazwach pomijamy kropkę i literę h, np. #include <iostream>. By jednak zapewnić wsteczną zgodność z wcześniejszymi dialektami języka, ciągle poprawnie skompiluje się stara, klasyczna dyrektywa wklejania #include <iostream.h>.