Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Podobne dokumenty
Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Technologie Informacyjne

Algorytm. a programowanie -

Systemy zapisu liczb.

Wstęp do informatyki- wykład 2

Techniki multimedialne

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Wykład I. Podstawowe pojęcia. Studia stacjonarne Pedagogika Budowa i zasada działania komputera

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Algorytmy i struktury danych. Wykład 4

1 Wprowadzenie do algorytmiki

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do informatyki- wykład 1 Systemy liczbowe

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

1259 (10) = 1 * * * * 100 = 1 * * * *1

Wstęp do informatyki- wykład 1

Technologie informacyjne - wykład 12 -

Wstęp do informatyki

Wprowadzenie do algorytmiki

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.

Wykład z Technologii Informacyjnych. Piotr Mika

Algorytmy. Programowanie Proceduralne 1

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

Algorytmy. Programowanie Proceduralne 1

Luty 2001 Algorytmy (7) 2000/2001

L6.1 Systemy liczenia stosowane w informatyce

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Systemy liczbowe Plan zaję ć

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Algorytmy i schematy blokowe

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Definicje. Algorytm to:

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Pracownia Komputerowa wykład V

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Teoretyczne Podstawy Informatyki

Kod U2 Opracował: Andrzej Nowak

1.1. Pozycyjne systemy liczbowe

Wykład I. Podstawowe pojęcia. Studia stacjonarne inżynierskie, kierunek INFORMATYKA Architektura systemów komputerowych

Algorytm. Krótka historia algorytmów

Wstęp do Informatyki

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Definicja algorytmu brzmi:

2.8. Algorytmy, schematy, programy

Zapis liczb binarnych ze znakiem

SCENARIUSZ LEKCJI. Autorzy scenariusza: Krzysztof Sauter (informatyka), Marzena Wierzchowska (matematyka)

Systemy liczbowe używane w technice komputerowej

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Języki programowania zasady ich tworzenia

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Podstawy Informatyki

Kodowanie liczb całkowitych w systemach komputerowych

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Podstawy Informatyki dla Nauczyciela

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Algorytm. Algorytmy Marek Pudełko

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

Kodowanie informacji. Kody liczbowe

KARTA MODUŁU KSZTAŁCENIA

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Język ludzki kod maszynowy

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Arytmetyka komputera

Metoda znak-moduł (ZM)

Systemy liczenia. 333= 3*100+3*10+3*1

SYSTEMY LICZBOWE 275,538 =

Technika Cyfrowa i Mikroprocesorowa

Scenariusz lekcji. potrafi podać formułę obliczającą wartość wielomianu stopnia n w punkcie wg schemat Hornera;

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Transkrypt:

Podstawy programowania Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

Część 1 Dlaczego system binarny? 2

I. Dlaczego system binarny? Pojęcie bitu Bit jednostka informacji wystarczająca do zakomunikowania jednego z dwu równo prawdopodobnych zdarzeń. 1 0 3

I. Dlaczego system binarny? Przyczyny zastosowania systemu binarnego 4

I. Dlaczego system binarny? Przyczyny zastosowania systemu binarnego Przyczyny zastosowania systemu binarnego w technologii cyfrowej to: łatwość implementacji elektrycznej i elektronicznej, odporność na zakłócenia, możliwość interpretacji cyfr {0, 1} jako wartości logicznych (algebra Boole a). 5

I. Dlaczego system binarny? Przyczyny zastosowania systemu binarnego Ciekawostka: Jedynym znanym komputerem zbudowanym z elementów 3-stanowych był eksperymentalny radziecki Sietuń (1959). Element reprezentujący jednostkę informacji stanowiła para rdzeni magnetycznych, z których każdy mógł być namagnesowany w jednym z dwóch kierunków; czwarty -niewykorzystany stan -służył do celów kontrolnych. 6

Część 2 Pozycyjne systemy liczbowe 7

I. Pozycyjne systemy liczbowe System dziesiętny Ile różnych liczb można zapisać w systemie dziesiętnym za pomocą 3 cyfr? 8 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dziesiętny Tysiąc od 0 do 999 9 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dziesiętny 10 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System o dowolnej podstawie 11 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System o dowolnej podstawie 12 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System o dowolnej podstawie 13 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe Systemy niepozycyjne Zupełnie inna sytuacja występuje w zapisie liczby w systemie rzymskim. Kolejne liczby od 1; : : : ; 9 mają postać: I; II; III; IV; V; V I; V II; V III; IX Widać, że w takim zapisie pozycja cyfry (o ile w ogóle można mówić w tym wypadku o cyfrze), nie jest związana z wyznaczaniem jej wartości, lecz istotna jest postać całej liczby. Taki system zapisu nazywamy addytywnym systemem liczbowym. 14

