Andrzej Zalewski
PROGRAMOWNIE W JĘZYKACH C i C++ Z WYKORZYSTANIEM PAKIETU BORLAND C++

Manufacturer Zalewski Andrzej

W książce opisano programowanie w językach C i C++, które bogato zilustrowano przykładami. Przedstawiono także narzędzia pakietu Borland C++ i jego standardowe biblioteki.
Sales price 69,90 zł
Sales price without tax 66,57 zł
Discount

Preloader

ISBN 83-85060-67-7, 672 strony, oprawa miękka, foliowana, wymiary 160x230 mm.

W książce opisano programowanie w językach C i C++, które bogato zilustrowano przykładami. Przedstawiono także narzędzia pakietu Borland C++ i jego standardowe biblioteki. Dzięki temu pozycja ta jest nie tylko podręcznikiem dla osób zainteresowanych poznaniem języków C i C++, ale jest też cennym materiałem, który może być wykorzystany przez zawodowych programistów.

Spis treści

Przedmowa

Część I. WPROWADZENIE DO PROGRAMOWANIA W JĘZYKU C/C++

Rozdział 1. Ogólna charakterystyka pakietów Borland C++ 3.1
1.1. Preliminaria
1.2. Elementy składowe pakietu Borland C++ v.3.1
1.3. Instalacja
1.4. Charakterystyka zintegrowanego środowiska programowania
1.4.1. Uruchomienie i wyjście z systemu zintegrowanego
1.4.2. Elementy systemu zintegrowanego
1.5. Edycja zbiorów źródłowych w systemie zintegrowanym
1.6. Polecenia i opcje systemu zintegrowanego
1.6.1. Polecenia systemowe
1.6.2. Zarządzanie plikami – grupa poleceń File
1.6.3. Wspomaganie edycji – grupa poleceń Edit
1.6.4. Przeszukiwanie tekstu – grupa poleceń Search
1.6.5. Opcje systemu zintegrowanego – grupa poleceń Options
1.6.6. Operacje na oknach – grupa poleceń Window
1.6.7. Podręczna pomoc – grupa poleceń Help

Rozdział 2. Podstawowe informacje o języku C++
2.1. Wprowadzenie. Ogólna charakterystyka języka C/C++
2.2. Standardy języka C/C++
2.3. Podstawowe informacje o kodzie źródłowym programu. Komentarze
2.4. Podstawowe jednostki leksykalne języka C/C++
2.4.1. Identyfikatory
2.4.2. Słowa kluczowe
2.4.3. Znaki przestankowe
2.5. Struktura programu w języku C/C++

Część II. PROGRAMOWANIE W JĘZYKU C/C++

Rozdział 3. Typy danych, deklaracje zmiennych i stałych
3.1. Wprowadzenie
3.2. Typy i zmienne całkowite
3.2.1. Reprezentacja typów całkowitych
3.2.2. Inicjowanie zmiennych całkowitych. Stałe znakowe, dziesiętne, ósemkowe i
         szesnastkowe
3.3. Typy rzeczywiste
3.4. Typy i zmienne wskaźnikowe
3.4.1. Wskazania adresowe – typ void*
3.5. Typy i zmienne referencje (C++)
3.6. Tablice i wskaźniki. Arytmetyka wskaźników. Łańcuchy
3.6.1. Równoważność między tablicą a wskaźnikiem. Arytmetyka wskaźników
3.6.2. Łańcuchy w języku C/C++
3.7. Wskaźniki funkcji
3.8. Struktury i unie
3.8.1. Deklaracja struktur
3.8.2. Dostęp do składowych struktury
3.8.3. Unie
3.8.4. Unie anonimowe (C++)
3.8.5. Pola bitowe
3.8.6. Deklaracje zapowiadające. Typy niekompletne
3.9. Typy i zmienne wyliczeniowe
3.10. Zasięg deklaracji i widoczność zmiennych
3.11. Zmienne i zarządzanie pamięcią
3.11.1. Zmienne statyczne
3.11.2. Zmienne automatyczne
3.11.3. Zmienne dynamiczne
3.11.4. Tworzenie i usuwanie zmiennych dynamicznych ze pomocą funkcji
           standardowych
3.11.5. Tworzenie i usuwanie zmiennych dynamicznych za pomocą operatorów
           new i delete
