X Używamy plików cookie i zbieramy dane m.in. w celach statystycznych i personalizacji reklam. Jeśli nie wyrażasz na to zgody, więcej informacji i instrukcje znajdziesz » tutaj «.

»» ZDALNE NAUCZANIE. U nas znajdziesz i opublikujesz scenariusze ««
Numer: 39358
Przesłano:

Symulacja komputerowa, liczby pseudolosowe - scenariusz lekcji informatyki

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;
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;
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 np. trzy ścianki z jednym oczkiem, dwie z dwoma i jedną z trzema oczkami to wprowadzamy tylko zmienne ile_jedynek, ile_dwojek, ile_trojek;
Liczbę wystąpień danego wyniku obliczamy następująco:
for (i=1;i<=100;i++)
{
x = rand()%6 +1;
switch(x)
{
case 1: ile_jedynek++; break;
case 2: ile_jedynek++; break;
case 3: ile_jedyek++; break;
case 4: ile_dwojek++; break;
case 5: ile_dwojek++; break;
case 6: ile_trojek++; break;
}
c. wprowadzamy zmienne ile_jedynek, ile_dwojek, ile_trojek, ile_czworek;
ilość wystąpień danego wyniku obliczamy następująco
for (i=1;i<=100;i++)
{
x = rand()%4 +1;
switch(x)
{
case 1: ile_jedynek++; break;
case 2: ile_dwojek++; break;
case 3: ile_trojek++; break;
case 4: ile_czworek++; break;
}

d. wprowadzamy zmienne ile_orlow, ile_reszek;
ilość wystąpień danego wyniku obliczamy następująco
for (i=1;i<=100;i++)
{
x = rand()%2 +1;
switch(x)
{
case 1: ile_orlow++; break;
case 2: ile_reszek++; break;
}

• praca samodzielna (sprawdzenie realizacji celów)
Z urny zawierającej 2 kule białe i 5 czarnych wylosowano ze zwracaniem 50 razy jedną kulę. Przeprowadź symulację tego doświadczenia na komputerze. Twój program powinien wyświetlić jakie wyniki otrzymano i ile razy. Obok nagłówka zapisz jako komentarz Twoje imię i nazwisko.
• podsumowanie lekcji
a. rola symulacji komputerowej w ekonomii, przemyśle
b. problem symulacji złożonych procesów np. demograficznych

O nas | Reklama | Kontakt
Redakcja serwisu nie ponosi odpowiedzialności za treść publikacji, ogłoszeń oraz reklam.
Copyright © 2002-2024 Edux.pl
| Polityka prywatności | Wszystkie prawa zastrzeżone.
Prawa autorskie do publikacji posiadają autorzy tekstów.