Projektowanie oprogramowania dla zupełnie początkujących. Owoce programowania. Wydanie V - ebook
Projektowanie oprogramowania dla zupełnie początkujących. Owoce programowania. Wydanie V - ebook
Programowanie to nie tylko umiejętność pisania kodu oraz organizowania go w funkcje, procedury i moduły. Nawet najbardziej finezyjne języki i najnowocześniejsze paradygmaty programowania nie zapewnią sukcesu, jeśli projekt aplikacji jest nieprzemyślany, a jej logice brakuje... logiki. Z drugiej strony poświęcenie odrobiny czasu na stworzenie dobrego projektu sprawi, że praca nad pisaniem kodu będzie łatwiejsza, sama aplikacja będzie pracować lepiej i bardziej niezawodnie, a późniejsze modyfikacje i rozwój oprogramowania przysporzą mniej problemów.
Jeśli planujesz napisać swoją pierwszą aplikację, sięgnij po tę książkę. Aby zrozumieć zawartą w niej treść, nie trzeba znać żadnego języka programowania. Pokazano tu, jak działają programy i jak można z ich wykorzystaniem rozwiązywać konkretne zadania. Wiedza o zasadach projektowania jest przekazywana za pomocą pseudokodu i schematów blokowych. Omówiono zarówno podstawowe zagadnienia, takie jak typy danych, zmienne, funkcje, jak i nieco bardziej zaawansowane: programowanie obiektowe, tworzenie graficznych interfejsów użytkownika i pisanie programów sterowanych zdarzeniami. W tym wydaniu książki wprowadzono wiele poprawek i uzupełnień, dotyczących między innymi języków Java, Python i C++ oraz programowania aplikacji dla urządzeń mobilnych.
Dzięki tej książce dowiesz się:
- jak działa komputer, czym są programy i do czego służą dane
- z jakich modułów i struktur składają się programy oraz jak działają funkcje
- w jaki sposób pracuje się na plikach oraz czym jest przetwarzanie tekstu
- czym jest rekurencja i do czego można ją wykorzystać
- czym się różni programowanie proceduralne od obiektowego
Bez dobrego projektu zawiedzie najlepszy kod!
Spis treści
Wstęp 13
Podziękowania 19
O autorze 21
Rozdział 1. Wstępne informacje na temat komputerów i programowania 23
- 1.1. Wstęp 23
- 1.2. Sprzęt 24
- 1.3. W jaki sposób komputer przechowuje dane 30
- 1.4. W jaki sposób działa program 35
- 1.5. Rodzaje oprogramowania 44
- Pytania kontrolne 45
Rozdział 2. Dane wejściowe, przetwarzanie i dane wyjściowe 51
- 2.1. Projektowanie programu 51
- 2.2. Dane wejściowe, dane wyjściowe i zmienne 58
- 2.3. Przypisywanie wartości do zmiennych i wykonywanie obliczeń 69
- W CENTRUM UWAGI. Obliczanie opłat za dodatkowe minuty 73
- W CENTRUM UWAGI. Obliczanie procentów 74
- W CENTRUM UWAGI. Obliczanie średniej 79
- W CENTRUM UWAGI. Zamiana wzoru matematycznego na wyrażenie 82
- 2.4. Deklarowanie zmiennych i typy danych 84
- 2.5. Stałe nazwane 90
- 2.6. Ręczne śledzenie programu 91
- 2.7. Dokumentowanie programu 93
- W CENTRUM UWAGI. Korzystanie ze stałych nazwanych, konwencje zapisu i komentarze 94
- 2.8. Projektowanie pierwszego programu 97
- 2.9. Rzut oka na języki Java, Python i C++ 100
- Pytania kontrolne 121
- Ćwiczenia z wykrywania błędów 126
- Ćwiczenia programistyczne 127
Rozdział 3. Moduły 131
- 3.1. Moduły - informacje wstępne 131
- 3.2. Definiowanie i wywoływanie modułów 134
- W CENTRUM UWAGI. Definiowanie i wywoływanie modułów 140
- 3.3. Zmienne lokalne 145
- 3.4. Przekazywanie argumentów do modułów 148
- W CENTRUM UWAGI. Przekazywanie argumentu do modułu 153
- W CENTRUM UWAGI. Przekazywanie argumentu przez referencję 159
- 3.5. Zmienne globalne i stałe globalne 162
- W CENTRUM UWAGI. Korzystanie ze stałych globalnych 165
- 3.6. Rzut oka na języki Java, Python i C++ 167
- Pytania kontrolne 179
- Ćwiczenia z wykrywania błędów 183
- Ćwiczenia programistyczne 183
Rozdział 4. Struktury warunkowe i logika boolowska 187
- 4.1. Struktury warunkowe - informacje wstępne 187
- W CENTRUM UWAGI. Korzystanie z instrukcji If-Then 195
- 4.2. Struktury warunkowe podwójnego wyboru 198
- W CENTRUM UWAGI. Korzystanie z instrukcji If-Then-Else 199
- 4.3. Porównywanie ciągów znaków 202
- 4.4. Zagnieżdżone struktury warunkowe 208
- W CENTRUM UWAGI. Wielokrotne zagnieżdżenie struktur warunkowych 211
- 4.5. Struktura decyzyjna 215
- W CENTRUM UWAGI. Korzystanie ze struktury decyzyjnej 218
- 4.6. Operatory logiczne 221
- 4.7. Zmienne boolowskie 229
- 4.8. Rzut oka na języki Java, Python i C++ 230
- Pytania kontrolne 242
- Ćwiczenia z wykrywania błędów 246
- Ćwiczenia programistyczne 247
Rozdział 5. Struktury cykliczne 251
- 5.1. Struktury cykliczne - wprowadzenie 251
- 5.2. Pętle warunkowe: While, Do-While i Do-Until 253
- W CENTRUM UWAGI. Projektowanie pętli While 257
- W CENTRUM UWAGI. Projektowanie pętli Do-While 266
- 5.3. Pętle licznikowe i instrukcja For 272
- W CENTRUM UWAGI. Projektowanie pętli licznikowej za pomocą instrukcji For 279
- 5.4. Obliczanie sumy bieżącej 289
- 5.5. Wartownik 293
- W CENTRUM UWAGI. Korzystanie z wartownika 293
- 5.6. Pętle zagnieżdżone 295
- 5.7. Rzut oka na języki Java, Python i C++ 298
- Pytania kontrolne 308
- Ćwiczenia z wykrywania błędów 311
- Ćwiczenia programistyczne 312
Rozdział 6. Funkcje 315
- 6.1. Wprowadzenie do funkcji: generowanie liczb losowych 315
- W CENTRUM UWAGI. Korzystanie z liczb losowych 319
- W CENTRUM UWAGI. Wykorzystanie liczb losowych do reprezentowania innych wartości 321
- 6.2. Tworzenie własnych funkcji 322
- W CENTRUM UWAGI. Modularyzacja kodu z wykorzystaniem funkcji 330
- 6.3. Inne funkcje biblioteczne 338
- 6.4. Rzut oka na języki Java, Python i C++ 349
- Pytania kontrolne 357
- Ćwiczenia z wykrywania błędów 359
- Ćwiczenia programistyczne 360
Rozdział 7. Walidacja danych wejściowych 365
- 7.1. Garbage In, Garbage Out 365
- 7.2. Pętla walidacji danych wejściowych 367
- W CENTRUM UWAGI. Projektowanie pętli walidacji danych wejściowych 369
- 7.3. Programowanie defensywne 374
- 7.4. Rzut oka na języki Java, Python i C++ 375
- Pytania kontrolne 379
- Ćwiczenia z wykrywania błędów 381
- Ćwiczenia programistyczne 382
Rozdział 8. Tablice 385
- 8.1. Tablice - informacje podstawowe 385
- W CENTRUM UWAGI. Korzystanie z elementów tablicy w wyrażeniach matematycznych 392
- 8.2. Sekwencyjne przeszukiwanie tablicy 400
- 8.3. Przetwarzanie elementów tablicy 405
- W CENTRUM UWAGI. Przekazywanie tablicy 412
- 8.4. Tablice równoległe 419
- W CENTRUM UWAGI. Korzystanie z tablic równoległych 420
- 8.5. Tablice dwuwymiarowe 424
- W CENTRUM UWAGI. Korzystanie z tablic dwuwymiarowych 427
- 8.6. Tablice trój- i więcejwymiarowe 432
- 8.7. Rzut oka na języki Java, Python i C++ 434
- Pytania kontrolne 444
- Ćwiczenia z wykrywania błędów 447
- Ćwiczenia programistyczne 448
Rozdział 9. Sortowanie i przeszukiwanie tabel 453
- 9.1. Algorytm sortowania bąbelkowego 453
- W CENTRUM UWAGI. Korzystanie z algorytmu sortowania bąbelkowego 460
- 9.2. Algorytm sortowania przez wybieranie 468
- 9.3. Algorytm sortowania przez wstawianie 473
- 9.4. Algorytm wyszukiwania binarnego 479
- W CENTRUM UWAGI. Korzystanie z algorytmu wyszukiwania binarnego 482
- 9.5. Rzut oka na języki Java, Python i C++ 485
- Pytania kontrolne 497
- Ćwiczenia z wykrywania błędów 500
- Ćwiczenia programistyczne 501
Rozdział 10. Pliki 503
- 10.1. Odczyt i zapis do plików - informacje wstępne 503
- 10.2. Przetwarzanie plików za pomocą pętli 516
- W CENTRUM UWAGI. Korzystanie z plików 520
- 10.3. Korzystanie z plików i tablic 524
- 10.4. Przetwarzanie rekordów 525
- W CENTRUM UWAGI. Dodawanie i wyświetlanie rekordów 530
- W CENTRUM UWAGI. Wyszukiwanie rekordu 533
- W CENTRUM UWAGI. Modyfikowanie rekordów 535
- W CENTRUM UWAGI. Usuwanie rekordów 540
- 10.5. Separatory sterowania 543
- W CENTRUM UWAGI. Korzystanie z separatorów sterowania 544
- 10.6. Rzut oka na języki Java, Python i C++ 550
- Pytania kontrolne 570
- Ćwiczenia z wykrywania błędów 574
- Ćwiczenia programistyczne 574
Rozdział 11. Programy sterowane za pomocą menu 577
- 11.1. Wprowadzenie do programów sterowanych za pomocą menu 577
- 11.2. Modularyzacja programu sterowanego za pomocą menu 587
- 11.3. Ponowne wyświetlanie menu za pomocą pętli 589
- W CENTRUM UWAGI. Projektowanie programu sterowanego za pomocą menu 596
- 11.4. Menu wielopoziomowe 610
- 11.5. Rzut oka na języki Java, Python i C++ 616
- Pytania kontrolne 621
- Ćwiczenia programistyczne 623
Rozdział 12. Przetwarzanie tekstu 627
- 12.1. Wstęp 627
- 12.2. Przetwarzanie poszczególnych znaków w ciągu 629
- W CENTRUM UWAGI. Sprawdzanie hasła 632
- W CENTRUM UWAGI. Formatowanie numeru telefonu i usuwanie formatowania 637
- 12.3. Rzut oka na języki Java, Python i C++ 642
- Pytania kontrolne 649
- Ćwiczenia z wykrywania błędów 651
- Ćwiczenia programistyczne 652
Rozdział 13. Rekurencja 657
- 13.1. Wprowadzenie do rekurencji 657
- 13.2. Rozwiązywanie zadań za pomocą rekurencji 660
- 13.3. Przykłady algorytmów rekurencyjnych 664
- 13.4. Rzut oka na języki Java, Python i C++ 674
- Pytania kontrolne 678
- Ćwiczenia programistyczne 681
Rozdział 14. Programowanie obiektowe 683
- 14.1. Programowanie proceduralne i programowanie obiektowe 683
- 14.2. Klasy 687
- 14.3. Projektowanie klas za pomocą języka UML 698
- 14.4. Wyznaczanie klas i ich zakresu obowiązków w zadaniu 700
- W CENTRUM UWAGI. Wyznaczanie klas 701
- W CENTRUM UWAGI. Określanie zakresu obowiązków klasy 705
- 14.5. Dziedziczenie 711
- 14.6. Polimorfizm 718
- 14.7. Rzut oka na języki Java, Python i C++ 723
- Pytania kontrolne 740
- Ćwiczenia programistyczne 744
Rozdział 15. Aplikacje z GUI i programowanie sterowane zdarzeniami 747
- 15.1. Graficzny interfejs użytkownika 747
- 15.2. Projektowanie interfejsu użytkownika do programu wyposażonego w GUI 751
- W CENTRUM UWAGI. Projektowanie okna 755
- 15.3. Tworzenie procedury obsługi zdarzenia 758
- W CENTRUM UWAGI. Projektowanie procedury obsługi zdarzenia 761
- 15.4. Projektowanie aplikacji na urządzenia mobilne 764
- 15.5. Rzut oka na języki Java, Python i C++ 773
- Pytania kontrolne 774
- Ćwiczenia programistyczne 776
Dodatek A. Tablica kodów ASCII/Unicode 779
Dodatek B. Symbole na schematach blokowych 781
Dodatek C. Przewodnik po pseudokodzie 783
Dodatek D. Zamiana liczb dziesiętnych na postać binarną 797
Dodatek E. Odpowiedzi do pytań z punktów kontrolnych 799
Skorowidz 815
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-5566-8 |
Rozmiar pliku: | 13 MB |