3.12. Uogólnienie wiadomości o deklaracji zmiennych
3.12.1. Klasa pamięci. Definiowanie typów
3.12.2. Atrybuty stałości – const
3.12.3. Atrybut ulotności – volatile
3.13. Konwersje
3.14. Deklaracje złożone. Nazwy typów
3.14.1. Metody konstrukcji złożonych deklaracji
3.14.2. Nazwy typów złożonych
3.15 Zestawienie podstawowych deklaracji zmiennych

Rozdział 4. Operatory i wyrażenia
4.1. Wprowadzenie
4.2. Podstawowe pojęcia związane z wyrażeniami w C/C++
4.3. Standardowe konwersje
4.3.1. Sposoby wykonywania konwersji
4.4. Operatory w języku C/C++
4.4.1. Operatory arytmetyczne
4.4.2. Operatory bitowe
4.4.3. Operatory przesunięcia
4.4.4. Operatory przypisania
4.4.5. Operatory porównania
4.4.6. Operatory logiczne
4.4.7. Operator warunkowy ?:
4.4.8. Operatory wyboru składowej –>
4.4.9. Operatory pobrania adresu & i odwołania do zmiennej wskazywanej *
4.4.10. Operator wyliczeniowy , (koma)
4.4.11. Operator pobrania rozmiaru – sizeof
4.4.12. Operatory przydziału i zwalniania pamięci – new i delete (C++)
4.4.13. Operatory specyficzne dla języka C++ – informacja
4.4.14. Operatory indeksowania i wywoływania funkcji
4.4.15. Operator konwersji
4.5. Konstrukcja wyrażeń w języku C/C++

Rozdział 5. Instrukcje
5.1. Wprowadzenie
5.2. Instrukcja pusta
5.3. Instrukcje warunkowe
5.3.1. Instrukcja “jeżeli”
5.3.2. Instrukcja wyboru
5.4. Instrukcje iteracyjne
5.4.1. Instrukcja “dla”(for)
5.4.2. Instrukcja “dopóki” (while)
5.4.3. Instrukcja “wykonuj dopóki” (do...while)
5.5. Instrukcje sterujące przebiegiem programu
5.5.1. Instrukcje break, continue, return
5.5.2. Instrukcja skoku. Etykiety
5.6. Wskazówki składniowe

Rozdział 6. Funkcje
6.1. Wprowadzenie
6.2. Deklaracja i definicja funkcji
6.2.1. Deklaracja funkcji. Prototypy
6.2.2. Definicja funkcji
6.2.3. Wywołanie funkcji
6.2.4. Kontrola wywołań funkcji, wykorzystanie prototypów
6.2.5. Funkcje przeciążone, domyślne wartości parametrów (C++)
6.3. Przekazywanie parametrów i zwracanie wartości
6.3.1. Przekazywanie parametrów przez wartość
6.3.2. Przekazywanie parametrów przez wskaźnik
6.3.3. Przekazywanie parametrów przez referencję (C++)
6.3.4. Zwracanie wartości
6.4. Funkcja main – jej parametry i wartość
6.5. Funkcje z atrybutem inline
6.6. Funkcje rekurencyjne
6.7. Funkcje o zmiennej liczbie parametrów

Rozdział 7. Programowanie obiektowe w języku C++
7.1. Wstęp. Od programowania proceduralnego do obiektowego
7.2. Definiowanie przedmiotów – klasy i obiekty
7.2.1. Słowa kluczowe klasy a atrybuty dostępu do składowych
7.2.2. Zmienna this
7.2.3. Deklaracje i definicje składowych klas. Składowe statyczne. Składowe
         uprzywilejowane
7.2.4. Konstruktory
7.2.5. Konstruktory kopiujące. Powielanie obiektów
7.2.6. Destruktory
7.2.7. Obiekty automatyczne, statyczne i dynamiczne
7.2.8. Funkcje i klasy zaprzyjaźnione
7.2.9. Definicje zagnieżdżone. Kwalifikator zakresu
7.2.10. Wskaźniki składowych. Operatory .* i –>*
7.3. Funkcje operatorowe
7.3.1. Operatory standardowe i przeciążone
7.3.2. Operatory jednoargumentowe
7.3.3. Operatory dwuargumentowe
7.3.4. Operatory przypisania
7.3.5. Operator indeksowania [ ]
7.3.6. Operator wywołania funkcji ( )
7.3.7. Operator wyliczeniowy
7.3.8. Operatory konwersji. Konwersje z klasy i do klasy
7.3.9. Operatory new i delete
7.3.10. Sterowanie obiektami tymczasowymi
7.4. Wspólny opis klasy przedmiotów – dziedziczenie i polimorfizm
7.4.1. Dziedziczenie wielobazowe
7.4.2. Aktywowanie konstruktorów i destruktorów w warunkach dziedziczenia
7.4.3. Jednoznaczność dostępu do składowych
7.4.4. Zastosowanie dziedziczenia – hierarchie klas. Zgodność obiektów,
         wskaźników i referencji
