Podstawy informatyki (2)

Slides:



Advertisements
Podobne prezentacje
Operacje zmiennoprzecinkowe
Advertisements

Języki programowania C++
Liczby pierwsze.
PROGRAMOWANIE STRUKTURALNE
Metody numeryczne Wykład no 1.
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Liczby w Komputerze Zajęcia 3.
ZŁOŻONOŚĆ OBLICZENIOWA
Liczby wokół nas A. Cedzidło.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
LICZBY RZECZYWISTE PODZBIORY ZBIORU LICZB RZECZYWISTYCH
Zapis informacji Dr Anna Kwiatkowska.
ALGORYTMY.
Reprezentacje - zmiennoprzecinkowa
Programowanie w języku Fortran 95
„Są plusy dodatnie i plusy ujemne.”
Kod Graya.
Aleksandra Duchnowicz kl. 6.d
Podstawy programowania
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
opracowanie: Agata Idczak
Podstawy informatyki (4)
Prowadzący: Dr inż. Jerzy Szczygieł
Wyrażenia algebraiczne
Algorytmy i struktury danych
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
Podstawy adresowania hostów w sieciach komputerowych
Zastosowania ciągów.
Dane INFORMACYJNE Nazwa szkoły:
Systemy liczbowe.
Algorytmy.
Architektura systemów komputerowych
1. ŁATWOŚĆ ZADANIA (umiejętności) 2. ŁATWOŚĆ ZESTAWU ZADAŃ (ARKUSZA)
Liczby rzeczywiste ©M.
Liczby całkowite dodatnie BCN
Posługiwanie się systemami liczenia
Źródła błędów w obliczeniach numerycznych
„Wszystko powinno być wykonane tak prosto jak to możliwe, ale nie prościej.” Albert Einstein.
„Równania są dla mnie ważniejsze, gdyż polityka jest czymś istotnym tylko dzisiaj, a równania są wieczne.” Albert Einstein.
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Matematyka i system dwójkowy
Reprezentacja liczb w systemie binarnym ułamki i liczby ujemne
Liczby Naturalne.
Algorytmika.
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Obliczalność czyli co da się policzyć i jak Model obliczeń sieci liczące dr Kamila Barylska.
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Podstawy arytmetyki komputerowej Paweł Perekietka
Programowanie Niskopoziomowe
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Dwójkowy system liczbowy
Działania w systemie binarnym
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Podstawy Techniki Cyfrowej
Wybrane aspekty programowania w C++ (i nie tylko)
Zasady arytmetyki dwójkowej
Rodzaje liczb.
METODY REPREZENTOWANIA IFORMACJI
INFORMATYKA Zajęcia organizacyjne Arytmetyka komputerowa
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
LICZBY NATURALNE I CAŁKOWITE. Liczby Naturalne Liczby naturalne – liczby używane powszechnie do liczenia (na obiedzie były trzy osoby) i ustalania kolejności.
Liczby całkowite Definicja Działania na liczbach całkowitych Cechy podzielności Potęga.
Liczby naturalne i całkowite Spis treści Definicje Działania na liczbach Wielokrotności liczb naturalnych Cechy podzielności Przykłady potęg,potęgi o.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Technika Mikroprocesorowa 1
Wstęp do Informatyki - Wykład 6
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Podstawy informatyki (2) wykład : 15 godz. ćwiczenia : 15 godz. Prowadzący: dr inż. Jacek Piątkowski

Dodawanie binarne + + Reguły dodawania cyfr binarnych . 1 10 przykład: Kodowanie liczb Dodawanie binarne Reguły dodawania cyfr binarnych . + 1 10 przykład: 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 + 1 0.0 1 1 1 0 0.1 1 1 1 1.0 0 1 +