I. Pozycyjne systemy liczbowe System dwójkowy (binarny) Korzystając z definicji pozycyjnego systemu liczbowego otrzymujemy, że podstawą systemu dwójkowego jest liczba 2, oraz cyframi tego systemu są elementy zbioru <0; 1>. Zapiszmy przykładową liczbą w tym systemie otrzymujemy: x = 1011110110 (2) x = 1*2 9 + 0*2 8 + 1*2 7 + 1*2 6 + 1*2 5 + + 1*2 4 + 0*2 3 + 1*2 2 + 1*2 1 + 0*2 0 Zastępując teraz potęgi liczby 2 odpowiednimi wartościami, otrzymujemy x = 1*512 + 0*256 + 1*128 + 1*64 + 1*32 + + 1*16 + 0*8 + 1*4 + 1*2 + 0*1 = 758 (10) 15 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dwójkowy (binarny) 16 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dwójkowy (binarny) ZALETY: prostota łatwa realizacja techniczna (elektronika) możliwość interpretacji cyfr {0, 1} jako wartości logicznych (algebra Boole a) WADY: długość zapisu przyzwyczajenie 17 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe Ważniejsze potęgi dwójki 18 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe Ważniejsze potęgi dwójki 19 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dwójkowy - konwersja 20 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dwójkowy - arytmetyka Dodawanie w systemie dwójkowym 21 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dwójkowy - arytmetyka Odejmowanie w systemie dwójkowym W przypadku odejmowania 0-1 w systemie dwójkowym, musimy dokonać zapożyczenia 1 na następnej pozycji liczby. 22 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dwójkowy - arytmetyka Mnożenie w systemie dwójkowym Mnożenie jest wykonywane analogicznie jak mnożenie w systemie dziesiętnym. 23 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System dwójkowy - arytmetyka Dzielenie w systemie dwójkowym Dzielenie podobnie jak mnożenie wykonujemy tak samo jak w przypadku dzielenia w systemie dziesiętnym. 24 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System szesnastkowy (hexadecymalny) Duże liczby binarne są nieczytelne. 0101001010010010000111100101010010101010110 Celem wprowadzenia systemy szesnastkowego jest skrócenie zapisu bez przeliczania na system dziesiętny. Każde 4 bity da się przedstawić za pomocą 1 cyfry szesnastkowej bez żadnego przeliczania. 25 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System szesnastkowy (hexadecymalny) Przykład: 01010010100100100001111001010100101010101100 0101 0010 1001 0010 0001 1110 0101 0100 1010 1010 1100 0101 0010 1001 0010 0001 1110 0101 0100 1010 5 2 8 2 1 E 5 4 A 1010 1100 A C 52821E54AAC 26 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pozycyjne systemy liczbowe System szesnastkowy (hexadecymalny) System szesnastkowy podlega tym samym zasadą co inne systemy wagowo pozycyjne. 27 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Kodowanie liczb w systemach binarnych Kodowanie liczb ujemnych Kod U2 (Uzupełnień do dwóch) 28 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Kodowanie liczb w systemach binarnych Kodowanie liczb ujemnych 29 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Kodowanie liczb w systemach binarnych Liczby rzeczywiste zapis stałoprzecinkowy 30 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Kodowanie liczb w systemach binarnych Liczby rzeczywiste zapis stałoprzecinkowy 31 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Kodowanie liczb w systemach binarnych Liczby zmiennopozycyjne 32 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Kodowanie liczb w systemach binarnych Liczby zmiennopozycyjne 33 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Kodowanie liczb w systemach binarnych Liczby zmiennopozycyjne 34 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Kodowanie liczb w systemach binarnych Liczby zmiennopozycyjne 35 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

Część 3 Reprezentacja danych w komputerze 36

III. Reprezentacja danych w komputerze Kod ASCII 37 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

III. Reprezentacja danych w komputerze Kod ASCII Regionalne strony kodowe 38 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

Część 1V Pojęcie algorytmu 39 dr Artur Bartoszewski Podstawy programowania - WYKŁAD

I. Pojęcie algorytmu Trochę historii Pierwsze opisy, które później nazwano algorytmami, dotyczyły rozwiązań zadań matematycznych. Pomiędzy 400 a 300 rokiem p.n.e. grecki matematyk i filozof Euklides, wymyślił pierwszy znany nam nietrywialny algorytm, czyli przepis na realizację zadania. Był to algorytm znajdowania największego wspólnego dzielnika dwóch dodatnich liczb całkowitych. 40 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

