C++ DLA POCZĄTKUJĄCYCH



Podobne dokumenty
JAK ROZLICZYĆ ZAGRANICZNE DOCHODY I WYPEŁNIĆ PIT-36

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

JAK ZROBIĆ KARIERĘ W MLM I UNIKNĄĆ PUŁAPEK

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski -

Programowanie i techniki algorytmiczne

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

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

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

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

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Podstawy programowania. Wprowadzenie

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

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

Copyright by Wydawnictwo EPROFESS Żory Wydanie I ISBN: Projekt okładki: Jacek Piekarczyk Skład: EPROFESS, Żory

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Warunek wielokrotnego wyboru switch... case

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Podstawy programowania

Temat 20. Techniki algorytmiczne

1 Podstawy c++ w pigułce.

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

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.

Zapisywanie algorytmów w języku programowania

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Wprowadzenie do programowania

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Programowanie w języku Python. Grażyna Koba

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

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

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Język programowania PASCAL

Geneza powstania języka C++

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

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

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

Programowanie strukturalne i obiektowe. Funkcje

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Tworzenie oprogramowania

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

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

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Algorytm. a programowanie -

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?

KONSTRUKCJA KOMPILATORÓW

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Celem tego projektu jest stworzenie

Temat 1. Więcej o opracowywaniu tekstu

KARTA KURSU. Wstęp do programowania

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

Programowanie - wykład 4

Część 4 życie programu

Algorytmika i pseudoprogramowanie

ECDL Podstawy programowania Sylabus - wersja 1.0

GODZINY NADLICZBOWE. Stan prawny na dzień r. Tadeusz Nycz

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Technologia Flash cieszy się coraz większą popularnością. Liczba dostępnych

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!

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

Programowanie w C. dr inż. Stanisław Wszelak

Technologie informacyjne: Arkusz kalkulacyjny

Podstawy Programowania

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

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

ISBN Copyright by Wydawnictwo BTC Legionowo 2008

PLAN WYNIKOWY Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY 6

METODY REPREZENTACJI INFORMACJI

Sposoby przedstawiania algorytmów

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi. nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe

lekcja 8a Gry komputerowe MasterMind

Stawiamy pierwsze kroki

S YSTEM O PERACYJNY L INUX W PARCOWNI

Język ludzki kod maszynowy

Języki programowania zasady ich tworzenia

Warsztaty dla nauczycieli

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

Python wstęp. Michał Bereta

Podstawy programowania C. dr. Krystyna Łapin

Funkcje i instrukcje języka JavaScript

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKORZYSTANIE PORTALU DYDAKTYCZNEGO W NAUCE JĘZYKÓW PROGRAMOWANIA

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Wykład 8: klasy cz. 4

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

6. Pętle while. Przykłady

Wymagania edukacyjne z informatyki w klasie VIII

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

Pytania sprawdzające wiedzę z programowania C++

1 Podstawy c++ w pigułce.

Podstawy programowania funkcjonalnego

Transkrypt:

C++ DLA POCZĄTKUJĄCYCH Ćwiczenia Wojciech Szymański Wszelkie prawa zastrzeżone. Kopiowanie i rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Autor oraz Wydawnictwo Dobry ebook dołożyli wszelkich starań, aby zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor i Wydawnictwo Dobry ebook nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w niniejszej publikacji. Wszelkie prawa zastrzeżone 2007 Dobry ebook ISBN: 978-83-60863-08-4 Wydanie I Dobry ebook ul. Grenadierów 5/5, 30-085 Kraków tel./fax (12) 353 04 05 e-mail: i.kielar@dobryebook.pl www.dobryebook.pl

ebook Spis treści 1 Wstęp 2 Środowisko pracy I. Czym jest kompilator II. Wybór programu III. Instalacja programu IV. Korzystanie z programu Dev-C++ V. Omówienie najważniejszych funkcji programu VI. Wybrane skróty klawiszowe w Dev-C++ 3 Instrukcje podstawowe I. Pierwszy program II. Formatowanie tekstu III. Działania na liczbach IV. Typy zmiennych, konwersja i zaokrąglenie V. Kod ASCII VI. Zastosowanie praktyczne: przeliczanie wysokości w stopach na metry VII. Zastosowanie praktyczne: przeliczanie wieku w latach na dni VIII. Zastosowanie praktyczne: przeliczanie wieku w latach na dni (dokładniejszy) 4 Pętle, wyróżnienia warunkowe I. Instrukcja warunkowa if, zakres ważności zmiennych II. Instrukcja warunkowa while III. Zastosowanie praktyczne: obliczanie sumy i iloczynu wprowadzonych przez użytkownika liczb 5 7 8 8 9 9 10 10 15 15 21 22 24 24 25 26 26 29 29 32 32 36 36 38 39 40 41 42 43 44 45 45 48 49 50 51 52