Notacja uzupełnieniowa do dwóch Reprezentacja liczb całkowitych Notacja uzupełnieniowa do dwóch Do reprezentacji każdej wartości w notacji U2 wykorzystuje się tę samą ustaloną liczbę bitów. - Wartość najbardziej znaczącego bitu decyduje o znaku reprezentowanej wartości. - Bit znaku ( sign bit ) 0 – wartość dodatnia 1 – wartość ujemna Obecnie: - najpopularniejszy system reprezentacji liczb całkowitych - wykorzystuje się notację 32-bitową zakres:  -2 147 483 648 ÷ 2 147 483 647 

Notacja uzupełnieniowa do dwóch Reprezentacja liczb całkowitych Notacja uzupełnieniowa do dwóch Przykład – system 4-bitowy -8 1 0 0 0 -7 1 0 0 1 -6 1 0 1 0 -5 1 0 1 1 -4 1 1 0 0 -3 1 1 0 1 -2 1 1 1 0 -1 1 1 1 1 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 1 2 4 -8 waga 3 bit  Ciągi bitów reprezentujące wartości dodatnie i ujemne czytane od strony prawej do lewej są identyczne aż do pozycji pierwszej jedynki (włącznie). Od tego miejsca pozostałe wartości bitów są swoimi uzupełnieniami.

Notacja uzupełnieniowa do dwóch Reprezentacja liczb całkowitych Notacja uzupełnieniowa do dwóch Algorytm wyznaczania liczby przeciwnej: - wykonaj negację kolejnych bitów liczby wejściowej, - dodaj 1. 123 0 1 1 1 1 0 1 1  NOT 1 0 0 0 0 1 0 0 + 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 -123 -99 1 0 0 1 1 1 0 1  NOT 0 1 1 0 0 0 1 0 + 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 99

Dodawanie w notacji uzupełnieniowej do dwóch Reprezentacja liczb całkowitych Dodawanie w notacji uzupełnieniowej do dwóch 7 - 4 0 1 1 1 0 1 0 0  + 1 1 0 0 1 0 0 1 1 3  Należy odrzucić ewentualny dodatkowy bit wyniku ze skrajnej lewej pozycji powstały w wyniku przeniesienia. 4 - 7 0 1 0 0 0 1 1 1  + 1 0 0 1 1 1 0 1 - 3 0 0 1 1 (3)

Problem przepełnienia Reprezentacja liczb całkowitych Problem przepełnienia Problem przepełnienia (overflow) - powstaje wówczas gdy wartość, którą potrzeba zakodować, nie mieści się w zakresie wartości danego systemu reprezentacji liczb. - może wystąpić w przypadku dodawania dwóch wartości dodatnich lub dwóch wartości ujemnych. 7 + 0 1 1 1  ? -2 1 1 1 0 7 - 0 1 1 1  1 0 0 1 + ? 2 1 0 0 1 0 Błąd łatwy do wykrycia bowiem : suma liczb dodatnich daje wynik ujemny i odwrotnie ...

Notacja z nadmiarem Przykład – notacja z nadmiarem 8 Reprezentacja liczb całkowitych Notacja z nadmiarem Przykład – notacja z nadmiarem 8 -8 0 0 0 0 -7 0 0 0 1 -6 0 0 1 0 -5 0 0 1 1 -4 0 1 0 0 -3 0 1 0 1 -2 0 1 1 0 -1 0 1 1 1 1 0 0 0 1 1 0 0 1 2 1 0 1 0 3 1 0 1 1 4 1 1 0 0 5 1 1 0 1 6 1 1 1 0 7 1 1 1 1  Różnica w stosunku do systemu uzupełnieniowego do dwóch polega na odwróceniu bitu znaku.

Reprezentacja liczb rzeczywistych Kodowanie w systemie zmiennoprzecinkowym bazuje na systemie pozycyjnym wagowym; opiera się na podziale liczby na część ułamkową zwaną mantysą, oraz część wykładnika potęgi podstawy systemu zwanego cechą; - umożliwia zapis liczb rzeczywistych z ustalonym błędem względnym. M – mantysa ( w postaci znormalizowanej tzn. z pierwszą liczbą po przecinku większą od zera ) ; p – podstawa systemu ( zgodnie z zapisem pozycyjnym wagowym ) E – cecha ( exponent ) – wykładnik potęgi umożliwiający przesunięcie przecinka liczby rzeczywistej tak by uzyskać znormalizowaną postać mantysy.

