008 Sigma i silnia


Konspekt z przedmiotu Programowanie strukturalne

Temat: sigma i silnia.

Prowadzący: inż. Marek Pudełko

Klasa I SP, specjalność technik Informatyk

Lekcja odbyła się 21.10.2004

Czas zajęć: 2 x 45 minut.

Cele dydaktyczne:

Cele operacyjne:

Po zajęciach słuchacze powinni umieć:

Środki dydaktyczne: komputer, tablica, karteczki z przykładowym programem.

Metody: pogadanka, praca z komputerem, praca samodzielna, dyskusja.

Formy: praca z zespołem klasowym, praca indywidualna słuchacza

Przebieg lekcji:

1) Część wstępna:

2) Lekcja właściwa:

Sigma to suma kolejnych liczb naturalnych od 1 do n.

0x01 graphic

Silnia to iloczyn kolejnych liczb naturalnych od 1 do n.

0x01 graphic

Właściwości silni. 0! =1, 1!=1.

SIGMA

  1. Start -uruchomienie programu

  2. inicjalizacja wstępna zmiennych - i:=0, n:=0, sigma:=0;

  3. wczytaj n - program wczytuje n

  4. i ≤ n - postawienie warunku

    1. Nie - niespełnienie warunku (licznik > n) przejście programu do punktu 8

    2. Tak - spełnienie warunku (licznik ≤ n) dalsza praca programu

  5. Sigma jest powiększana o wartość i.

  6. Operacja zwiększania licznika i o 1 (INKREMENTACJA)

  7. Powrót do sprawdzenia warunku, dwie możliwości

    1. NIE - przejście programu do punktu 8

    2. TAK - kontynuowanie zwiększania sigmy, aż do niespełnienia warunku

  8. Wyświetlenie wyniku - sigma i zakończenie pracy.

program sigma;

var n,i,suma:integer;

begin

i:=0;

suma:=0;

writeln ('program liczy sigme od 1 do n');

writeln ('Podaj n: ');

readln(n);

while (i<=n) do

begin

suma:=suma+i;

i:=i+1;

end;

writeln(' sigma wynosi ', suma);

readln;

end.

Należy pamiętać o tym, żeby zmienić początkowe wartości i i suma (silnia) na 1. Zostawienie 0 sprawi, że będziemy mnożyć przez 0, co nie zmieni wyniku.

SILNIA

  1. Start -uruchomienie programu

  2. inicjalizacja wstępna zmiennych - i:=1, n:=1, silnia:=1;

  3. wczytaj n - program wczytuje n

  4. i ≤ n - postawienie warunku

    1. Nie - niespełnienie warunku (licznik > n) przejście programu do punktu 8

    2. Tak - spełnienie warunku (licznik ≤ n) dalsza praca programu

  5. silnia jest mnożona przez wartość i.

  6. Operacja zwiększania licznika i o 1 (INKREMENTACJA)

  7. Powrót do sprawdzenia warunku, dwie możliwości

    1. NIE - przejście programu do punktu 8

    2. TAK - kontynuowanie zwiększania silni, aż do niespełnienia warunku

  8. Wyświetlenie wyniku - silnia i zakończenie pracy.

program silnia;

var n,i,suma:integer;

iloczyn:real;

begin

i:=1;

iloczyn:=1;

writeln ('program licz silnie od 1 do n');

writeln ('Podaj n: ');

readln(n);

while (i<=n) do

begin

iloczyn:=iloczyn*i;

i:=i+1;

end;

writeln(' silnia wynosi ', iloczyn:10:0);

readln;

end.

Ponieważ wynik silni łatwo może wykroczyć poza zakres liczbowy w danym języku programowania, należy zastosować inny wzór na liczenie silni w wypadku dużych liczb. Takim wzorem jest wzór Stirlinga.

0x01 graphic

Dotychczas stosowaliśmy podejście iteracyjne, które oznaczało cykliczne wykonywanie tych samych instrukcji.

Podejście rekurencyjne oznacza wywoływanie funkcji przez samą siebie, przy zmieniających się argumentach.

program silnia_rekurencyjna;

var n:integer;

iloczyn:LongInt;

Function sil(n : integer) : LongInt;

Begin

If n=0 Then sil:=1

Else sil:=n*sil(n-1);

End;

begin

iloczyn:=1;

writeln ('program licz silnie od 1 do n');

writeln ('Podaj n: ');

readln(n);

iloczyn:=sil(n);

writeln(' silnia wynosi ', iloczyn:10);

readln;

end.

3) Zajęcia końcowe:

  1. powtórzenie materiału z lekcji:

  1. ocena pracy słuchaczy.

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
program sigma;

var n,i,suma:integer;

begin

i:=0;

suma:=0;

writeln ('program liczy sigme od 1 do n');

writeln ('Podaj n: ');

readln(n);