I. Pojęcie algorytmu Trochę historii Słowo algorytm pochodzi od nazwiska matematyka arabskiego, który żył na przełomie VIII i IX wieku naszej ery. Muhammad ibn Musa al-chorezmi zasłużył się stworzeniem kilku dzieł z dziedziny matematyki, w których opisał dużą ilość reguł matematycznych (w tym dodawania, odejmowania, mnożenia i dzielenia zwykłych liczb dziesiętnych). Opis tych procedur był na tyle precyzyjny i formalny, jak na tamte czasy, że właśnie od jego nazwiska pochodzi słowo algorytm. 41 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

I. Pojęcie algorytmu Cechy algorytmu Intuicyjnie algorytm kojarzy się z metodą rozwiązywania zadania, przepisem postępowania czy też ze schematem działania. Należy jednak podkreślić, że nie każda metoda czy schemat jest algorytmem. Algorytm powinien spełniać sześć warunków. 42 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

I. Pojęcie algorytmu Cechy algorytmu 1. Musi posiadać określony stan początkowy, czyli operację od której zaczyna się jego realizacja. 2. Ilość operacji potrzebnych do zakończenia pracy musi być skończona - warunek dyskretności (skończoności). 3. Musi dać się zastosować do rozwiązywania całej klasy zagadnień, a nie jednego konkretnego zadania - warunek uniwersalności. 4. Interpretacja poszczególnych etapów wykonania musi być jednoznaczna - warunek jednoznaczności. 5. Cel musi być osiągnięty w akceptowalnym czasie - warunek efektywności. 6. Musi posiadać wyróżniony koniec. 43 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

Część V Notacja algorytmów 44 dr Artur Bartoszewski - Podstawy programowania - WYKŁAD

II. Notacja algorytmów Metody zapisu algorytmu 1. Opis słowny za pomocą ograniczonego podzbioru języka naturalnego 1. Dane są dwie liczby naturalne a i b. 2. Oblicz c jako resztę z dzielenia a przez b 3. Zastąp a przez b, zaś b przez c. 4. Jeżeli b = 0, to szukane NWD wynosi a, w przeciwnym wypadku wróć do punktu drugiego i kontynuuj. 2. Drzewo algorytmu 45 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Notacja algorytmów Metody zapisu algorytmu 3. Schematy blokowe. Na razie potraktujmy to jako przykład metody zapisu - do tego algorytmy wrócimy na następnym wykładzie 46 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Notacja algorytmów Metody zapisu algorytmu 3. Pseudo-język. Inną metodą przedstawienia algorytmu jest użycie zapisu za pomocą pseudo-języka programowania. Zaletą tego podejścia jest bardzo łatwa implementacja algorytmu za pomocą konkretnie wybranego, istniejącego języka programowania. Wadą jest mniejsza przejrzystość zapisu. Algorytm Euklidesa w pseudokodzie: NWD(liczba całkowita a, liczba całkowita b) dopóki b różne od 0 c := reszta z dzielenia a przez b a := b b := c zwróć a Istnieją różne wersje pseudo-języka. Najczęściej jest to PASCAL pozbawiony informacji dla kompilatora (i czasem przetłumaczony na polski) 47 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Notacja algorytmów Zapis algorytmów zmienne i operatory Zmienna to w programowaniu element programu, który może mieć przypisaną pewną wartość (wartość może być różna w różnych momentach wykonania programu). Zmienna jest uchwytem do tej wartości. W większości języków programowania (poza językami najwyższego poziomu) zmienne musimy zadeklarować, czyli poinformować kompilator, o tym że taka zmienna wystąpi i o tym jaki typ danych zamierzamy w niej przechowywać. Umożliwia to kompilatorowi zarezerwowanie odpowiedniego miejsca w pamięci operacyjnej i dobrane właściwych procedur obliczeniowych (na poziomie języka maszynowego). Dziś spotkamy typy: REAL (liczba rzeczywista) INTEGER (całkowita) 48 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Notacja algorytmów Zapis algorytmów zmienne i operatory Operatory stosowane w pseudo-języku oraz w schematach blokowych: + - * / - chyba nie wymagają komentarza % - operator reszty z dzielenia całkowitoliczbowego sqr (.. ) sqrt (..) - kwadrat - pierwiastek kwadratowy == - pytanie czy jest równe!= - pytanie czy jest różne ( ) > i < - pytanie czyn jest większe i czy jest mniejsze >= i <= - większe lub równe ( ) i mniejsze lub równe ( ) = - operator przypisania (podstawienia) (alternatywnie :=) 49 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Notacja algorytmów Zapis algorytmów zmienne i operatory Dwie ważne uwagi: Zmienna w programie komputerowym (i algorytmie) to nie to samo co zmienna w zadaniu matematycznym. Rozróżniaj operatory: == - pytanie czy równe = - operator przypisania x = x + 1 x = x + 1 - w matematyce jest to równie sprzeczne - w języku programowania - operacja podstawienia (wartość zapisaną w zmiennej x zwiększamy o 1) 50 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Notacja algorytmów Zapis algorytmów schemat blokowy Stan - Określa zwykle moment startu i końca. Zapis/odczyt - Wskazuje miejsce w których odbywa się zapis danych (lub ich odczyt). Instrukcje - Blok instrukcji, które mają być wykonane. Decyzja - Wyliczenie warunku logicznego znajdującego się wewnątrz symbolu i podjęcie na jego podstawie decyzji. Łącznik - Połączenie z inną częścią schematu blokowego, np. gdy nie mieści się on na jednej stronie. 51 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Notacja algorytmów Zapis algorytmów schemat blokowy Schemat blokowy tworzony jest według następujących reguł: 1. Schemat blokowy składa się z bloków połączonych zorientowanymi liniami; 2. Bloki obrazują ciąg operacji; 3. Zawsze wykonywane są albo wszystkie instrukcje w bloku albo żadna; 4. Dalsze operacje nie zależą od poprzednich wariantów, chyba że zależności te zostały przekazane za pomocą danych; 5. Kolejność wykonania operacji jest ściśle określona przez zorientowane 6. Linie łączące poszczególne bloki; 7. Do każdego bloku może prowadzić co najwyżej jedna linia; 8. Linie mogą się łączyć ale nie mogą się rozdzielać (bez bloku decyzyjnego). 52 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

