Podstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu

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

Podstawy Informatyki. Programowanie. Metalurgia, I rok. Co to jest algorytm? Istotne cechy algorytmu

Podstawy Informatyki. Metalurgia, I rok niestacjonarne. Wykład 2 Algorytmy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Algorytm. a programowanie -

Definicje. Algorytm to:

1 Wprowadzenie do algorytmiki

Wprowadzenie do algorytmiki

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

Algorytm. Krótka historia algorytmów

Technologie informacyjne - wykład 12 -

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

Podstawy Informatyki. Algorytmy i ich poprawność

Definicja algorytmu brzmi:

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytmy. Paweł Dudzik, Adrian Guzik. Kraków, 6 lipca AGH Kraków. Paweł Dudzik, Adrian Guzik (AGH Kraków) Algorytmy Kraków, 6 lipca / 37

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

ALGORYTMY I PROGRAMY

2.8. Algorytmy, schematy, programy

POLITECHNIKA OPOLSKA

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

POLITECHNIKA OPOLSKA

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

Algorytmy. Programowanie Proceduralne 1

Zapis algorytmów: schematy blokowe i pseudokod 1

Podstawy programowania

Podstawy Programowania Algorytmy i programowanie

Metodyki i techniki programowania

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

Algorytmy. Programowanie Proceduralne 1

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

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

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

INFORMATYKA. Algorytmy.

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

Algorytmy od problemu do wyniku

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

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

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

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Języki programowania zasady ich tworzenia

Wstęp do informatyki- wykład 2

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

Algorytm. Krótka historia algorytmów

Algorytmy, reprezentacja algorytmów.

Języki i metodyka programowania

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

Algorytm. Algorytmy Marek Pudełko

Język ludzki kod maszynowy

Podstawy algorytmiki Dariusz Piekarz

Sposoby przedstawiania algorytmów

Wykład z Technologii Informacyjnych. Piotr Mika

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

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

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

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

Metodyki i techniki programowania

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

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

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

Algorytmy i struktury danych. Wykład 4

Technologia informacyjna Algorytm Janusz Uriasz

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

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Programowanie i techniki algorytmiczne

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

Algorytmy i struktury danych

Programowanie komputerów

Zadanie 1. Potęgi (14 pkt)

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Podstawy i języki programowania

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy Programowania

EGZAMIN MATURALNY Z INFORMATYKI

Schematy blokowe. Algorytmy Marek Pudełko

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

Programowanie w języku Python. Grażyna Koba

Algorytmy i struktury danych. wykład 2

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Temat 20. Techniki algorytmiczne

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

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Algorytmy i struktury danych

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

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

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

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

Wstęp do Informatyki

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

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

Poprawność algorytmów

Rekurencja (rekursja)

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

Podstawy programowania C. dr. Krystyna Łapin

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

Transkrypt:

