Bożena Woźna Szcześniak bwozna@gmailSkrzynki START i STOP wskazują początek i koniec każdego...

Post on 08-Oct-2020

1 views 0 download

Transcript of Bożena Woźna Szcześniak bwozna@gmailSkrzynki START i STOP wskazują początek i koniec każdego...

Wykład 1Dr Bożena Woźna-Szcześniak

bwozna@gmail.com

Język programowania jest środkiem umożliwiającym zapis algorytmów w postaci zrozumiałej dla człowieka, a równocześnie przetwarzalnej do postaci zrozumiałej dla komputera (maszyny algorytmicznej)

dr Bożena Woźna-Szcześniak 2

Kod źródłowy programu (w języku programowania)

Kod wynikowy programu (w języku maszynowym)

Przetworzenieprogramu

źródłowegow kod

maszynowy

Encyklopedia PWN Algorytm to "(...) przepis na rozwiązanie

określonego zadania podany jako zbiór kolejnych poleceń; jego wykonawcą może być człowiek lub urządzenie automatyczne (np. komputer); (…)zapisany w jakimś języku programowania -program".

Maciej M. Sysło Algorytm jest przepisem rozwiązywania

postawionego zadania, będącym dokładnie określonym układem elementarnych instrukcji wraz z porządkiem ich wykonania.

dr Bożena Woźna-Szcześniak 3

Składniki:◦ 175 g miękkiego masła◦ 1 1/2 szklanki cukru pudru◦ 3 łyżeczki esencji waniliowej◦ 3 roztrzepane jajka◦ 1 1/2 szklanki mąki◦ 2 1/4 łyżeczki proszku do

pieczenia◦ 3 łyżki kakao◦ 1 1/4 szklanki mleka

Sposób przygotowania:◦ 1. Włożyć masło, cukier i esencję

waniliową do miski i ucierać do uzyskania lekkiej, puszystej masy. Ciągle mieszając, stopniowo dodawać jajka.

◦ 2. Przesiać mąkę do osobnego naczynia, dodać proszek do pieczenia i kakao. Dodawać na przemian mieszankę mączną i mleko do masy maślanej, cały czas ucierając.

◦ 3. Wylać powstałe ciasto do kwadratowej blachy o boku 20 cm, natłuszczonej i wyłożonej papierem do pieczenia. Piec 55 minut (sprawdzić patyczkiem).

◦ Zostawić ciasto w blasze na 10 minut, a potem przełożyć na druciany stojak do wystudzenia.

dr Bożena Woźna-Szcześniak 4

Generacja I - język maszynowy lista instrukcji, z których każda jest serią binarnych

liczb np.1010 0101 0000 0000 0000 1111

gdzie 1010 - rozkaz dodawania 0101 - zawartość rejestru 5 0000 0000 0000 1111 - adres miejsca w pamięci

komputera w notacji szesnastkowej : A 5 000F

dr Bożena Woźna-Szcześniak 5

Generacja II - język asemblerowy skojarzenie kolejnych komponentów instrukcji z

symbolami i nazwami, np.1010 0101 0000 0000 0000 1111

może być reprezentowana przez zapisADD TAX TOTAL

gdzie ADD = 1010 - dodawanie TAX = 0101 - zawartość rejestru 5 TOTAL = 0000 0000 0000 1111 - adres miejsca w pamięci

komputera Wymaga programu tłumaczącego kod symboliczny na

maszynowy, tzw. asemblera

dr Bożena Woźna-Szcześniak 6

Generacja III ◦ instrukcje podobne do fraz i zdań języka

naturalnego (angielskiego), np. if ... else...then; begin...end; while;◦ wymaga tzw. kompilatora - programu

tłumaczącego kod źródłowy na maszynowy, lub interpretera - programu iteracyjnie pobierającego kolejne instrukcje, tłumaczącego na kod wykonywalny i natychmiast go wykonującego.◦ rozwiązany problem przenaszalności programów

(np. standard ANSI języka C, Turbo Pascal, Basic).

dr Bożena Woźna-Szcześniak 7

Konsolidacja, linkowanie (link): scalenie binarnych fragmentów programu w jedną całość i dołączenie procedur systemowych, procedur wejścia/wyjścia, funkcji matematycznych z bibliotek systemowych i innych elementów koniecznych do działania programu.

Debuggery: programy, ułatwiające śledzenie wykonywania się danego programu, nazywane są debugerami, czyli „odpluskwiaczami”. Nazwa "debugging" powstała w 1945 roku - w elektromechanicznym komputerze Mark II były karaluchy w przekaźnikach.

