Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 11. diel - Matematické funkcie v jazyku C

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
petr vrla
Člen
Avatar
petr vrla:25.2.2020 11:19

ahoj, Když chci tedy převést nějakou hodnotu tangens zpět na stupně, jak to udělám?

Avatar
DarkCoder
Člen
Avatar
Odpovedá na petr vrla
DarkCoder:25.2.2020 17:26

Převádí se stupně na radiány nebo radiány na stupně.

#include <math.h>
#define degToRad(angleInDegrees) ((angleInDegrees) * M_PI / 180.0)
#define radToDeg(angleInRadians) ((angleInRadians) * 180.0 / M_PI)

Pokud nechceš vkládat hlavičkový soubor math.h, pak si definuj konstantu PI sám.

#define M_PI 3.141592653
Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Odpovedá na DarkCoder
Martin Russin:20.6.2021 18:58

Ak som správne pochopil, signbit() môže byť použité ako funkcia ale výhodnejšie je ju použiť v makre?

Mal by som ešte jednu otázku. Som naučený, že hodnotu premennej typu double a float vypíšem pomocou príkazu printf("%f", x); no v tomto článku pri vypisovaní hodnôt typu double niekedy použili príkaz printf("%lf", x); a niekedy príkaz printf("%f", x);. Má to nejaký význam?

Avatar
DarkCoder
Člen
Avatar
Odpovedá na Martin Russin
DarkCoder:20.6.2021 20:13

Ano, signbit se často používá na velké množství dat u kterých postačí znát pouze příznak, zda je číslo záporné či nikoli. A implementace jako makro je ideální. Volání a návrat funkce by při implementaci signbit jako funkce stálo příliš velké množství času. Důvodem, proč je signbit definováno jako makro a ne funkce, je efektivita.

Co se týká použití specifikace formátu %f a %lf, má to význam ale pouze u funkce scanf(). U funkce printf() se pro výpis hodnoty typu float i double používá %f. Pro načtení hodnoty typu float používá %f, ale pro hodnotu typu double se používá %lf.

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
DarkCoder
Člen
Avatar
DarkCoder:20.8.2024 13:43

Informace k matematickým konstantám:

Matematické konstanty jako např. Ludolfovo (M_PI) či Eulerovo číslo (M_E) nejsou definované standardem C/C++. Pro jejich použití je třeba definovat _USE_MATH_DEFINES a poté zahrnout <cmath> nebo <math.h>.

#define _USE_MATH_DEFINES // pro C++
#include <cmath>

#define _USE_MATH_DEFINES // pro C
#include <math.h>
Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
DarkCoder
Člen
Avatar
DarkCoder:10. februára 12:37

Nebylo by na škodu více rozepsat některé funkce. Zejména ceil(), floor(), round(), trunc() si o to vysloveně říkají. Dále by stála za zmínku funkce fmod() pro dělení, funkce pro absolutní hodnotu pro reálná čísla fabs() a fabsf() a funkce pro práci s úhly deg2rad() a rad2deg() a jednoduchý ukázkový příklad..

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 6 správy z 16.