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

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

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

Wprowadzenie do algorytmiki

Definicje. Algorytm to:

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

Algorytm. Krótka historia algorytmów

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wykład z Technologii Informacyjnych. Piotr Mika

Wstęp do informatyki

1 Wprowadzenie do algorytmiki

Algorytm. a programowanie -

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

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

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

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

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

Algorytm. Krótka historia algorytmów

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

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Proste programy w C++ zadania

Algorytmy i schematy blokowe

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

Podstawy Programowania Algorytmy i programowanie

Definicja algorytmu brzmi:

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

Algorytmy, reprezentacja algorytmów.

WHILE (wyrażenie) instrukcja;

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

Technologia informacyjna Algorytm Janusz Uriasz

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

Język ludzki kod maszynowy

Algorytmy i struktury danych. wykład 2

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

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

Podstawy Programowania Podstawowa składnia języka C++

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

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Poprawność semantyczna

WYRAŻENIA ALGEBRAICZNE

WHILE (wyrażenie) instrukcja;

Gimnazjum w Tęgoborzy - Algorytmika Strona 1 z 22 mgr Zofia Czech

Technologie informacyjne - wykład 12 -

ALGORYTMY I PROGRAMY

Podstawy programowania

Algorytmika i pseudoprogramowanie

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

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

Cw.12 JAVAScript w dokumentach HTML

do instrukcja while (wyrażenie);

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

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Instrukcje sterujące

Wprowadzenie komentarzy do programu

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

Model odpowiedzi i schemat oceniania do arkusza I

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

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

1 Podstawy c++ w pigułce.

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Instrukcje sterujące. Programowanie Proceduralne 1

Języki programowania zasady ich tworzenia

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

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

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

6. Pętle while. Przykłady

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

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

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

Instrukcja warunkowa i wyboru

INFORMATYKA. Algorytmy.

PRÓBNA NOWA MATURA z WSiP. Matematyka dla klasy 2 Poziom podstawowy. Zasady oceniania zadań

JAVAScript w dokumentach HTML - przypomnienie

Zapis algorytmów: schematy blokowe i pseudokod 1

Rekurencja (rekursja)

Wstęp do Programowania Lista 1

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Algorytmy i struktury danych. Wykład 4

4. Funkcje. Przykłady

Temat 20. Techniki algorytmiczne

Paradygmaty programowania

5. Rozwiązywanie układów równań liniowych

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

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

Algorytmy. Programowanie Proceduralne 1

Plik pobrany ze strony

Ćwiczenie 1. Wprowadzenie do programu Octave

Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony

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

Podprogramy. Procedury

Ćwiczenie 1. Wprowadzenie do programu Octave

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Sposoby przedstawiania algorytmów

Transkrypt:

1. Algorytmy ZADAIE (warunki wejsciowe) Dane wejscio we OPERACJE Dane wyjsciowe Struktura i funkcjonowanie algorytmu Zadanie wykonane Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi z IX w. ne. Pierwszym znanym algorytmem jest algorytm Euklidesa (IV w. pne). Algorytm jest to skończony ciąg reguł służący do przekształcenia zbiorów danych wejściowych w inny zbiór danych wyjściowych (wyniki, rezultaty procesu przetwarzania). Każdy algorytm charakteryzuje się następującymi cechami: jednoznaczność algorytm nie może pozostawiać wątpliwości co do wyboru kolejnych operacji skończoność - dla każdego zestawu poprawnych danych wejściowych algorytm powinien dać wyniki po skończonej liczbie operacji uniwersalność algorytm powinien rozwiązywać nie jedno szczególne zadanie lecz całą klasę zadań poprawność, tzn. dla każdego poprawnego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników. określoność, tzn każda instrukcja jest na tyle szczegółowo opisana aby była wykonalna dla użytkownika 1.1. Składniki algorytmu Podstawowymi elementami każdego algorytmu są dane oraz operacje 1.1.1. Dane ajogólniej dane dzielimy na wejściowe i wyjściowe ale każde z nich ma określoną strukturę. Struktura danych jest takim sposobem przechowywania danych w komputerze aby ułatwiać ich wykorzystanie. Wyróżniamy: typ liczbowy (np. całkowity, zmiennoprzecinkowy, stałoprzecinkowy) typ znakowy (znaki alfanumeryczne) typ logiczny tablice słownik zbiór rekord plik kolejkę stos drzewo 1.1.2. Operacje Operacje są ciągami jednorodnych czynności wykonywanych przez algorytm. W algorytmach wyróżnia się operacje: arytmetyczne - składające się z działań arytmetycznych, takich jak dodawanie, pierwiastkowanie itd. logiczne - działania porównania, ustalania wartości logicznej, koniunkcji, negacji, alternatywy itp. sterujące - umożliwiają poruszanie się po algorytmie stosownie do aktualnych wartości danych parametrycznych i argumentów branych pod uwagę operacji 1.2. Metody opisu algorytmu Algorytmy można opisać m. in. za pomocą: języka naturalnego, schematu owego, pseudojęzyka lub formalnego języka programowania str. 1

