Riadiace štruktúry, sekvencia a generátor náhodných čísel
V programovacom jazyku C sa sekvencia vzťahuje na postupnosť vykonávania jednotlivých príkazov alebo operácií. Sekvencia definuje poradie, v akom sú jednotlivé príkazy alebo operácie vykonávané vo vašom programe.
Sekvencia je jedným zo základných konceptov v C a pomáha riadiť tok programu. Príkazy alebo operácie v programe sú vykonávané po sebe, jeden po druhom, v poradí, v akom sú zadané.
Príklady sekvencie v jazyku C môžu zahŕňať:
- Výpis textu na obrazovku.
- Aritmetické operácie, ako sčítanie, odčítanie, násobenie a delenie.
- Priradenie hodnôt do premenných.
- Volanie funkcií.
- Čítanie alebo zápis dát zo súboru.
Príklad použitia sekvencie v jazyku C:
#include <stdio.h>
int main()
{
int a, b, sum;
a = 5;
b = 3;
sum = a + b;
printf("Vysledok je: %d\n", sum);
return 0;
}

V tomto príklade sa vykonáva sekvencia(postupnosť) nasledujúcich krokov:
- Definovanie premenných a, b a sum.
- Priradenie hodnoty 5 do premennej a.
- Priradenie hodnoty 3 do premennej b.
- Vykonanie operácie sčítania a + b a uloženie výsledku do premennej sum.
- Výpis výsledku na obrazovku pomocou printf.
Generátor náhodných čísel
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
int cislo;
srand( time( 0 ) );
cislo = rand()%1000;
printf ("Generované číslo je: %d \n",cislo);
return 0;
}
V tomto príklade používame knižnicu stdlib.h, ktorá poskytuje funkcie pre prácu s náhodnými číslami, a knižnicu time.h, ktorá poskytuje aktuálny čas ako seed pre generátor náhodných čísel.
- Na začiatku programu voláme funkciu srand(time(0)), ktorá nastavuje seed pre generátor náhodných čísel na aktuálny čas. Tým sa zabezpečuje, že pri každom spustení programu budú generované iné náhodné čísla.
- Hneď na to ukladáme do premennej cislo náhodne vygenerované číslo a vykonáme operáciu zvyšok po delení 1000. Tak zamedzíme že generované číslo nebude väčšie ako 1000
- na koniec ho vypíšeme pomocou printf
Ak by sme chceli zmeniť rozsah stačí nám iba upraviť číslo za zvyškom po delení to nám určuje hornú hranicu. Spodnú hranicu určujeme tak že k nášmu číslu pripočítame také číslo od ktorého chceme začínať. Čiže keby sme chceli rozsah od 100 do 600 tak by náš príkaz vyzeral takto -> cislo = rand()%500+100;
Úloha číslo 1: napíšte program na výpočet strany štvorca ak jeho obvod je náhodne vygenerovaný
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
float a, obvod;
srand(time(0));
obvod = rand() % 1000 + 30;
a = obvod / 4;
printf("Generované číslo je: %.0f \n",obvod);
printf("strana a je: %.2f \n",a);
return 0;
}

Úloha číslo 2: Napíšte program na výpis všetkých cifier z náhodne vygenerovaného čísla od 1000 do 9999
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int cislo, t, s, d;
srand(time(0));
cislo = rand() % 8999 + 1000;
printf("cislo je: %d\n",cislo);
t = cislo / 1000;
cislo = cislo % 1000;
s = cislo / 100;
cislo = cislo % 100;
d = cislo / 10;
cislo = cislo % 10;
printf("tisícky su %d \nstvoky su: %d \ndesiatky su: %d \njednotky su: %d \n",t,s,d,cislo);
return 0;
}

Úloha číslo 3: Napíšte program kde sa nám náhodne vygeneruje suma od 120 do 640 v € a vypíše sa nám akým najmenším počtom bankoviek a mincí vieme zaplatiť túto sumu
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int suma, s, p, dv, d, pe, dvo;
srand(time(0));
suma = rand() % 540 + 120;
printf("suma je: %d\n",suma);
s = suma / 100;
suma = suma % 100;
p = suma / 50;
suma = suma % 50;
dv = suma / 20;
suma = suma % 20;
d = suma / 10;
suma = suma % 10;
pe = suma / 5;
suma = suma % 5;
dvo = suma / 2;
suma = suma %2;
printf("stovky su %d \npedesiatky su: %d \ndvadsiatky su: %d \ndesiatky su: %d \npetky su %d \ndvojky su %d \njednotky su %d \n",s,p,dv,d,pe,dvo,suma);
return 0;
}

Úloha číslo
4: Napíšte program ktorý náhodne vygeneruje obsah od 15 do 64 pravouhlého trojuholníka, stranu a zadáme
z klávesnice a nakoniec nám to vypočíta a vypíše stranu b a stranu c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main ()
{
int obsah,a;
float b,c;
srand( time( 0 ) );
obsah = rand()%49 + 15;
printf ("Generované číslo je: %d \n",obsah);
printf("zadaj stranu a\n");
scanf("%d",&a);
b = (obsah * 2) / a;
c = sqrt(pow(a,2) + pow(b,2));
printf("strana b = %.2f\n strana c = %.2f\n",b,c);
return 0;
}