7.4.5. Polimorfizm – dalsze informacje
7.5. Wzorce
7.5.1. Wzorce funkcji
7.5.2. Wzorce klas

Rozdział 8. Dynamiczne struktury danych
8.1. Wprowadzenie
8.2. Stosy i kolejki
8.3. Listy
8.3.1. Lista jednokierunkowa
8.3.2. Lista dwukierunkowa
8.3.3. Lista cykliczna
8.4. Drzewa binarne
8.5. Obiektyw dynamicznych strukturach danych. Sterowanie zdarzeniami (C++)

Rozdział 9. Zarządzanie pamięcią operacyjną w systemie DOS
9.1. Wprowadzenie
9.2. Rejestry procesorów rodziny 8086, 80286, 80386. Adresowanie rzeczywiste
     pamięci Segmentacja
9.3. WskaŸniki bliskie, dalekie i unormowane
9.3.1. Odwołania do komórek pamięci – konstrukcja wskaźników dalekich
9.4. Elementy składowe programu i ich rozmieszczenie w pamięci Modele pamięci
9.4.1. Model tiny
9.4.2. Model small
9.4.3. Model medium
9.4.4. Model compact
9.4.5. Model large
9.4.6. Model huge
9.4.7. Modele a wielomodułowa konstrukcja programów
9.5. Tworzenie programów nakładkowych
9.5.1. Zasady konstrukcji programów nakładkowych
9.5.2. Narzędzie do tworzenia programów nakładkowych
9.5.3. Wykorzystanie pamięci rozszerzonej
9.6. Dynamiczny przydział i zwalnianie pamięci
9.6.1. Uniwersalne funkcje przydziału i zwalniania pamięci
9.6.2. Funkcje przydziału i zwalniania pamięci w obszarze dalekiego stosu
9.7. Funkcje wspomagające zarządzanie pamięcią
9.7.1. Uniwersalne funkcje informujące o stanie stosu zmiennych dynamicznych
9.7.2. Funkcje informujące o stanie dalekiego stosu zmiennych dynamicznych

Rozdział 10. Preprocesor
10.1. Wprowadzenie
10.2. Dyrektywa pusta
10.3. Makrodefinicje – dyrektywa #define
10.3.1. Makrodefinicje proste
10.3.2. Makrodefnicje parametryczne
10.3.3. Oddefiniowanie i redefiniowanie makrodefinicji – dyrektywa #undef
10.3.4. Słowa kluczowe i chronione
10.3.5. Makrodefinicje predefiniowane
10.4. Włączanie innych zbiorów do tekstu programu – dyrektywa #include
10.5. Sterowanie przebiegiem kompilacji – dyrektywy warunkowe
10.6. Generowanie komunikatów o błędzie – dyrektywa #error
10.7. Dyrektywa #line
10.8. Dyrektywa #pragma

Część III. Od kodu Ÿródłowego do wykonywalnego programu

Rozdział 11. Generowanie kodu wynikowego programu
11.1. Etapy powstawania kodu wynikowego
11.2. Kompilacja modułów – kompilator zintegrowany i zewnętrzny
11.2.1. Kompilatory pakietu Borland C++ – zintegrowany i zewnętrzny
11.2.2. Przykłady użycia kompilatora zewnętrznego – najważniejsze opcje
11.2.3. Uwagi na temat opisu opcji kompilatorów
11.2.4. Opcje związane z kodem Ÿródłowym
11.2.5. Opcje sterujące kompilacją
11.2.6. Opcje związane z generacją kodu wynikowego
11.2.7. Sterowanie modelem pamięci
11.2.8. Tworzenie makrodefinicji
11.2.9. Błędy i ostrzeżenia
11.2.10. Zarządzanie nazwami segmentów programu
11.2.11. Opcje związane z wykorzystaniem pamięci rozszerzonej
11.2.12. Sterowanie rozmieszczeniem tablic funkcji wirtualnych (C++)
11.2.13. Opcje związane z wykorzystaniem wzorców (C++)
11.2.14. Sterowanie reprezentacją i interpretacją wskaŸników składowych (C++)
11.2.15. Opcje związane ze zgodnością z poprzednimi wersjami Borland C++
11.2.16. Dostęp do nagłówków, biblioteki zbiorów wynikowych
11.2.17. Opcje związane z wykorzystaniem konsolidatora
11.2.18. Prekompilowane nagłówki
11.3. Optymalizacja
11.3.1. Techniki optymalizacji
11.3.2. Opcje sterujące optymalizacją
11.4. Łączenie
11.4.1. Konsolidator zintegrowany i zewnętrzny
11.4.2. Przykłady użycia konsolidatora TLINK
11.4.3. Opcje konsolidatora

