ODWROTNA NOTACJA POLSKA

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Wzór w notacji nawiasowej: a*(d*i*(k*o-l*n)-e*h*(k*o-l*n))+f*i*j*n
Program dydaktyczny na temat „Odwrotna Notacja Polska”
Instrukcje - wprowadzenie
Język C/C++ Funkcje.
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Wykład 10 Metody Analizy Programów Specyfikacja Struktur Danych
Programowanie I Rekurencja.
Wyrażenia algebraiczne.
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 4: Wyrażenia i operatory. Podstawowe instrukcje języka.
Macierze Maria Guzik.
Liczby typuHarald Kajzer - liczby typu DZIAŁANIA NA LICZBACH TYPU 1.
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
dr Anna Kwiatkowska Instytut Informatyki
Stworzyli: Edyta Celmer I Marta Kałuża.
Metody numeryczne Wykład no 2.
Kolejność wykonywania działań
Ułamki zwykłe i liczby mieszane.
Matematyka.
ALGORYTMY Martyna K. Luiza K..
Ministerstwo Edukacji Narodowej
„Są plusy dodatnie i plusy ujemne.”
Algorytmy.
Wykład 5 Logika binarna, Logika, inne logiki Algebry, Algebra Boole’a,
Podstawy układów logicznych
ARKUSZ KALKULACYJNY JUŻ PROŚCIEJ SIĘ NIE DA Wersja OFFICE 2010
Instrukcje sterujące część 2
Wyrażenia algebraiczne
Microsoft Office Excel
Wyrażenia algebraiczne
Formuły i funkcje w excelu
dr hab. Ryszard Walkowiak prof. nadzw.
BUDOWANIE SCHEMATU BLOKOWEGO REALIZUJĄCEGO PROSTY ALGORYTM
Listy, stosy i kolejki..
Podstawy działania wybranych usług sieciowych
Jak to jest zrobione? Kalkulator.
Algorytmy.
Proste obliczenia w arkuszu
Elżbieta Fiedziukiewicz
Arkusz kalkulacyjny MS Excel
Źródła błędów w obliczeniach numerycznych
„Równania są dla mnie ważniejsze, gdyż polityka jest czymś istotnym tylko dzisiaj, a równania są wieczne.” Albert Einstein.
Informatyka Kalkulator.
Matematyka i system dwójkowy
Aplikacje internetowe
Materiały pochodzą z Platformy Edukacyjnej Portalu
Wyrażenia Algebraiczne
TEMAT: WPROWADZENIE DO ARKUSZA KALKULACYJNEGO EXCEL
Poznajemy arkusz kalkulacyjny
Krakowski Piotr, Woliński Radosław, Kowalski Piotr, Machowski Michał.
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Do czego służy arkusz kalkulacyjny, jego budowa
LICZBY NATURALNE I CAŁKOWITE Gimnazjum w Blachowni Hej, mam na imię Zbigniew! Jestem nauczycielem matematyki. Dziś wprowadzę was w cudowny świat liczb.
 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.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Wyrażenie algebraiczne, które powstaje przez dodawanie jednomianów. Jednomiany, które dodajemy nazywamy wyrazami sumy.
Wyrażenia algebraiczne
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Liczby całkowite Definicja Działania na liczbach całkowitych Cechy podzielności Potęga.
Copyright © 2006 by Czarek Wzory skróconego mnożenia Cezary Król kl. 2 H Gimnazjum nr 2 w Mielcu L u t y Prezentacja z matematyki Głosu udzieliła.
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.
Elementy cyfrowe i układy logiczne
ARKUSZE KALKULACYJNE Ćwiczenia 20h.
Podstawy Informatyki.
Wyższa Szkoła Ekologii i Zarządzania
Formuły i funkcje w excelu
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

ODWROTNA NOTACJA POLSKA UNIWERSYTET PEDAGOGICZNY IM. KOMISJI EDUKACJI NARODOWEJ W KRAKOWIE ODWROTNA NOTACJA POLSKA

