Podstawy programowania Elementy algorytmiki C w środowisku.e (C#) dr inŝ. Grzegorz Zych Copernicanum, pok. 104 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 p do algorytmiki języki programowania Kolejne wykłady: nauka programowania przegląd d konstrukcji językaj typy danych programowanie modularne 3/22 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
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 e (egzamin) wpis warunkowy więcej powtarzanie (odpłatne!) 5/22 Forma zaliczenia ćwiczeń Decyduje prowadzący zajęcia 6/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 5.0 4.5 Ocena z egzaminu 4.5 4.0 7/22 Algorytm Podstawowe pojęcia opis rozwiązywania problemu wyraŝony jednoznacznie za pomocą takich operacji, które wykonawca rozumie i potrafi wykonać. Program algorytm zapisany w sposób zrozumiały dla komputera. Dane informacja przetwarzana przez program. 8/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. 9/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 10/22
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 11/22 Graficzny zapis algorytmu Schemat blokowy 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 12/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 13/22 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 14/22
Łącznik Dodatkowe skomplikowany przebieg ścieŝek para łączników źródłowy docelowy Komentarz wyjaśnia znaczenie operacji 15/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 16/22
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 Algorytm Rozwiązanie zadania algorytmicznego 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. 18/22
Instrukcje sterujące Algorytm musi zawierać instrukcje sterujące wskazują kolejność wykonywania akcji podstawowych. Podstawowe typy: następstwo (standard( standard), wybór (wskazanie( msca iteracja ( ), msca wykonania), iteracja (ograniczona, warunkowa). 19/22 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. 20/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 21/22 Czyli. JeŜeli y nie będziesz wiedział co zrobić i jak to zrobić Ŝaden komputer za Ciebie tego nie wymyśli 22/22