Warsztaty dla nauczycieli przedmiotów informatycznych
This presentation is the property of its rightful owner.
Sponsored Links
1 / 44

Warsztaty dla nauczycieli przedmiotów informatycznych PowerPoint PPT Presentation


  • 78 Views
  • Uploaded on
  • Presentation posted in: General

Warsztaty dla nauczycieli przedmiotów informatycznych. 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

Download Presentation

Warsztaty dla nauczycieli przedmiotów informatycznych

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Warsztaty dla nauczycieli przedmiot w informatycznych

Warsztaty dla nauczycieli przedmiotów informatycznych


Definicja algorytmu

Cybernetyczna:

dokładny przepis

wykonania w określonym porządkuskoń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

Definicja algorytmu


Podzia algorytm w

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 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

Wypłata kwoty przy użyciu jak najwyższych nominałów

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

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.


Dalszy ci g opisu algorytmu wyp aty kwot

Dalszy ciąg opisu algorytmu wypłaty kwot

727,69zł

------------

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

Prezentacja algorytmu wypłata kwot w arkuszu kalkulacyjnym

Plik: bank.xls


Algorytm rozga ziony

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

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 bokilub 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


Warsztaty dla nauczycieli przedmiot w informatycznych

Prezentacja algorytmu klasyfikacja trójkątów w postaci schematu blokowegowprogramie EI oraz programu w TPASCALU

Pliki: trojkat.rys, trojkat.pas


Zamiana liczby dwubajtowej z postaci dziesi tnej na szesnastkow

Zamiana liczby dwubajtowej z postaci dziesiętnej na szesnastkową

216=65536

cyfry szesnastkowe:

0,1,2,3

4,5,6,7

8,9,A,B

C,D,E,F

Opis algorytmu:

  • Wprowadzić liczbę dziesiętną (<216)

  • Dokonać jej konwersji do postaci dwójkowej, 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


Prezentacja algorytmu liczby dw jkowe i szesnastkowe w arkuszu kalkulacyjnym excel

Prezentacja algorytmu liczby dwójkowe i szesnastkowe w arkuszu kalkulacyjnym Excel

Pliki: 10na2na16.xls


Algorytm iteracyjny

Algorytm iteracyjny

Algorytm w którym część ins-trukcji jest wielokrot-nie wyko-nywana aż do spełnienia określonego 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

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 zajeden z boków prostokąta o polu X

  • Drugi bok wynosi wtedy X/A

A

X/A


Dalszy ci g opisu metody herona

Dalszy ciąg opisu metody Herona

  • Jeżeli boki nie są równe budujemy następnyprostoką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ę mniejszaod 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

Prezentacja algorytmu Herona w postaci:

Schematu blokowego w programie Ei

Ocena efektywności algorytmu w arkuszu kalkulacyjnym Excel

pliki: heron.rys, heron.xls


Algorytm iteracyjny1

Algorytm iteracyjny

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

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

Prezentacja algorytmu szyfr Cezara w postaci:

Schematu blokowego w programie Ei

Programu w Visual Basicu

pliki: szyfr.rys, szyfr.vbm


Metody monte carlo

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

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

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 Ngdzie 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

Prezentacja algorytmu pole pod wykresem w postaci:

Programu w Turbo Pascalu

Ocena dokładności obliczeń

pliki: monte.pas


Algorytm proceduralny

Algorytm proceduralny

Algorytm w którym wyróżnio-ne części algorytmu (zwane procedurami) są logicznie włą-czone w wykony-wanie róż-nych części algoryt-mu

start

nadanie wartościparametrom

wejście

odwołanie siędo procedury

instrukcjeprocedury

ciąg dalszy algort.

powrót

nadanie wartości parametrom i ew.odwołanie się doprocedury

ciąg dalszy algort.


Od problemu do programu

OD PROBLEMU DO PROGRAMU

  • Krok 1 - postawienie problemu

Metoda od ogółu do szczegółu

  • 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

Krok 1 Postawienie problemu

PRZY

KŁAD

METODY ODOGÓŁU DOSZCZEGÓŁ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

Krok 2Opis szczegółowy algorytmu

PRZY

KŁAD

METODY ODOGÓŁU DOSZCZEGÓŁ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

Ciąg dalszy opisu

PRZY

KŁAD

METODY ODOGÓŁU DOSZCZEGÓŁ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

Krok 3Zapis w kodzie pseudo języka

Lista zmiennych:

  • n - parametr programu

  • k,p - zmienne sterujące

  • Ak - element tablicy liczb pierwszych znajdujący się na miejscu k.

    Kod pseudo języka:

    czytaj n

    niech k :=0

    dopóki k<n wykonujpoczątek{zwiększaj k o 1 i w miejsce Ak podstaw k}koniec

k:=k+1Ak :=k


Ci g dalszy kodu

Ciąg dalszy kodu

niech k :=1

dopóki k<=n/2 wykonujpoczą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 wstawić procedurę „usun”


Ci g dalszy kodu1

Ciąg dalszy kodu

Procedura USUN

początekp=2dopóki k * p < n wykonuj początekA 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 *"

PRINT "**********************"

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

Krok 4Zapis w języku programowania


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


Zapis w j zyku programowania1

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.

Zapis w języku programowania


Prezentacja algorytmu sito eratostenesa w postaci

Prezentacja algorytmu sito Eratostenesa w postaci:

Programu w Turbo Pascalu

pliki: monte.pas


Algorytm rekurencyjny

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

Ocena algorytmu:

  • złożoność pamięciowa

  • złożoność czasowa

początek procedury

N

T

warunek zakończenia

blok instrukcji

koniec rekurencji


Rekurencyjne obliczanie pot g

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

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


R wnanie nieliniowe

Równanie nieliniowe

(metoda bisekcji, podziału połówkowego)


Obliczanie pierwiastk w r wnania nieliniowego metod bisekcji

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

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

F

C

A


Rozwi zanie zadania

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

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

Pełną wersję prezentacji wraz z programami można pobrać ze strony:

http://www.zamoyski.neostrada.pl


  • Login