Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.

Slides:



Advertisements
Podobne prezentacje
Systemy czasu rzeczywistego
Advertisements

Wprowadzenie do informatyki Wykład 6
Informatyka jako dziedzina wiedzy
Grażyna Mirkowska PJWSTK 15 listopad 2000
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
PROGRAMOWANIE STRUKTURALNE
ZŁOŻONOŚĆ OBLICZENIOWA
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
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.
Systemy czasu rzeczywistego Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Rekursja Teoretyczne podstawy informatyki Wykład 5
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Wprowadzenie do informatyki Wykład 5
Obliczalność i złożoność obliczeniowa
Informatyka jako dziedzina wiedzy
Copyright © Jerzy R. Nawrocki Standardy serii ISO Inżynieria oprogramowania II Wykład.
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Wprowadzenie do teoretycznych podstaw informatyki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Język asemblera i koncepcja von Neumanna
Programowanie imperatywne i język C
Języki formalne i gramatyki
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Metody formalne Copyright, 2005 © Jerzy R. Nawrocki Analiza systemów informatycznych.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wyrażenia regularne i język AWK
Komunikacja poprzez Internet
Dokumenty i prezentacje Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do.
Wprowadzenie do informatyki Wykład 5
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Podstawy programowania
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Programowanie strukturalne i obiektowe
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Programowanie strukturalne i obiektowe
Informatyka jako dziedzina wiedzy
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Gramatyki i translatory
Programowanie baz danych
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Ogólna struktura programu w TP
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
METODY REPREZENTOWANIA IFORMACJI
Wprowadzenie do teoretycznych podstaw informatyki
Zapis prezentacji:

Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki Wykład 2

J.Nawrocki, Imperatywne modele obliczeń Język schematów blokowych R 1 R 1 S S + 1 S S + 1 R2 > 0 Tak Nie Start Stop

J.Nawrocki, Imperatywne modele obliczeń Plan wykładu Schematy blokowe Liczba automorficzna Obliczanie wielomianu Podział zbioru Problem stopu

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna Liczba naturalna znajdująca się na końcu swego kwadratu. 5 bo 5 2 = 25 6 bo 6 2 = 36 7 nie bo 7 2 = bo 25 2 = 625

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna Start Czytaj n Automor(n) TakDrukuj(TAK) NieDrukuj(NIE) Stop var n; begin read(n); if Automor(n) then writeln(TAK) else writeln(NIE) end. Funkcja nie- standardowa

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna Liczba naturalna znajdująca się na końcu swego kwadratu. rząd(n) = 10 liczba_cyfr(n) n = n*n mod rząd(n) Jak obliczyć Automor(n) ? 5 = 5*5 mod rząd(5) = 25 mod 10 = 5 6 = 6*6 mod rząd(6) = 36 mod 10 = 6 7 7*7 mod 10 = 9

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna Tak Wynik true Nie Wynik false n=n*n mod rząd(n) function Automor (n: integer): Boolean; begin if n=n*n mod rzad(n) then Automor:= true else Automor:= false end; Deklaracja funkcji Automor

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna Jak obliczyć rzad(n) ? rząd(n) = 10, 100, 1000,.. rząd(n) > n rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz function rzad (n: integer): integer; var rz: integer; begin rz:= 10; while rz <= n do rz:= rz*10; rzad:= rz end;

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz Jak to sprawdzi ć? nrz 25 We Wyj

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz Jak to sprawdzi ć? nrz 25 We Wyj 10

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz Jak to sprawdzi ć? nrz 25 We Wyj 10

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz Jak to sprawdzi ć? nrz 25 We Wyj

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz nrz 25 We Wyj Wynik=100 Jak to sprawdzi ć?

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz nrz 25 We Wyj Wynik=100 To działa!

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna Program główny Automor(n) rzad(n) Czy można połączyć Automor i rzad?

J.Nawrocki, Imperatywne modele obliczeń Liczba automorficzna function Automor (n: integer): Boolean; var rz: integer; begin rz:= 10; while rz <= n do rz:= rz*10; if n=n*n mod rz then Automor:= true else Automor:= false end; Program główny Automor(n)

J.Nawrocki, Imperatywne modele obliczeń Plan wykładu Schematy blokowe Liczba automorficzna Obliczanie wielomianu Podział zbioru Problem stopu

