Warsztaty dla nauczycieli przedmiotów informatycznych

Slides:



Advertisements
Podobne prezentacje
Metoda simpleks Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania.
Advertisements

Programowanie I Rekurencja.
Zadanie z dekompozycji
PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
Badania operacyjne. Wykład 2
Metoda węzłowa w SPICE.
Materiały pochodzą z Platformy Edukacyjnej Portalu
ZŁOŻONOŚĆ OBLICZENIOWA
Opracowała: Elżbieta Fedko
Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź Simpleks jest uniwersalną.
Podstawy programowania PP - LAB1 Wojciech Pieprzyca.
ALGORYTMY.
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Wstęp do interpretacji algorytmów
CO TO JEST ALGORYTM!.
Dr Anna Kwiatkowska Instytut Informatyki
Algorytmy Marek Pudełko
Metody matematyczne w Inżynierii Chemicznej
Budowa algorytmów Algorytm: skończony ciąg operacji wraz z ściśle sprecyzowanym porządkowaniem ich wykonywania, które po realizacji dają rozwiązanie dowolnego.
ALGORYTMY.
Agata Łysakowska Klasa III „n”
Algorytmy Opracowanie: Maria Skalska na podstawie „Informatyka 2000” wydawnictwa Czarny Kruk.
RODZAJE ALGORYTMÓW Źródło: Jolanta Pańczyk - Informatyka Europejczyka. Podręcznik dla gimnazjum. Część II.
Kod Graya.
Podstawy programowania
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy.
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.
Metody matematyczne w inżynierii chemicznej
RÓŻNE WZORY NA POLA TRÓJKĄTÓW
Wstęp do algorytmiki Program ELI Marek Magiera
BUDOWANIE SCHEMATU BLOKOWEGO REALIZUJĄCEGO PROSTY ALGORYTM
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Zakładamy a priori istnienie rozwiązania α układu równań.
ALGORYTMY.
Jak tworzyć algorytmy.? Sposób krok po kroku..
Algorytmy.
Elżbieta Fiedziukiewicz
Na wysokościach myślenia jest sfera,
Spis treści W świecie algortmów -Budowa algorytmu
II Zadanie programowania liniowego PL
Temat 7: Instrukcje warunkowe
Algorytmy.
Algorytmika.
Instrukcje iteracyjne
Algorytmika Iteracje autor: Tadeusz Lachawiec.
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
FUNKCJE Pojęcie funkcji
Metody numeryczne szukanie pierwiastka metodą bisekcji
Metody matematyczne w Inżynierii Chemicznej
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
Algorytmy i struktury danych
Algorytmy- Wprowadzenie do programowania
opracowała: Anna Mikuć
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Metody matematyczne w inżynierii chemicznej
Metody nieinkluzyjne: Metoda iteracji prostej.
Wstęp do interpretacji algorytmów
Temat 3: Podstawy programowania Algorytmy – 2 z 2 _________________________________________________________________________________________________________________.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Co to jest algorytm? Uporządkowany i uściślony sposób rozwiązania danego problemu, zawierzający szczegółowy opis wykonywanych czynności w skończonej.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Metody matematyczne w Inżynierii Chemicznej
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Metody matematyczne w inżynierii chemicznej
Zrozumieć, przeanalizować i rozwiązać
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Warsztaty dla nauczycieli przedmiotów informatycznych

Definicja algorytmu Cybernetyczna: dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie każdego zadania danego typu. Matematyczna: reguła przekształcania wyrażeń matematycznych przez powtarzanie tych samych działań na kolejno otrzymywanych wynikach działań poprzednich

Podział algorytmów Ze względu na budowę algorytmu: algorytm liniowy algorytm rozgałęziony algorytm iteracyjny algorytm proceduralny algorytm rekurencyjny Ze względu na opis algorytmu: Opis słowny Opis przy pomocy pseudojęzyka Schemat blokowy Zapis w języku programowania

