ProgStr.pdf

(161 KB) Pobierz
11532818 UNPDF
Programowanie strukturalne
w językach Pascal i C
Krzysztof Grąbczewski
Tematy zajęć
Wprowadzenie do programowania
Język Pascal
Język C
Podstawowe algorytmy
Dynamiczne struktury danych
Programowanie dla Windows
Plan zajęć
Spotkanie 1: Podstawy, schematy blokowe
Spotkania 2, 3, 4: Język Pascal
Spotkania 5, 6, 7: Język C
Spotkanie 8: Struktury dynamiczne
Spotkanie 9: Programowanie dla Windows
Spotkanie 10: Różne uwagi i drobne problemy
Bibliografia
Niklaus Wirth, Algorytmy + struktury danych = programy ,
WNT 1989
Andrzej Marciniak, Turbo Pasca l x .x
B. Kernighan, D. Ritchie, Język C , WNT 1988
Programowanie Strukturalne dla PSPiZK
1
Komputer i jego wykorzystanie
Sprzęt to ciało - oprogramowanie to dusza
Komputer - jak pracują krasnoludki
Pamięć
operacyjna
Procesor
karta
graficzna
karta
dźwiękowa
Magistrala zewnętrzna
kontrolery
dysków
Rodzaje oprogramowania - poziomy od niskiego do wysokiego
systemy operacyjne i podstawowe biblioteki obsługi urzą-
dzeń
oprogramowanie użytkowe i biblioteki użytkowe
wysoko wyspecjalizowane biblioteki - programy wysokiego
poziomu
Obsługa zasobów dostępnych w komputerze: pamięć operacyj-
na, dyski, porty komunikacyjne, wyświetlacze, klawiatury itp.
Mechanizm przerwań - zgłaszanie przerwań przez urządzenia
DMA (direct memory access) - bezpośredni dostęp do pamięci
11532818.008.png
Programowanie Strukturalne dla PSPiZK
2
Systemy liczenia: dwójkowy (binarny), ósemkowy, dziesiętny, szes-
nastkowy
system
cyfry przykład dziesiętnie
dwójkowy
01
101 1
2 2 +1
2 0 =
1
4+1=5
ósemkowy 01234567 270 2
8 2 +7
8 1 =
2
64 + 7
8 = 184
dziesiętny 01234 309 3
10 2 +9
10 0 =
56789
3
100 + 9 = 309
szesnastkowy 01234567 10A 1
16 2 +10
16 0 =
89ABCDEF
1
256 + 10 = 266
Komputer „myśli” dwójkowo - organizacja pamięci
1 bit - miejsce na zapamiętanie znaku 0 bądź 1
1 bajt = 8 bitów - pozwala zapamiętać 2 8 różnych wartości, a
więc np. liczby 0-255
1 kB (kilobajt) = 2 10 B = 1024 B
1 MB (megabajt) = 2 20 B = 1048576 B
1 GB (gigabajt) = 2 30 B = 1073741824 B
1 słowo to ilość informacji przetwarzanej przez procesor w
jednym cyklu (procesor 32 bitowy = procesor o słowie 32 bi-
towym)
bity i bajty bardziej i mniej znaczące
11532818.009.png 11532818.010.png 11532818.011.png 11532818.001.png 11532818.002.png 11532818.003.png 11532818.004.png 11532818.005.png 11532818.006.png 11532818.007.png
Programowanie Strukturalne dla PSPiZK
3
operacje bitowe
przesunięcia:
00000001 << 3 = 00001000 = 8
00001101 >> 2 = 00000011 = 3
00001101 << 5 = 10100000 = 160
operacje logiczne: koniunkcja & ,alternatywa | ,dysjunk-
cja ^ , dopełnienie ~
01010101 & 11001100 = 01000100
01010101 | 11001100 = 11011101
00001101 ^ 11001100 = 11000001
~ 01010101 = 10101010
~ 11001100 = 00110011
typowa liczba całkowita zajmuje jedno słowo
typy zmiennoprzecinkowe (zmiennopozycyjne) - rzeczywiste
rozdzielczość i skończoność komputerowych liczb rzeczywi-
stych
mantysa i cecha, liczba = mantysa
2 cecha
typy 4-bajtowe (3 bajty mantysy i 1 bajt cechy), 6-bajtowe,
8-bajtowe (podwójnej precyzji)
należy być ostrożnym przy dodawaniu małej liczby zmien-
noprzecinkowej do dużej (mała może zniknąć)
wartości, które nie są poprawnymi liczbami (NAN - not a
number)
Programowanie Strukturalne dla PSPiZK
4
Języki programowania
Imperatywne
liniowe (np. BASIC)
strukturalne (np. Pascal, C)
obiektowe (np. C++, SmallTalk, Java)
Deklaratywne
logiczne (np. Prolog)
funkcyjne (np. ML, Lisp)
Języki niskiego poziomu (asemblery), wysokiego poziomu (Pas-
cal,C,C++,...),językiczwartejgeneracji(wizualne)
Jak wybierać język programowania - analiza problemu
Umiejętność programowania
Znajomość syntaktyki to nie wszystko
Formatowanie tekstów programów
Najpierw pomyśl (przynajmniej dwa razy), potem pisz
Schematy blokowe
Metody programowania
top-down (z góry na dół)
bottom-up (z dołu do góry)
Uwaga na zależności od platformy sprzętowej i systemowej
programowanie dla UNIXa
programowanie dla DOSa (16 i 32 bitowe, modele pamięci)
programowane dla Windows (16 i 32 bitowe)
Zgłoś jeśli naruszono regulamin