projektowanie oprogramowania wstęp do programowania i techniki komputerowej, kursy
[ Pobierz całość w formacie PDF ]
IDZ DO
Projektowanie
oprogramowania.
Wstêp do programowania
i techniki komputerowej
PRZYK£ADOW
SPIS TRECI
KATALOG KSI¥¯EK
KATALOG ONLINE
Autorzy: Matthias Felleisen, Robert Bruce Findler,
Matthew Flatt, Shriram Krishnamurthi
T³umaczenie: Bartosz Grabski, Miko³aj Szczepaniak
ISBN: 83-7197-922-3
Tytu³ orygina³
Format: B5, stron: 644
Przyk³ady na ftp: 32 kB
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Umiejêtnoæ programowania nie ma ju¿ charakteru czysto zawodowego. Ksiêgowi
musz¹ siê pos³ugiwaæ arkuszami kalkulacyjnymi i edytorami tekstu, fotografowie
korzystaj¹ z edytorów zdjêæ, muzycy programuj¹ syntezatory, za profesjonalni
programici tworz¹ skomplikowane aplikacje. Programowanie jest wiêc bardzo
po¿¹dan¹ umiejêtnoci¹, potrzebn¹ nie tylko informatykom. Projektowanie
oprogramowania wymaga takich samych zdolnoci analitycznych, jak matematyka.
Jednak, w przeciwieñstwie do matematyki, praca z programami jest aktywnym
sposobem zdobywania wiedzy. Obcowanie z oprogramowaniem daje mo¿liwoæ sta³ej
interakcji, co pozwala na zg³êbianie wiedzy, eksperymentowanie z ni¹ oraz na sta³¹
samoocenê.
Autorzy tej klasycznej publikacji stawiaj¹ tezê, i¿ „ka¿dy powinien nauczyæ siê, jak
projektowaæ oprogramowanie” i w³anie nauka podstaw projektowania jest jej tematem
g³ównym. W ksi¹¿ce znajdziesz wiele podstawowych algorytmów, wyjanienia takich
pojêæ, jak akumulacja wiedzy czy równoæ ekstensjonalna i intensjonalna, s³owem
wszystko to, co stanowi teoretyczn¹ podstawê wiedzy programistycznej.
Poznasz miêdzy innymi:
• Podstawowe struktury, z których sk³adaj¹ siê programy komputerowe
• Proste i z³o¿ony typy danych
• Metody przetwarzania danych
• Programowanie z u¿yciem rekurencji, algorytmy z nawracaniem
• Projektowanie abstrakcyjne
• Sposoby gromadzenia wiedzy
• Wykorzystanie wektorów
Z lektury ksi¹¿ki „Projektowanie oprogramowania. Wstêp do programowania i techniki
komputerowej” skorzystaj¹ zarówno studenci informatyki, jak te¿ i s³uchacze innych
kierunków oraz wszystkie osoby, które chc¹ podbudowaæ swoj¹ wiedzê praktyczn¹
solidnymi i przydatnymi podstawami teoretycznymi.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Przedmowa ............................................................................................................9
Dlaczego kady powinien uczy si programowa? .................................................................... 11
Metody projektowania....................................................................................................................... 12
Wybór Scheme i DrScheme............................................................................................................... 14
Podział ksi'ki..................................................................................................................................... 15
Podzikowania.................................................................................................................................... 18
Cz I Przetwarzanie prostych typów danych 19
1. Studenci, nauczyciele i komputery..........................................................21
2. Liczby, wyraenia i proste programy .....................................................23
Liczby i arytmetyka............................................................................................................................ 23
Zmienne i programy .......................................................................................................................... 26
Problemy ze zrozumieniem tre.ci zada/........................................................................................ 29
Błdy......................................................................................................................................................30
Projektowanie programów................................................................................................................ 33
3. Program składa si! z funkcji i definicji zmiennych ..............................39
Składanie funkcji................................................................................................................................. 40
Definicje zmiennych........................................................................................................................... 43
Proste wiczenia w tworzeniu funkcji............................................................................................. 44
4. Instrukcje warunkowe i funkcje...............................................................47
Warto.ci logiczne i relacje................................................................................................................. 47
Funkcje testuj'ce warunki................................................................................................................. 50
Warunki i funkcje warunkowe......................................................................................................... 54
Projektowanie funkcji warunkowych.............................................................................................. 57
5. Informacje symboliczne.............................................................................63
Proste wiczenia z symbolami.......................................................................................................... 65
6. Dane złoone. Cz!,- 1.: Struktury ...........................................................69
Struktury .............................................................................................................................................. 69
6wiczenie rozszerzone: rysowanie prostych obrazów.................................................................... 72
4
SPIS TRECI
Definicje struktur................................................................................................................................ 75
Definicje danych.................................................................................................................................. 79
Projektowanie funkcji przetwarzaj'cych dane złoone.................................................................... 82
Rozszerzone wiczenie: przemieszczanie okrgów i prostok'tów ............................................ 87
Rozszerzone wiczenie: gra w szubienic ...................................................................................... 91
7. Rodzaje danych...........................................................................................95
Mieszanie i rozrónianie danych ..................................................................................................... 95
Projektowanie funkcji przetwarzaj'cych dane mieszane........................................................... 100
Składanie funkcji — powtórka ....................................................................................................... 104
Rozszerzone wiczenie: przesuwanie figur.................................................................................. 107
Błdne dane wej.ciowe.................................................................................................................... 108
W1. Składnia i semantyka ...............................................................................111
Słownictwo jzyka Scheme ............................................................................................................. 112
Gramatyka jzyka Scheme .............................................................................................................. 112
Znaczenie w jzyku Scheme ........................................................................................................... 114
Błdy ...................................................................................................................................................118
Wyraenia logiczne .......................................................................................................................... 121
Definicje zmiennych......................................................................................................................... 122
Definicje struktur.............................................................................................................................. 124
Cz II Przetwarzanie danych dowolnej wielkoci 127
9. Dane złoone. Cz!,- 2.: Listy .................................................................129
Listy .....................................................................................................................................................129
Definicje danych dla list o dowolnej długo.ci ............................................................................. 133
Przetwarzanie list o dowolnej długo.ci ........................................................................................ 135
Projektowanie funkcji dla rekursywnych definicji danych........................................................ 139
Wicej na temat przetwarzania prostych list ............................................................................... 142
10. Wi!cej na temat przetwarzania list........................................................147
Funkcje zwracaj'ce listy................................................................................................................... 147
Listy zawieraj'ce struktury............................................................................................................. 152
Rozszerzone wiczenie: przemieszczanie obrazów .................................................................... 158
11. Liczby naturalne .......................................................................................161
Definiowanie liczb naturalnych...................................................................................................... 161
Przetwarzanie liczb naturalnych dowolnej wielko.ci................................................................. 163
Rozszerzone wiczenie: tworzenie list, testowanie funkcji........................................................ 166
Alternatywne definicje danych dla liczb naturalnych.................................................................. 168
Wicej o naturze liczb naturalnych................................................................................................ 173
12. Ł3czenie funkcji. Powtórka.....................................................................177
Projektowanie skomplikowanych programów............................................................................ 177
Rekursywne funkcje zewntrzne ................................................................................................... 178
Uogólnianie problemów i funkcji................................................................................................... 183
Rozszerzone wiczenie: przestawianie słów................................................................................ 187
W2. Skracanie list .............................................................................................191
SPIS TRECI
5
Cz III Wicej o przetwarzaniu danych
dowolnej wielkoci
197
14. Wi!cej rekurencyjnych definicji danych ...............................................199
Struktury w strukturach.................................................................................................................. 199
Rozszerzone wiczenie: drzewa poszukiwa/ binarnych........................................................... 208
Listy w listach.................................................................................................................................... 212
Rozszerzone wiczenie: obliczanie wyrae/ jzyka Scheme..................................................... 215
15. Wzajemne odwołania w definicjach danych........................................217
Listy struktur. Listy w strukturach................................................................................................ 217
Projektowanie funkcji dla definicji danych zawieraj'cych wzajemne odwołania ................. 223
Rozszerzone wiczenie: wicej na stronach WWW..................................................................... 225
16. Tworzenie programów metod3 iteracyjnego ulepszania...................227
Analiza danych.................................................................................................................................. 228
Definiowanie i ulepszanie klas danych......................................................................................... 229
Ulepszanie funkcji i programów.................................................................................................... 232
17. Przetwarzanie dwóch skomplikowanych elementów danych .........235
Jednoczesne przetwarzanie dwóch list. Przypadek 1.................................................................. 235
Jednoczesne przetwarzanie dwóch list. Przypadek 2.................................................................. 237
Jednoczesne przetwarzanie dwóch list. Przypadek 3.................................................................. 240
Upraszczanie funkcji........................................................................................................................ 245
Projektowanie funkcji pobieraj'cych dwie złoone dane wej.ciowe....................................... 247
6wiczenia z przetwarzania dwóch złoonych danych wej.ciowych....................................... 248
Rozszerzone wiczenie: obliczanie wyrae/ jzyka Scheme. Cz. 2. .................................... 251
Równo. i testowanie....................................................................................................................... 253
W3. Lokalne definicje i zasi!g leksykalny ....................................................261
Organizowanie programów za pomoc' słowa local................................................................... 261
Zasig leksykalny i struktura blokowa......................................................................................... 276
Cz IV Projektowanie abstrakcyjne
281
19. Podobie6stwa w definicjach ...................................................................283
Podobie/stwa w funkcjach.............................................................................................................. 283
Podobie/stwa w definicjach danych ............................................................................................. 292
20. Funkcje s3 warto,ciami............................................................................297
Składnia i semantyka ....................................................................................................................... 297
Kontrakty dla abstrakcyjnych i polimorficznych funkcji........................................................... 299
21. Projektowanie funkcji abstrakcyjnych na podstawie przykładów...303
Abstrahowanie na podstawie przykładów................................................................................... 303
6wiczenia z abstrakcyjnymi funkcjami przetwarzaj'cymi listy............................................... 309
Abstrakcja i pojedynczy punkt kontroli........................................................................................ 311
Rozszerzone wiczenie: przemieszczanie obrazów jeszcze raz ................................................ 312
Uwaga: Projektowanie abstrakcji na podstawie szablonów...................................................... 314
6
SPIS TRECI
22. Projektowanie abstrakcji .........................................................................317
Funkcje zwracaj'ce funkcje............................................................................................................. 317
Projektowanie abstrakcji z funkcjami jako warto.ciami............................................................. 319
Pierwsze spojrzenie na graficzny interfejs uytkownika........................................................... 322
23. Przykłady matematyczne........................................................................331
Ci'gi i szeregi.................................................................................................................................... 331
Ci'gi i szeregi arytmetyczne........................................................................................................... 333
Ci'gi i szeregi geometryczne.......................................................................................................... 334
Pole powierzchni pod wykresem funkcji...................................................................................... 338
Nachylenie funkcji............................................................................................................................ 340
W4. Bezpo,rednie definiowanie funkcji .......................................................345
Cz V Rekursja generatywna
351
25. Nowa posta- rekursji ...............................................................................353
Modelowanie kuli na stole.............................................................................................................. 354
Szybkie sortowanie........................................................................................................................... 357
26. Projektowanie algorytmów.....................................................................363
Zako/czenie....................................................................................................................................... 365
Rekursja strukturalna a generatywna............................................................................................ 368
Dokonywanie wyborów .................................................................................................................. 369
27. Róne algorytmy rekurencyjne ..............................................................375
Fraktale............................................................................................................................................... 375
Od plików do linii, od list do list list............................................................................................. 380
Wyszukiwanie binarne .................................................................................................................... 384
Metoda Newtona .............................................................................................................................. 390
Rozszerzone wiczenie: eliminacja Gaussa .................................................................................. 392
28. Algorytmy z nawracaniem .....................................................................397
Przechodzenie grafów...................................................................................................................... 397
Rozszerzone wiczenie: szachowanie hetmanów........................................................................ 403
W5. Koszt obliczeniowy oraz wektory .........................................................405
Czas konkretny, czas abstrakcyjny ................................................................................................ 405
Definicja wyraenia „rzdu”........................................................................................................... 410
Pierwsze spojrzenie na wektory..................................................................................................... 412
Cz VI Gromadzenie wiedzy
423
30. Utrata wiedzy ...........................................................................................425
Problem przetwarzania strukturalnego ........................................................................................ 425
Problem rekursji generatywnej....................................................................................................... 429
31. Projektowanie funkcji z akumulatorem................................................433
Czy akumulator jest potrzebny? .................................................................................................... 433
Funkcje z akumulatorem................................................................................................................. 434
Przekształcanie funkcji na funkcje z akumulatorem................................................................... 436
[ Pobierz całość w formacie PDF ]