Zaloguj się aby ocenić lub skomentować publikację.
Scenariusz lekcji informatyki
Leon Plebanek
Temat: Symulacja komputerowa, liczby pseudolosowe.
Klasa: 3 LO
Profil: informatyczny
Czas trwania: 2 godziny lekcyjne
Potrzebne wiadomości: instrukcje wejścia / wyjścia, typy danych, zmienne,
instrukcja warunkowa, instrukcja pętli, zainicjowanie generatora
srand(time(NULL) , określenie funkcji losowej rand() w języku C++
Cele:
Wiadomości: jaką rolę odgrywa generator liczb losowych, w jaki sposób uzyskać
naturalną liczbę losową z zakresu <0,n>
Umiejętności: wykorzystanie funkcji losowej rand()do modelowania przebiegu
doświadczeń losowych
Środki: komputery z kompilatorem c++(środowisko CodeBlocks), tablica
Metody i formy pracy: dyskusja, wykład, ćwiczenia w grupach, ćwiczenia
indywidualne
Przebieg lekcji:
• przypomnienie wiadomości o sposobie działania funkcji losowej rand()
• sformułowanie problemu
Rzucono symetryczną kostką do gry 100 razy. Przeprowadź symulację tego
doświadczenia na komputerze. Twój program powinien wyświetlić ile razy otrzymano
ściankę z jednym, dwoma,..., sześcioma oczkami.
• dyskusja sposobu symulacji pojedynczego rzutu kostką i zanotowania wyniku.
x := rand()%6 + 1;
• dyskusja sposobu obliczenia ilości wystąpień danego wyniku
switch(x)
{
case 1 : ile_jedynek++; break;
case 2 : ile_dwojek++; break;
case 3 : ile_trojek++; break;
case 4 : ile_czworek++; break;
case 5 : ile_piatek++; break;
Strona 1 z 4
case 6 : ile_szostek++; break;
}
• zapis programu symulacje rzutów w języku C++ (omówienie roli generatora
liczb pseudolosowych srand())
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main()
{
int x, i,
ile_jedynek=0, ile_dwojek=0,
ile_trojek=0, ile_czworek=0,
ile_piatek=0, ile_szostek=0;
cout<<"Program przeprowadzi symulacje 100 rzutow
kostka i wyswietli wyniki";
srand(time(NULL));
for (i=1; i<=100;i++)
{
x = rand()%6 + 1;
switch(x)
{
case 1: ile_jedynek++; break;
case 2: ile_dwojek++; break;
case 3: ile_trojek++; break;
case 4: ile_czworek++; break;
case 5: ile_piatek++; break;
case 6: ile_szostek++; break;
}
}
cout<<endl<<"W doswiadczeniu uzyskano :" <<endl;
cout<< ile_jedynek <<" jedynek"<<endl;
cout<< ile_dwojek << " dwojek"<<endl;
cout<< ile_trojek << " trojek"<<endl;
cout<< ile_czworek << " czworek"<<endl;
cout<<ile_piatek << " piatek"<<endl;
cout<< ile_szostek << " szostek"<<endl;
Strona 2 z 4
return 0;
}
• propozycje modyfikacji doświadczenia losowego
a. ilość rzutów może być zmienna,
b. kostka nie musi zawierać ścianek z wszystkimi oczkami od 1 do 6,
c. kostka nie musi być sześcienna ale np. czworościenna,
d. nie musi to być rzut kostką ale np. monetą.
• podział klasy na cztery grupy
rozwiązywanie podpunktów a) b) c) d) (praca w grupach)
•
• prezentacja rozwiązań
a. należy wprowadzić dodatkową zmienną o nazwie ile, przechowującą
ilość rzutów do wykonania; na początku programu wczytujemy ile
rzutów należy wykonać;
w pętli for wpisujemy: for (i=1;i<=ile;i++)
b. jeśli kostka zawiera ...