dr Bożena Woźna-Szcześniak 8

generacja IV - systemy oprogramowania pozwalające na interaktywne tworzenie oprogramowania, systemy CASE

generacja V - języki sztucznej inteligencji (LISP, PROLOG) z wbudowanymi mechanizmami wnioskowania

dr Bożena Woźna-Szcześniak 9

Programowanie liniowe - wszystko w jednym worku, go to !

Programowanie strukturalne - moduły operujące na lokalnych danych i zmiennych, komunikacja przez przekazywanie parametrów, każdy moduł testowany osobno. ◦ Wada: zmiana struktur danych wymaga zmiany

wielu modułów. Programowanie zorientowane obiektowo -

dane i programy tworzą jeden obiekt.

dr Bożena Woźna-Szcześniak 10

Schemat blokowy, to graficzny sposób zapisu algorytmu, gdzie za pomocą ściśle określonych figur geometrycznych, powiązanych trwale z określonymi typami instrukcji oraz połączeń, można czytelnie zilustrować relacje między elementami algorytmu.

dr Bożena Woźna-Szcześniak 11

Skrzynki START i STOP wskazują początek i koniec każdego algorytmu. Ze skrzynki START wychodzi tylko jedna droga, do skrzynki STOP wchodzi co najmniej jedno połączenie.

dr Bożena Woźna-Szcześniak 12

START

STOP

W skrzynce instrukcyjnej umieszcza się polecenia do wykonania (instrukcje) -podstawienie, obliczenie, wprowadzenie wartości.

dr Bożena Woźna-Szcześniak 13

Suma = a + b

INSTRUKCJA

W skrzynce warunkowej umieszcza się warunek, który decyduje o wyborze dalszej drogi postępowania. Ze skrzynki wychodzą dwa połączenia: TAK (wybierane, gdy warunek jest spełniony), NIE (gdy warunek nie jest spełniony).

dr Bożena Woźna-Szcześniak 14

Warunek Tak

Nie

S > 10 Tak

Nie

W skrzynce wejścia/wyjścia umieszcza się wprowadzane dane lub wyprowadzane wyniki. Ze skrzynki wchodzi/wychodzi tylko jedno połączenie.

dr Bożena Woźna-Szcześniak 15

Wejście

Wyjście

dr Bożena Woźna-Szcześniak 16

Łącznik wewnątrzstronicowy -służy do łączenia odrębnych części schematu znajdujących się na tym samym arkuszu.

Ułatwia zachowanie przejrzystości schematu.

Komplementarne elementy oznacza się tym samym symbolem.

W schemacie występują przypisania:S= a + b + c – oznacza przypisanie zmiennej S wartości trzech liczb pamiętanych w zmiennych a, b i c

Śr = S/3 – oznacza przypisanie zmiennej Śr wyniku dzielenia wartości zmiennej S przez 3

dr Bożena Woźna-Szcześniak 17

start

Stop

Wyprowadź (Śr)S = a + b + c

Śr = S/3

Wprowadź (a, b, c)

Algorytm obliczania średniej arytmetycznej trzech dowolnych liczb rzeczywistych

Schemat powinien być prosty i co za tym idzie czytelny. W razie złożonego rozwiązania schemat należy podzielić na mniejsze części (podprogramy) i zamieścić je na osobnych arkuszach.

Do rysowania schematów dobrze jest używać szablonów. Dzięki takiemu rozwiązaniu polepsza się czytelność schematu.

W blokach niezbędne jest komentowanie zarówno zaprojektowanych operacji, jak i kolejności ich wykonywania.

Komentarze powinny być krótkie, lecz dostatecznie dokładnie wyjaśniające znaczenie opisywanych elementów.

Należy unikać rysowania przecinających się ścieżek sterowania. W razie konieczności lepiej jest wprowadzić odpowiednie łączniki, które pozwolą wyeliminować niektóre z linii wskazujących kolejność działań w algorytmie.

Powinno się unikać zapisywania wprowadzanych operacji za pomocą instrukcji języków programowania.

dr Bożena Woźna-Szcześniak 18

Należy dokładnie numerować arkusze, na których został rozrysowany schemat blokowy.

Trzeba liczyć się z możliwością wystąpienia konieczności wprowadzenia poprawek do schematu, dlatego wskazane jest tak tworzyć arkusze, aby możliwe było naniesienie poprawek bez konieczności przerysowywania całego schematu.

