====== 4 - Cykly ======
===== 1. Výpočet odmocniny metodou binárního půlení =====
#include
#include
double odmocnina (double cislo, double presnost)
{
double horni_mez = cislo;
double dolni_mez = 0;
double stred = (horni_mez + dolni_mez) / 2;
while (fabs(stred*stred - cislo) > presnost)
{
printf("%4.4f %4.4f %4.4f\n", dolni_mez, stred, horni_mez);
if (stred*stred > cislo)
horni_mez = stred;
else
dolni_mez = stred;
stred = (horni_mez + dolni_mez) / 2;
}
return stred;
}
int main()
{
float a, b;
printf("zadej cislo: ");
scanf("%f", &a);
printf("zadej presnost: ");
scanf("%f", &b);
printf("odmocnina cisla %4.4f s presnosti %4.4f je %4.4f\n", a, b, odmocnina(a, b));
return 0;
}
===== 2. Výpočet Ludolfova čísla metodou Monte Carlo =====
#include
#include
#include
#include
#define SEED 35791246
main(int argc, char* argv)
{
int niter=0; /* počet iterací algoritmu */
double x,y;
int count=0; /* počet bodů v 1. kvadrantu jednotkové kružnice */
double z;
double pi;
printf("Zadejte pocet iteraci pro vypocet PI: ");
scanf("%d",&niter);
/* initialize random numbers */
srand(SEED);
for (int i=0; i
===== 3. Ciferný součet =====
#include
int main()
{
int a, s = 0;
printf("Zadej cele cislo: ");
scanf("%i", &a);
while (a > 0)
{
s += a % 10;
a /= 10;
}
printf("Ciferny soucet cisla %i je %i\n", a, s);
return 0;
}
===== 4. Armstrongovo číslo =====
#include
#include
int main()
{
int cislo, vstup, zbytek, n = 0;
float vysledek = 0.0;
printf("Napis cele cislo: ");
scanf("%d", &vstup);
// zjisteni poctu cifer cisla n
for (cislo = vstup; cislo != 0; ++n)
{
cislo /= 10;
}
for (cislo = vstup; cislo != 0; cislo /= 10)
{
zbytek = cislo % 10;
// soucet n-tych mocnin jednotlivych cifer cisla
vysledek += pow(zbytek, n);
}
// pokud je soucet n-tych mocnin cifer cisla roven cislu samotnemu, je to Armstrongovo cislo
printf ("%d %s Armstrongovo cislo.\n", vstup, ((int)vysledek == vstup) ? "je" : "neni");
return 0;
}