Anglická verze
logolink

< Zpět na seznam lekcí

Vzorce a matematické funkce

AlgortimyObsah lekce:

  • Matematické funkce druhá odmocnina, mocnina
  • Desetinná čísla a datový typ real
  • Výpis desetinných čísel
  • Ludolfovo číslo

Matematické funkce odmocnina, mocnina

Aby naše programy mohly řešit složitější matematické vzorce, pak je potřeba, aby uměly další matematické funkce jako mocnina či odmocnina. Ukážeme si funkce mocnina a odmocnina v programovacím jazyce C.

Poznámka: Abychom mohli následující funkce v programu použít, tak je třeba do našeho programu přidat hlavičkový soubor (někdy označovaný termínem "knihovna") math.h. Hlavičkový soubor je soubor, který obsahuje deklaraci dalších naprogramované funkce (například matematické), které (po vložení tohoto souboru) umí náš program použít (kdybychom do hlavičky programu potřebnou direktivu #include nevložili, pak by náš program funkce z tohoto hlavičkového souboru neznal a hlásil by chybu).

DOPLNĚNÍ HLAVIČKOVÉHO SOUBORU MATH.H
#include "stdafx.h";
#include <math.h>
int _tmain(int argc, _TCHAR* argv[])
{
	...
	return 0;
}

Mocnina

Pro výpočet funkce mocnina je v jazyce C k dispozici funkce pow (což je zkratka z anglického termínu pro mocninu - power). V referenční příručce jazyka C zjistíte toto:

INFORMACE O FUNKCI POWER Z REFERENČNÍ PŘÍRUČKY
double pow (double base, double exponent );
long double pow ( long double base, long double exponent );
float pow (float base, float exponent );
double pow (double base, int exponent );
long double pow (long double base, int exponent ); 

Raise to power.
Returns base raised to the power exponent.

Definice funkce říká, že se volá (použije v programu) příkazem pow, který má dva parametry:

  • base neboli základ
  • exponent neboli exponent :)

Referenční příručka nám nabízí více variant zápisu – tyto varianty nám ukazují, jaký datový typ mohou mít vstupní hodnoty a jaký datový typ má výsledek.

Chceme-li tedy, aby náš program spočítal a vypsal například výraz a5, pak v programu napíšeme printf("%f", pow(a,5));

Druhá odmocnina

Pro výpočet funkce odmocnina je v k dispozici funkce sqrt (což je zkratka pro anglický termín square root - odmocnina). V referenční příručce zjistíte toto:

INFORMACE O FUNKCI POWER Z REFERENČNÍ PŘÍRUČKY
double sqrt (double x );
float sqrt (float x );
long double sqrt (long double x );

Compute square root.
Returns the square root of x.

Desetinná čísla a datové typy float, double a long double

Jak funkce mocnina, tak odmocnina již ke své funkčnosti potřebují obor reálných čísel. Je tedy nutné výsledky výpočtů vkládat do proměnných, které jsou daných datových typů (tj. float, double nebo long double).

Seznam těchto datových typů byl zmíněn v minulé lekci. Pro zopakování je však uveďme ještě jednou.

 

Datový typ

Povolený zkrácený zápis

Popis

Rozsah

Celočíselné datové typy se znaménkem

signed int

int

Celé číslo se znaménkem

od - 2 147 483 648
do + 2 147 483 647

signed short int

short int nebo short

Krátké celé číslo se znaménkem

od - 32 768
do + 32 767

signed long int

long int nebo long

Dlouhé celé číslo se znaménke,

od - 2 147 483 648
do + 2 147 483 647

signed char

char

Znak se znaménkem

od - 128
do + 127

Celočíselné datové typy bez znaménka

signed int

 

Celé číslo bez znaménka

od 0
do + 4 294 967 295

signed short int

signed short

Krátké celé číslo bez znaménka

od 0
do + 65 536

signed long int

signed long

Dlouhé celé číslo bez znaménka

od 0
do + 4 294 967 295

signed char

 

Znak bez znaménka

od 0
do + 256

Reálné datové typy

float

 

Reálné číslo s jednoduchou přesností

od 3.4×10-38
do 3.4×1038

double

 

Reálné číslo s dvojitou přesností

od 1.7×10-308
do 1.7×10308

long double

 

Reálné číslo se zvýšenou přesností

od 3.4×10-38
do 3.4×1038

 

DATOVÝ TYP FLOAT A FUNKCE POW V JAZYCE C
#include "stdafx.h"
#include <math.h>

int _tmain(int argc, _TCHAR* argv[])
{
	float a, b, e;
	printf("Zadejte prosim zaklad mocniny: ");
	scanf("%f",&a);
	printf("Zadejte prosim exponent mocniny: ");
	scanf("%f",&e);
	b = pow(a,e);
	printf("Vyraz %f^%f = %f\n", a, e, b);
	getchar();
	return 0;
}

Pokud program spustíme, zjistíme, že se nám všechny výsledky zobrazují na 6 desetinných míst, což může být někdy nepraktické, proto ještě nastavíme počet zobrazovaných desetinných míst. Náš program proto takto upravíme:

Datový typ real a funkce Power v jazyce C
#include "stdafx.h"
#include <math.h>

int _tmain(int argc, _TCHAR* argv[])
{
	float a, b, e;
	printf("Zadejte prosim zaklad mocniny: ");
	scanf("%f",&a);
	printf("Zadejte prosim exponent mocniny: ");
	scanf("%f",&e);
	b = pow(a,e);
	printf("Vyraz %5.2f^%5.2f = %5.2f\n", a, e, b);
    fflush(stdin);
	getchar();
	return 0;
}

Pokud nechceme definovat minimální počet znaků, ale pouze počet desetinných míst, je možné zápis %5.2f zápisem %.2f.

Ludolfovo číslo

Pokud budeme potřebovat v jazyce C použít hodnotu pi, je možné ji nadefinovat jako konstantu. Pro definici konstanty se používá direktiva #define, která se uvádí na začátku programu, stejně jako v případě direktivy #include (kterou jsme již dříve použili pro vkládání hlavičkových souborů).

Pro definici konstanty použijeme následující zápis:

Definice konstanty
#define JMENO HODNOTA

Na výše uvedeném zápisu si můžeme všimnout dvou věcí: stejně jako u direktivy #include řádek nezakončujeme středníkem a u konstanty neuvádíme datový typ (zápis uvádíme ve tvaru "#define mezera jméno konstanty mezera hodnota).

Pro konstantu pí bude definice vypadat následovně (pozn. hodnotu uvádíme dle požadované přesnosti):

Definice konstanty PI
#define PI 3.14159

Domácí úkol

Napište program pro výpočet objemu koule a válce. Potřebné vzorce nalezněte na Internetu.

Domácí úkol

Napište program pro výpočet vzorce ax+by.

Další čtení

Odkazy

Otázky

  1. Jak se jmenuje funkce pro výpočet mocniny?
  2. Jak se jmenuje funkce pro výpočet druhé odmocniny?
  3. Jak se jmenuje funkce pro výpočet odmocniny?
  4. K čemu slouží datový typ float?
  5. Jak lze srozumitelně vypsat reálné číslo na obrazovku?
webdesign, xhtml, css, php - Mgr. Michal Mikláš