Algorytm liniowy Algorytm w którym kolejne instrukcje tworzą sekwencję o ustalonej kolejności. start Wprowadzenie danych Operacje na danych Wyprowadzenie danych koniec

Wypłata kwoty przy użyciu jak najwyższych nominałów Opis algorytmu: 1. Wpisz wartości nominałów od najwyższego do najniższego 2. Wpisz wielkość kwoty 3. Oblicz krotność występowania pierwszego nominału 4. Zmniejsz kwotę o obliczone nominały w punkcie 3. 5. Przejdź do niższego nominału i wykonaj obliczenia z punktu 3. 200 zł 100 zł 50 zł 20 zł 10 zł 5 zł 2 zł 1 zł 50 gr 20 gr 10 gr 5 gr 2 gr 1 gr

Dalszy ciąg opisu algorytmu wypłaty kwot ------------ 3x200zł 1x100zł 1x20zł 1x5zł 1x2zł 1x50gr 1x10gr 1x5gr 2x2gr 6. Algorytm zakończ po osiągnięciu najniższego nominału Wejście: kwota Wyjście: zestawienie nominałów wraz z krotnościami

Prezentacja algorytmu wypłata kwot w arkuszu kalkulacyjnym Plik: bank.xls

Algorytm rozgałęziony Algorytm w którym niektóre instrukcje są wykonywane przy spełnieniu określonych warunków, a inne przy ich niespełnieniu start Wprowadzenie danych T N Warunek logiczny I wariant obliczeń II wariant obliczeń Wyprowadzenie danych koniec

Klasyfikacja trójkątów według długości boków Opis algorytmu: Wprowadzić trzy liczby dodatnie (boki) Uporządkować je nie malejąco Sprawdzić czy istnieje trójkąt o takich bokach Dokonać klasyfikacji z wyborem na boki lub na kąty. Wejście: 7, 6, 7 [B] Wyjście: trójkąt istnieje, równoramienny a£b£c a+b>c [B]-boki [K]-kąty

Pliki: trojkat.rys, trojkat.pas Prezentacja algorytmu klasyfikacja trójkątów w postaci schematu blokowego w programie EI oraz programu w TPASCALU Pliki: trojkat.rys, trojkat.pas

Zamiana liczby dwubajtowej z postaci dziesiętnej na szesnastkową Opis algorytmu: Wprowadzić liczbę dziesiętną (<216) Dokonać jej konwersji do postaci dwójko wej, zastosować metodę odejmowania kolejnych potęg liczby 2. Dokonać jej konwersji do postaci szesna- stkowej, zastosować metodę podziału liczby dwójkowej na półbajtowe części Wejście: 48485 Wyjście: 1011110101100101, BD65 216= 65536 cyfry szesna stkowe: 0,1,2,3 4,5,6,7 8,9,A,B C,D,E,F

Prezentacja algorytmu liczby dwójkowe i szesnastkowe w arkuszu kalkulacyjnym Excel Pliki: 10na2na16.xls

Algorytm iteracyjny Cykl iteracyjny z warunkiem na końcu Algorytm w którym część ins- trukcji jest wielokrot- nie wyko- nywana aż do spełnie nia określo nego wa- runku Cykl iteracyjny z warunkiem na końcu Ilość cykli nieokreślona start wart. poczat. instrukcje cyklu N warunek T dalszy ciąg algort.

Obliczenie pierwiastka kwadratowego metodą Herona Algorytm oblicza pierwiastek kwadratowy dowolnej liczby z zdaną dokładnością Opis algorytmu: Pierwiastek z X jest równy bokowi kwadra- tu o polu X. Dowolną liczbę A>0 przyjmujemy za przy- bliżenie pierwiastka z X i jednocześnie za jeden z boków prostokąta o polu X Drugi bok wynosi wtedy X/A A X/A