Należy unikać zarówno zbyt dużej szczegółowości jak i zbytniej ogólności schematów.

Nie należy umieszczać zbyt dużej liczby operacji w jednym bloku.

Operacja warunkowa IF zawsze prowadzi do konieczności rozważenia dwóch dróg: gdy warunek jest spełniony i gdy nie jest.

dr Bożena Woźna-Szcześniak 19

Laboratorium Informatyki ELI 2.0 jest oprogramowaniem edukacyjnym służącym do nauczania informatyki, a takżepodstaw automatyki i robotyki.

ELI jest programem komputerowym umożliwiającymbudowanie dowolnych algorytmów poprzez wybór z paletyodpowiednich "klocków" - piktogramów, symbolizującychelementy i realizujących podstawowe działaniainformatyczne.

Producentem programu jest firma ELBOX. Po kliknięciu na link strony producenta:

http://www.elboxedu.pl/component/option,com_produkt/Itemid,93/id,40/prod_id,39/ można zobaczyć ofertę firmy i zakupić pełną wersję ELI.

dr Bożena Woźna-Szcześniak 20

Wersja demonstracyjna programu ELI dostępna jest na stronie WSiP:◦ http://www.wsipnet.pl/dane/pliki/kluby/8//eli-2-1.zip

Wersja demonstracyjna nie daje możliwości zapisu pliku i wydruku, funkcjonuje jednak na tyle dobrze, że można ją polecić użytkownikom.

WSiP jest wydawcą podręcznika „Algorytmy” Macieja Sysło, a wersja demonstracyjna oprogramowania ELI jest integralną częścią podręcznika.

dr Bożena Woźna-Szcześniak 21

dr Bożena Woźna-Szcześniak 22

W celu pobrania programu klikamy: Oprogramowanie związane z książką Algorytmy.

dr Bożena Woźna-Szcześniak 23

Po pobraniu programu (eli-2-1.zip) idziemy do miejsca, gdzie go wcześniej ulokowaliśmy i rozpakowywujemy.

Po rozpakowaniu powinny się pojawić pliki widoczne na obrazku obok.

Aby zainstalować program wystarczy kliknąć plik INSTALUJ.EXE

dr Bożena Woźna-Szcześniak 24

Oto instalator programu ELI.Aby kontynuować instalację, klikamy przycisk ,,dalej”.

dr Bożena Woźna-Szcześniak 25

I jeszcze raz klikamy Dalej

dr Bożena Woźna-Szcześniak 26

Następnie wprowadzamy nazwę katalogu docelowego i klikamy przycisk ,,Dalej”. Standardowo Eli 2.0 instaluje się na dysku C:, ale nie ma żadnych

przeciwwskazań do wybrania innego dysku.

dr Bożena Woźna-Szcześniak 27

Czekamy na zakończenie pracy instalatora.

dr Bożena Woźna-Szcześniak 28

Instalator zakończył instalację. Przed użyciem programu należy ponownie uruchomić Windows. Zaznaczamy opcję ,,Tak chcę ponownie uruchomić

Windows”. I klikamy przycisk ,,koniec”.

dr Bożena Woźna-Szcześniak 29

Zainstalowany program odnajdujemy w menu Start

dr Bożena Woźna-Szcześniak 30

dr Bożena Woźna-Szcześniak 31

Uruchamiamy nową zieloną planszę, na której układamy klocki przeciągając je lewym klawiszem myszy

dr Bożena Woźna-Szcześniak 32

Po ułożeniu klocków definiujących nasz algorytm, aby go uruchomić wybieramy polecenie Wykonanie – Uruchom, albo stosujemy skrót

klawiszowy Ctrl+F9

Algorytm możemy wykonywać krok po kroku, albo

W całości

dr Bożena Woźna-Szcześniak 33

Początek algorytmu

Koniec algorytmu

Wprowadzanie danej

Wykonanie obliczeń

Wyprowadzanie wyniku

Sprawdzanie warunku logicznego

dr Bożena Woźna-Szcześniak 34

dr Bożena Woźna-Szcześniak 35

Rozważać będziemy następujące rodzaje programów:◦ programy sekwencyjne ◦ programy z rozgałęzieniem (program wykonuje

różne obliczenia w zależności od tego jaki warunek jest spełniony) ◦ programy iteracyjne (program wykonuje obliczenia

w pętli dopóki nie zostanie spełniony określony warunek)◦ programy rekurencyjne (program w kolejnych

krokach wywołuje sam siebie dla nowych wartości parametrów wykonania)