Rozdział 12. Tworzenie i zarządzanie złożonymi programami
12.1. Wielomodułowość programów w języku C/C++
12.2. Metody i zasady wielomodułowej konstrukcji programów
12.3. Biblioteki
12.3.1. Podział biblioteki na moduły
12.3.2. Konstrukcja zbioru nagłówkowego biblioteki
12.3.3. Tworzenie bibliotek – bibliotekarz
12.4. Projekty
12.5. Program MAKE
12.5.1. Zasada działania programu MAKE
12.5.2. Podstawy wykorzystania programu MAKE
12.5.3. Opcje programu MAKE
12.5.4. Wielokrotne użycie tych samych makrodefinicji i reguł
12.5.5. Komponenty zbiorów MAKE
12.5.6. Komentarze w zbiorach MAKE
12.5.7. Reguły jawne
12.5.8. Reguły niejawne
12.5.9. Budowa poleceń dla reguł jawnych i niejawnych oraz ich wykonywanie 407
12.5.10. Makrodefinicje
12.5.11. Makrodefinicje predefniowane
12.5.12. Dyrektywy
12.5.13. Program PRJ2MAK

Rozdział 13 Od kodu wynikowego do poprawnie działającego programu
13.1. Wprowadzenie
13.2. Czy program działa poprawnie?
13.3. Gdzie popełniany jest błąd?
13.4. Najczęściej popełniane błędy
13.5. Umiejscawianie usterek. Debugger w systemie zintegrowanym
13.5.1. Wykonywanie i obserwacja przebiegu programu
13.5.2. Kontrolowanie i modyfikowanie wartości zmiennych
13.5.3. Śledzenie wartości zmiennych
13.5.4. Wyświetlanie listy odwołań do funkcji
13.5.5. Punkty kontrolne
13.5.6. Parametry pracy debuggera zintegrowanego
13.6. Optymalizacja a profilowanie – informacja

Część IV. Biblioteki standardowe

Rozdział 14. Funkcje matematyczne
14.1. Obliczenia w zbiorze liczb rzeczywistych
14.1.1. Funkcje trygonometryczne
14.1.2. Funkcje cyklometryczne
14.1.3. Funkcje hiperboliczne
14.1.4. Funkcje wykładnicze i logarytmiczne
14.1.5. Potęgi, pierwiastki i wielomiany
14.1.6. Inne funkcje
14.2. Obliczenia w zbiorze liczb zespolonych (C++)
14.2.1. Funkcje związane z różnymi reprezentacjami liczb zespolonych
14.2.2. Funkcje zmiennej zespolonej
14.3. Informacja o liczbach typu BCD
14.4. Organizacja programów obliczeniowych

Rozdział 15. Operacje na liczbach, łańcuchach i znakach
15.1. Klasyfikacja danych całkowitych
15.2. Funkcje konwersji danych
15.2.1. Konwersje łańcuch liczba całkowita
15.2.2. Konwersje łańcuch liczba rzeczywista
15.3. Operacje na łańcuchach
15.3.1. Kopiowanie łańcuchów
15.3.2. Łączenie łańcuchów
15.3.3. Przekształcanie łańcuchów
15.3.4. Porównywanie łańcuchów
15.3.5. Długość łańcucha, zamiana maków i ich kolejności
15.3.6. Generowanie znormalizowanych komunikatów o błędach
15.4. Operacje na blokach pamięci