J.Nawrocki, Imperatywne modele obliczeń Obliczanie wielomianu p(x) = a 0 + a 1 x + a 2 x 2 + a 3 x a n x n p(x) = s(0) + s(1) + s(2) s(n) gdzie s(i) = a i x i s(i) = a i *x*x*.. *x Dekompozycja problemu Suma n liczb Iloczyn n liczb

J.Nawrocki, Imperatywne modele obliczeń Obliczanie wielomianu Start Stop i 0 P 0 P P + s(i) i i + 1 i n Tak Nie function p(n: integer): real; var i,P: integer; begin i:= 0; P:= 0; while i <= n do begin P:= P + s(i); i:= i + 1 end; p:= P end;

J.Nawrocki, Imperatywne modele obliczeń Obliczanie wielomianu S= c(0) * c(1) *.. * c(j) 0, 1,.. jStart Stop i 0 S 1 S S * c(i) i i + 1 i j Tak Nie Obliczanie s(j) = a j x j c(0) = a j c(1) = x c(2) = x... c(j) = x

J.Nawrocki, Imperatywne modele obliczeń Obliczanie wielomianu Start Stop S a j i 1 S S * x i i + 1 i j Tak Nie i 0 S 1 S S * c(i) i i + 1 Obliczanie s(j) = a j x j S= c(0) * c(1) *.. * c(j) 0, 1,.. j c(0) = a j c(1) = x c(2) = x... c(j) = x

J.Nawrocki, Imperatywne modele obliczeń Obliczanie wielomianu Start Stop S a j i 1 S S * x i i + 1 i j Tak Nie Obliczanie s(j) = a j x j function s(j: integer): real; var i,S: integer; begin S:= a[j]; i:= 0; while i <= j do begin S:= S * x; i:= i + 1 end; s:= S end;

J.Nawrocki, Imperatywne modele obliczeń Obliczanie wielomianu Złożoność algorytmu (n+1) razy s(i): s(0).. s(n) Każde s(i): i mnożeń Razem: (n+1) = Złożoność= a*n 2 + b*n + c

J.Nawrocki, Imperatywne modele obliczeń Obliczanie wielomianu P(x)= (((a n )*x + a n-1 )*x + a n-2 )*x + a n-3... Schemat Hornera Jak zmniejszyć liczbę mnożeń? a 1 *x + a 0 = a 1 *x + a 0 a 2 *x 2 + a 1 *x + a 0 = (a 2 *x + a 1 )*x + a 0 a 3 *x 3 + a 2 *x 2 + a 1 *x + a 0 = ((a 3 *x + a 2 )*x + a 1 ) + a 0

J.Nawrocki, Imperatywne modele obliczeń Plan wykładu Schematy blokowe Liczba automorficzna Obliczanie wielomianu Podział zbioru Problem stopu

J.Nawrocki, Imperatywne modele obliczeń Problem podzbioru o danej sumie Dane: zbiór A zawierający n liczb całkowitych dodatnich i liczba s. Pytanie: Czy można w A znaleźć podzbiór B taki, że suma liczb w B jest równa s? = 12 s = / 2 =

J.Nawrocki, Imperatywne modele obliczeń Problem podzbioru o danej sumie = 12 s = / 2 =

J.Nawrocki, Imperatywne modele obliczeń Problem podzbioru o danej sumie = 12 s = / 2 = Kopiuj poprzedni wiersz

J.Nawrocki, Imperatywne modele obliczeń Problem podzbioru o danej sumie = 12 s = / 2 = Uwzględnij bieżący element

J.Nawrocki, Imperatywne modele obliczeń Problem podzbioru o danej sumie = 12 s = / 2 = Uwzględnij bieżący element + 2

J.Nawrocki, Imperatywne modele obliczeń Problem podzbioru o danej sumie = 12 s = / 2 = Uwzględnij bieżący element

J.Nawrocki, Imperatywne modele obliczeń Problem stopu Dany jest podprogram X. Czy ten podprogram skończy obliczenia w skończonym czasie?

J.Nawrocki, Imperatywne modele obliczeń Problem stopu function ZatrzymaSię(P: procedure): Boolean; { ??? } procedure X; { while ZatrzymaSię(X) do ; }

J.Nawrocki, Imperatywne modele obliczeń Problem stopu ZatrzymaSię(X) procedure X Tak Nie Wniosek: Problem stopu jest nierozstrzygalny

J.Nawrocki, Imperatywne modele obliczeń Ocena wykładu 1. Wrażenie ogólne? (1 - 6) 2. Zbyt wolno czy zbyt szybko? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co poprawić i jak?