Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Podobne dokumenty
Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

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

Algorytmy i schematy blokowe

Definicje. Algorytm to:

Technologie informacyjne - wykład 12 -

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wykład z Technologii Informacyjnych. Piotr Mika

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wprowadzenie do algorytmiki

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Technologia informacyjna Algorytm Janusz Uriasz

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm. Algorytmy Marek Pudełko

Podstawy Programowania Algorytmy i programowanie

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

POLITECHNIKA OPOLSKA

Algorytmy, reprezentacja algorytmów.

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

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

ALGORYTMY I PROGRAMY

Programowanie i techniki algorytmiczne

Algorytm. a programowanie -

START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy Programowania C++

Algorytmy i struktury danych

POLITECHNIKA OPOLSKA

1 Wprowadzenie do algorytmiki

Sposoby przedstawiania algorytmów

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

Programowanie strukturalne

Obliczenia iteracyjne

Programowanie w języku Python. Grażyna Koba

Temat 20. Techniki algorytmiczne

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

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

Metodyki i techniki programowania

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

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Złożoność obliczeniowa zadania, zestaw 2

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

Metody numeryczne w przykładach

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

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Rozdział 1 PROGRAMOWANIE LINIOWE

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny

Programowanie komputerów

Zapisywanie algorytmów w języku programowania

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

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Podstawy programowania

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Spis treści. Część I Metody reprezentowania informacji oraz struktury danych...9. Wprowadzenie Rozdział 1. Reprezentacja liczb całkowitych...

Efektywność algorytmów

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Algorytmy. Programowanie Proceduralne 1

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

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

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Algorytmy. Programowanie Proceduralne 1

Algorytmika i pseudoprogramowanie

Układy równań liniowych. Ax = b (1)

Praktyka Programowania

Z nowym bitem. Informatyka dla gimnazjum. Część II

Sterowniki Programowalne (SP)

1. Algorytmy Składniki algorytmu Podstawowymi elementami każdego algorytmu są dane oraz operacje Metody opisu algorytmu

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW /99

Definicja algorytmu brzmi:

Programowanie w języku C++ Grażyna Koba

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

Poprawność semantyczna

W szkole podstawowej materiał przedstawiony powinien być w następującej kolejności:

Język ludzki kod maszynowy

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.

Liczby zmiennoprzecinkowe i błędy

Metodyki i techniki programowania

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

2. Graficzna prezentacja algorytmów

Zadanie 1. Suma silni (11 pkt)

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Programowanie celowe #1

Podstawy Informatyki. Algorytmy i ich poprawność

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

ECDL Podstawy programowania Sylabus - wersja 1.0

Algorytmy. dr Dariusz Banaś (UJK) Seminarium w ramach projektu Fascynujący Świat Nauki dla uczniów gimnazjów. wersja 0.9. Start.

Podstawy Informatyki Systemy sterowane przepływem argumentów

Metody numeryczne Wykład 4

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Programowanie liniowe

Algorytmy od problemu do wyniku

Wstęp do programowania

Transkrypt:

Algorytm znaczenie informatyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne Jest to reguła przekształcania wyrażeń matematycznych przez powtarzanie tych samych działań na kolejno otrzymanych wynikach działań poprzednich. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne. Krótka historia algorytmów 365-300 p.n.e - Euklides : pierwsze znane algorytmy 17, 18 wiek - Blaise Pascal, Wilhelm von Leibnitz - pierwsze nowoczesne algorytmy liczenia w różnych systemach 1801 - Jacquard, krosno tkackie z algorytmem na kartach perforowanych 1833 - Chales Babbage - maszyna różnicowa, algorytm różnicowy 1892- Hermann Hollerith - maszyna i algorytm do opracowywania danych statystycznych 1930 - Alan Turing, Kurt Godel - prace z teorii algorytmów, maszyna Turinga 1940-50 - John von Neumann - współczesna koncepcja budowy komputera i uruchamiania programów Poziomy abstrakcji w prezentacji algorytmów: - język naturalny (maksymalny poziom abstrakcji - niejednoznaczność sformułowań) - konwencja notacyjna z pogranicza języka naturalnego i języka programowania - SCHEMAT BLOKOWY - język programowania (FORTRAN, PASCAL, C++ etc.) - język maszynowy ( minimalny poziom abstrakcji - brak ogólności rozważań, opis trudny do analizy)