while (i<=n) do

begin

suma:=suma+i;

i:=i+1;

end;

writeln(' sigma wynosi ', suma);

readln;

end.

program sigma;

var n,i,suma:integer;

begin

i:=0;

suma:=0;

writeln ('program liczy sigme od 1 do n');

writeln ('Podaj n: ');

readln(n);

while (i<=n) do

begin

suma:=suma+i;

i:=i+1;

end;

writeln(' sigma wynosi ', suma);

readln;

end.

program sigma;

var n,i,suma:integer;

begin

i:=0;

suma:=0;

writeln ('program liczy sigme od 1 do n');

writeln ('Podaj n: ');

readln(n);

while (i<=n) do

begin

suma:=suma+i;

i:=i+1;

end;

writeln(' sigma wynosi ', suma);

readln;

end.

program silnia;

var n,i,suma:integer;

iloczyn:real;

begin

i:=1;

iloczyn:=1;

writeln ('program licz silnie od 1 do n');

writeln ('Podaj n: ');

readln(n);

while (i<=n) do

begin

iloczyn:=iloczyn*i;

i:=i+1;

end;

writeln(' silnia wynosi ', iloczyn:10:0);

readln;

end.

program silnia;

var n,i,suma:integer;

iloczyn:real;

begin

i:=1;

iloczyn:=1;

writeln ('program licz silnie od 1 do n');

writeln ('Podaj n: ');

readln(n);

while (i<=n) do

begin

iloczyn:=iloczyn*i;

i:=i+1;

end;

writeln(' silnia wynosi ', iloczyn:10:0);

readln;

end.

program silnia;

var n,i,suma:integer;

iloczyn:real;

begin

i:=1;

iloczyn:=1;

writeln ('program licz silnie od 1 do n');

writeln ('Podaj n: ');

readln(n);

while (i<=n) do

begin

iloczyn:=iloczyn*i;

i:=i+1;

end;

writeln(' silnia wynosi ', iloczyn:10:0);

readln;

end.

program silnia_rekurencyjna;

var n:integer;

iloczyn:LongInt;

Function sil(n : integer) : LongInt;

Begin

If n=0 Then sil:=1

Else sil:=n*sil(n-1);

End;

begin

iloczyn:=1;

writeln ('program licz silnie od 1 do n');

writeln ('Podaj n: ');

readln(n);

iloczyn:=sil(n);

writeln(' silnia wynosi ', iloczyn:10);

readln;

end.

program silnia_rekurencyjna;

var n:integer;

iloczyn:LongInt;

Function sil(n : integer) : LongInt;

Begin

If n=0 Then sil:=1

Else sil:=n*sil(n-1);

End;

begin

iloczyn:=1;

writeln ('program licz silnie od 1 do n');

writeln ('Podaj n: ');

readln(n);

iloczyn:=sil(n);

writeln(' silnia wynosi ', iloczyn:10);

readln;

end.

program silnia_rekurencyjna;

var n:integer;

iloczyn:LongInt;

Function sil(n : integer) : LongInt;

Begin

If n=0 Then sil:=1

Else sil:=n*sil(n-1);

End;

begin

iloczyn:=1;

writeln ('program licz silnie od 1 do n');

writeln ('Podaj n: ');

readln(n);

iloczyn:=sil(n);

writeln(' silnia wynosi ', iloczyn:10);

readln;

end.

4

START

i := 0

n := 0

sigma := 0

i := i + 1

Wczytaj n

sigma := sigma + i

STOP

i n

NIE

TAK

Podaj wynik-sigma

Podaj wynik-silnia

TAK

NIE

STOP

silnia := silnia * i

i := i +1

Wczytaj n

i n

i := 1

n := 1

silnia:= 1

START



Wyszukiwarka

Podobne podstrony:
008 prawa pacjentaid 2455 ppt
Chemia wyklad I i II (konfiguracja wiÄ…zania Pauling hybrydyzacja wiazania pi i sigma)
Principles of Sigma Delta Conversion for Analog to Digital Converters
P29 008
jasełka8766, 008 - JASEŁKA W PRZEDSZKOLU, JASEŁKA SCENARIUSZE
62 008
008 Problem narażenia na metale ciężkie u dzieci
P25 008
p38 008
Applications of polyphase filters for bandpass sigma delta analog to digital conversion
P31 008
P26 008
008 (3)
bądźże pozdrowiona, (Finale 2006c [B 271d 237 277e pozdrowiona 008 Sax tenorowy 1 MUS])
Jasełka11, 008 - JASEŁKA W PRZEDSZKOLU, JASEŁKA SCENARIUSZE
008 sesja 5 4L76UEDUPCP72FSCGZPME2LFJ3RNLQMYUXXYZMQ
5 Sigma karta przekazania odpadu
Project Management Six Sigma (Summary)

więcej podobnych podstron