E-book details

Projektowanie oprogramowania dla zupełnie początkujących. Owoce programowania. Wydanie V

Projektowanie oprogramowania dla zupełnie początkujących. Owoce programowania. Wydanie V

Tony Gaddis

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!


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

  • Title: Projektowanie oprogramowania dla zupełnie początkujących. Owoce programowania. Wydanie V
  • Author: Tony Gaddis
  • Original title: Starting Out with Programming Logic and Design (5th Edition)
  • Translation: Wojciech Moch
  • ISBN: 978-83-283-5566-8, 9788328355668
  • Date of issue: 2019-12-03
  • Format: Ebook
  • Item ID: pkpro5
  • Publisher: Helion