Część VI Rodzaje algorytmów 53 dr Artur Bartoszewski - Podstawy programowania - WYKŁAD

III. Rodzaje algorytmów Algorytmy liniowe Start wczytaj a wczytaj b d=a+b wypisz d Stop 54 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

III. Rodzaje algorytmów Algorytmy rozgałęzione Start wczytaj a wczytaj b TAK a > b NIE wypisz a wypisz b Stop Stop 55 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

III. Rodzaje algorytmów Algorytmy rozgałęzione przykład Przykład: ax 2 + bx + c = 0 Start wczytaj a wczytaj b wczytaj c delta=sqr(b)-4*a*c delta < 0 TA K NIE x1=(-b+sqrt(delta))/(2*a) x2=(-b-sqrt(delta))/(2*a) wypisz brak rozwiązań wypisz x1 wypisz x2 Stop 56 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

III. Rodzaje algorytmów Algorytmy rozgałęzione wielokrotnie Start wczytaj a wczytaj b NIE a > b TA K NIE a == b TA K wypisz b wypisz są równe wypisz a Stop 57 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

III. Rodzaje algorytmów Algorytmy rozgałęzione wielokrotnie Start wczytaj a wczytaj b wczytaj c ax 2 + bx + c = 0 II wersja delta:=sqr(b)-4*a*c delta < 0 TAK NIE TAK delta == 0 NIE x0:=(-b)/(2*a) x1:=(-b+sqrt(delta))/(2*a) x2:=(-b-sqrt(delta))/(2*a) wypisz brak rozwiązań wypisz x0 wypisz x1 wypisz x2 Stop 58 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

III. Rodzaje algorytmów Algorytmy iteracyjny NWW algorytm Euklidesa Start wczytaj a wczytaj b b <> 0 NIE Zapis w pseudokodzie NWD(liczba całkowita a, liczba całkowita b) dopóki b różne od 0 c = reszta z dzielenia a przez b a = b b = c zwróć a TA K c = a mod b a = b b = c wypisz a Stop 59 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

Literatura: W prezentacji wykorzystano fragmenty i zadania z książek i stron internetowych: Piotr Fulmański, Ścibór Sobieski, Wstęp do informatyki, Podręcznik, Wydawnictwo Uniwersytetu Łódzkiego, 2005 ISBN: 83-7171-844-6 Maciej M. Sysło, Algorytmy, WSiP, Warszawa 2002, ISBN: 83-02-06659-1 http://pl.wikipedia.org 60 dr Artur Bartoszewski - Podstawy programowania - WYKŁAD