Podstawy Informatyki Inżyria Ciepła, I rok Wykład 7 Algorytmy Sformułowa problemu. Programowa Opracowa metodyki rozwiązania. Opracowa algorytmu. Napisa kodu źródłowego (zakodowa) w wybranym języku (Pascal, Fortran, C++, itp.). Kompilacja kodu źródłowego Uruchomie programu na komputerze. Wykona obliczeń. Analiza otrzymanych wyników. Usunięcie błędów programu (debugging). Co to jest algorytm? Jeżeli mamy do wykonania jakieś zada, budujemy sposób, przepis realizacji tego zadania. Taki przepis to algorytm. Przykłady: przepis kucharski, instrukcja składania mebla/urządzenia..., zapis nutowy, wykonywa pisemne dodawania/mnożenia/dzielenia... Algorytm (definicja formalna) to sposób postępowania (przepis) umożliwiający rozwiąza określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności do wykonania, ze wskazam ich następstwa. Istotne cechy algorytmu Definicja zadania = co algorytm ma zrobić. Opis ciągu czynności, które po kolei mają być wykonane. Czynności te muszą być na tyle proste (i możliwe do wykonania), aby wykonawca algorytmu mógł je bez dodatkowego tłumaczenia, wykonać operacje elementarne; odpowiednio dobrany poziom szczegółowości. Skończona ilość operacji elementarnych skończony czas działania. Algorytm dostaje pewne informacje (dane wejściowe) i zwraca jakieś (oczekiwane) wyniki dane wyjściowe. Może istć kilka przepisów, które dają w efekcie te same wyniki. Algorytm Pochodze nazwy: od łacińskiego tłumaczenia tytułu dzieła perskiego matematyka Muhammeda ibn Musy Al-Khwarizmi (780-850AD) Algoritmidenumero Indorum (Obliczenia z użyciem cyfr indyjskich). W książce tej podał on algorytmy wykonywania działań arytmetycznych, m.in. rozwiązywa równań liniowych i prostych kwadratowych na liczbach dziesiętnych. Algorytmika - dział wiedzy zajmujący się badam algorytmów Sposoby zapisu algorytmu: słowami, za pomocą schematu blokowego, w pseudokodzie, w jednym z języków programowania Program - formal spisana wersja algorytmu. Algorytm sekwencyjny - opis słowny Postawie problemu: - Co należy zrobić, aby zobaczyć film Obywatel? Algorytm 1a: Idź do kina Kup bilet Obejrzyj film Wróć do domu Algorytm powyższy zawiera 4 podstawowe składniki, z których każdy wymaga zakończenia wykonania pewnej akcji przed rozpoczęciem następnej. W komputerze każdy składnik będzie zapisany jako instrukcja lub grupa instrukcji (procedur Algorytm powin być kolejno uściślany, by mógł być w swojej ostatecznej postaci zrozumiały dla komputera, oraz by uwzględniał wszystkie okoliczności przewidziane przez projektanta.

Algorytm 1b: POCZĄTEK jeżeli wyświetlają filmu " Obywatel to znajdź sobie inne zajęcie { idź do kina jeżeli jest kolejka to ustaw się w kolejce (na końcu?) dopóki przed Tobą stoją ludzie wykonuj przesuwaj się do przodu jeżeli są wolne miejsca to {kup bilet, znajdź swoje miejsce dopóki trwa projekcja wykonuj oglądaj film zaklnij po cichu, wyjdź z kina wróć do domu KONIEC Przykład algorytmu: sumowa zarobków pracowników Dane: lista pracowników z zarobkami (tablica A) (1) zanotuj "na boku"(zmienna suma) liczbę 0; Powtarzaj (2) przeglądaj ankiety i dodawaj zarobki każdego pracownika do liczby "na boku"; Aż do (3) kiedy osiągsz koc listy, przedstaw wartość liczby "na boku" jako wynik (sum Cechy tego algorytmu: Działa na różnych zestawach danych, ale daje poprawne wyniki. Sam tekst algorytmu jest ograniczony i krótki, ale proces który opisuje zmienia się wraz z długością listy pracowników. Algorytmy przedstawione powyżej wykorzystują język naturalny oraz słowa kluczowe. Słowa kluczowe definiują podstawowe struktury sterujące programu oraz procesy podejmowania decyzji występujących w algorytmie: jeżeli... to... dopóki... wykonuj powtarzaj... aż do Te słowa kluczowe mają swoje odpowiedniki w każdym z języków programowania. Wprowadze słów kluczowych do opisu słownego algorytmu jest częścią tzw. pseudo - kodu, wykorzystywanego do zapisu algorytmu. Szczegółowy algorytm jest podstawą dla prawidłowo zakodowanego programu. Algorytm z wcięciami pozwala na bardziej czytelny zapis, i stanowi formalną metodę ułatwiającą śledze dróg programu. Oprócz algorytmów słownych, często stosuje się zapis algorytmu w postaci schematów blokowych. Schemat blokowy (block diagram, flowchart) to diagram, na którym algorytm jest reprezentowany przez opisane figury geometryczne, połączone liniami zgod z kolejnością wykonywania czynności wynikających z przyjętego algorytmu rozwiązania zadania; pozwala dostrzec istotne etapy algorytmu i logiczne zależności między nimi; START czytaj: n,a(i), dla i=1,...n suma=0 Start Schematy blokowe Stop suma=suma + a(i) instrukcja i=i+1 czyta danych, i n? wydruk wyników druk: suma STOP

Algorytm Euklidesa strzałka wskazuje kierunek przebiegu sterowania programem, łączy inne bloki, operand (prostokąt) wszystkie operacje z wyjątkiem instrukcji wyboru, predykat (romb) instrukcja wyboru, etykieta (owal) początek lub koc sekwencji schematu. wejście/wyjście (równoległobok). Problem: mając dane dwie liczby naturalne a i b znaleźć ich największy wspólny dzielnik. Pierwot problem ten sprowadzał się do czysto geometrycznego problemu znalezienia wspólnej miary dla dwóch odcinków. Zada algorytmiczne: Dane: a, b N, Wynik: NWD(a, Opis słowny: dane są dwie liczby a i b; jeśli a jest równe b, to NWD jest równe a, w przeciwnym wypadku, jeżeli a jest większe od b, to zmień a na równe a - b, a jeżeli a jest mjsze od b to zmień b na b - a; zacznij od początku. a=a-b Schemat blokowy START czytaj: a, b a<>b a>b b=b-a Drukuj a STOP Algorytm Euklidesa (metoda 1) Pseudokod loop if a = b then return a; else if a > b then a := a -b; else b := b -a; Język C while(a!= b) { if(a > b) a -= b; else b -= a; return a; Algorytm Euklidesa (metoda 2) Język C if(a < b) { t = a; a = b; b = t; while(b!= 0) { c = a % b; a = b; b = c; return a;

Przy opracowywaniu algorytmu zwracamy uwagę na: jego poprawność semantyczną (składnię), prostotę, czas działania, ilość zajmowanej pamięci komputera, optymalność, ograniczenia Zda proste Określa elementarny lub bardziej złożony krok algorytmu. Jeżeli jest to krok elementarny, to wystarczy przy tworzeniu programu zapisać ten krok w języku programowania. Jeżeli natomiast jest to złożony krok algorytmu, to podczas uszczegółowienia algorytmu zosta on zastąpiony sekwencją prostszych zdań. Przykład elementarnego kroku - instrukcja podstawienia (przypisania): przypisz zmiennej suma wartość zero FORTRAN: suma = 0.0 C: suma = 0.0 ; PASCAL: suma :=0.0 ; Zda złożone: oblicz pierwiastek równania kwadratowego PODEJMOWANIE DECYZJI W PROGRAMIE Jest to złożony krok algorytmu wymagający uszczegółowienia. W programie jest to realizowane poprzez instrukcję złożoną grupującą ciąg instrukcji prostych. Zda decyzyjne jeśli Zda to zawiera strukturę opisującą decyzje podejmowane w algorytmie. Istją 2 rodzaje struktur: struktura prosta : jeśli... to struktura z alternatywą: jeśli... to... w przeciwnym razie Struktura prosta jeśli warunek to zda Przykład: jeśliśrednia ocen studenta jest większa od 4.5 to wpisz studenta na listę nagród gdzie warunek jest wyrażem przyjmującym dwie wartości: - wartość prawdy, - wartość fałszu Jeżeli warunek przyjmie wartość prawdy, to wykonuje się zda, a gdy warunek przyjmie fałsz, to zda zosta wykonane. warunek : średnia ocen studenta jest większa od 4.5 Jeżeli warunek jest prawdziwy, to wykonywane jest zda: wpisz studenta na listę nagród

Struktura z alternatywą jeśli warunek to zda 1 zda 2 Rozważmy następujący problem: W zależności od wartości jakie przyjmuje zmienna x (np ocena) należy wydrukować następujące komunikaty: dla x <3 komunikat negatywna dla 3 <= x <= 5 komunikat pozytywna dla x > 5 komunikat możliwa Algorytm przyjmie postać: jeżeli x <3 to wypisz negatywna jeżeli 3 <= x i x <= 5 to wypisz pozytywna wypisz możliwa W programach numerycznych warunkiem jest najczęściej wyraże logiczne:, lub, i Np.: a lub b, (a lub b) i c,... W wyrażeniach logicznych występują też relacje: =, <>, >, <, <=, >= Np.: a > b, c <= d FORTRAN: IF ( warunek ) THEN zda 1 ENDIF IF ( warunek ) THEN zda 1 zda 2 ENDIF Przykład zdania decyzyjnego: jeśli (a > b) lub (c <= d) to podstaw x = 0 PASCAL: IF warunek THEN zda 1; C: IF warunek zda 1; IF warunek THEN zda 1 zda 2; IF warunek zda 1; zda 2;