• Nie Znaleziono Wyników

Podstawy programowania

N/A
N/A
Protected

Academic year: 2022

Share "Podstawy programowania"

Copied!
11
0
0

Pełen tekst

(1)

11

Podstawy programowania Podstawy programowania

Elementy algorytmiki Elementy algorytmiki

C w środowisku .NET (C#) C w środowisku .NET (C#)

dr inŜ. Grzegorz Zych dr inŜ. Grzegorz Zych Copernicanum, pok. 104 lub 206a Copernicanum, pok. 104 lub 206a

Minimum programowe Minimum programowe

Treści kształcenia:

Treści kształcenia:

Pojęcie algorytmu. Podstawowe konstrukcje programistyczne. Pojęcie algorytmu. Podstawowe konstrukcje programistyczne.

Implementacje algorytmów w językach programowania.

Implementacje algorytmów w językach programowania.

Podstawowe struktury danych i wykonywane na nich operacje.

Podstawowe struktury danych i wykonywane na nich operacje.

Dynamiczny przydział pamięci. Rekurencja i jej implementacja w Dynamiczny przydział pamięci. Rekurencja i jej implementacja w językach wysokiego poziomu. Metody weryfikacji poprawności językach wysokiego poziomu. Metody weryfikacji poprawności programów.

programów.

Efekty kształcenia

Efekty kształcenia –– umiejętności i kompetencje: umiejętności i kompetencje:

Czytania ze zrozumieniem programów zapisanych w języku Czytania ze zrozumieniem programów zapisanych w języku programowania imperatywnego; symbolicznego wykonywania programowania imperatywnego; symbolicznego wykonywania prostych programów celem ich weryfikacji; pisania i

prostych programów celem ich weryfikacji; pisania i

uruchamianie prostych programów o rozmiarze rzędu 100 uruchamianie prostych programów o rozmiarze rzędu 100 wierszy kodu.

wierszy kodu.

(2)

33/22/22

Tematyka wykładów Tematyka wykładów

Dzisiaj

Dzisiaj – – wprowadzenie: wprowadzenie:

–– zasady: laboratoria -zasady: laboratoria - zaliczenie, wykłzaliczenie, wykłady ady -- egzaminegzamin –– wstęwstęp do algorytmikip do algorytmiki

–– jęjęzyki programowaniazyki programowania

Kolejne wyk

Kolejne wykł ł ady: ady:

–– nauka programowanianauka programowania –– przegląprzegląd konstrukcji jd konstrukcji jęęzykazyka –– typy danychtypy danych

–– programowanie modularneprogramowanie modularne –– ……

Literatura Literatura

Wstęp do programowania systematycznego

Wstęp do programowania systematycznego, N. , N. WirthWirth, , WNT 1999.

WNT 1999.

Algorytmy, struktury danych i techniki programowania, Algorytmy, struktury danych i techniki programowania, P. P.

Wróblewski

Wróblewski, , HelionHelion 2003 2003

Algorytmy + struktury danych = programy

Algorytmy + struktury danych = programy, N. , N. WirthWirth, , WNT 2004

WNT 2004

C#. Programowanie

C#. Programowanie, J. , J. LibertyLiberty, , HelionHelion 20052005 C#. Ćwiczenia

C#. Ćwiczenia, M. Lis, , M. Lis, HelionHelion 20062006 Wstęp do programowania w języku C#

Wstęp do programowania w języku C#, A. , A. BoduchBoduch, , Helion

Helion 20062006 Turbo

Turbo Pascal 7.0, A. Marciniak, NAKOM, Poznań, 1995 Pascal 7.0, A. Marciniak, NAKOM, Poznań, 1995 http://wazniak.mimuw.edu.pl/

http://wazniak.mimuw.edu.pl/

inne … inne …

(3)

55/22/22

Regulamin przedmiotu Regulamin przedmiotu

Przedmiot

Przedmiot składa składa się się z: z:

–– wykładwykład (15 x 2 godz./15 godz.)(15 x 2 godz./15 godz.)

egzamin pisemny egzamin pisemny

dwa terminydwa terminy trzeci -trzeci -komisyjnykomisyjny

–– ćwiczeniaćwiczenia laboratoryjnelaboratoryjne (15 x 3 godz(15 x 3 godz/30 godz.)/30 godz.)

zaliczenie na ocenę; forma

zaliczenie na ocenę; forma --prowadzącyprowadzący obecność obowiązkowa

obecność obowiązkowa przedłuŜająca się

przedłuŜająca się nieobecnośćnieobecnośćdo dziekana!do dziekana!

W przypadku W przypadku braku braku

–– jedno zaliczenijedno zaliczenie (egzamin) e (egzamin) –– wpis warunkowywpis warunkowy –– więcej –więcej – powtarzanie (odpłatne!)powtarzanie (odpłatne!)

Forma zaliczenia Forma zaliczenia

ćwiczeń ćwiczeń

Decyduje prowadzący zajęcia

Decyduje prowadzący zajęcia

(4)

77/22/22

Egzamin Egzamin

Przedmiot

Przedmiot kończykończy sięsię egzaminem

egzaminem

pisemnypisemny

dopuszczeniedopuszczenie--wcześniejszewcześniejsze zaliczeni

zaliczeniee

W czasieW czasie trwaniatrwania egzaminuegzaminu student

student zobowiązanyzobowiązany jest do jest do posiadania

posiadania przyprzy sobiesobie dowolnego

dowolnego dokumentudokumentu toŜsamości

toŜsamości z aktualnymz aktualnym zdjęciem

zdjęciem i okazaniai okazania go nago na Ŝądanie

Ŝądanie osobyosoby egzaminującej. egzaminującej.

Zwolnienie z Zwolnienie z

egzaminu egzaminu

4.0 4.0 4.5 4.5

4.5 4.5 5.0 5.0

Ocena z Ocena z egzaminu egzaminu Ocena

Ocenanana zaliczenie zaliczenie

Podstawowe pojęcia Podstawowe pojęcia

Algorytm Algorytm

–– opis rozwiązywania problemu wyraŜony opis rozwiązywania problemu wyraŜony

jednoznacznie za pomocą takich operacji, które jednoznacznie za pomocą takich operacji, które wykonawca rozumie i potrafi wykonać.

wykonawca rozumie i potrafi wykonać.

Program Program

–– algorytm zapisany w sposób zrozumiały dla algorytm zapisany w sposób zrozumiały dla komputera.

komputera.

Dane Dane

–– informacja przetwarzana przez program.informacja przetwarzana przez program.

(5)

99/22/22

Przykład algorytmu Przykład algorytmu

Przydział miejsca dla pojazdu na piętrowym Przydział miejsca dla pojazdu na piętrowym

parkingu parkingu

–– parking ma 3 kondygnacjeparking ma 3 kondygnacje

–– na najwyŜszej moŜna lokować tylko samochody na najwyŜszej moŜna lokować tylko samochody osobowe (lekkie, cięŜar < 5 Ton),

osobowe (lekkie, cięŜar < 5 Ton),

–– na najniŜszej –na najniŜszej – cięŜarowe (cięŜkie, cięŜar >= 10 Ton). cięŜarowe (cięŜkie, cięŜar >= 10 Ton).

Warunek:

Warunek:

–– przyjeŜdŜający pojazd ma być umieszczany moŜliwie przyjeŜdŜający pojazd ma być umieszczany moŜliwie jak najwyŜej.

jak najwyŜej.

Zadanie algorytmiczne Zadanie algorytmiczne

Specyfikacja

Specyfikacja zadania algorytmicznego: zadania algorytmicznego:

Określić dane wejściowe (zbiór danych We)Określić dane wejściowe (zbiór danych We) waga pojazdu

waga pojazdu

Określić dane wyjścioweOkreślić dane wyjściowe (wyniki jako funkcja danych (wyniki jako funkcja danych wejściowych )

wejściowych ) numer poziomu (

numer poziomu (00 brak wolnych miejsc)brak wolnych miejsc) im bardziej

im bardziej nietrywialnynietrywialnyproblem –problem tym bardziej skomplikowana tym bardziej skomplikowana specyfikacja

specyfikacja

Potem:

Potem:

wybrać sposób zapisu algorytmuwybrać sposób zapisu algorytmu

zestaw dozwolonych akcji podstawowych (instrukcji) zestaw dozwolonych akcji podstawowych (instrukcji) sformułować algorytmsformułować algorytm

przetestować algorytmprzetestować algorytm

(6)

1111/22/22

Sposób zapisu algorytmu Sposób zapisu algorytmu

W języku naturalnym W języku naturalnym –– np. przepis w np. przepis w

ksiąŜce kucharskiej ksiąŜce kucharskiej W języku naturalnym W języku naturalnym –– z uŜyciem pewnej z uŜyciem pewnej

konwencji konwencji



 

 

 



1. JEDNOZNACZNOŚĆ!

2. Przetwarzanie sekwencyjne

dane:

dane: c -c -cięŜar samochoducięŜar samochodu wynik:

wynik: n -n -numer poziomu; numer poziomu;

wartość

wartość 00oznacza brak miejscaoznacza brak miejsca skrót

skrót wppwpp. oznacza . oznacza w przeciwnym przypadkuw przeciwnym przypadku

(1) (1) ZwaŜ samochód, cięŜar ZwaŜ samochód, cięŜar ----> c ; krok (2) > c ; krok (2) (2)

(2) Jeśli c > 10 T to krok (6) Jeśli c > 10 T to krok (6) wppwpp. krok (3). krok (3) (3)

(3) Jeśli c >= 5 T to krok (5) Jeśli c >= 5 T to krok (5) wppwpp. krok (4). krok (4) (4) (4) Jeśli jest miejsce na poziomie III toJeśli jest miejsce na poziomie III to

n = 3; zmniejsz liczbę miejsc na poziomie n = 3; zmniejsz liczbę miejsc na poziomie III; STOP

III; STOP wpp

wpp. krok (5) . krok (5)

(5) (5) Jeśli jest miejsce na poziomie II toJeśli jest miejsce na poziomie II to

n = 2; zmniejsz liczbę miejsc na poziomie n = 2; zmniejsz liczbę miejsc na poziomie

II; STOP II; STOP wpp

wpp. krok (6). krok (6) (6)

(6) Jeśli jest miejsce na poziomie I toJeśli jest miejsce na poziomie I to

n = 1; zmniejsz liczbę miejsc na poziomie I;

n = 1; zmniejsz liczbę miejsc na poziomie I;

STOP STOP wppwpp. krok (7). krok (7) (7)

(7) n = 0n = 0 (8) STOP (8) STOP

Graficzny zapis algorytmu 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

(7)

1313/22/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 algorytmu – występuje dokładnie raz

Operacja STOP

– punkt zakończenia algorytmu (programu) – tu kończy się wykonywanie algorytmu – moŜe zostać powtórzony wielokrotnie

START

STOP

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

=

=

=

=, , ,

Elementy schematu blokowego

CZYTAJ a,b,c

delta ←b2– 4ac

delta < 0

T N

(8)

1515/22/22

Dodatkowe

Łącznik

– skomplikowany przebieg ścieŜek – para łączników

źródłowy docelowy

Komentarz

– wyjaśnia znaczenie operacji

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

(9)

T T

ZwaŜ pojazd c- cięŜar

START

N N N N N

c 10

c 5 Ton

miejsce na poziomie III?

miejsce na poziomie II?

miejsce na poziomie I?

n = 0

T

n=3

T

n=2 STOP

T

n=1

Rozwiązanie zadania Rozwiązanie zadania

algorytmicznego algorytmicznego

Algorytm Algorytm

– – elementarne instrukcje zadające akcje z elementarne instrukcje zadające akcje z ustalonego zbioru

ustalonego zbioru

moŜliwe jest składanie instrukcji podstawowych moŜliwe jest składanie instrukcji podstawowych

Wykonanie:

Wykonanie:

– – dla dowolnego dopuszczalnego zestawu dla dowolnego dopuszczalnego zestawu danych wejściowych

danych wejściowych

– – wynik zgodny z oczekiwaniami. wynik zgodny z oczekiwaniami.

(10)

1919/22/22

Instrukcje sterujące Instrukcje sterujące

Algorytm musi zawierać instrukcje Algorytm musi zawierać instrukcje

sterujące sterujące

– – wskazują kolejność wykonywania akcji wskazują kolejność wykonywania akcji podstawowych.

podstawowych.

Podstawowe typy:

Podstawowe typy:

– – następstwo ( następstwo (

standardstandard

), ),

– – wybór ( wybór (

wskazanie mscawskazanie msca wykonaniawykonania

), ), – – iteracja ( iteracja (

ograniczona, warunkowaograniczona, warunkowa

). ).

Zapis algorytmu Zapis algorytmu

Zapis jednoznaczny i formalny Zapis jednoznaczny i formalny

Sposób zapisu:

Sposób zapisu:

– – języki programowania: składa się z notacji i języki programowania: składa się z notacji i reguł zapisu

reguł zapisu

Zapisany algorytm

Zapisany algorytm - - program. program.

Programowanie

Programowanie - - to proces zapisu to proces zapisu algorytmów.

algorytmów.

(11)

2121/22/22

Język programowania Język programowania

Sposób (środek, metoda) zapisu algorytmu Sposób (środek, metoda) zapisu algorytmu

–– w postaci zrozumiałej dla człowieka, w postaci zrozumiałej dla człowieka,

–– MoŜliwej do automatycznego przetwarzeniaMoŜliwej do automatycznego przetwarzenia do do postaci zrozumiałej dla komputera (maszyny postaci zrozumiałej dla komputera (maszyny algorytmicznej)

algorytmicznej)

Jak napisać dobry program?

Jak napisać dobry program?

–– ! dobry algorytm !! dobry algorytm !

bez komputera bez komputera

znajomość zagadnienia znajomość zagadnienia

uŜytkownik wie, uŜytkownik wie,

projektant algorytmu rozumie…projektant algorytmu rozumie…

Czyli….

Czyli….

JeŜeli Ty nie będziesz wiedział JeŜeli Ty nie będziesz wiedział

co co zrobić zrobić i i jak jak to zrobić to zrobić

Ŝaden komputer Ŝaden komputer

za Ciebie tego nie wymyśli…

za Ciebie tego nie wymyśli…

Cytaty

Powiązane dokumenty

W takim przypadku odróŜnia się klasy dziedziczące bezpośrednio (ProduktRTV-Telewizor, Telewizor- TelewizorLCD) oraz pośrednio (ProduktRTV- TelewizorLCD). b) MoŜliwe jest