System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych System zmiennoprzecinkowy bit znaku 0 - wartość dodatnia ; 1 - wartość ujemna cecha mantysa Ilość bitów przeznaczonych na cechę decyduje o zakresie liczbowym. Ilość bitów przeznaczonych na mantysę decyduje o błędzie zapisu. * Wg standardu IEEE IEEE – Institute of Electrical and Electronics Enginieers bit znaku ( 8 bitów ) ( 23 bity ) - Liczba rzeczywista ( 4 bajty )* bit znaku ( 11 bitów ) ( 52 bity ) - Liczba rzeczywista podwójnej precyzji ( 8 bajtów )*

System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych System zmiennoprzecinkowy Sposób interpretacji liczb. Przykład kodowany w systemie 8-bitowym. Ciąg bitów : 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 • Bit znaku : 0 - liczba dodatnia • Cecha ( liczba całkowita kodowana w notacji z nadmiarem ) - 3 bity nadmiar = 4 ( 2 (3-1) ) - wartość cechy : 2 przecinek ( kropka ) o dwie pozycje w prawo  • Mantysa : .1 1 0 1  3¼ zatem po przesunięciu kropki : 1 1 . 0 1

System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych System zmiennoprzecinkowy Przykład : Ciąg bitów : 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 • Bit znaku : 1 - liczba ujemna • Cecha - 3 bity nadmiar = 4 ( 2 (3-1) ) - wartość cechy : -1 przecinek ( kropka ) o jedną pozycję w lewo  • Mantysa : .1 1 0 0  zatem po przesunięciu kropki : .0 1 1 0 0

System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych System zmiennoprzecinkowy Przykład : Liczba : 2 ¾  1 0 .1 1 1 0 1 1 • Cecha powinna mieć wartość 2 tj. 1 1 0 ( w 3-bitowej notacji z nadmiarem 4 ) Wynik : 1 1 0 1 0 1 1

System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych System zmiennoprzecinkowy Przykład : Liczba : - 3/8  .0 1 1 1 mantysa znormalizowana ( z pierwszą liczbą po przecinku większą od zera ) 1 1 • Cecha powinna mieć wartość - 1 tj. 0 1 1 ( w 3-bitowej notacji z nadmiarem 4 ) Wynik : 0 1 1 1 1 1 0 0

Błędy zaokrągleń Przykład : 1 0 .1 0 1 1 1 Reprezentacja liczb rzeczywistych Błędy zaokrągleń Przykład : Liczba : 2,625 = 2 5/8  1 0 .1 0 1 1 1 utracony bit • Cecha powinna mieć wartość 2 tj. 1 1 0 ( w 3-bitowej notacji z nadmiarem 4 ) Wynik : czyli: 2½ a nie 2 5/8 1 1 0 1 0 1 0

Błędy zaokrągleń Sytuacje prowadzące do powstania błędów zaokrągleń : Reprezentacja liczb rzeczywistych Błędy zaokrągleń Sytuacje prowadzące do powstania błędów zaokrągleń : brak możliwości zapisu całej reprezentacji binarnej danej liczby; dodawanie do bardzo dużych liczb wartości bardzo małych, które bywają obcinane; brak skończonego rozwinięcia ułamka danej liczby jak np. w systemie dziesiętnym 1/3 = 0,333333(3) 0,25 = ( 0,111111(1) )5 0,1 = ( .0001100110011 (0011) )2 0,3 = ( .01001100110011 (0011) )2