dr Bożena Woźna-Szcześniak 36

Ma postać ciągu kroków, które musza zostać bezwarunkowo wykonane jeden po drugim. Program taki nie zawiera żadnych warunków ani rozgałęzień. Zaczyna się od podania zestawu danych, następnie wykonywane są kolejne kroki wykonawcze, aż dochodzimy do wyniku.

Np. dodanie lub mnożenie dwóch liczb:1. Sformułowanie zadania: oblicz sumę dwóch liczb

naturalnycha i b. Wynik oznacz przez S.

2. Dane wejściowe: dwie liczby a i b.3. Cel obliczeń: obliczenie sumy S = a + b.4. Dodatkowe ograniczenia: sprawdzenie warunku dla

danych wejściowych np. czy a, b są naturalne. Ale

sprawdzenie takiego warunku sprawia, że program przestaje być liniowy.

dr Bożena Woźna-Szcześniak 37

Semantyka: wykonywanie kolejnych kroków programu zgodnie z zadaną sekwencją

Syntaktyka:

dr Bożena Woźna-Szcześniak 38

START

STOP

Krok_1

Krok_2

Krok_3

Krok_4

Schemat blokowy sekwencji instrukcji

begin

krok_1;

krok_2;

krok_3;

krok_4;

end;Pseudokodsekwencji instrukcji

dr Bożena Woźna-Szcześniak 39

START

STOP

Podaj a

Podaj b

S=a+b

Pisz S

dr Bożena Woźna-Szcześniak 40

START

STOP

Podaj a

K=a*a

Pisz (K)

dr Bożena Woźna-Szcześniak 41

dr Bożena Woźna-Szcześniak 42

Algorytm obliczający kwadrat danej liczby

dr Bożena Woźna-Szcześniak 43

Algorytm obliczający kwadrat danej liczby

dr Bożena Woźna-Szcześniak 44

Algorytm obliczający kwadrat danej liczby

dr Bożena Woźna-Szcześniak 45

dr Bożena Woźna-Szcześniak 46

START

STOP

Podaj a

Podaj b

Podaj c

V=a*b*c

Pisz V

Opis za pomocą schematu blokowego: objętość prostopadłościanu

Schemat blokowy programu obliczający pole trójkąta wpisanego w okrąg

dr Bożena Woźna-Szcześniak 47

Klocek startowy. Wpisz komunikat początkowy programu, np..

dr Bożena Woźna-Szcześniak 48

Podaj długość kolejnych boków trójkąta wpisanego w okrąg

Wprowadzanie danej do programu (wpisz długości kolejnych boków trójkąta oraz podaj promień koła)

dr Bożena Woźna-Szcześniak49

Wpisz równanie na obliczanie pola trójkąta wpisanego w okrąg.

Wykonywanie obliczeń arytmetycznych. Podstawienie danych do wzoru arytmetycznego.

dr Bożena Woźna-Szcześniak 50

Komunikat wyjściowy informujący o wyniku.

Wpisz komunikat informujący o wymiarach pola trójkąta wpisanego w okrąg.

dr Bożena Woźna-Szcześniak 51

Zakończenie programu.

Komunikat końcowy, zakończenie programu.

dr Bożena Woźna-Szcześniak 52

Instrukcje warunkowe (rozgałęzienia warunkowe) mają następującą postać:◦ Jeżeli warunek M to, wykonaj czynność N

Lub◦ Jeżeli warunek M, to wykonaj czynność N, w

przeciwnym razie wykonaj czynność P. W językach programowanie