Pojęcia użyte w prezentacji Podsumowanie Ojcowie i idea ONP Algorytmy: - zamiany postaci infiksowej wyrażenia na postać ONP; - obliczania wartości wyrażeń w postaci ONP; - zamiany postaci ONP wyrażenia na postać infiksową. Coś dla głowy Pojęcia użyte w prezentacji Podsumowanie

Lata 20-te ubiegłego wieku: Ojcowie i idea ONP Lata 20-te ubiegłego wieku: Polski filozof i matematyk Jan Łukasiewicz (1878-1956) opracowuje prefiksowy sposób zapisywania wyrażeń (arytmetycznych, algebraicznych i logicznych): najpierw operator, a potem argumenty, np. +23 oznacza 2+3. Nazywa go Notacją Polską. Lata 50-te ubiegłego wieku: Australijski filozof i pionier informatyki Charles Hamblin (1922-1985) proponuje odwrócenie Notacji Polskiej – tak powstaje postfiksowy zapis wyrażeń: najpierw argumenty, a potem operator. Tak powstaje Odwrotna Notacja Polska (ONP), z ang. Reverse Polish Notation (RPN). Powrót

Przykłady zapisu wyrażeń algebraicznych w ONP Zapis infiksowy (tradycyjny) Zapis postfiksowy (ONP) a + b a b + a + b + c a b + c + (ab+ stanowi pierwszy argument drugiego dodawania) (a + b) * c a b + c * c * (a + b) c a b + * (a + b) * c + d a b + c * d + (a + b) * c + d * a a b + c * d a * + (a + b) * c + d * (a + c) a b + c * d a c + * + (a + b) * c + (a + c) * d a b + c * a c + d * + (2 + 5) / 7 + 3 / 5 2 5 + 7 / 3 5 / + Można sprawdzić poprawność ich obliczania na rzeczywistym kalkulatorze wykorzystującym ONP (wystarczy nacisnąć na pingwinka) Powrót

Korzyści stosowania notacji ONP ONP oszczędza czas i naciśnięcia klawiszy. Nie trzeba się martwić o nawiasy podczas obliczeń. Cały proces liczenia jest podobny do sposobu, w jakim się liczy na papierze. Pośrednie wyniki pozwalają użytkownikowi na ich sprawdzenie i poprawienie błędów. Łatwiej jest kontrolować przebieg obliczeń. Użytkownik określa priorytet operatorów. Ponieważ podwyrażenia są obliczane w miarę jak są wpisywane, błędy wprowadzenia są bardziej oczywiste przy ONP. W kalkulatorach algebraicznych, opuszczenie nawiasu otwierającego może prowadzić do błędu obliczeń, który ujawni się dużo później, dopiero, gdy całe wyrażenie zostanie obliczone. Przykłady Powrót

Nie tylko kompetencja, ale i elegancja Wyrażenie Operacje konieczne do obliczenia wartości wyrażenia na standardowym kalkulatorze na kalkulatorze ONP (RPN) (8 + 6)(7 - 5) [8] [+] [6] [=] [M+] [7] [-] [5] [x] [MR] [=] 11 naciśnięć klawiszy [8] [ENTER] [6] [+] [7] [ENTER] [5] [-] [x] 9 naciśnięć klawiszy [(8 + 6)(7 - 5)] / (9 - 7) [8] [+][6] [=] [M+] [7] [-] [5] [x] [MR] [=] [MC] [M+] [9] [-] [7] [/] [MR] [=] [MC] [M+] [1] [/] [MR] [=] 25 naciśnięć klawiszy i pomysłowość [8] [ENTER] [6] [+] [7] [ENTER] [5] [-] [x] [9] [ENTER] [7] [-] [/] 14 naciśnięć klawiszy 2 sin(45+2^3) [4] [5] [+] [2] [^] [3] [=] [sin] [*] [2] [=] [2] [ENTER] [3] [^] [4] [5] [+] [sin] [2] [x] 10 naciśnięć klawiszy Powrót