Reprezentacja liczb rzeczywistych Błędy zaokrągleń Przykład - kodowany w systemie 8-bitowym (4 bity do zapisu mantysy ) Należy wykonać dodawanie : 2 ½ + 1/8 + 1/8 Sposób 1 – wartości dodawane od lewej do prawej. 2 ½ + 1/8 = 2 5/8  1 0 .1 0 1 czyli: 2½ a nie 2 5/8 utracony bit Dodanie kolejnej wartości 1/8 nic nie zmieni i wynik końcowy to 2½ Sposób 2 – wartości dodawane od prawej do lewej. 1/8 + 1/8 = 1/4  .0 1 1/4 + 2 ½ = 2 3/4  1 0.1 1 czyli: 0 110 1011 - OK.

Błędy zaokrągleń • Czasami wystarczy tylko zmienić jednostki obliczeń. Reprezentacja liczb rzeczywistych Błędy zaokrągleń W wielu jednak przypadkach problemy wynikające z błędów zaokrągleń można bardzo łatwo wyeliminować. • Czasami wystarczy tylko zmienić jednostki obliczeń. - zamiast liczyć z dokładnością do 0,01 zł – liczyć w groszach; - zamiast liczyć z dokładnością do 0,001m – liczyć w mm. • Czasami trzeba zaprojektować cały cykl obliczeń, czy też dokonać normalizacji przetwarzanych danych. • Regułą jest np. by sumowanie wielu liczb zaczynać od wartości małych, by uzyskana w ten sposób wartość nie była obcięta przy jej dodaniu do wartości dużo większej.

Algorytmy Algorytm - zbiór uporządkowanych, jednoznacznych i wykonywalnych kroków, które określają skończony proces. Algorytm jest tworem abstrakcyjnym, natomiast jego formalną reprezen- tacją jest (przeznaczoną do wykonania przez komputer) jest program. Pomimo, że algorytm musi mieć jednoznacznie określoną kolejność wykonywania jego kroków nie oznacza to jednak, że zawsze kroki muszą być wykonywane wg. porządku : krok1, krok2, krok3, itd.. Istnieją algorytmy zwane równoległymi ( parallel algorithms ), które składają się z kilku ciągów kroków, z których każdy jest przeznaczony do wykonywania na innym procesorze komputera wieloprocesorowego. Struktura takiego algorytmu reprezentuje wiele wątków, które rozdzielają się i ponownie łączą po wykonaniu przez poszczególne procesory fragmentów całego zadania.

Algorytmy Przykład. Algorytm Euklidesa znajdowania największego wspólnego dzielnika całkowitych liczb dodatnich. Krok 1. Przypisz zmiennym x i y odpowiednio większą i mniejszą wartość wejściową. Krok 2. Podziel x przez y, a resztę z dzielenia nazwij r. Krok 3. Jeśli r nie jest zerem, to przypisz zmiennej x wartość y, zmiennej y wartość r i powróć do kroku 2; w przeciwnym razie aktualna wartość zmiennej b jest poszukiwanym największym wspólnym dzielnikiem.

Algorytmy Przykład : Powyższa instrukcja nie jest jednak algorytmem ! Krok 1. Sporządź listę wszystkich całkowitych liczb dodatnich. Krok 2. Uporządkuj listę malejąco (od liczby największej do najmniejszej). Krok 3. Pobierz pierwszy element uporządkowanej listy. Powyższa instrukcja nie jest jednak algorytmem ! Kroki 1 i 2 nie są możliwe do wykonania .

Algorytmy Sformułowanie algorytmu wymaga zastosowania pewnej formy jego zapisu – zastosowania pewnego języka przekazu np.: - opisu słownego, - instrukcji obrazkowej (jak np. w przypadku instrukcji wiązania krawata), - wzoru matematycznego np. : W wielu jednak przypadkach (zwłaszcza opisów słownych) sformułowany algorytm może okazać się niejednoznaczny na przyjętym poziomie szczegółowości.

