Wiedza wykładowa
Transkrypt
Wiedza wykładowa
Ramowy program fakultatywnych wykładów z Algorytmów i Programowania Obliczeń Inżynierskich Środy, 14:15-16:00, sala 501 - pierwszych siedem tygodni semestru 1 23.02 2 02.03 3 09.03 Algorytmika 1. Wstęp do algorytmiki Informatyka i abstrakcja Algorytmika – prekursorzy Algorytmika – XX wiek Teoria informacji 2. Języki programowania Etapy tworzenia programów Tłumaczenie programów Przegląd języków 3. Typy danych Podstawowe rodzaje danych Zmienne proste Struktury statyczne Struktury dynamiczne 4. Struktury algorytmizacji Podstawowe struktury sterujące Typy iteracji Praca programu 5. Przykłady problemów algorytmicznych Historia raz jeszcze… Po co jest algorytmika? Algorytmy i komputery Problem komiwojażera 6. Metody opisu algorytmów Specyfikacja zadania Słowny opis algorytmu Lista kroków Schemat blokowy Drzewo algorytmu 7. Algorytmy liniowe Definicja Wielomiany i schemat Hornera Tablicowanie funkcji Odkrywajmy – jak liczyć NWD 8. Algorytmy z rozgałęzieniami Konieczność warunków Równanie kwadratowe Lista kroków Schemat blokowy 9. Algorytmy niestabilne Równanie kwadratowe Siła arytmetyki Stabilizacja algorytmu Błędy reprezentacji 10. Równanie(a) liniowe Równanie prostej Analiza przypadków Układ dwóch równań Źródła utraty dokładności 11. Porządkowania… Sortowania… Definicja problemu Porządkowanie dwóch liczb Porządkowanie trzech liczb Złożoność obliczeniowa 12. Algorytmy iteracyjne VBA 1. Wprowadzenie do VBA Pakiety biurowe i ich uniwersalność BASIC i jego historia Visual Basic for Applications Rejestrowanie makropoleceń 2. Podstawy pracy z VBA Edytor VBA Menu edytora VBA Technika pracy z edytorem 3. Podstawy kodowania w VBA Budowa programu Procedury i moduły Tworzenie podprogramu 4. Procedury: podprogramy i funkcje Tworzenie funkcji Parametryzacja MsgBox InputBox 5. Instrukcje VBA Typy instrukcji Zasady tworzenia nazw Bloki komentarza Elementy instrukcji Słowa kluczowe 6. Typy danych Typ logiczny Typy całkowitoliczbowe Typy zmiennoprzecinkowe Własny typ – rekord Inne typy danych 7. Deklaracje stałych i zmiennych Typy instrukcji Zasady tworzenia nazw Bloki komentarza Elementy instrukcji Słowa kluczowe 8. Operatory i wyrażenia Kolejność działań Operatory arytmetyczne Operatory porównania Operatory logiczne 9. Tablice Wymiary i elementy tablicy Deklarowanie tablicy Dostęp do elementów 10. Instrukcje sterujące Kontrola przepływu programu Pętle Instrukcja zliczająca 11. Instrukcje warunkowe If…Then…EndIf Jednowierszowa instrukcja If If…Then…Else…EndIf SelectCase 12. Pętle warunkowe Pętle Do…Loop While i Until 4 16.03 5 23.03 Definicja iteracji Miary zbiorów Przechowywanie danych Idea wartownika 13. Wartownik: przeszukiwanie liniowe Poszukiwania w zbiorze Przeszukiwanie z wartownikiem Średnia Minimum i maksimum 14. Metody tworzenia algorytmów „Dziel i zwyciężaj” Programowanie dynamiczne Metoda zachłanna 15. Lider zbioru Modalna i mediana Pewne twierdzenie… Algorytm znajdywania lidera 16. Algorytmy sortowania Korzyści z porządkowania Modyfikacje problemu Kilka rad praktycznych 17. Sortowanie bąbelkowe Idea algorytmu Ważne spostrzeżenia Ilustracja algorytmu Kroki algorytmu 18. Sortowanie przez wybór Pomysł na algorytm in situ Jak to działa? Algorytm sortowania przez wybór Złożoność obliczeniowa 19. Inne algorytmy sortowania 20. Porównanie algorytmów sortowania 6 30.03 21. System dziesiętny - konwersje Zasada systemu dziesiętnego „Ręczna” zamiana 10 na 2 Algorytm komputerowy Realizacja algorytmu 22. Schemat Hornera Obliczanie wartości wielomianu Schemat Hornera Optymalność i realizacja w VBA Binarny na dziesiętny 23. Algorytmy potęgowania Przykład oszczędności Algorytm „od lewej” Realizacja w VBA Algorytm „od prawej” Exit…Do GoTo 13. Wbudowane funkcje matematyczne Funkcje trygonometryczne Eksponent i logarytm Liczby losowe Zaokrąglenia i obcięcia 14. Wbudowane funkcje czasu Typ danych Date Hour, Minure, Second Day, Month, Year WeekDay 15. Operacje plikowe (1) Name ChDir ChDrive MkDir RmDir 16. Operacje plikowe (2) RmDir Kill CurDir Dir 17. Sekwencyjne pliki danych Wprowadzenie Otwieranie pliku sekwencyjnego Zapisywanie w pliku sekwencyjnym Zamykanie pliku Odczytywanie zawartości 18. Pliki o dostępie swobodnym Wprowadzenie Definiowanie typu zmiennej Zapisywanie rekordów w pliku Odczytywanie rekordu 19. Operacje na łańcuchach Porównania i konwersje Operacje ze spacjami Formatowania i zamiany Wycinanie i obcinanie 20. Funkcje informacyjne Czy dana zmienna jest… Jaki to typ? Błędy OnError 21. Błędy w programach Źródła błędów Rodzaje błędów Błędy składniowe Błędy wykonania 22. Wykrywanie błędów: tryb przerwania Błędy wykonania Tryb przerwania Praca w trybie przerwania Punkty przerwania 23. Wyszukiwanie błędów: narzędzia analityczne Okno Immediate Okno Locals Okno Watch Zarządzanie oknami 7 06.04 24. Algorytm Euklidesa Problem znajdywania NWD Algorytm Euklidesa Wersja z dzieleniem Wersja z odejmowaniem 25. Zastosowania algorytmu Euklidesa Problem przelewania wody Rozszerzony Euklides Algorytm i jego realizacja Kod w VBA 26. Operacje na ułamkach zwykłych Podstawowe definicje Najmniejsza Wspólna Wielokrotność Algorytm obliczania NWW Kod VBA dla NWW 27. Liczby pierwsze i liczby złożone Podstawowe definicje Poszukiwanie liczb pierwszych Fermat, Mersenne, Euklides Rozkład na czynniki pierwsze 26. Sito Eratostenesa i faktoryzacja Faktoryzacja Sito - pomysł na liczby pierwsze Redukcja działań Algorytm sita Eratostenesa 29. Obliczanie pierwiastka kwadratowego 30. Bisekcja 31. Rekurencja: liczby Fibonacciego 32. Rekurencja: wieże Hanoi 24. Obsługa błędów Okno Immediate Okno Locals Okno Watch Zarządzanie oknami 25. Programowanie modułowe Prosty przykład Szkielet strukturalny Słownictwo… Po co to wszystko? 26. Kodowanie (proceduralne) Przekazywanie danych Lokalne kontra globalne ByVal kontra ByRef Kodowanie Sub i Function 27. Dyskusja Program a-strukturalny Zmienne globalne Procedury z argumentami Podsumowanie 28. Podsumowanie zagadnienia Kiedy Sub, kiedy Function? Argumenty i parametry Szybkie testowanie funkcji Parametry Optional 29. Podejście obiektowe 30. Podejście obiektowe 31. Podejście obiektowe 32. Podejście obiektowe Wykłady maja charakter fakultatywny (pozostawiony do wyboru, nie obowiązujący; możliwy, dowolny» - zajęcia fakultatywne), ale wiedza przekazywana na nich jest niezbędna na zajęciach laboratoryjnych. W sieci zostaną udostępnione pliki PDF z tzw. „handouts” zawierającymi prezentowane podczas wykładu slajdy. Warszawa, 22 lutego - 7 kwietnia 2005 R. Robert Gajewski