Dalszy ciąg opisu metody Herona Jeżeli boki nie są równe budujemy następny prostokąt, którego jeden z boków jest śred- nią arytmetyczną boków poprzedniego, czyli B=(A+X/A)/2, a drugi X/B Jeżeli boki B i X/B nie są równe to budujemy wg tej reguły następny prostokąt Postępowanie to kontynuujemy tak długo, aż różnica pomiędzy bokami stanie się mniejsza od zadanej dokładności Wejście: X=72, A=8, E=0,001 Wyjście:  728,4852, J = ilość iteracji

Prezentacja algorytmu Herona w postaci: Schematu blokowego w programie Ei Ocena efektywności algorytmu w arkuszu kalkulacyjnym Excel pliki: heron.rys, heron.xls

Algorytm iteracyjny Cykl wyliczany z krokiem 1 liczba cykli określona Algorytm w którym część ins- trukcji jest wykonywana z góry określoną ilość razy start Cykl wyliczany z krokiem 1 liczba cykli określona i=1 n=? i>n instrukcje cyklu i=i+1 dalszy ciąg algorytmu

Szyfrowanie tekstu - Szyfr Cezara Chr(65)- znak o kodzie65 Ord(‘A’)- kod zna- ku A funkcje po- mocne przy szyfrowa- niu. Opis algorytmu: Wprowadzić tekst stawiając na końcu znak #, który do tekstu nie należy. Pobierając kolejne znaki wyznaczyć długość tekstu i zapisać do zmiennej D W tekście przy szyfrowaniu przesuwamy kolejne znaki o jedno miejsce do przodu (tzn. A–>B, B–>C,....,Z–>A) Przy deszyfrowaniu o jedno miejsce do tyłu (tzn. A–>Z, B–>A,...,Z–>Y) np.. KOMPUTER szyfrujemy jako LPNQWUFS.

Prezentacja algorytmu szyfr Cezara w postaci: Schematu blokowego w programie Ei Programu w Visual Basicu pliki: szyfr.rys, szyfr.vbm

Metody Monte Carlo rnd(n) los() Random przykłady funkcji losowych w różnych progra- mach Generując bardzo dużo punktów losowych o określonych warunkach możemy rozwiązać wiele problemów np: wyznaczyć pierwiastek dowolnego równania znaleźć maksimum lub minimum funkcji obliczyć pole pod wykresem funkcji Taki sposób rozwiązywania problemów znany jest pod nazwą metod Monte Carlo.

Obliczenie pola pod wykresem funkcji metodą Monte Carlo Napisać schemat blokowy programu obliczający pole pod wykresem paraboli y=x2 w przedziale <0,2> metodą Monte Carlo. generujemy punkty o losowych współrzędnych należące do prostokąta o wierzchołkach (0,0); (0,4); (2,4); (2,0) Dla każdego losowego punktu (x,y) sprawdzamy, czy leży on pod wykresem funkcji y=x2 tzn. czy prawdziwa jest nierówność y<=x2, jeśli tak, to należy on do pola S i program zalicza jedno "trafienie".

Ciąg dalszy algorytmu - pole pod wykresem Jeśli liczba N wygenerowanych punktów jest dostatecznie duża to w przybliżeniu zachodzi równość: S N1 ———————— = ———— , pole prostokąta N gdzie N1 to ilość zaliczonych trafień. Stąd pole S jest równe: N1 S˙=˙˙pole prostokąta˙* ——— N

Prezentacja algorytmu pole pod wykresem w postaci: Programu w Turbo Pascalu Ocena dokładności obliczeń pliki: monte.pas

Algorytm proceduralny Algorytm w którym wyróżnio- ne części algorytmu (zwane procedurami) są logi cznie włą- czone w wykony- wanie róż- nych częś ci algoryt- mu start nadanie wartości parametrom wejście odwołanie się do procedury instrukcje procedury ciąg dalszy algort. powrót nadanie wartości parametrom i ew.odwołanie się doprocedury ciąg dalszy algort.