Cechy każdego poprawnego algorytmu: Posiada dane wejściowe niekoniecznie w formie numerycznej pochodzące z dobrze zdefiniowanego źródła Produkuje pewien wynik niekoniecznie numeryczny Jest precyzyjnie zdefiniowany, tzn. każdy krok algorytmu musi być jednoznacznie określony Jest skończony wynik algorytmu musi być kiedyś dostarczony Schemat blokowy to: 1. Schemat układu (diagram) czyli graficzny sposób zobrazowania przedstawiający bloki realizujące określone funkcje oraz wzajemne powiązania między blokami 2. Sieć działań czyli graficzny sposób zapisu algorytmu w postaci połączonych liniami i strzałkami skrzynek (bloków) operacyjnych (obliczeniowych), warunkowych i innych. 1. Skrzynki START i STOP Skrzynki schematów blokowych: 2. Skrzynka deklaracji zmiennych

3. Skrzynka wprowadzania danych 4. Skrzynka wyliczeniowa Skrzynka wyprowadzania wyników 5. Skrzynka warunkowa 6. Skrzynka wywołania podprogramu

Schemat blokowy jest graficznym przedstawieniem zbioru operacji tworzących pełny algorytm i wzajemnych powiązań między nimi, uwzględniający kolejność wykonywania operacji. Zasady budowania schematów blokowych: - każda operacja, relacja lub informacja jest umieszczana w skrzynce - kolejność wykonywania operacji wyznaczają połączenia między skrzynkami - każde połączenie jest zaczepione początkiem do skrzynki, a końcem do innej skrzynki lub innego połączenia, żadne połączenie nie rozdziela się - rozgałęzienie sieci działań możliwe jest tylko dzięki skrzynkom warunkowym - schemat posiada jedną skrzynkę START i co najmniej jedną skrzynkę STOP - ze skrzynki START można przejść do skrzynki STOP poruszając się po sieci działań - ze skrzynki START można dotrzeć wzdłuż połączeń do dowolnej innej skrzynki schematu - z każdej skrzynki istnieje przejście wzdłuż połączeń do jednej ze skrzynek STOP

1) Schemat blokowy liniowy Trzy struktury schematów blokowych Schemat blokowy liniowy występuje w zadaniach, w których każda z operacji elementarnych nie zawiera relacji (warunku) i powtórzeń (iteracji). Realizacja poszczególnych sąsiednich operacji następuje według ustalonej kolejności od operacji początkowej do końcowej. Przykłady: liczenie pola powierzchni, obwodu figur płaskich.

2) Schemat blokowy z rozgałęzieniami Schematy blokowe z rozgałęzieniami spotyka się w zadaniach dla których kolejność poszczególnych etapów w rozwiązaniu może się zmieniać w zależności od warunków określonych w sformułowaniu problemu i danych wprowadzonych do algorytm. Cechą tych algorytmów jest to, iż w trakcie realizacji przechodzi się tylko po jednej z możliwych dróg, przy czym każdy oddzielny etap realizacji algorytmu wykonywany jest dokładnie jeden raz. W rozwiązaniach wykorzystywane są drzewa logiczne. Przykłady: znajdowanie liczby najmniejszej, rozwiązanie równania liniowego i kwadratowego

3) Schemat blokowy cykliczny - z pętlą a) ze sprawdzeniem warunku b) ze sprawdzeniem warunku na początku na końcu

Schematy blokowe cykliczne: Algorytmy dla problemów wymagających powtarzania poszczególnych etapów procesu obliczeniowego nazywamy cyklicznymi (czyli z pętlą). Przez pętlę w schemacie blokowym rozumiemy tą część schematu, która opisuje drogę (obwód) zamkniętą zgodnie z kierunkiem połączenia (obiegu). Pętla stanowi graficzny opis powtarzania czynności. Ciąg wszystkich czynności wykonywanych przy jednokrotnym przebiegu pętli nazywamy cyklem pętli. W każdej pętli musi wystąpić: co najmniej jedna skrzynka operacyjna (np. wyliczeniowa) zawierająca opis powtarzanej czynności, modyfikacja w każdym cyklu co najmniej jednej wartości zmiennej występującej w pętli, skrzynka decyzyjna z warunkiem-pytaniem, czy pętla ma być nadal powtarzana czy też zakończona. Często w pętli występują zmienne nazywane licznikami, których wartości w algorytmie określają ilość zrealizowanych cykli pętli.