A kiedy nadchodzi mroźna i śnieżna zima bociany znów wędrują tam, gdzie będzie im dobrze, czyli do ciepłych krajów?. O jakiej porze roku bociany wracają

Tymek zjeżdża na nartach z górki koło szkoły wraz ze swoją starszą siostrą Polą.. Janek uwielbia bitwę na śnieżki ze swoimi kolegami

Obiekty, elementy, pojęcia ze świata zewnętrznego muszą zostać odwzorowane danymi w programie. Dane występujące w programie stanowią uproszczony, komputerowy

Rezultatem funkcji jest wartość różna od zera, jeżeli strumień jest w pozycji końcowej, zero w przeciwnym wypadku.. Strumień jest w pozycji końcowej, jeżeli w wyniku

W przypadku wystąpienia końca pliku lub błędu, rezultatem funkcji jest liczba, potencjalnie zerowa, bezbłędnie zapisanych bloków.. size_t fwrite( void * ptr, size_t size, size_t

Sprawdzić, co zmieni się w działaniu programu, jeżeli zamiast RST M0 wpiszemy RST T0 Taki program będzie realizował generator sygnału prostokątnego o czasach „0”=T0 i „1”=T1

Przykładowa odpowiedź: Alkinoos zgodził się na wyjazd Odysa, ponieważ rozumiał jego tęsknotę