Rozdział 16. Operacje wejścia-wyjścia
16.1. Wprowadzenie
16.2. Operacje wejścia-wyjścia – podejście proceduralne
16.2.1. Otwieranie i zamykanie strumieni
16.2.2. Podstawowe funkcje wyjścia
16.2.3. Wyjście sformatowane
16.2.4. Podstawowe funkcje wejścia
16.2.5. Wejście sformatowane
16.2.6. Sterowanie wskaźnikiem pozycji strumienia
16.2.7. Operacje związane z buforowaniem operacji wejścia-wyjścia
16.2.8. Usuwanie i zmiany nazwy zbiorów
16.2.9. Zbiory tymczasowe
16.2.10. Błędy operacji wejścia-wyjścia
16.3. Operacje wejścia-wyjścia – podejście obiektowe
16.3.1. Podstawy wykorzystania strumieni
16.3.2. Hierarchia klas i strumieni
16.3.3. Podstawowy strumień - los
16.3.4. Formatowanie wejścia i wyjścia
16.3.5. Strumienie wejściowe
16.3.6. Strumienie wyjściowe
16.3.7. Strumienie łańcuchowe
16.3.8. Strumienie wejściowo-wyjściowe
16.4. Zarządzanie skorowidzami dyskowymi
16.4.1. Domyślny i aktualny skorowidz
16.4.2. Dostęp do zawartości skorowidza
16.4.3. Operacje na ścieżkach dostępu
16.4.4. Sterowanie aktualnym napędem dyskowym
16.4.5. Tworzenie i usuwanie skorowidzów

Rozdział 17. Grafika tekstowa
17.1. Wstęp
17.2. Organizacja ekranu w trybie tekstowym
17.3. Sterowanie atrybutami znaków wysyłanych na ekran
17.4. Sterowanie pozycją i wyglądem kursora
11.5. Operacje wejścia-wyjścia (klawiatura - ekran)
17.5.1. Zmienne określające sposób przeprowadzania operacji wyjścia na ekran
17.5.2. Czyszczenie ekranu. Usuwanie, wstawianie wierszy
17.5.3. Operacje wejścia z konsoli (z klawiatury)
17.5.4. Operacje wyjścia na ekran
17.6. Operacje na blokach pamięci obrazu
17.7. Obiektowe strumienie wyjścia na ekran

Rozdział 18. Grafika punktowa
18.1. Wprowadzenie
18.2. Organizacja i zarządzanie ekranem w trybie graficznym
18.2.1. Schemat programu działającego w trybie graficznym
18.2.2. Funkcje zarządzające trybem pracy ekranu
18.2.3. Informacje o trybie graficznymi konfiguracji sprzętu
18.2.4. Zaawansowane funkcje konfiguracji i zarządzania grafiką
18.2.5. Określanie położenia na ekranie. Okna graficzne i ich obsługa
18.2.6. Obsługa błędów operacji graficznych
18.3. Kolory
18.3.1. Palety a kolory ekranowe
18.3.2. Sterowanie kolorami – karta CGA
18.3.3. Sterowanie kolorami – karty EGA i VGA
18.3.4. Sterowanie kolorami
18.3.5. Zarządzanie paletami kolorów
18.4. Wskaźnik ekranu, punkty, linie, łamane, prostokąty, prostopadłościany
18.4.1. Sterowanie pozycją wskaŸnika ekranu
18.4.2. Sterowanie wyglądem i sposobem kreślenia linii
18.4.3. Punkty i linie
18.4.4. Prostokąty, wielokąty, prostopadłościany, łamane
18.4.5. Wykresy słupkowe
18.5. Kreślenie okręgów, elips, łuków itp.
18.5.1. Wykresy kołowe
18.6. Wypełnianie obszarów
18.6.1. Wzorzec i kolor wypełniania
18.6.2. Wzorce wypełniania definiowane przez użytkownika
18.6.3. Wypełnianie obszarów
18.7. Teksty w trybie graficznym. Kroje pism
18.7.1. Krój pism i wygląd znaków
18.7.2. Wyświetlanie tekstów
18.8. Zarządzanie blokami obrani
18.9. Stronicowanie obrazu
18.10. Włączanie sterowników i zbiorów z krojami pism do zbiorów .EXE
18.11. Wykorzystanie niestandardowych sterowników i krojów pism

Rozdział 19. Funkcje systemowe i procesowe
19.1. Wprowadzenie
19.2. Funkcje przerywające wykonywanie programu
19.3. Tworzenie i wykonywanie procesów potomnych
19.4. Obsługa sytuacji wyjątkowych – sygnały (informacja)
Dodatek A. Błędy podczas kompilacji
Dodatek B. Błędy uniemożliwia