OD PROBLEMU DO PROGRAMU Metoda od ogółu do szczegółu Krok 1 - postawienie problemu Krok 2 - opis szczegółowy algorytmu Krok 3 - zapis algorytmu w kodzie pseudojęzyka Krok 4 - zapis algortmu w języku programowania

Krok 1 Postawienie problemu PRZY KŁAD METO DY OD OGÓ ŁU DO SZCZE GÓŁU Problem: Wyznaczyć wszystkie liczby pierwsze nie większe od zadanej liczby naturalnej. Zastosować algorytm znany pod nazwą sita Eratostenesa. Algorytm ten polega na wykreślaniu wielo- krotności kolejno znajdowanych liczb pier- wszych nie większych od zadanej liczby.

Krok 2 Opis szczegółowy algorytmu PRZY KŁAD METO DY OD OGÓ ŁU DO SZCZE GÓŁU Utworzyć listę liczb całkowitych od 1 do n. Zaczynając od liczby 2 usuń z listy wszystkie wielokrotności dwóch większe od 2. Znajdź pierwszą nieusuniętą liczbę (będzie to liczba 3) jest to liczba pierwsza Usuń wielokrotności trzech większe od 3 Znajdź pierwszą nieusuniętą liczbę (będzie to liczba 5) jest to liczba pierwsza

Ciąg dalszy opisu PRZY KŁAD METO DY OD OGÓ ŁU DO SZCZE GÓŁU Usuwaj w ten sposób wyznaczone wielo- krotności kolejnych znajdowanych liczb pierwszych, aż do przekroczenie połowy wartości liczby n Liczby, które pozostały są liczbami pierwszymi.

Krok 3 Zapis w kodzie pseudo języka Lista zmiennych: n - parametr programu k,p - zmienne sterujące Ak - element tablicy liczb pierwszych znaj dujący się na miejscu k. Kod pseudo języka: czytaj n niech k :=0 dopóki k<n wykonuj początek {zwiększaj k o 1 i w miejsce Ak podstaw k} koniec k:=k+1 Ak :=k

Ciąg dalszy kodu k:=k+1 Tu nale ży wsta wić proce durę „usun” niech k :=1 dopóki k<=n/2 wykonuj początek {wybierz następną liczbę Ak } jeżeli Ak <>0 to {usuń wielokrotności Ak większe od Ak } koniec Części opisowe umieszczone w nawiasach {...} zastępujemy odpowiednimi instrukcjami. k:=k+1 Tu nale ży wsta wić proce durę „usun”

Ciąg dalszy kodu Procedura USUN początek p=2 dopóki k * p < n wykonuj początek A k * p = 0 p=p+1 koniec koniec

Krok 4 Zapis w języku programowania Język Turbo Pascal program sito_eratostenesa; uses crt; const wymiar=2000; var A:array[1..wymiar] of integer; n,k:integer; procedure usun(p:integer); var kr:integer; begin kr:=2; while kr*p<=n do begin A[kr*p]:=0; kr:=kr+1; end;{koniec while...} end;{koniec usun...} Język QBasic CLS PRINT "**********************" PRINT "*PROGRAM WYZNACZA *" PRINT "*WSZYSTKIE; LICZBY *" PRINT "*PIERWSZE NIE WIEKSZE*" PRINT "*OD ZADANEJ LICZBY N *" DEFINT I, K, N INPUT "podaj liczbe N "; N DIM A(N) REM WYPELNIANIE TABLICY A(K) FOR K = 1 TO N LET A(K) = K NEXT K REM WYSZUKIWANIE LICZBY PIERWSZEJ LET K = 1