1.2.1. Schemat owy Schematy owe są tzw. metajęzykiem. Oznacza to, że jest to język bardzo ogólny, służy do opisywania algorytmów w taki sposób, by na jego podstawie można było je zaimplementować w każdym języku. Schematy owe zalicza się również do grupy języków" graficznych. W schemacie owym można wyróżnić następujące grupy elementów: Strzałki określają połączenie elementów oraz kierunek przepływu danych. Operandy charakteryzuję wszystkie operacje, instrukcje bez wyrażeń warunkowych. Blok WEJŚCIA / WYJŚCIA - służy do wprowadzania i wyprowadzania danych do/z programu Blok OPERACYJY zawiera instrukcje, w wyniku których następuje zmiana wartości, postaci lub miejsca zapisu zmiennych/danych. Predykaty charakteryzuję wyłącznie wyrażenie decyzyjne. Blok WARUKOWY- określa wybór jednej z dwóch możliwych dróg działania Instrukcja warunkowa po podstawieniu zmiennych jest zdaniem logicznym jest prawdą lub fałszem. Blok SELEKCJI- określa wybór jednej z możliwych dróg działania. Zbiory wartości występujące w instrukcji wyboru powinny być rozłączne i dawać w sumie zbiór wszystkich wartości, które może przyjmować zmienna. Etykiety charakteryzują początek i koniec programu. Do grupy etykiet zalicza się również elementy przeniesienia do innego miejsca danego schematu lub odwołanie do innego schematu. Blok GRAICZY oznacza początek lub koniec działania algorytmu ŁĄCZIK WEWĘRZY - służy do łączenia różnych części schematu znajdujących się na tej samej stronie. ŁĄCZIK ZEWĘRZY - służy do łączenia różnych części schematu znajdujących się na różnych stronach. Zasady zapisu schematu owego Schemat ma tylko jeden SAR i przynajmniej jeden SOP Bloki połączone są strzałkami wyznaczającymi kolejność instrukcji Do każdego u prowadzić może kilka linii Z każdego u (z wyjątkiem PREDYKAU i SOPU) wychodzi dokładnie jedna linia Z WARUKU wychodzą dokładnie 2 drogi (ozn. AK i IE), ze SOPU nie wychodzi żadna droga. Linie mogą sie łączyć, a punkt połączenia nazywa sie punktem zbiegu W danym u są wykonywane wszystkie instrukcje albo żadna Relacje większości, równości, operacje dodawania, mnożenia, koniunkcji, alternatywy, itd. zapisywane są za pomocą powszechnie używanych w matematyce symboli. Przypisanie wartości do pewnej zmiennej oznaczane jest za pomocą operatora := SAR CZYAJ a Programik wyznaczający moduł z liczby a. apisany jest w schemacie owym i pseudojęzyku. Ma:=a a 0 Pisz Ma Ma:=-a Programe Moduł BEGI Read a If a 0 then Ma:=a Else Ma:=-a Write Moduł z liczby a = Ma ED str. 2 SOP

1.2.2. Pseudojęzyk Konwencja notacyjna z pogranicza języka naturalnego i języka programowania. Zwykle forma zapisu przypomina jeden z wielu występujących dziś języków programowania, stanowiąc mieszaninę konstrukcji zapożyczonych z wielu z nich. (Pseudojęzyk używany na zajęciach opiera się głównie na Pascalu) Podstawowe instrukcje: Instrukcje ujące ciąg instrukcji u Instrukcja wejścia/wyjścia READ a; WRIE Równanie nie ma rozwiązania Instrukcja podstawiania - B:=a; waga:=40.4; Instrukcje warunkowe if warunek then I II endif instrukcji I warunek instrukcji II Instrukcje pętli FOR For i:=wart.początkowa to wart.końcowa step krok do For i in nazwa kolejki, słownika, zbioru step krok do i:=wart.początkowa i wart.końcowa i:=i+krok instrukcji Instrukcje pętli WHILE While warunek do endwhile Instrukcje pętli DO WHILE Do While warunek str. 3

