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

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

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

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

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

Algorytm. a programowanie -

Algorytmy. Programowanie Proceduralne 1

Algorytmy. Programowanie Proceduralne 1

Technologie Informacyjne

1 Wprowadzenie do algorytmiki

Algorytmy i struktury danych. Wykład 4

Wstęp do informatyki

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

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

Systemy zapisu liczb.

Wstęp do informatyki- wykład 2

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

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

Luty 2001 Algorytmy (7) 2000/2001

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

2.8. Algorytmy, schematy, programy

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

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

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

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

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

Wstęp do informatyki- wykład 1

Techniki multimedialne

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

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

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

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

Pascal - wprowadzenie

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

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

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

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

Wprowadzenie do algorytmiki

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

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

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

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

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

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.

Technologie informacyjne - wykład 12 -

Języki programowania zasady ich tworzenia

Wykład z Technologii Informacyjnych. Piotr Mika

Definicje. Algorytm to:

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

Pracownia Komputerowa wykład V

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Język ludzki kod maszynowy

Systemy liczbowe Plan zaję ć

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

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

1.1. Pozycyjne systemy liczbowe

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Definicja algorytmu brzmi:

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

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

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

Kod U2 Opracował: Andrzej Nowak

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

Algorytm. Krótka historia algorytmów

Zapis liczb binarnych ze znakiem

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

Język programowania PASCAL

Wstęp do Informatyki

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

Algorytmy i schematy blokowe

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

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

L6.1 Systemy liczenia stosowane w informatyce

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

Teoretyczne Podstawy Informatyki

Podstawy programowania

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

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

Powtórka algorytmów. Wprowadzenie do języka Java.

Zapis algorytmów: schematy blokowe i pseudokod 1

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

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

Algorytmy w teorii liczb

Zaawansowane algorytmy i struktury danych

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

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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Kodowanie liczb całkowitych w systemach komputerowych

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Metoda znak-moduł (ZM)

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

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Transkrypt:

Podstawy programowania Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania 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 Algorytm Euklidesa obliczanie największego wspólnego dzielnika dwóch liczb naturalnych. Start wczytaj a wczytaj b 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. b <> 0 TA K c := a mod b a := b b := c NIE 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 wypisz a Stop ten sam algorytm zapisany na cztery sposoby 41 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. 42 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. 43 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. 44 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

Część V Notacja algorytmów 45 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 46 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 47 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) 48 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) 49 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 div mod sqr (.. ) sqrt (..) - operator dzielenia całkowitoliczbowego - operator reszty z dzielenia całkowitoliczbowego - kwadrat - pierwiastek kwadratowy = - pytanie czy jest równe (alternatywnie ==) <> - pytanie czy jest różne ( ) (alternatywnie!=) > 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 =) 50 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 - operacja podstawienia (wartość zapisaną w zmiennej x zwiększamy o 1) 51 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. 52 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). 53 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

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

III. Rodzaje algorytmów Algorytmy liniowe Start wczytaj a wczytaj b d:=a+b wypisz d Stop program dodaj; var a,b,d : integer; begin write( podaj a ); readln(a); write( podaj b ); readln(b); d:=a+b; write( suma: ); writeln( suma =,d); end. 55 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

III. Rodzaje algorytmów Algorytmy rozgałęzione TA K wypisz a Start wczytaj a wczytaj b a > b NIE wypisz b program maksimum; var a,b : integer; begin write( podaj a ); readln(a); write( podaj b ); readln(b); if a > b then writeln( maksimum wynosi, a) else writeln( maksimum wynosi, b) end. Stop Stop 56 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 NIE delta < 0 x1:=(-b+sqrt(delta))/(2*a) x2:=(-b-sqrt(delta))/(2*a) wypisz x1 wypisz x2 Stop TA K wypisz brak rozwiązań program delta; var a,b,c,delta,x1,x2 : real; begin write( podaj a ); readln(a); write( podaj b ); readln(b); write( podaj c ); readln(c); Delta:=sqr(b)-4*a*c; if Delta<0 then writeln( Brak rozwiązania ) else begin x1:=(-b+sqrt(delta))/(2*a); x2:=(-b-sqrt(delta))/(2*a); writeln( x1=,x1); writeln( x2=,x2); end; end. 57 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

III. Rodzaje algorytmów Algorytmy rozgałęzione wielokrotnie NIE NIE a = b Start wczytaj a wczytaj b TA K a > b TA K program porownanie; var a,b : integer; begin write( podaj a ); readln(a); write( podaj b ); readln(b); if a > b then writeln( większa była, a) else if a = b writeln( sa rowne ) else writeln( wieksza była, b) end. wypisz b wypisz są równe wypisz a Stop 58 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

III. Rodzaje algorytmów Algorytmy rozgałęzione wielokrotnie TAK Start wczytaj a wczytaj b wczytaj c delta:=sqr(b)-4*a*c NIE x0:=(-b)/(2*a) wypisz x0 delta < 0 delta = 0 Stop TAK NIE x1:=(-b+sqrt(delta))/(2*a) x2:=(-b-sqrt(delta))/(2*a) wypisz x1 wypisz x2 ax 2 + bx + c = 0 II wersja wypisz brak rozwiązań program delta_2; var a,b,c,delta,x1,x2,x0 : real; begin write( podaj a ); readln(a); write( podaj b ); readln(b); write( podaj c ); readln(c); Delta:=sqr(b)-4*a*c; if Delta<0 then writeln( Brak rozwiązania ) else if Delta=0 then begin x0:=(-b)/(2*a); writeln( x0=,x0); end; else begin x1:=(-b+sqrt(delta))/(2*a); x2:=(-b-sqrt(delta))/(2*a); writeln( x1=,x1); writeln( x2=,x2); end; end. 59 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 TA K c := a mod b a := b b := c wypisz a NIE program euklides; var a,b,c : integer; begin write( podaj a ); readln(a); write( podaj b ); readln(b); while b<>0 do begin c := a mod b; a := b; b := c; end; writeln( NWD=,a); end. 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 Stop 60 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

Część VIII Tablice 61 dr Artur Bartoszewski - Informatyka i systemy informatyczne, sem. 1- WYKŁAD

II. Tablice Klasyfikacja zmiennych statycznych porządkowy całkowity logiczny prosty rzeczywisty znakowy typ łańcuchowy tablicowy złożony rekordowy plikowy 62 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Tablice Rodzaje tablic 63 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Tablice Rodzaje tablic 64 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Tablice Obsługa tablicy jednowymiarowej 65 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD

II. Tablice Obsługa tablicy jednowymiarowej 66 dr Artur Bartoszewski - Informatyka i systemy informatyczne, 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 67 dr Artur Bartoszewski - Podstawy programowania - WYKŁAD