Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Wykład 1Dr Bożena Woźna-Szcześniak
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