Podprogram - to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu. Podobnie jak w Pascalu i Adzie podprogramy podzielimy na funkcje i procedury: o Funkcja wykonuje obliczenia i zwracać jakąś wartość, nie powinna natomiast mieć żadnego innego wpływu na działanie programu (np. funkcja wyznaczająca max w podanej tablicy). Dane są wprowadzane jako parametry. o Procedura nie zwraca żadnej wartości, zamiast tego wykonuje pewne instrukcje (np. procedura wprowadzania danych) 1.3. Rodzaje algorytmów: Algorytmy sekwencyjne (liniowe) to algorytmy, w których wszystkie kroki wykonuje się w kolejności takiej, w jakiej zostały zapisane. Przykładem jest algorytm wyznaczanie pola kwadratu: 1. Podaj bok kwadratu a 2. Oblicz P=a^2 3. apisz: Pole kwadratu wynosi P Algorytmy rozgałęzione to algorytmy które dopuszczają alternatywność danego zadania w zależności od spełnienia określonych warunków. Przykładem jest algorytm wyznaczanie wartości bezwzględnej liczby: 1. Podaj liczbę a 2. Jeżeli a>=0 to Ma:= a 3. Jeżeli nie jest spełniony warunek a>=0 to Ma:=-a 4. Pisz: Moduł z liczby a wynosi Ma. Algorytmy iteracyjne charakteryzują się występowaniem u czynności, które są powtarzane aż do uzyskania jakiegoś celu; w programowaniu takie postępowanie nazywamy pętlą. Iteracje występują w dwóch podstawowych odmianach: o iteracja z określoną liczbą powtórzeń : wykonuj czynność dokładnie razy. p. wyznaczanie n-tego wyrazu ciągu arytmetycznego o pierwszym wyrazie a1 i różnicy r: 1. Podaj wyraz początkowy ciągu a1 2. Podaj różnicę r 3. Podaj liczbę n 4. Podstaw an:=a1 5. Powtórz n-1 razy instrukcje A A. Podstaw an:=an+r 1. Pisz: n-ty wyraz ciągu arytmetycznego o pierwszym wyrazie a1 i różnicy r wynosi an o iteracja warunkowa: wykonaj czynność, dopóki jest spełniony warunek. p. wyznaczanie iteracyjne silni wg. wzoru: n!=1 2... (n-1) n: FUCIO silniaier(n 0 ) 1. Podaj liczbę n 2. Podstaw s:=1 s:=1 3. Podstaw i:=1 For i:=1 to n step 1 do 4. Dopóki i<=n wykonuj instrukcję A i B s:=s i A. Podstaw s:=s i Return s B. Podstaw i:=i+1 5. Pisz: n! wynosi s Algorytmy rekurencyjne to algorytmy, w których występuje funkcja/procedura wywołująca samą siebie. Wywoływanie takie kończy się spełnieniem warunku zatrzymania rekurencji. Każda procedura rekurencyjna poza warunkiem zatrzymana rekurencji ma określoną zależność rekurencyjną oraz określony poziom rekurencji. p. wyznaczanie silni wg. wzoru: n!= n!=n (n-1)! gdy n>0 0!=1 gdy n=0 FUCIO silniarek(n 0 ) If n=0 then s:=1 s:=n silniarek(n-1) Return s str. 4

Zadania instrukcja warunkowa, funkcje matematyczne 1.1. Określ, jakie wartości zwracają poniższe funkcje, dla argumentu x=-2 a jakie dla x=4. arysuj schematy owe. a) Function wa (x) BEGI ED 1.2. apisz algorytm: b) Function wb (x) BEGI { } ED c) Function wc (x) BEGI ED a) rozwiązujący równanie postaci ax+b=0 (o podanych przez użytkownika współczynnikach). b) rozwiązujący równanie kwadratowe (postaci ax 2 +bx+c=0) o podanych przez użytkownika współczynnikach. c) obliczający - w zależności od wyboru użytkownika - pole powierzchni lub objętość kuli o promieniu podanym przez użytkownika. d) który pobiera od użytkownika trzy liczby oznaczające długości odcinków. Jeśli z podanych odcinków można zbudować trójkąt, to program oblicza pole tego trójkąta (ze wzoru Herona: pole trójkąta o bokach a,b,c to pierwiastek z liczby p(p-a)(p-b)(p-c), gdzie p - połowa sumy boków). W przeciwnym razie pojawia się komentarz, że podane liczby nie mogą być bokami trójkąta. e) sprawdzający, czy podany przez użytkownika rok jest rokiem przestępnym (rok przestępny [liczbowo] spełnia następujące warunki: jest podzielny przez 4, ale nie jest podzielny przez 100, chyba że jest podzielny przez 400). f) pobierający od użytkownika wysokość rocznego dochodu, a następnie obliczający należny podatek. W przypadku gdy dochód jest mniejszy niż 37024 zł podatek to 19% dochodu minus 493 zł 32 gr, w przypadku gdy dochód wynosi co najmniej 37024 zł ale mniej niż 74048 zł podatek to 6541 zł 24 gr + 30% nadwyżki ponad 37024 zł, dla dochodu wynoszącego co najmniej 74048 zł podatek to 17648 zł 44 gr + 40% nadwyżki ponad 74048 zł. 1.3. Określ, co realizują poniższe algorytmy. Czy te schematy można uprościć. apisz pseudokody. a) SAR SAR Czytaj a,b,c Czytaj a,b,c c>a a>b z:=a a:=b b:=z c=b c<b b>c z:=b b:=c c:=z a>b z:=a a:=b b:=z SOP Pisz a,b,c SOP str. 5