Algorytm zamiany postaci infiksowej wyrażenia na postać ONP START Pobierz symbol z lewej ku prawej T WYJŚCIE Argument STOS T N ( Zawartość stosu aż do „(” na wyjście T N ) STOS T Operator N Czy wyższy w stosie do „(” lub dna T Zawartość stosu do „(” lub do dna na wyjście N Φ N BŁĄD N T Stos na wyjście KONIEC Powrót

Przykład zamiany postaci infiksowej wyrażenia na postać ONP Dokonać konwersji wyrażenia typu: (a + b) * c + d * a Stos Wyjście Stos Wyjście Stos Wyjście ( * ab + + * ab + c * d ( a * ab + c c ab + c * da a + * ( + a + ab + c * * ab + c * da * * + Symbole wyrażenia w postaci infiksowej pobierane są z lewej ku prawej. 1. Nawias otwierający „(” wchodzi na stos. Argument „a” wchodzi na wyjście. Operator „+” na stos. 4. Argument „b” na wyjście. 5. Nawias zamykający „)” zbiera wszystko do znaku „(” i daje na wyjscie. 6. Operator „*” na stos. 7. Argument „C” na wyjście. 8. Operator „+” na stos, a ze stosu mający wyższy priorytet operator „*” na nwyjście. 9. Argument „d” na wyjście. 10. Operator „*” na stos, a operator „+” zostaje na dnie stosu, ponieważ ma niższy priorytet niż „*”. 11. Argument „a” na wyjście. 12. Na wejściu nie ma już nic, więc ze stosu operatory są zabierane od góry na wyjście: najpierw „*” potem „+”. ( ab b + + ab + c * d d ab + c * da * + + ) ab + + Wynik konwersji: ab + c * da * + Powrót

Algorytm obliczania wartości wyrażeń w postaci ONP START Pobierz symbol z lewej ku prawej STOS T Argument Pobierz argumenty ze stosu, wykonaj działanie, wynik na stos T Operator N Istotna rzecz: Po wystąpieniu operatora ze stosu pobierane są do wykonania działania zawsze dwa ostatnie argumenty. Φ N BŁĄD N KONIEC T Powrót

Przykład obliczania wartości wyrażeń w postaci ONP Obliczyć wartość wyrażenia: 59+2*65*+ 5 9 5 + 14 2 14 * 28 6 28 5 28 6 * 28 30 + 58 Symbole wyrażenia w ONP również pobierane są z lewej ku prawej 1. 2. Do pustego stosu zapisywany jest argument „5”. 3. Argument „9” na stos. 4. Operator „+” powoduje pobranie argumentów „5” i „9” ze stosu, wykonanie działania zgodnego z operatorem oraz zapisanie wyniku „14” na stosie. 5. Argument „2” na stos. 6. Operator „*” powoduje pobranie argumentów „2” i „14” ze stosu, wykonanie działania zgodnego z operatorem oraz zapisanie wyniku „28” na stosie. 7. Argument „6” na stos. 8. Argument „5” na stos. 9. Operator „*” powoduje pobranie dwóch ostatnich argumentów „5” i „6” ze stosu, wykonanie działania zgodnego z operatorem oraz zapisanie wyniku „30” na stosie. 10. Operator „+” powoduje pobranie argumentów „30” i „28” ze stosu, wykonanie działania zgodnego z operatorem oraz zapisanie wyniku „58” na stosie. 11. Ponieważ na wejściu nie ma już nic wynik działania ze stosu podawany jest na wyjście. Wartość wyrażenia: 58 Powrót

Algorytm zamiany postaci ONP wyrażenia na postać infiksową START Pobierz symbol z lewej ku prawej STOS T Argument Zbierz ze stosu dwa ostatnio podane argumenty i wstaw między nie operator (argumentem może być utworzone wcześniej wyrażenie ujęte w nawias) T Operator N Φ N BŁĄD N T Stos na wyjście KONIEC Powrót

Przykład zamiany postaci ONP wyrażenia na postać infiksową Dokonać konwersji wyrażenia typu: ab / cd – c * + a b a ÷ a b c ÷ a b d ÷ a b c * ÷ a b - c d - ÷ a b c d c ÷ a b - d + ÷ a b - c d * Tutaj również symbole pobierane są z lewej ku prawej. 2. Na pusty stos zapisywany jest argument „a”. 3. Argument „b” na stos. 4. Operator „/” powoduje następujące działanie: zabranie ze stosu dwóch ostatnio zapisanych argumentów „a” i „b”, wstawienie pomiędzy nie operatora „/” oraz zapisanie wyrażenia „a/b” na stosie. 5. Argument „c” na stos. 6. Argument „d” na stos. 7. Operator „-” powoduje następujące działanie zabranie: ze stosu dwóch ostatnio zapisanych argumentów „c” i „d”, wstawienie pomiędzy nie operatora „-” oraz zapisanie wyrażenia „c-d” na stosie. 8. Argument „c” na stos. 9. Operator „*” powoduje następujące działanie: zabranie ze stosu dwóch ostatnio zapisanych argumentów „c” i „c-d”, wstawienie pomiędzy nie operatora „*” oraz zapisanie wyrażenia „(c-d)*c” na stosie. Argument „c-d” zapisywany jest na stosie w nawiasach ponieważ jest wyrażeniem a nie pojedynczą cyfrą czy liczbą. 10. Operator „+” powoduje następujące działanie: zabranie ze stosu dwóch ostatnio zapisanych argumentów wyrażenia „(c-d)*c” i wyrażenia „a/b”, wstawienie pomiędzy nie operatora „+” oraz zapisanie wyrażenia „a/b+(c-d)*c” na stosie. 11. Ponieważ na wejściu nie ma już nic wynik konwersji ze stosu podawany jest na wyjście. Wynik konwersji: a / b + (c - d) * c Powrót

Dla leniwych lub niedowiarków – odpowiedzi A teraz coś dla głowy Zamień na ONP: a / c / d + b / c / d a / (c * d) + b / (c * d) (a + b) / c / d (a + b) / (c * d) 2. Zamień z ONP na zapis infiksowy (^ oznacza potęgowanie): a b * c d * e / – a 5 / c 7 / e d – 9 / * + a 3 + b / d e + 6 ^ – d c – 7 b * 2 ^ / Dla leniwych lub niedowiarków – odpowiedzi Powrót

Odpowiedzi: Postać ONP: 2. Zapis infiksowy: a c / d / b c / d / + a b + c / d a b + c d * / 2. Zapis infiksowy: a * b – c * d / e a / 5 + c / 7 * ((e – d) / 9) (a + 3) / b – (d + e) ^ 6 (d – c) / (7 * b) ^ 2 lub: http://scriptasylum.com/tutorials/infix_postfix/infix_postfix.html Powrót

Pojęcia użyte w prezentacji ONP - Odwrotna Notacja Polska RPN - Reverse Polish Notation postać infiksowa - tradycyjny zapis wyrażeń postać prefiksowa - zapis wyrażenia w Notacji Polskiej (najpierw operator, potem argumenty) postać postfiksowa - zapis wyrażenia w Odwrotnej Notacji Polskiej (najpierw argumenty, potem operator) stos - bufor, który rządzi się zasadą LIFO (Last In First Out), czyli ostatni przyszedł, pierwszy wychodzi. Inaczej mówiąc, tylko element dodany do stosu jako ostatni możemy pobrać jako pierwszy. Powrót

Podsumowanie Wymyślenie Odwrotnej Notacji Polskiej to kolejny przykład na to, że czasem warto utrudnić życie studentom (muszą zgłębić wiedzę na jej temat), żeby ułatwić życie wszystkim. ŹRÓDŁA: http://www.spsu.edu/cs/faculty/bbrown/web_lectures/postfix/ mini przewodnik http://scriptasylum.com/tutorials/infix_postfix/infix_postfix.html postfix to infix i odwrotnie – zamiana i obliczanie wartości http://www.qiksearch.com/javascripts/postfix-to-infix.htm postfix to infix – zamiana http://www.brpreiss.com/books/opus4/html/page295.html postfix to infix http://www.brpreiss.com/books/opus4/html/page145.html#SECTION007131000000000000000 obliczanie ONP http://main.linuxfocus.org/~guido/javascript/rpnjcalc.html rzeczywisty kalkulator (można liczyć w ONP) http://www.arachnoid.com/lutusp/calc/ Powrót

DZIĘKUJĘ ZA UWAGĘ Powrót