Rand (jazyk C): Rozdiel medzi revíziami
d (→Príklad)  | 
				|||
| (6 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených) | |||
| Riadok 1: | Riadok 1: | ||
{{Funkcie jazyka c}}  | {{Funkcie jazyka c}}  | ||
| − | Funkcia   | + | __NOTOC__  | 
| + | ==Funkcia rand==  | ||
| + | <properties>  | ||
| + | knižnica=stdlib.h   | ||
| + | popis=Vygeneruje náhodné číslo.  | ||
| + | </properties>  | ||
| + | |||
| + | Úplný funkčný prototyp:  | ||
| + | <source lang="c">  | ||
| + |   int rand (void);   | ||
| + | </source>  | ||
| + | |||
| + | ==Podrobný popis funkcie==  | ||
| + | Funkcia [[Rand (jazyk C)|rand]] sa používa v jazyku C na generovanie náhodných čísel. Ak vygenerujeme sekvenciu náhodných čísel pomocou funkcie [[Rand (jazyk C)|rand]], tak vytvorí rovnakú sekvenciu znova a znova pri každom spustení programu. Povedzme, že ak generujeme 5 náhodných čísel v C pomocou cyklu [[Rand (jazyk C)|rand]] v cykle, potom vždy, keď kompilujeme a spustíme program, náš výstup musí byť rovnakou sekvenciou čísel. Riešením je použiť funkciu [[Srand (jazyk C)|srand]], ktorá zmení ''seed'' generátoru.  | ||
| + | |||
| + | ==Návratová hodnota==  | ||
| + | Funkcia vráti celé číslo v rozmedzí 0 až ''RAND_MAX''.<ref>https://www.tutorialspoint.com/c_standard_library/c_function_rand.htm</ref>  | ||
| + | |||
| + | ==Príklad==  | ||
| + | <source lang="c" line>  | ||
| + | #include <stdio.h>  | ||
| + | #include <stdlib.h>  | ||
| + | #include <time.h>  | ||
| + | |||
| + | int random(int min, int max) {  | ||
| + | 	return (rand() % (max - min + 1)) + min;  | ||
| + | }  | ||
| + | |||
| + | int main() {  | ||
| + | 	time_t t;  | ||
| + |         int n = 5;                             //počet vypísaných čísel  | ||
| + | |||
| + |         srand((unsigned)time(&t));             //inicializuje generátor náhodných čísel podľa času  | ||
| + | |||
| + | 	for (int i = 0; i < n; i++) {  | ||
| + |                 printf("%d\n", random(1,50));  //vypíše náhodné číslo od 1 po 50  | ||
| + | 	}  | ||
| + | |||
| + | 	return 0;  | ||
| + | }  | ||
| + | </source>  | ||
| + | |||
| + | ''Výstup (môže sa líšiť):''  | ||
| + |  7  | ||
| + |  33  | ||
| + |  31  | ||
| + |  30  | ||
| + |  43  | ||
| + | |||
| + | ==Referencie==  | ||
Aktuálna revízia z 22:20, 19. máj 2020
| <ctype.h> | <limits.h> | <stdio.h> | <stdlib.h> | <math.h> | <string.h> | <time.h> | 
|---|---|---|---|---|---|---|
| 
 isalnum  | 
 printf  | 
 system  | 
Funkcia rand
knižnica  | stdlib.h  | 
popis  | Vygeneruje náhodné číslo.  | 
Úplný funkčný prototyp:
  int rand (void);
Podrobný popis funkcie
Funkcia rand sa používa v jazyku C na generovanie náhodných čísel. Ak vygenerujeme sekvenciu náhodných čísel pomocou funkcie rand, tak vytvorí rovnakú sekvenciu znova a znova pri každom spustení programu. Povedzme, že ak generujeme 5 náhodných čísel v C pomocou cyklu rand v cykle, potom vždy, keď kompilujeme a spustíme program, náš výstup musí byť rovnakou sekvenciou čísel. Riešením je použiť funkciu srand, ktorá zmení seed generátoru.
Návratová hodnota
Funkcia vráti celé číslo v rozmedzí 0 až RAND_MAX.[1]
Príklad
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 int random(int min, int max) {
 6 	return (rand() % (max - min + 1)) + min;
 7 }
 8 
 9 int main() {
10 	time_t t;
11         int n = 5;                             //počet vypísaných čísel
12 
13         srand((unsigned)time(&t));             //inicializuje generátor náhodných čísel podľa času
14 
15 	for (int i = 0; i < n; i++) {
16                 printf("%d\n", random(1,50));  //vypíše náhodné číslo od 1 po 50
17 	}
18 
19 	return 0;
20 }
Výstup (môže sa líšiť):
7 33 31 30 43