Podstawy programowania
Transkrypt
Podstawy programowania
Podstawy programowania Elementy algorytmiki C w środowisku .NET (C#) dr inż. Grzegorz Zych Copernicanum, pok. 3 lub 206a 1 Minimum programowe Treś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 Tematyka 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, N. Wirth, WNT 1999. Algorytmy, struktury danych i techniki programowania, P. Wróblewski, Helion 2003 Algorytmy + struktury danych = programy, N. Wirth, WNT 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 Turbo Pascal 7.0, A. Marciniak, NAKOM, 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 Zwolnienie z egzaminu Ocena na zaliczenie Ocena z egzaminu 5.0 4.5 4.5 4.0 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. 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 Ton), – na najniższej – ciężarowe (ciężkie, ciężar >= 10 Ton). 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 c - ciężar samochodu n - numer poziomu; wartość 0 oznacza brak miejsca skrót wpp. oznacza w przeciwnym przypadku (1) (2) (3) (4) (5) 1. 2. dane: wynik: JEDNOZNACZNOŚĆ! Przetwarzanie sekwencyjne (6) (7) (8) Zważ samochód, ciężar --> c ; krok (2) Jeśli c > 10 T to krok (6) wpp. krok (3) Jeśli c >= 5 T to krok (5) wpp. krok (4) Jeśli jest miejsce na poziomie III to n = 3; zmniejsz liczbę miejsc na poziomie III; STOP wpp. krok (5) Jeśli jest miejsce na poziomie II to n = 2; zmniejsz liczbę miejsc na poziomie II; STOP wpp. krok (6) Jeśli jest miejsce na poziomie I to n = 1; zmniejsz liczbę miejsc na poziomie I; STOP wpp. krok (7) n=0 STOP 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 START – punkt startu algorytmu (programu) – tu rozpoczyna się wykonywanie algorytmuSTART – występuje dokładnie raz Operacja STOP – punkt zakończenia algorytmu (programu) – tu kończy się wykonywanie algorytmu – może zostać powtórzony wielokrotnie STOP 15/22 5 Elementy schematu blokowego Czytanie danych/wyprowadzania wyników – w środku wpisać odpowiedni komentarz CZYTAJ a,b,c Blok operacji – w środku określenie operacji – operacje tworzące logiczną całość mogą być umieszczone w jednym bloku – instrukcja przypisania oznaczana się delta b2 – 4ac Operacja warunkowa JEZELI – w środku umieścić odpowiedni warunekN – używać operatorów matematycznych delta < 0 , , , T 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! Nie umieszczać zbyt dużej liczby operacji w jednym bloku. Blok decyzyjny zawsze wymaga rozważenia dwóch alternatyw 18/22 6 START Zważ pojazd c - ciężar T c 10 N T c 5 Ton N T miejsce na poziomie III? n=3 N T miejsce na poziomie II? n=2 STOP N T miejsce na poziomie I? n=1 N 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 Ty nie będziesz wiedział co zrobić i jak to zrobić żaden komputer za Ciebie tego nie wymyśli… 24/22 8