15
Karol Kuczmarski (Xion)
Od zera do gier kodera
megatutorial
Kurs C++
Tutorial ten jest kompletnym opisem języka C++. Rozpoczyna się od wstępu do programowania i języka C++, by potem przeprowadzić Czytelnika przez proces konstruowania jego pierwszych programów. Po nauce podstaw przychodzi czas na programowanie obiektowe, a potem zaawansowane aspekty języka - z wyjątkami i szablonami włącznie.
Kurs jest częścią megatutoriala Od zera do gier kodera.
Copyright © 2004 Karol Kuczmarski
Udziela się zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji tego dokumentu zgodnie z zasadami Licencji GNU Wolnej Dokumentacji w wersji 1.1 lub dowolnej późniejszej, opublikowanej przez Free Software Foundation; bez Sekcji Niezmiennych, bez Tekstu na Przedniej Okładce, bez Tekstu na Tylniej Okładce. Kopia licencji załączona jest w sekcji Licencja GNU Wolnej Dokumentacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi lub towarowymi ich właścicieli.
Autorzy dołożyli wszelkich starań, aby zawarte w tej publikacji 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 i autorskich. Autorzy nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w tej publikacji.
Avocado Software
http://avocado.risp.pl
Game Design PL
http://warsztat.pac.pl
Spis treści
Podstawy programowania 17
Krótko o programowaniu 19
Krok za krokiem 19
Jak rozmawiamy z komputerem? 21
Języki programowania 23
Przegląd najważniejszych języków programowania 23
Brzemienna w skutkach decyzja 26
Kwestia kompilatora 27
Podsumowanie 28
Pytania i zadania 28
Pytania 28
Ćwiczenia 28
Z czego składa się program? 29
C++, pierwsze starcie 29
Bliskie spotkanie z kompilatorem 29
Rodzaje aplikacji 31
Pierwszy program 32
Kod programu 33
Komentarze 33
Funkcja main() 33
Pisanie tekstu w konsoli 34
Dołączanie plików nagłówkowych 35
Procedury i funkcje 36
Własne funkcje 36
Tryb śledzenia 37
Przebieg programu 38
Zmienne i stałe 39
Zmienne i ich typy 39
Strumień wejścia 40
Stałe 41
Operatory arytmetyczne 42
Umiemy liczyć! 42
Rodzaje operatorów arytmetycznych 43
Priorytety operatorów 44
Tajemnicze znaki 44
Podsumowanie 45
Pytania i zadania 45
Pytania 46
Ćwiczenia 46
Działanie programu 47
Funkcje nieco bliżej 47
Parametry funkcji 47
Wartość zwracana przez funkcję 49
Składnia funkcji 50
Sterowanie warunkowe 51
Instrukcja warunkowa if 51
Fraza else 53
Bardziej złożony przykład 54
Instrukcja wyboru switch 56
Pętle 58
Pętle warunkowe do i while 58
Pętla do 58
Pętla while 60
Pętla krokowa for 62
Instrukcje break i continue 65
Podsumowanie 66
Pytania i zadania 67
Pytania 67
Ćwiczenia 67
Operacje na zmiennych 69
Wnikliwy rzut oka na zmienne 69
Zasięg zmiennych 69
Zasięg lokalny 70
Zasięg modułowy 72
Przesłanianie nazw 73
Modyfikatory zmiennych 74
Zmienne statyczne 75
Stałe 76
Typy zmiennych 76
Modyfikatory typów liczbowych 77
Typy ze znakiem i bez znaku 77
Rozmiar typu całkowitego 78
Precyzja typu rzeczywistego 79
Skrócone nazwy 80
Pomocne konstrukcje 80
Instrukcja typedef 80
Operator sizeof 81
Rzutowanie 83
Proste rzutowanie 84
Operator static_cast 86
Kalkulacje na liczbach 88
Przydatne funkcje 88
Funkcje potęgowe 88
Funkcje wykładnicze i logarytmiczne 89
Funkcje trygonometryczne 90
Liczby pseudolosowe 91
Zaokrąglanie liczb rzeczywistych 93
Inne funkcje 94
Znane i nieznane operatory 95
Dwa rodzaje 95
Sekrety inkrementacji i dekrementacji 96
Słówko o dzieleniu 97
Łańcuchy znaków 98
Napisy według C++ 99
Typy zmiennych tekstowych 100
Manipulowanie łańcuchami znaków 100
Inicjalizacja 100
Łączenie napisów 102
Pobieranie pojedynczych znaków 103
Wyrażenia logiczne 105
Porównywanie wartości zmiennych 105
Operatory logiczne 105
Koniunkcja 106
Alternatywa 106
Negacja 106
Zestawienie operatorów logicznych 107
Typ bool 108
Operator warunkowy 109
Podsumowanie 110
Pytania i zadania 111
Pytania 111
Ćwiczenia 111
Złożone zmienne 113
Tablice 113
Proste tablice 113
Inicjalizacja tablicy 115
Przykład wykorzystania tablicy 116
Więcej wymiarów 119
Deklaracja i inicjalizacja 120
Tablice w tablicy 121
Nowe typy danych ...
grzegorj