Podstawy programowania Elementy algorytmiki C w środowisku.e (C#) dr inż. Grzegorz Zych Copernicanum, pok. 3 lub 206a 1 Minimum programowe reści kształcenia: Pojęcie algorytmu. Podstawowe konstrukcje programistyczne. Implementacje algorytmów w językach programowania. Podstawowe struktury danych i wykonywane na nich operacje. Dynamiczny przydział pamięci. Rekurencja i jej implementacja w językach wysokiego poziomu. Metody weryfikacji poprawności programów. Efekty kształcenia umiejętności i kompetencje: Czytania ze zrozumieniem programów zapisanych w języku programowania imperatywnego; symbolicznego wykonywania prostych programów celem ich weryfikacji; pisania i uruchamianie prostych programów o rozmiarze rzędu 100 wierszy kodu. 2/22 ematyka wykładów Dzisiaj wprowadzenie: zasady: laboratoria - zaliczenie, wykłady - egzamin wstęp do algorytmiki języki programowania Kolejne wykłady: nauka programowania przegląd konstrukcji języka typy danych programowanie modularne 3/22 1
Literatura Wstęp do programowania systematycznego,. Wirth, W 1999. Algorytmy, struktury danych i techniki programowania, P. Wróblewski, Helion 2003 Algorytmy + struktury danych = programy,. Wirth, W 2004 C#. Programowanie, J. Liberty, Helion 2005 C#. Ćwiczenia, M. Lis, Helion 2006 Wstęp do programowania w języku C#, A. Boduch, Helion 2006 urbo Pascal 7.0, A. Marciniak, AKOM, Poznań, 1995 http://wazniak.mimuw.edu.pl/ inne 4/22 Materiały, ogłoszenia 5/22 Regulamin przedmiotu Przedmiot składa się z: wykład (15 x 2 godz./15 godz.) egzamin pisemny dwa terminy trzeci - komisyjny ćwiczenia laboratoryjne (15 x 3 godz/30 godz.) zaliczenie na ocenę; forma - prowadzący obecność obowiązkowa przedłużająca się nieobecność do dziekana! W przypadku braku jedno zaliczenie (egzamin) wpis warunkowy więcej powtarzanie (odpłatne!) 6/22 2
Forma zaliczenia ćwiczeń Decyduje prowadzący zajęcia 7/22 Egzamin Przedmiot kończy się egzaminem pisemny dopuszczenie - wcześniejsze zaliczenie W czasie trwania egzaminu student zobowiązany jest do posiadania przy sobie dowolnego dokumentu tożsamości z aktualnym zdjęciem i okazania go na żądanie osoby egzaminującej. Zwolnienie z egzaminu Ocena na zaliczenie Ocena z egzaminu 5.0 4.5 4.5 4.0 8/22 Komputerowa inteligencja 9/22 3
Podstawowe pojęcia Algorytm opis rozwiązywania problemu wyrażony jednoznacznie za pomocą takich operacji, które wykonawca rozumie / potrafi(!) wykonać. Program algorytm zapisany w sposób zrozumiały dla komputera. Dane informacja przetwarzana przez program. 10/22 Przykład algorytmu Przydział miejsca dla pojazdu na piętrowym parkingu parking ma 3 kondygnacje na najwyższej można lokować tylko samochody osobowe (lekkie, ciężar < 5 on), na najniższej ciężarowe (ciężkie, ciężar >= 10 on). Warunek: przyjeżdżający pojazd ma być umieszczany możliwie jak najwyżej. 11/22 Zadanie algorytmiczne Specyfikacja zadania algorytmicznego: Określić dane wejściowe (zbiór danych We) waga pojazdu Określić dane wyjściowe (wyniki jako funkcja danych wejściowych ) numer poziomu (0 brak wolnych miejsc) im bardziej nietrywialny problem tym bardziej skomplikowana specyfikacja Potem: wybrać sposób zapisu algorytmu zestaw dozwolonych akcji podstawowych (instrukcji) sformułować algorytm przetestować algorytm 12/22 4
Sposób zapisu algorytmu W języku naturalnym np. przepis w książce kucharskiej W języku naturalnym z użyciem pewnej konwencji 1. JEDOZACZOŚĆ! 2. Przetwarzanie sekwencyjne dane: c - ciężar samochodu wynik: n - numer poziomu; wartość 0 oznacza brak miejsca skrót wpp. oznacza w przeciwnym przypadku (1) Zważ samochód, ciężar --> c ; krok (2) (2) Jeśli c > 10 to krok (6) wpp. krok (3) (3) Jeśli c >= 5 to krok (5) wpp. krok (4) (4) Jeśli jest miejsce na poziomie III to n = 3; zmniejsz liczbę miejsc na poziomie III; SOP wpp. krok (5) (5) Jeśli jest miejsce na poziomie II to n = 2; zmniejsz liczbę miejsc na poziomie II; SOP wpp. krok (6) (6) Jeśli jest miejsce na poziomie I to n = 1; zmniejsz liczbę miejsc na poziomie I; SOP wpp. krok (7) (7) n = 0 (8) SOP 13/22 Graficzny zapis algorytmu Schemat blokowy układ figur geometrycznych tzw. bloki przedstawiają rodzaj działań (operacji) zaprojektowanych w algorytmie połączonych odcinkami prostymi lub łamanymi tzw. ścieżki sterujące wskazują kolejność wykonywania tych działań. graficznie prezentują algorytm: występujące w nim działania kolejność wykonywania 14/22 Elementy schematu blokowego Strzałki określają kierunek przepływu danych lub kolejność wykonywania działań linie proste (unikać łuków), nie krzyżować linii Operacja SAR punkt startu algorytmu (programu) tu rozpoczyna się wykonywanie algorytmu występuje dokładnie raz Operacja SOP punkt zakończenia algorytmu (programu) tu kończy się wykonywanie algorytmu może zostać powtórzony wielokrotnie SAR SOP 15/22 5
Elementy schematu blokowego Czytanie danych/wyprowadzania wyników w środku wpisać odpowiedni komentarz Blok operacji w środku określenie operacji operacje tworzące logiczną całość mogą być umieszczone w jednym bloku instrukcja przypisania oznaczana się Operacja warunkowa JEZELI w środku umieścić odpowiedni warunek używać operatorów matematycznych,,, CZYAJ a,b,c delta b 2 4ac delta < 0 16/22 Dodatkowe Łącznik skomplikowany przebieg ścieżek para łączników źródłowy docelowy Komentarz wyjaśnia znaczenie operacji 17/22 Zasady tworzenia schematów blokowych Prostota i czytelność podział na mniejsze części (podprogramy) rozumiany przez programistów posługujących się różnymi językami preferowane użycie operatorów matematycznych komentować operacji i kolejności ich wykonywania komentarze krótkie i dokładne! unikać rysowania przecinających się ścieżek sterowania lepiej wprowadzić łączniki dokładnie numerować arkusze, na których został rozrysowany schemat blokowy. Liczyć się z koniecznością wprowadzenia poprawek do schematu nie oszczędzać papieru! ie umieszczać zbyt dużej liczby operacji w jednym bloku. Blok decyzyjny zawsze wymaga rozważenia dwóch alternatyw 18/22 6
SAR Zważ pojazd c - ciężar c 10 c 5 on miejsce na poziomie III? n=3 miejsce na poziomie II? n=2 SOP miejsce na poziomie I? n=1 n = 0 Rozwiązanie zadania algorytmicznego Algorytm elementarne instrukcje zadające akcje z ustalonego zbioru możliwe jest składanie instrukcji podstawowych Wykonanie: dla dowolnego dopuszczalnego zestawu danych wejściowych wynik zgodny z oczekiwaniami. 20/22 Instrukcje sterujące Algorytm musi zawierać instrukcje sterujące wskazują kolejność wykonywania akcji podstawowych. Podstawowe typy: następstwo (standard), wybór (wskazanie msca wykonania), iteracja (ograniczona, warunkowa). 21/22 7
Zapis algorytmu Zapis jednoznaczny i formalny Sposób zapisu: języki programowania: składa się z notacji i reguł zapisu Zapisany algorytm - program. Programowanie - to proces zapisu algorytmów. 22/22 Język programowania Sposób (środek, metoda) zapisu algorytmu w postaci zrozumiałej dla człowieka, Możliwej do automatycznego przetwarzenia do postaci zrozumiałej dla komputera (maszyny algorytmicznej) Jak napisać dobry program?! dobry algorytm! bez komputera znajomość zagadnienia użytkownik wie, projektant algorytmu rozumie 23/22 Czyli. Jeżeli y nie będziesz wiedział co zrobić i jak to zrobić żaden komputer za Ciebie tego nie wymyśli 24/22 8