(C/C++/Java/C#/PHP) to instrukcje: if, if – else, switch-case

dr Bożena Woźna-Szcześniak 53

Semantyka: wybór jednej z dwóch możliwości przetwarzania po sprawdzeniu prawdziwości zdania logicznego

Syntaktyka:

dr Bożena Woźna-Szcześniak 54

if (logic_assertion_is true) then

action_if_true;

else

action_if_false;

end if;

Sekcja „else”jest opcjonalna

warunekT N

akcja jeśli „TAK”

akcja jeśli „NIE”

Schemat blokowy instrukcji „if” Pseudokod instrukcji if-else

W algorytmie tym wykorzystujemy skrzynkę warunkową, ponieważ mamy do czynienia z sytuacją, gdy tok dalszego postępowania zależy od dokonanego wyboru (dokładnie: zależy od pogody).

dr Bożena Woźna-Szcześniak 55

dr Bożena Woźna-Szcześniak 56

Start

Podaj a

c = a % 2

c== 0

Liczba jest parzysta

Liczba nie jest parzysta

Stop

TAK NIE

„a mod 2” oznacza resztę z dzielenia a przez 2

dr Bożena Woźna-Szcześniak 57

dr Bożena Woźna-Szcześniak 58

dr Bożena Woźna-Szcześniak 59

dr Bożena Woźna-Szcześniak 60

dr Bożena Woźna-Szcześniak 61

dr Bożena Woźna-Szcześniak 62

dr Bożena Woźna-Szcześniak 63

dr Bożena Woźna-Szcześniak 64

dr Bożena Woźna-Szcześniak 65

Algorytm porównujący 2 liczby wprowadzanez klawiatury.

dr Bożena Woźna-Szcześniak 66

Algorytm porównujący 2 liczby wprowadzanez klawiatury.

dr Bożena Woźna-Szcześniak 67

Algorytm porównujący 2 liczby wprowadzanez klawiatury.

dr Bożena Woźna-Szcześniak 68

Algorytm porównujący 2 liczby wprowadzanez klawiatury.

dr Bożena Woźna-Szcześniak 69

Algorytm porównujący 2 liczby wprowadzanez klawiatury.

dr Bożena Woźna-Szcześniak 70

Algorytm porównujący 2 liczby wprowadzanez klawiatury.

Zadanie: Znajdź rozwiązanie równania liniowego postaci a * x + b = 0. Wynikiem jest wartość liczbowa lub stwierdzenie dlaczego nie ma jednoznacznego rozwiązania.

Dane wejściowe: dwie liczby rzeczywiste a i b. Cel obliczeń: obliczenie wartości x lub

stwierdzenie, że równanie nie ma jednoznacznego rozwiązania.◦ gdy a = 0, to sprawdź czy b = 0, jeśli tak to

równanie sprzeczne lub tożsamościowe◦ gdy a != 0, to oblicz x = -b/a

dr Bożena Woźna-Szcześniak 71

dr Bożena Woźna-Szcześniak 72

Rozpoczęcie programu. Wpisanie komunikatu startowego.

dr Bożena Woźna-Szcześniak 73

Wprowadzanie zmiennych (tych, które będą poddawane działaniom arytmetycznym).

dr Bożena Woźna-Szcześniak 74

Wpisz instrukcje pozwalającą na wybór użytkownikowi pożądanego działania.

dr Bożena Woźna-Szcześniak 75

Wprowadzanie warunku decydującego o wykonywanym działaniu.

Wybór jednej z liczb od 1 do 4 będzie wskazywał wykonanie określonego działania arytmetycznego. Dla 1 program wykonania dodawanie, w innym przypadku warunek nie zostanie spełniony, a program wykona inna instrukcję.

dr Bożena Woźna-Szcześniak 76

W przypadku wybrania sumy wprowadzamy pole wykonania obliczenia:

Wprowadzamy instrukcje dla wykonania obliczenia :

dr Bożena Woźna-Szcześniak 77

W przypadku, gdy użytkownik wybierze inna instrukcję, warunek op=1 nie jest spełniony. Musimy zatem wprowadzić instrukcje obslugujące pozostałe przypadki.

Użytkownik wybrał np. 2. Wtedy wprowadzamy warunek:

dr Bożena Woźna-Szcześniak 78

Użytkownik wybrał różnicę op=2. Program wykonuje działanie odejmowania:

dr Bożena Woźna-Szcześniak 79

W przypadku gdy użytkownik wybrał 3 (iloraz), obsługujemy warunek dla ilorazu:

Wykonujemy działanie:

dr Bożena Woźna-Szcześniak 80

Gdy użytkownik wybiera iloczyn, warunek nie zostaje spełniony, a program przechodzi do kolejnej instrukcji - wykonuje mnożenie:

dr Bożena Woźna-Szcześniak 81

Gdy użytkownik nie wybierze żądnej z liczb 1, 2, 3, 4 warunek nie zostanie spełniony. Wtedy wprowadzamy:

dr Bożena Woźna-Szcześniak 82

Każdą z instrukcji (oprócz powrotu do wyboru działania arytmetycznego) kończy podanie wyniku oraz zakończenie programu:

dr Bożena Woźna-Szcześniak 83

Schemat kalkulatora:

dr Bożena Woźna-Szcześniak 84