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

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

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

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

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Definicje. Algorytm to:

1 Wprowadzenie do algorytmiki

Algorytm. a programowanie -

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

Wprowadzenie do algorytmiki

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Technologie informacyjne - wykład 12 -

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

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

2.8. Algorytmy, schematy, programy

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

Podstawy Informatyki. Algorytmy i ich poprawność

Definicja algorytmu brzmi:

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Zapis algorytmów: schematy blokowe i pseudokod 1

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

Algorytmy. Programowanie Proceduralne 1

Algorytmy. Programowanie Proceduralne 1

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

ALGORYTMY I PROGRAMY

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

Algorytm. Krótka historia algorytmów

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

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

Podstawy programowania

POLITECHNIKA OPOLSKA

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

INFORMATYKA. Algorytmy.

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

POLITECHNIKA OPOLSKA

Technologia informacyjna Algorytm Janusz Uriasz

Języki programowania zasady ich tworzenia

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

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

Metodyki i techniki programowania

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

Podstawy Programowania Algorytmy i programowanie

Język C część 2. Podejmowanie decyzji w programie. if else. switch

Programowanie i techniki algorytmiczne

Algorytmy i struktury danych. wykład 2

Wstęp do informatyki- wykład 2

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

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

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

Algorytmy od problemu do wyniku

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

Temat 20. Techniki algorytmiczne

Wykład z Technologii Informacyjnych. Piotr Mika

Schematy blokowe. Algorytmy Marek Pudełko

Języki i metodyka programowania

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

Język ludzki kod maszynowy

Podstawy Programowania

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

Algorytmy i schematy blokowe

Algorytmy, reprezentacja algorytmów.

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

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

Podstawy i języki programowania

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Poprawność algorytmów

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

Programowanie w języku Python. Grażyna Koba

Algorytmy i struktury danych. Wykład 4

Podstawy algorytmiki Dariusz Piekarz

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

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

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

Rekurencja (rekursja)

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

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

ECDL Podstawy programowania Sylabus - wersja 1.0

Sposoby przedstawiania algorytmów

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

Zadanie 1. Potęgi (14 pkt)

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

Wstęp do Informatyki

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

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

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

Algorytmy i struktury danych

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Metodyki i techniki programowania

WHILE (wyrażenie) instrukcja;

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

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Warsztaty dla nauczycieli

Podstawy programowania w języku C

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

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

Transkrypt:

Podstawy Informatyki Metalurgia, I rok Wykład 4 Algorytmy Sformułowa problemu. 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ń. Programowa 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 czynnosci, 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. Skonczona 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. Pochodze nazwy: Algorytm od nazwiska w wersji łacińskiej Algorithmus, Algorismus perskiego matematyka Muhammeda ibn Musy zwanego al Chuwarismi, żyjącego w IX w (podał on algorytmy wykonywania działań arytmetycznych 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 Artysta? 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 (procedura). 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 "Artysta 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 (suma). 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ścia 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,b). 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. Schemat blokowy START czytaj: a, b a<>b Drukuj a a=a-b a>b b=b-a STOP Pseudokod loop Algorytm Euklidesa (metoda 1) 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: a). IF ( warunek ) THEN zda 1 ENDIF b). IF ( warunek ) THEN zda 1 ELSE zda 2 ENDIF Przykład zdania decyzyjnego: jeśli (a > b) lub (c <= d) to podstaw x = 0 PASCAL: a). IF warunek THEN zda 1; C: a). IF warunek zda 1; b). IF warunek THEN zda 1 ELSE zda 2; b). IF warunek zda 1; ELSE zda 2;

Instrukcja decyzyjna wybierz Zda wybierz służy do wyboru jednej z kilku możliwości. Ma ono postać: wybierz przełącznik z wartość_1: zda_1 wartość_n: zda_n akcja awaryjna Przykład: wybierz p z 1: wykonaj wariant pierwszy 2: wykonaj wariant drugi 3: wykonaj wariant trzeci wydrukuj komunikat o błędzie Przykład: Program cenzurka1 wybierz ocena z 5: pisz( bardzo dobry ); 4: pisz( dobry ); 3: pisz( dostateczny ); 2: pisz( dostateczny ); pisz( blad danych ) Koc Program cenzurka2. jeżeli ocena = 5 to pisz( bardzo dobry ) jeżeli ocena = 4 to pisz( dobry ) jeżeli ocena = 3 to pisz( dostateczny ) jeżeli ocena = 2 to pisz( dostateczny ) pisz( blad danych ) Blok instrukcji W przypadku, gdy w danej instrukcji, np. instrukcji warunkowej, powinna wykonać się więcej niż jedna instrukcja, wówczas stosowany jest blok instrukcji. C: { instrukcja1; instrukcja2; instrukcja3; Pascal: begin instrukcja1; end; instrukcja2; instrukcja3; Iteracja warunkowadopóki(while) dopóki(wyraże) wykonuj instrukcja1; wyraże instrukcja1 Działa pętli: Obliczana jest wartość wyrażenia Jeśli wyraże jest równe fałszywe to instrukcja1 jest w ogóle wykonywana Wpp. wykonywana jest instrukcja1. Ponow obliczana jest wartość wyrażenia i ponow sprawdzana jego prawdziwość itd. Jeśli wyraże będzie fałszywe, to działa pętli zosta przerwane Instrukcja1 może wykonać się ani jeden raz! Uwaga: oblicze wartości wyrażenia odbywa się przed wykonam instrukcji1

Iteracja warunkowawykonuj...aż do... (do... until...) wykonuj instrukcja1 aż do(wyraże) ; instrukcja1 wyraże Instrukcja1 musi wykonać się co najmj jeden raz! Działa pętli: Wykonywana jest instrukcja1 Obliczana jest wartość wyrażenia Jeśli wyraże jest równe fałszywe to instrukcja1 jest wykonywana kolejny raz Ponow obliczana jest wartość wyrażenia i ponow sprawdzana jego prawdziwość itd. Jeśli wyraże będzie prawdziwe, to działa pętli zosta przerwane Uwaga: oblicze wartości wyrażenia odbywa się po wykonaniu instrukcji1 Iteracja ograniczonadla(for) dla <zmienna> od <w1<> do <w2> (z krokiem <k>) wykonuj instrukcja1 ; Działa pętli: <zmienna> <w1> <zmienna> + <k> zmienna <w2> instrukcja1 Instrukcja1 może wykonać się ani jeden raz! Wykona instrukcji inicjalizujących pętlę <zmienna> <w1> Sprawdze wyrażenia warunkowego <zmienna> <w2>. Jeśli fałsz, praca pętli zostaje zakończona, Jeśli prawda, wykonana zosta instrukcja1 Wykona instrukcji zwiększ <zmienna> o <k> Uwaga: sprawdze wyrażenia <zmienna> <w2> odbywa się przed wykonam instrukcja1 Instrukcje wejścia/wyjścia Umożliwiają komunikowa się programu z użytkownikiem. Umożliwiają czyta danych jak rówż wypisywa komunikatów i wyników prowadzonych obliczeń. Np.: Pascal - read(a,b); { z klawiatury wprowadzamy : np. 12 5 writeln(a); {drukujemy na ekra wartość a (np. 12)