Třetí cvičení – podmínky a cykly
Toto cvičení přineslo několik důležitých programových prvků. Prvně jde o možnost ovlivnit chod programu pomocí podmínek. Zadruhé byly probrány cykly for
, while
a do-while
Obsah cvičení
V tomto cvičení jsme si ukázali velmi důležité a mocné prvky jazyka C – podmínky a cykly. Pomocí podmínek můžeme ovlivnit chod programu a cykly nám umožňují efektivně vykonávat opakující se činnosti.
Vytvořte program, který na vstupu dostane celé číslo n (počet výstřelů) a dvě reálná čísla a a b (meze integrálu). Program poté vypočítá určitý integrál z funkce sinus pomocí metody Monte-Carlo. Uvažujte funkci sinus zúženou na interval [0; π]. Myšlenka je taková, že okolo funkce vytvoříme pomyslný obdélník velikosti b - a a 1. Do tohoto obdélníku se náhodně strefujeme a počítáme, kolikrát se trefíme pod graf funkce. Nakonec máme celkový počet vystřelených bodů n a počet bodů pod grafem. Tento poměr určuje přibližně i poměr ploch obdélníku a funkce. Zájemci ještě mohou vypočítat integrál analyticky a zkoumat chybu metody Monte-Carlo při rostoucím počtu bodů.
Pro střelbu potřebujete generátor pseudonáhodných čísel. V jazyce C je zabudovaný jednoduchý generátor, který se použije následujícím způsobem
#include <stdlib.h>
#include <time.h>
#include <limits.h>
int main (int argc, char **argv)
{
/*
Inicializace generátoru, nutné provést právě jednou před prvním
vygenerováním pseudonáhodného čísla. Zde využíváme jako
počáteční hodnotu aktuální čas v systému.
*/
srand(time(0));
// vygenerování čísla s rovnoměrným rozdělením v intervalu [0, 1)
float cislo = rand()/(1.0 + RAND_MAX);
// další kód ...
return 0;
}