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.