IV. Zastosowanie praktyczne: ustalanie najmniejszej i największej liczby spośród wprowadzanych V. Instrukcja warunkowa do while VI. Instrukcja warunkowa for VII. Zastosowanie praktyczne: obliczanie silni podanej liczby VIII. Zastosowanie praktyczne: wypisanie piramidy z gwiazdek IX. Instrukcja warunkowa switch X. Instrukcja goto 5 Tablice I. Wczytywanie elementów do tablicy i ich wypisywanie II. Zastosowanie praktyczne: wypełnianie tablicy liczbami od 0 do 100, z krokiem co 10 III. Zastosowanie praktyczne: obliczanie sumy wszystkich elementów tablicy IV. Tablica znakowa. Operator sizeof V. Zastosowanie praktyczne: wyszukiwanie najmniejszej liczby w tablicy VI. Kopiowanie zawartości pierwszej tablicy do drugiej (pustej) VII. Kopiowanie zawartości pierwszej tablicy na koniec drugiej VIII. Zastosowanie praktyczne: sprawdzanie czy dwie tablice są takie same IX. Wyszukiwanie ciągu znaków w tablicy X. Zastosowanie praktyczne: sortowanie elementów tablicy 6 Funkcje I. Ogólne wiadomości na temat funkcji II. Przekazywanie argumentów do funkcji przez wartość III. Zastosowanie praktyczne: wypisywanie kolejnych liczb naturalnych z podanego przedziału IV. Zastosowanie praktyczne: zwracanie wartości większej o 3 od wprowadzonej V. Instrukcja switch w funkcji VI. Przeładowanie nazwy funkcji VII. Funkcja z argumentami domniemanymi VIII. Funkcja inline 52 53 54 55 56 57 58 59 59 60 60 62 63 64 65 65 68 68 69 69 71 71 75 75 77 77 78 78 79 80 82 82 84 85 86 87 87 91 91 93 93 94 94 95 96 98 99 101 101 104 104 106

IX. Rekurencja: funkcja Fibonacciego X. Rekurencja: mnożenie XI. Rekurencja: potęga XII. Rekurencja: silnia 7 Wskaźniki I. Ogólne wiadomości o wskaźnikach II. Zalety i wady wskaźników III. Zastosowanie praktyczne: wypełnianie tablicy liczbami parzystymi z przedziału od 0 do 28 IV. Zastosowanie praktyczne: podnoszenie liczby do kwadratu V. Zastosowanie praktyczne: wypisywanie podanego znaku podaną ilość razy VI. Przekazywanie wyniku funkcji przez wskaźnik VII. Zastosowanie praktyczne: kopiowanie zawartości pierwszej tablicy do drugiej (pustej) VIII. Zastosowanie praktyczne: kopiowanie n znaków pierwszej tablicy do drugiej (pustej) IX. Zastosowanie praktyczne: kopiowanie zawartości pierwszej tablicy na koniec drugiej X. Zastosowanie praktyczne: kopiowanie n znaków pierwszej tablicy na koniec drugiej 8 Programowanie obiektowe I. Klasy i obiekty II. Dane prywatne i publiczne klasy III. Metody klas wprowadzenie IV. Konstruktory i destruktory wprowadzenie V. Konstruktor domniemany VI. Konstruktor kopiujący VII. Zastosowanie praktyczne: konstruktory 9 Skorowidz 106 108 108 109 109 110 111 112 113 113 115 115 117 118 119 120 121 121 122 123 124 126 126 127 127 128 129 130 131 131 135 135 139 139 142 142 144 145 146 147 148 149 151 152 153 www.dobryebook.pl