Zapis w języku programowania begin clrscr; writeln('********************************'); writeln('*PROGRAM WYZNACZA *'); writeln('*WSZYSTKIE LICZBY PIERWSZE*’); writeln('*NIE WIEKSZE OD ZADANEJ*'); writeln('*LICZBY N METODA SITA*'); writeln('*ERATOSTENESA *'); writeln('***************************'); writeln; write('podaj liczbe naturalna N '); read(n); for k:=1 to n do A[k]:=k; k:=1; FOR K = 2 TO INT(N / 2) IF A(K) <> 0 THEN GOSUB USUN DALEJ: NEXT K REM DRUKOWANIE CLS PRINT "oto liczby pierwsze < "; N PRINT "---------------------------" PRINT FOR K = 2 TO N IF A(K) <> 0 THEN PRINT USING "#####"; A(K); NEXT K END REM USUWANIE WIELOKROTNOSCI USUN: I = 2 WHILE I * K <= N A(I * K) = 0 I = I + 1 WEND RETURN DALEJ

Zapis w języku programowania repeat k:=k+1; if A[k]<>0 then usun(k); until k>trunc(n/2); {drukowanie} clrscr; writeln('oto liczby pierwsze < ',n); writeln('---------------------------'); for k:=2 to n do if A[k]<>0 then write(A[k]:6); repeat until keypressed end.

Prezentacja algorytmu sito Eratostenesa w postaci: Programu w Turbo Pascalu pliki: monte.pas

Algorytm rekurencyjny Algorytm w którego definicji występuje odwołanie się do siebie samego. Algorytm ten musi zawierać warunek zakończenia kolejnego odwołania początek procedury N T Ocena algorytmu: złożoność pamięciowa złożoność czasowa warunek zakończenia blok instrukcji koniec rekurencji

Rekurencyjne obliczanie potęg potega(a,n) wynik:= a•potega(a, n-1) podstawienie rekurencyjne w procedurze potega(a,n) Napisz procedury rekurencyjne obliczające potęgę an przy pomocy poniższych wzorów: Obliczyć potęgę 1,0013000, ocenić złożoność pamięciową i czasową.

Prezentacja algorytmu potęgi w postaci: Programu w Turbo Pascalu Ocena złożoności pamięciowej i czasowej pliki: pot1.pas, pot2.pas, pot3.pas

(metoda bisekcji, podziału połówkowego) Równanie nieliniowe (metoda bisekcji, podziału połówkowego)

Obliczanie pierwiastków równania nieliniowego - metodą bisekcji Własność Darbeaux: Jeżeli funkcja ciągła przyjmuje róż ne wartości w końcach przedziału to przyjmuje w tym przedzia- le wszystkie wartości po- średnie. Opis metody: Zakłada się że znany jest przedział <A,B> i dokładność E , na końcach którego funkcja f(x) ma wartości przeciwnego znaku tzn. f(A)*f(B)<0 co oznacza, że w przedziale <A,B> znajduje się przynajmniej jedno miejsce zerowe. W kolejnych krokach zawęża się ten przedział przyjmując: A=(A+B)/2 jeżeli f(A)*f((A+B)/2)>0 lub B=(A+B)/2 w przeciwnym przypadku

Dalszy ciąg opisu Kolejne zawężania należy przerwać po spełnieniu warunku: (B-A)< 2*E Program powinien również wyznaczać ilość iteracji (zawężeń przedziału). Zadanie. Do studni wrzucono dwa patyki, o długości AB=4 m, CD=3 m Punkt E zetknięcia się patyków znaj- duje się na wysokości EF=1 m nad dnem studni. Obliczyć szerokość studni. B D E A F C

Rozwiązanie zadania Stosując Twierdzenia Talesa i Pitagorasa dla AEF i ACB oraz dla CEF i ACD otrzymamy równanie: równanie to można rozwiązać metodą bisekcji, zastosowanej do przedziału <0,3>

Prezentacja algorytmu, metoda bisekcji w postaci: Schematu blokowego Programu w Turbo Pascalu Programu w Visual Basicu pliki: bisekcja.rys, bisekcja.pas, bisekcja.vbp

Pełną wersję prezentacji wraz z programami można pobrać ze strony: http://www.zamoyski.neostrada.pl