
Numer dopuszczenia MEN 60/1/09/S
Z komputerami stykamy się dziś niemal każdego dnia. Wykorzystujemy je do pracy i rozrywki, wyszukiwania informacji w sieci, komunikowania się ze znajomymi i wielu innych zadań. Jednak komputer to nie tylko gry, edytory tekstu, poczta elektroniczna, portale społecznościowe czy komunikatory -- to także wiele przydatnych narzędzi, które stają się niezbędne do codziennego funkcjonowania we współczesnym świecie.
"Informatyka Europejczyka. Informatyka. Podręcznik dla szkół ponadgimnazjalnych. Część 1" przedstawia zagadnienia związane z algorytmiką i programowaniem. Dowiesz się z tego podręcznika, jakimi prawami rządzą się algorytmy, i nauczysz się rozpoznawać ich typy. Zyskasz możliwość samodzielnego analizowania algorytmów określających najczęstsze metody numerycznego rozwiązywania problemów obliczeniowych. W dalszej części podręcznika znajdziesz informacje dotyczące programowania w języku C++ -- typy danych i instrukcji, strukturę programu, sposoby realizacji typowych zadań programistycznych oraz podstawy programowania obiektowego.
Na płycie CD-ROM dołączonej do książki znajdziesz przykłady programów napisanych w językach C++ i Pascal, uzupełniający materiał dotyczący programowania obiektowego, dane do zadań, pliki potrzebne do wykonywania ćwiczeń oraz wybrane zadania z egzaminów maturalnych.
- Pojęcie algorytmu
- Sposoby przedstawiania algorytmów
- Metody programowania: liniowe, warunkowe, iteracja, rekurencja, "dziel i zwyciężaj", zachłanna
- Analiza i realizacja algorytmów
- Podstawy kryptografii i wybrane algorytmy szyfrujące
- Podstawy języka C++: struktura programu, operacje wejścia i wyjścia, typy instrukcji, proste i złożone typy danych, strukturalizacja programu, dynamiczne struktury danych, plikowe operacje wejścia i wyjścia oraz programowanie obiektowe
- Od autorek (7)
- 1.1. Pojęcie algorytmu (10)
- 1.2. Etapy rozwiązywania zadań za pomocą komputera (11)
- 1.3. Sposoby reprezentowania algorytmów (12)
- 1.3.1. Lista kroków algorytmu (13)
- 1.3.2. Schemat blokowy algorytmu (14)
- 1.3.3. Drzewo algorytmu (15)
- 1.3.4. Program w języku programowania wysokiego poziomu (16)
- 1.4. Algorytmy liniowe i z warunkami (17)
- 1.4.1. Algorytmy liniowe (17)
- 1.4.2. Algorytmy z warunkami (20)
- 1.4.3. Rozwiązywanie równania kwadratowego (23)
- 1.5. Iteracja (31)
- 1.6. Rekurencja (40)
- 1.6.1. Obliczanie silni liczby naturalnej (41)
- 1.6.2. Wyznaczanie elementów ciągu Fibonacciego (43)
- 1.6.3. Wieże Hanoi (47)
- 1.7. Metoda "dziel i zwyciężaj" (51)
- 1.7.1. Przeszukiwanie binarne ciągu uporządkowanego (52)
- 1.8. Programowanie zachłanne (55)
- 1.8.1. Minimalizacja łączenia par (55)
- 1.9. Kryptografia i kryptoanaliza. Metody szyfrowania (57)
- 1.10. Własności algorytmów (60)
- 1.10.1. Złożoność obliczeniowa i efektywność algorytmów (60)
- 1.10.2. Poprawność i skończoność algorytmów (63)
- 1.10.3. Optymalność algorytmów (64)
- 2.1. Wyznaczanie największego wspólnego dzielnika i najmniejszej wspólnej wielokrotności dwóch liczb naturalnych (66)
- 2.1.1. Algorytm Euklidesa (67)
- 2.1.2. Obliczanie najmniejszej wspólnej wielokrotności (71)
- 2.2. Wyznaczanie wartości wielomianu, pozycyjne systemy liczbowe i reprezentacja danych liczbowych w komputerze (72)
- 2.2.1. Systemy liczbowe (72)
- 2.2.2. Konwersje pozycyjnych systemów liczbowych (75)
- 2.2.3. Operacje arytmetyczne wykonywane w różnych systemach liczbowych (81)
- 2.2.4. Wyznaczanie wartości wielomianu za pomocą schematu Hornera (85)
- 2.2.5. Zamiana liczb z dowolnego pozycyjnego systemu liczbowego na system dziesiętny z zastosowaniem schematu Hornera (89)
- 2.2.6. Reprezentacja danych liczbowych w komputerze (91)
- 2.3. Generowanie liczb pierwszych i badanie, czy liczba jest pierwsza (97)
- 2.3.1. Badanie, czy liczba jest pierwsza (97)
- 2.3.2. Sito Eratostenesa (100)
- 2.4. Przeszukiwanie ciągu liczbowego - metody liniowe (103)
- 2.4.1. Liniowe przeszukiwanie ciągu liczbowego (103)
- 2.4.2. Liniowe przeszukiwanie ciągu liczbowego z wartownikiem (108)
- 2.5. Znajdowanie najmniejszego lub największego elementu w ciągu liczbowym (110)
- 2.6. Znajdowanie lidera w zbiorze (113)
- 2.7. Sprawdzanie monotoniczności ciągu liczbowego (117)
- 2.8. Sortowanie ciągu liczbowego (119)
- 2.8.1. Metody sortowania przez porównania (121)
- 2.8.2. Sortowanie w czasie liniowym (130)
- 2.9. Zastosowanie metody "dziel i zwyciężaj" (136)
- 2.9.1. Jednoczesne znajdowanie najmniejszego i największego elementu (136)
- 2.9.2. Sortowanie przez scalanie (140)
- 2.9.3. Sortowanie szybkie (146)
- 2.10. Metody numeryczne i obliczenia przybliżone (150)
- 2.10.1. Obliczanie wartości pierwiastka kwadratowego z liczby nieujemnej - algorytm Newtona-Raphsona (150)
- 2.10.2. Obliczanie pola obszaru ograniczonego wykresem funkcji (154)
- 2.10.3. Znajdowanie przybliżonej wartości miejsca zerowego funkcji - metoda połowienia przedziałów (162)
- 2.11. Wyznaczanie wartości wyrażenia zapisanego w odwrotnej notacji polskiej ONP (166)
- 2.12. Zastosowanie programowania zachłannego (169)
- 2.12.1. Problem plecakowy (169)
- 2.12.2. Algorytm wydawania reszty (179)
- 2.13. Wybrane algorytmy kryptograficzne (182)
- 2.13.1. Szyfrowanie symetryczne (182)
- 2.13.2. Szyfrowanie asymetryczne (194)
- 3.1. Języki programowania - pojęcia, klasyfikacja, przykłady (198)
- 3.2. Wprowadzenie do programowania (200)
- 3.2.1. Struktura programu (201)
- 3.2.2. Operacje wejścia-wyjścia (204)
- 3.2.3. Zmienne, stałe, wskaźniki i referencje (209)
- 3.2.4. Wyrażenia arytmetyczne, relacje i operatory logiczne (213)
- 3.2.5. Liczby losowe (221)
- 3.2.6. Komentarze (222)
- 3.3. Podstawowe konstrukcje algorytmiczne (223)
- 3.3.1. Instrukcja pusta (223)
- 3.3.2. Instrukcja przypisania (223)
- 3.3.3. Instrukcja złożona (224)
- 3.3.4. Instrukcje warunkowe (224)
- 3.3.5. Instrukcja wyboru (227)
- 3.3.6. Instrukcje iteracyjne (230)
- 3.3.7. Instrukcje sterujące (235)
- 3.4. Proste typy danych (236)
- 3.5. Strukturalizacja programu (238)
- 3.5.1. Struktura funkcji (238)
- 3.5.2. Zmienne lokalne i globalne (240)
- 3.5.3. Przekazywanie parametrów w funkcjach (241)
- 3.5.4. Przeładowanie funkcji (248)
- 3.6. Strukturalne typy danych (254)
- 3.6.1. Tablice (254)
- 3.6.2. Łańcuchy (262)
- 3.6.3. Struktury (268)
- 3.7. Dynamiczne struktury danych (272)
- 3.7.1. Stos (273)
- 3.7.2. Kolejka (275)
- 3.7.3. Lista (276)
- 3.8. Plikowe operacje wejścia-wyjścia (279)