C++ dla początkujących Wstęp 5 1 Wstęp Język C++ Język C++, któremu poświęcony jest ten ebook, został stworzony przez Bjarne Stroustrupa w latach osiemdziesiątych XX wieku. Wpływ na jego rozwój i dzisiejszą składnię miały, poza językiem C, przede wszystkim Simula, z której zaczerpnął właściwości obiektowe, a także Algol, Ada, ML i Clu. Początkowo najważniejszą rzeczą wprowadzoną w C++, w stosunku do C, było programowanie obiektowe, później jednak dodawano do niego wiele innych ulepszeń, czyniąc go wygodnym i bardzo elastycznym. Obecnie w wielu dziedzinach nauki i techniki C++ jest najpopularniejszym językiem programowania, a powiększające się rzesze jego miłośników najlepiej o nim świadczą. Do podstawowych zalet języka C++ należą: nowoczesność, duże możliwości, użyteczność, uniwersalność, wspólne cechy z innymi językami programowania, elastyczność, łatwość nauki. Dla kogo jest ta książka? Książkę tą napisałem z myślą o początkujących programistach szukających zbioru praktycznych rozwiązań i zastosowań języka C++. Dzięki szczegółowej analizie pojawiających się w umiarkowanym tempie nowych instrukcji, każdy jest w stanie zrozumieć, a co więcej umieć zastosować C++. W publikacji nie ma przykładów instrukcji nie stosowanych, albo bardzo rzadko używanych i w wątpliwych potrzebach. Nie ma tu także miejsca na omówienia tych elementów języka, które są wykorzystywane przez profesjonalnych programistów. Chciałem, aby ten skrypt był przydatny i zawsze służył pomocą, a przy tym nie składał się z kilkuset stron. www.dobryebook.pl strona 5 z 153

C++ dla początkujących Wstęp 6 Ponieważ na rynku jest ogromna ilość publikacji dotyczących głównie teorii jezyka C++, postanowiłem wyjść naprzeciw tym, którzy cenią rozwiązania praktyczne. Stąd wziął się pomysł stworzenia zbioru przykładów. Jak czytać ten podręcznik? Od dawna wiadomo, że najlepiej i najszybciej uczymy się poprzez praktykę. Pracując nad tą książką stosowałem się właśnie do tej zasady. Omówienie każdego przykładu składa się z 3 części: Kod (źródłowy) programu, Na ekranie pojawi się, Opis. Polecam zapoznanie się z każdą z nich. Oczywiście wybór sposobu korzystania z tej książki pozostawiam czytelnikowi i jego indywidualnym potrzebom, ale z własnego doświadczenia wiem, że najlepiej zrozumieć działanie czegoś obserwując wyniki pracy poszczególnych części, czyli w tym wypadku tego, co jest wypisywane na ekranie. Przykłady zostały ułożone według stopnia trudności i zalecam analizowanie ich po kolei, choć bardziej wtajemniczeni mogą się zadowolić wyrywkową analizą poszczególnych przypadków. Każdy program został opisany językiem prostym i zrozumiałym dla każdego. Celowo unikałem wszelkich trudnych sformułowań, aby nie przysparzać czytelnikowi dodatkowych kłopotów. Podczas analizy dalszych przykładów zachęcam do próby samodzielnego stworzenia programu i porównania go z tym, który został umieszczony na tych stronach. Pamiętaj jednak, że każde zadanie można rozwiązać na wiele sposób i każdy z nich może być prawidłowy. Natraficie też na część pod nazwą Wskazówka. W niej zostały przedstawione albo rzeczy ciekawe, albo bardzo ważne, o których zapominać nie wolno. W publikacji często spotkasz się z określeniem użytkownik tak będę nazywał osobę korzystającą z programu. W części Na ekranie pojawi się to, co zostało wpisane przez użytkownika, jest podkreślone. www.dobryebook.pl strona 6 z 153