Na proces rozwiązywaniu zadania składa się : Formułowanie zadania Rozwiązanie zadania i zapis jego rozwiązania Sprawdzenie i wartościowanie rozwiązania zadania Formułowanie zadania obejmuje: Wyodrębnienie danych wejściowych (założeń) i dokonanie ich weryfikacji co do poprawności (wartościowanie) Stwierdzenie czy możliwe jest jego rozwiązanie Rozwiązywanie zadania to sposób postępowania uwzględniający: Dane lub założenia ze sformułowania zadania Realizację takich czynności jak określanie, konstruowanie, wnioskowanie, sprawdzanie i powtarzanie Uzyskiwanie wyniku w postaci odpowiedzi na postawione w zadaniu pytanie i jego wartościowanie (sprawdzenie poprawności) Etapy w informatycznym rozwiązywaniu zadania: Sformułowanie zadania Konstruowanie algorytmu rozwiązania jako schematu postępowania Konstruowanie schematu blokowego - z zaznaczeniem sieci działań jako graficznej reprezentacji algorytmu Napisanie programu komputerowego jako zapisu algorytmu w ustalonym języku programowania Weryfikacja (tzn. analiza i testowanie) programu i jego uruchomienie

Przykłady zadań jednostkowych i klas zadań: 1. Rozwiązać równanie 3*x+1=0, jednostkowe zadanie (możliwy tylko jeden wynik) 2. Rozwiązać równanie a*x+b=0, gdy dane są liczby rzeczywiste a,b. klasa zadań (wiele wyników zależnie od danych wejściowych) 3. Obliczyć x=(3.64*0.381) / 12.5, jednostkowe zadanie (możliwy tylko jeden wynik) Wyznaczyć x=(a*b)/c, gdy dane są liczby rzeczywiste a,b,c, przy czym c 0, klasa zadań (wiele wyników zależnie od danych wejściowych)

Znajdowanie liczby najmniejszej: Wskazać najmniejszą spośród trzech różnych liczb: a,b,c. Inne sformułowanie zadania: Mając trzy różne liczby a,b,c. Wyznaczyć liczbę m, tak aby m=a lub m=b lub m=c, przy czym m a, m b, m c. Możliwe sytuacje: 1. a<b<c 2. a<c<b 3. b<a<c 4. b<c<a 5. c<a<b 6. c<b<a

Zmienne, tablice, rekordy: Zmienna służy do przechowywania pojedynczej danej. Metody nadania wartości zmiennej poprzez: wprowadzenie danej przypisanie wartości zmienej przypisanie nowej wartości (modyfikacji wartości zmiennej) Instrukcja przypisania nadaje zmiennej stojącej po lewej stronie znaku przypisania wartość wyliczoną na podstawie wyrażenia stojącego po stronie prawej.

Tablica jest zbiorem ustalonej liczby elementów tego samego typu. Dostęp do poszczególnych elementów następuje za pomocą indeksów ( ciągów indeksów). B = [ B(1), B(2),,B(n) ] - tablica jednowymiarowa (wektor) A(1,1) A(1,2)... A(1,n) A(2,1) A(2,2)... A(2,n) A=........................ A(m,1) A(m,2)... A(m,n) - tablica dwu-wymiarowa o rozmiarze m n (m-wierszy, n-kolumn); macierz Element tablicy A(i,j); dwa indeksy i - nr. wiersza elementu j - nr. kolumny elementu Rekordem nazywamy złożoną strukturę danych, której składowe zwane polami mogą mieć różne charakterystyki (mogą być różnych typów). Pola mogą być strukturami złożonymi, ale liczba pól rekordu jest z góry ustalona. Przykład: REKORD-DATA Pole Typ Rok Liczba całkowita Miesiąc 1.. 12 Dzień 1.. 31

REKORD-PERSONALIA Pole Typ Nazwisko Tekst Imię Tekst Imię ojca, imię matki Tekst Data urodzenia REKORD-DATA Miejsce urodzenia Tekst Stan cywilny (kawaler, panna, żonaty, zamężna)