Algorytmy Przykład niejednoznaczności opisu słownego: . . . . . . do obliczenia wyniku końcowego użyj liczby pierwszej spośród wszystkich zgromadzonych liczb. - pierwszej w kolejności gromadzenia ? - może jednak dowolnej liczby pierwszej ? Problem niejednoznaczności zapisu algorytmu może być wyeliminowany poprzez zastosowanie określonego zestawu konstrukcji pierwotnych . Każda konstrukcja pierwotna jest zdefiniowana za pomocą: 1. składni ( syntax ) – opisującej symboliczną reprezentację konstrukcji, 2. semantyki ( semantics ) – opisującej znaczenie danej konstrukcji.

Algorytmy Zapisywanie algorytmów na tym poziomie szczegółowości byłoby Zestaw konstrukcji pierwotnych do reprezentacji algorytmów przeznaczo- nych do wykonywania na komputerze mógłby być określony przez zbiór rozkazów maszynowych danego komputera. Zapisywanie algorytmów na tym poziomie szczegółowości byłoby jednak niezwykle żmudne i trudne, prowadziłoby do powstawania wielu błędów, a w wielu przypadkach wręcz nie do zrealizowania . Obecnie do zwięzłego zapisu algorytmu w fazie jego projektowania wykorzystywane są takie rozwiązania jak: - pseudokod, - sieci działań (schematy blokowe), - diagramy ( klas, współpracy, przepływu danych, ...)

Algorytmy Pseudokod Pseudokod - forma zapisu algorytmu składająca się ze struktur składniowo-semantycznych przypominających elementy składniowe występujące w języku programowania. Opracowanie pseudokodu polega na zdefiniowaniu spójnej, zwięzłej notacji do reprezentowania powtarzających się struktur semantycznych. Elementy składowe pseudokodu traktuje się jako konstrukcje pierwotne, za pomocą których wyrażane są dalsze pojęcia.

Pseudokod przykłady Instrukcja warunkowa if ( jeżeli ) if ( warunek ) Algorytmy Pseudokod przykłady Instrukcja warunkowa if ( jeżeli ) if ( warunek ) { instrukcja_1 } else { instrukcja_2 } if ( warunek ) { instrukcja } if ( rok jest przestępny ) { podziel wynik przez 366 } else { podziel wynik przez 365 } if ( sprzedaż maleje) { obniż cenę o 5 % }

Pseudokod przykłady Instrukcja while ( dopóki ) while ( warunek ) Algorytmy Pseudokod przykłady Instrukcja while ( dopóki ) Sprawdź warunek instrukcja Warunek fałszywy prawdziwy while ( warunek ) { instrukcja } while ( są jeszcze bilety ) { sprzedaj bliet }

Pseudokod przykłady Instrukcja do while ( wykonuj dopóki ) do Algorytmy Pseudokod przykłady Instrukcja do while ( wykonuj dopóki ) Sprawdź warunek instrukcja Warunek fałszywy prawdziwy do { instrukcja } while ( warunek ) do { pobieraj dane } while ( baza pusta )

Pseudokod przykłady Operatory Operatory arytmetyczne Algorytmy operacja zastosowanie = przypisanie inicjowanie zmiennej (obiektu) wartością początkową przypisanie zmiennej nowej wartości Operatory arytmetyczne operator operacja Zastosowanie * mnożenie wyrażenie * wyrażenie / dzielenie wyrażenie / wyrażenie % dzielenie modulo ( reszta z dzielenia ) wyrażenie % wyrażenie + dodawanie wyrażenie + wyrażenie - odejmowanie wyrażenie - wyrażenie

Pseudokod przykłady Operatory Operatory logiczne Algorytmy operator operacja Zastosowanie == równe wyrażenie == wyrażenie != nierówne wyrażenie != wyrażenie < mniejsze niż wyrażenie < wyrażenie <= mniejsze lub równe wyrażenie <= wyrażenie > większe niż wyrażenie > wyrażenie >= większe lub równe wyrażenie >= wyrażenie