C++ dla początkujących Wstęp 7 Do wykonania programów użyłem kompilatora Bloodshed Dev-C++. Czytelniku! Dziękuję Ci za wybranie właśnie mojego poradnika spośród tak bogatego repertuaru książek dotyczących programowania w języku C++. Mam nadzieję, że będziesz z tego wyboru zadowolony i z chęcią wracał będziesz do omawianych na tych stronach przykładów. Wierzę, że za każdym razem, kiedy po tę lekturę sięgniesz, zdasz sobie sprawę, o ile Twoja wiedza się poszerzyła w aspekcie praktycznym. Ten skrypt dostarczy Ci wiedzy i pomoże zrozumieć prawa rządzące C++, ale pomimo że język ten nie zalicza się do najtrudniejszych, to jednak odrobina wysiłku jest niezbędna do jego zrozumienia i nauczenia się. Przed rozpoczęciem pracy powinieneś wiedzieć, że to nie ilość kodu decyduje o użyteczności czy prawidłowości programu. Skromny i prosto napisany kod może okazać się lepszym rozwiązaniem niż skomplikowany i niejasny nawet dla samego twórcy. www.dobryebook.pl strona 7 z 153

C++ dla początkujących Środowisko pracy 8 2 Środowisko pracy I. Czym jest kompilator Mówiąc kompilator, większość z nas ma na myśli gotowe środowisko, w którym tworzymy programy. Jest to mylna definicja, dlatego stwierdziłem, że warto nieco przybliżyć strukturę narzędzia, na którym będziemy pracować. Środowisko programowania, w którym będziemy tworzyli nasze programy, składa się z trzech różnych mechanizmów, a są nimi: Linker, Kompilator, Edytor. Po uruchomieniu pewnego środowiska programowania, którym w naszym przypadku będzie Dev-C++, ujrzymy edytor kodu źródłowego. Współczesne edytory udostępniają wiele opcji, dzięki którym tworzenie programu staje się łatwe i przyjemne. Popełniane błędy składniowe są albo samoczynnie korygowane, bądź jest zwracana uwaga programiście. Dodatkową zaletą wielu edytorów kodu źródłowego jest podpowiadanie użytkownikom, co należy wpisać w danym miejscu, a nawet autouzupełnianie kodu. Po stworzeniu kodu źródłowego programu musi on przejść proces kompilacji czyli zamiany na język zrozumiały dla procesora. To zadanie spoczywa na kompilatorze dzięki niemu programista nie musi znać języka procesora, czyli kodu maszynowego. Również sam proces pisania programu przebiega szybciej, gdyż zamiast kilku linijek kodu maszynowego wprowadzamy jedną linijkę kodu zrozumiałego dla człowieka. Istnienie narzędzia jakim jest kompilator pozwala na większą przenośność kodu pomiędzy platformami. Ponieważ często do własnego programu dołącza się różne biblioteki, zawierające dodatkowe instrukcje, lub rozbija się program na kilka plików, niezbędne jest ich dołączenie. Tym zajmuje się linker. Krótko mówiąc łączy on wszystkie części programu w jedną całość dzięki temu późniejsze korzystanie z programu staje się łatwiejsze i przyjemniejsze. I tak oto odpowiadając na postawione w nagłówku pytanie powstał cały rozdział. Na koniec poprawna definicja kompilatora, która mówi, że jest on składową środowiska www.dobryebook.pl strona 8 z 153

C++ dla początkujących Środowisko pracy 9 programowania, zajmującą się tylko zamianą kodu źródłowego, napisanego przez człowieka, na kod maszynowy zrozumiały dla procesora. Poniższy rysunek prezentuje podstawowe etapy tworzenia programu: Rysunek 2.1 Etapy tworzenia programu II. Wybór programu Programów, albo inaczej mówiąc środowisk, w których tworzy się programy, jest bardzo dużo. Mamy do wyboru rozwiązania komercyjne i darmowe, proste i trudne w obsłudze, ładne i brzydkie Preferencje każdego programisty zmieniają się z upływem czasu i z konieczności korzystania z pewnych konkretnych funkcji. Pierwszym i zarazem najważniejszym kryterium wyboru, przed jakim staje programista, jest uzależnienie od platformy systemowej. Programu pracującego pod Windows nie da się uruchomić na Linuksie. Zacznę od krótkiego omówienia oprogramowania pracującego na platformie linuksowej. Najbardziej popularnym kompilatorem C++ używanym w systemie Linux jest g++ wydawany przez projekt GNU. Jest to tylko kompilator, niepołączony z żadnym edytorem, co dla początkujących programistów jest uciążliwe. Jesteśmy zmuszeni tworzyć kody źródłowe w edytorze tekstowym, następnie zlecać g++ przeprowadzenie kompilacji. Kompilator g++ jest standardowo dołączany do dystrybucji Linuksa. www.dobryebook.pl strona 9 z 153