Katalog

Robert Strzelecki, 2012-06-14
Jarocin

Informatyka, Konspekty

Konspekt lekcji - Gra w BINGO jako przykład wykorzystania funkcji rand()

- n +

Temat: Gra w BINGO jako przykład wykorzystania funkcji rand()

Czas realizacji: 1 jednostka lekcyjna


CELE POZNAWCZE:
- uczeń potrafi powiedzieć do czego służy funkcja srand() oraz rand();
- uczeń zna zasadę działania funkcji rand() i srand()
- uczeń potrafi skalować przedział, z którego są losowane liczby;
- uczeń rozumie różnicę między liczbą losową a pseudolosową;
- uczeń umie zastosować funkcje rand() w zadaniu typowym;
- uczeń umie użyć funkcji rand() w zadaniu problemowym;

CELE KSZTAŁCĄCE:

- uczeń kształci stosowanie instrukcji if;
- uczeń kształci stosowanie pętli for, while oraz do… while;
- uczeń doskonali umiejętność posługiwania się narzędziami programistycznymi (pakiet Dev C++);
- uczeń doskonali umiejętność posługiwania się językiem C++;

CELE WYCHOWAWCZE:

- uczeń stosuje zasady etyki w korzystaniu z komputera i oprogramowania;
- nauczenie samodzielnego myślenia - logicznego i algorytmicznego w rozwiązywaniu problemów z pomocą komputera;
- kształtowanie umiejętności porozumiewania się i wyrażania własnych opinii na dany temat;

ŚRODKI DYDAKTYCZNE:
- stanowiska komputerowe wyposażone w środowisko programistyczne języków C/C++: Dev C++;
- wykonana pomoc w postaci centymetra z zaznaczonymi liczbami dodatnimi oraz ujemnymi oraz kartki wydzielającej przedział;

FORMY PRACY:

• wspólnym frontem
• indywidualna

METODY PRACY:
• pogadanka
• pokaz
• wykład
• burza mózgów
• ćwiczeniowa

PRZEBIEG LEKCJI:
1. część wprowadzająca:
• przypomnienie zadania, które uczniowie wykonali na jednej z poprzednich lekcji ( program „Twój szczęśliwy numerek”);
• przypomnienie roli instrukcji warunkowej if w tym zadaniu;
• przypomnienie prawidłowego rozwiązania zadania przez jednego z uczniów;

np.
#include
using namespace std;
int main(void)
{
float a;
int i;

cout<<"Podaj dowolna liczbe: "< cin>>a;
if(a>54){
cout<<"Liczba "< }
else if(a==54){
cout<<"Liczba "< }
else{
cout<<"Liczba "< }
system("pause");
return 0;
}

• zwrócenie uwagi przez n-la na brak możliwości ponownego wyboru liczby przez użytkownika oraz konieczności ingerencji w kod programu w celu zmiany „szczęśliwego numerka”;
• krótka pogadanka o potrzebie wykorzystania w zadaniu pętli oraz funkcji losującej;
• zapisanie tematu lekcji: Gra w BINGO jako przykład wykorzystania funkcji rand()

2. część zasadnicza:
• zaprezentowanie funkcji rand() oraz wyjaśnienie jej działania;
• wyjaśnienie roli funkcji srand();
• zastosowanie funkcji rand() do wykonania zadania – losowania liczby i wyświetlenia jej na ekranie;
• zwrócenie uwagi na przedział z jakiego losowane są liczby: <0; 32767>
• rozważania nad możliwością zmniejszenia/ zwiększenia przedziału losowania;
• rozważania matematyczne – dzielenie dowolnych liczb przez 10 i zapis otrzymywanych reszt;
• rozważania matematyczne – dzielenie dowolnych liczb przez 5 i zapis otrzymywanych reszt;
• wyciągnięcie wniosków z powyższego zadania – reszty mogą stanowić przedział liczb pseudolosowych;
• zaprezentowanie działania operatora dzielenia modulo: %
• praca uczniów – zastosować operator % do uzyskania przedziału liczb pseudolosowych <0;9>
• przedstawienie rozwiązania przez wybranego ucznia;
• praca samodzielna uczniów - zastosować operator % do uzyskania przedziału liczb pseudolosowych <0;29> oraz <0;10> (nauczyciel nadzoruje działania uczniów);
• postawienie problemu: czy można otrzymać przedział liczb pseudolosowych <1;100>?
• poszukiwanie rozwiązania – burza mózgów;
• przedstawienie skalowalności przedziału za pomocą sporządzonej pomocy - pokaz;
• zapisanie przeskalowanego przedziału w języku c++;
• praca samodzielna uczniów - zastosować skalownie do uzyskania przedziału liczb pseudolosowych <20;50> (nauczyciel nadzoruje działania uczniów);
• przypomnienie składni pętli do… while;

do{
………
}while(warunek)

• przypomnienie różnicy między pętlą while i do… while (pętla do… while zawsze zostanie wykonana przynajmniej raz) i wyjaśnienie zasadności wykorzystania tej drugiej;
• wspólne napisanie pseudokodu na tablicy do planowanego zadania – Gry w BINGO;
• zastosowanie pseudokodu opierając się na pętli do… while do wykonania zadania – praca samodzielna uczniów;

przykładowe rozwiązanie:
#include
int main ()
{
int iSecret, iGuess;

/* initialize random seed: */
srand ( time(NULL) );

/* generate secret number: */
iSecret = rand() % 10 + 1;

do {
printf ("Guess the number (1 to 10): ");
scanf ("%d",&iGuess);
if (iSecret else if (iSecret>iGuess) puts ("The secret number is higher");
} while (iSecret!=iGuess);

puts ("Congratulations!");
system("pause");
return 0;
}

• przedstawienie rozwiązania przez wybranego ucznia;


3. część utrwalająca:
• zadanie do samodzielnego wykonania – przekształcenie programy tak, by losowanie odbywało się z podanego zakresu;
• zadanie dodatkowe – napisanie programu losującego wybraną przez użytkownika ilość liczb z deklarowanego przez niego przedziału;


BIBLIOGRAFIA METODYCZNA:
Eckel B., Thinking in C++, wyd. Helion, Gliwice 2002;
http://ddt.pl



Wyświetleń: 1207


Uwaga! Wszystkie materiały opublikowane na stronach Profesor.pl są chronione prawem autorskim, publikowanie bez pisemnej zgody firmy Edgard zabronione.