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