Pseudokod przykłady Przykład. Algorytm wyszukiwania sekwencyjnego Algorytmy Pseudokod przykłady Przykład. Algorytm wyszukiwania sekwencyjnego Dana jest lista nazwisk uporządkowanych alfabetycznie. Poszukiwany algorytm dający możliwość sprawdzenia czy na liście znajduje się poszukiwane nazwisko.

Przykład. Algorytm wyszukiwania sekwencyjnego Algorytmy, pseudokod Przykład. Algorytm wyszukiwania sekwencyjnego if ( lista jest pusta ) { nie znaleziono szukanego elementu } else { } element sprawdzany = pierwszy element listy while ( wartość szukana > element sprawdzany oraz są jeszcze elementy do sprawdzenia ) { element sprawdzany = kolejny element listy } if ( wartość szukana == element sprawdzany ) { szukany element został odnaleziony } else { nie znaleziono szukanego elementu }

Pseudokod przykłady Przykład. Algorytm sortowania listy Algorytmy Pseudokod przykłady Przykład. Algorytm sortowania listy Ola Ewa Ala Iza Ula Lista początkowa : Ola Ewa Ala Iza Ula Ola Ala Iza Ula Ola Ewa Ala Iza Ula Ewa Ola Ala Iza Ula Ola Ala Iza Ula Ewa Ewa Ola Ala Iza Ula Ola Ala Iza Ula Ewa

Przykład. Algorytm sortowania listy Algorytmy Przykład. Algorytm sortowania listy Ewa Ola Ala Iza Ula Ewa Ola Iza Ula Ewa Ola Ala Iza Ula Ala Ewa Ola Iza Ula Ewa Ola Iza Ula Ewa Ola Iza Ula Ala Ewa Ola Iza Ula Ala Ewa Ola Iza Ula Ewa

Przykład. Algorytm sortowania listy Ala Ewa Ola Iza Ula Ala Ewa Ola Ula Ala Ewa Ola Iza Ula Iza Ala Ewa Ola Ula Ala Ewa Ola Ula Iza Ala Ewa Ola Ula Ala Ewa Iza Ola Ula Iza

Przykład. Algorytm sortowania listy Ala Ewa Iza Ola Ula Ala Ewa Iza Ola Ala Ewa Iza Ola Ula Ula Ala Ewa Iza Ola Ula Ala Ewa Iza Ola Ula Ala Ewa Iza Ola Ula

Przykład. Algorytm sortowania Algorytmy, pseudokod Przykład. Algorytm sortowania N = 2 while ( N nie przekracza długości listy ) { pobierz N-ty element jako przenoszony; zapamiętaj tymczasowo wartość przenoszonego elementu, pozostawiając po tym elemencie wolne miejsce na liście; while ( jest jeszcze element powyżej wolnego miejsca i element jest większy niż element przenoszony ) przesuń element z listy na pozycję wolnego miejsca tworząc w ten sposób nowe wolne miejsce nad przesuniętym elementem; } wstaw przenoszony element w wolne miejsce na liście; N = N + 1;

Przykład Algorytm Euklidesa znajdowania największego wspólnego dzielnika całkowitych liczb dodatnich zapisany pseudokodem x = liczba większa y = liczba mniejsza r = x % y while ( r!=0 ) { x = y y = r } największy wspólny dzielnik to y

Algorytmy Przykład. Algorytm Euklidesa znajdowania największego wspólnego dzielnika całkowitych liczb dodatnich. Krok 1. Przypisz zmiennym x i y odpowiednio większą i mniejszą wartość wejściową. Krok 2. Podziel x przez y, a resztę z dzielenia nazwij r. Krok 3. Jeśli r nie jest zerem, to przypisz zmiennej x wartość y, zmiennej y wartość r i powróć do kroku 2; w przeciwnym razie aktualna wartość zmiennej b jest poszukiwanym największym wspólnym dzielnikiem.