Liczby Pseudolosowe

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 9

Podstawy programowania –

liczby pseudolosowe
Katarzyna Nadrowska
PSEUDOLOSOWE LICZBY CAŁKOWITE
• Generowanie liczb pseudolosowych odbywa się za pomocą funkcji cstdlib.
Funkcja pochodzi ze standardowej biblioteki języka C++, co oznacza, że musimy ją
uwzględnić w sekcji nagłówkowej.

• #include <cstdlib>

• W przypadku wcześniejszego dołączenia biblioteki używającej cstdlib nie ma


konieczności wpisywania jej ponownie.
FUNKCJA RAND()
• W momencie uzyskania dostępu do biblioteki cstdlib otrzymaliśmy dostęp do funkcji losującej rand(). Odpowiada
ona za wylosowanie liczb całkowitych.
• Funkcja rand() mieści się w przedziale od 0 do rand_max, gdzie rand_max jest stałą zależną od kompilatora i
bibliotek posiadanych przez użytkownika.
• Przykład wykorzystania funkcji rand().
•#include <iostream>
•#include <cstdlib>

•using namespace std;


•/* run this program using the console pauser or add your own getch, system("pause") or input loop */

•int main(int argc, char** argv) {


• int liczba1=0;
•cout << "Wyświetl wylosowaną liczbę: " << liczba1 << endl;
•liczba1 = rand();
•cout << "Wyświetl wylosowaną liczbę numer 2: " << liczba1 << endl;
•liczba1 = rand();
•cout << "Wyświetl wylosowaną liczbę numer 3: " << liczba1 << endl;
• return 0;
•}
FUNKCJA SRAND()
• Wywołując poprzedni przykład można zauważyć, że liczby nie będą zawsze te
same. Jest to poprawne, jednak wymaga się by skonfigurować generator liczb
losowych. Funkcją umożliwiającą tworzenie takiego generatora to srand().
• Funkcja srand() ustawia punkt startowy dla mechanizmu generowania liczb.
• Srand(333); //punkt początkowy zostanie ustawiony na liczbie 333
• Funkcja pozwala na to, by wylosowane liczby były różne. Jednak, aby zawsze
uzyskać inne liczby w raz skompilowanym programie należy wykorzystać również
funkcję time().
BIBLIOTEKA CTIME ORAZ FUNKCJA TIME()
• Biblioteka ctime dostarcza nam funkcje odpowiedzialne między innymi za
wyświetlanie czasu rzeczywistego w postaci liczby.
• Za takie wyświetlanie czasu odpowiada funkcja time().
WYKORZYSTANIE FUNKCJI TIME()
• W celu uzyskania pseudolosowości należy umieścić w kodzie:
• Srand(time(NULL));
• Powyższą linijkę kodu wywołuje się raz na samym początku programu.
LOSOWANIE LICZB Z OKREŚLONEGO
PRZEDZIAŁU
• Do tworzenia programu losującego z wybranego przedziału liczb stosujemy
funkcję rand().
• Do utworzenia programu posłuży nam poniższy zapis:
• Int wylosowana_liczba=(rand()%ile_liczb_w_przedziale)+liczba_początkowa;
PRZYKŁAD WYKORZYSTANIA FUNKCJI RAND()
•#include <iostream>
•#include <cstdlib>
•#include <ctime>
•using namespace std;
•int main(int argc, char** argv) {

• srand(time(NULL));
• int liczba1=0;
•cout << "Wyświetl wylosowaną liczbę: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 2: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 3: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 4: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 5: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 6: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 7: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 8: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 9: " << liczba1 << endl;
•liczba1 = (rand()%10)+1;
•cout << "Wyświetl wylosowaną liczbę numer 10: " << liczba1 << endl;
•return 0;
•}
ZADANIA
• 1. Zmodyfikuj ostatni przykład wykorzystując pętlę for.
• 2. Stwórz program losujący osoby do odpowiedzi.
• 3. Program losuje liczbę z przedziału od 1 do 1000.
• 4. Jeżeli podana liczba jest za duża (za mała) gra wypisuje stosowny komunikat i
powraca do kroku 2.
• 5. Jeżeli gracz trafi liczbę wylosowaną to progam kończy działanie, wypisując na
ekran wylosowaną liczbę oraz liczbę 'strzałów', które oddał gracz.
Gra ma być zabezpieczona przed możliwością wprowadzenia błędnych wartości
liczbowych.
• Termin wysyłki: 19.11.2023 godzina 23.59 5 ocen

You might also like