Język »Pascal«
Transkrypt
Język »Pascal«
Język »Pascal« – wstęp do programowania – Adam Kolany zagadnienia do zajęć laboratoryjnych Zapoznanie ze środowiskiem programistycznym (Free Pascal, Geany, . . . ). . . . . . . . . . . . . . . . . . [2 godz.] • Podstawowe funkcje edytora emacs. • Kompilacja i uruchomienie programu na przykładzie programu: »Witaj, kolego!!«. Instrukcja warunkowa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [2 godz.] • Rozwiązania równania kwadratowego. Pętla while. Instrukcja wyboru case. Generator liczb pseudolosowych. . . . . . . . . . . . . . . . . . . [4 godz.] • Gra w »20 pytań«. • Kalkulator. Operacje wejścia/wyjścia – proste instrukcje formatowania. Pętla for. . . . . . . . . . . . . . . . . . . . . . [4 godz.] • Interakcyjny program, który pyta o imię i odpowiada pozdrowieniem z użyciem tego imienia. • Program wypisujący w terminalu tabliczkę dodawania lub mnożenia. • J.w. tylko obok siebie. Metody przybliżone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [4 godz.] • Rozwiązywanie równań: med. bisekcji, siecznych i stycznych. • Całkowanie numeryczne: met. prostokątów, trapezów, Simpsona. Tablice jednowymiarowe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [2 godz.] • Znajdowanie elementów ekstremalnych (min, max) i ich lokalizacji w tablicy. • Sortowanie bąbelkowe. • Sito Erastotenesa – typ boolean, tablice indeksowane znakami. Tablice znakowe – napisy (typ string). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [2 godz.] • Konwersja między systemami numeracji do podstawy 9 a systemem dziesiętnym. • Konwersja między systemem dziesiętnym a szestnastkowym. • Schemat Hörnera. Pliki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [4 godz.] • Statystyki wystąpień znaków. • Proste algorytmy szyfrowania (xor, negowanie, odwrócenie). Procedury i funkcje. Rekursja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [4 godz.] • • • • Odwracanie napisu. Potęgowanie połówkowe. Wyznaczanie największego wspólnego dzielnika – algorytm Euklidesa. Sortowanie przez wstawianie, sortowanie szybkie. Typy całkowite – arytmetyka modularna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [8 godz.] • • • • Szukanie odwrotności liczby modulo dany zakres. Rozwiązanie równania diofantycznego: a · x ± b · y = d. Szyfry afiniczne. Szybkie potęgowanie modulo. • Prosta implementacja kryptosystemu RSA. • Implementacja algorytmu Diffiego-Helmanna i Masseya-Omury. Algorytmy kompresji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [8 godz.] • • • • Kodowanie Kodowanie Kodowanie Kodowanie arytmetyczne. Shannona. Shannona-Fano. Huffmana. Implementacje wybranych klas automatów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [4 godz.] • Automaty Rabina-Scotta. • Automaty Moore’a i Mealy’ego. • Maszyny Turinga. Tablice dwu i więcej wymiarowe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [4 godz.] • Szyfr »prostokątowy«. • »Grafika« ASCII – tekstowe wykresu prostych funkcji. • Linearyzacja tablic i kostek. Odtwarzanie tablic zlinearyzowanych. Typy wskazujące. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [4 godz.] • Lista jedno i dwukierunkowa. • Drzewa. • Przekształcenie napisu do Odwrotnej Notacji Polskiej i Beznawiasowej Notacji Łukasiewicza. Sprawdzian ze znajomości języka »Pascal«. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [4 godz.] Liczba godzin: 60 Sugerowana literatura: • »Pascal«, M. Iglewski, J. Madej, S. Matwin, WNT 1984. • »Turbo Pascal 4.0 z dodatkiem do wersji 5.0«, J. Szczepkowicz, WNT 1989. • »Turbo Pascal 5.0 suplement do wersji 4.0«, A. Marciniak, PWN 1989. • »Narzędzia programistyczne w Pascalu«, B.W. Kernigham, P.J. Ritchie, WNT 1989. • »Praktyka programowania«, D.V. Tassel, WNT 1982. • »Elementy Analizy Algorytmów«, L. Banachowski, A. Kreczmar, WNT 1982. • »Wprowadzenie do teorii automatów, języków i obliczeń«, J.E. Hopcroft, J.D. Ullman, PWN 2003. • »Wprowadzenie do grafiki komputerowej«, I.O. Angel, WNT 1986.