NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Lekce 12 - Matematické funkce v jazyce C

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Petr Laštovička:16.7.2016 11:51

Funkce fdim vrací nulu, pokud první parametr je menší než druhý.

 
Odpovědět
16.7.2016 11:51
Avatar
Odpovídá na Petr Laštovička
Patrik Valkovič:16.7.2016 12:25

Díky opraveno.

Odpovědět
16.7.2016 12:25
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Vlasta Mozny
Člen
Avatar
Vlasta Mozny:22.1.2017 19:37
#include <iostream>
int Soucet(int x, int y)
{
    std::cout << "Loading ..... Uvedl jsi tyto 2 cisla ke scitani. " << x << "+" << y << "=???????";
    return (x+y);
}

int main()
{
    using std::cout;
    using std::cin;


    cout << "                       Vitam vas v Kalkulace v1.0!\n";
    int  a, b, c;
    cout << "\n";
    cout << "Napis nejake 2 cisla co te napadnou ke scitani s mezerou:";
    cin >> a ;
    cin >> b ;
    cout << "\nNahrava se program Scitani  .. O_O .. \n";
    c=Soucet (a,b);
    cout << "\nLoading ..... Mam Pro tebe tve cislicka ke scihnuti!!!\n";
    cout << "\n";
    cout << "Vysledek  je pokud se teda nemylim a to se opravdu nemylim!!! " << c;
    cout << "\n";
    cout << "\nKonec programu kalkulacky kterou upravil Remsa Vlastimil a Robutek Mark.";
    cout << "\nA ted se s vamy loucime :] Mame jine veci na praci ....\n";
    cout << "\n";
    cout << "                       Bye (O_O)  (^.^) Bye";
    cout << "\n";
    return 0;
}

Tu je moje kalkulacka pro pobaveni
Odpovědět
22.1.2017 19:37
„Pokud chcete, aby vás měli za lháře, vždy říkejte pravdu.“
Avatar
jan široký
Člen
Avatar
jan široký:3.10.2018 13:35

ahoj. funkce abs() pracuje s intem. https://www.tutorialspoint.com/…tion_abs.htm

 
Odpovědět
3.10.2018 13:35
Avatar
jan široký
Člen
Avatar
jan široký:3.10.2018 13:45

Jedná se o inverzní funkce k sin(), cos() a tan(). Parametrem je hodnota úhlu, výstupem úhel v radiánech. Pokud si přejeme mít úhel ve stupních, vydělíme radiány hodnotou (180 / M_PI).

tady by melo byt "vynasobime radiany hodnotou (180/M_PI)"
nebo "vydelime hodnotou (M_PI/180)"

jinak dekuju moc za tenhle tutorial, je fakt super, jsem rad, ze na netu neco takoveho je!

 
Odpovědět
3.10.2018 13:45
Avatar
Odpovídá na jan široký
Patrik Valkovič:3.10.2018 18:51

Radiány opraveny.
Funkce abs má přetížení pro všechny základní typy
https://en.cppreference.com/…ic/math/fabs
https://en.cppreference.com/…ric/math/abs

Odpovědět
3.10.2018 18:51
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Patrik Pastor:25.8.2019 17:33

float f = -123.123;
printf("%i\n", signbit(f));

kdyz mam u funkce signbit() argument typu float - zaporny, vraci mi zaporne cislo (velk treba -443456347 --neni nahodne, 5 jsem to exekutnul a stale to same cislo), nemelo by mi to snad vracet kladnou 1? Kdyz bych typ float zmenil na typ double (a vsechno ostatni nechal stejne, tedy double hodnota 123.123) NAJEDNOU mi to uz vraci kladnou jednicku. Proc tedy signbit funguje jen u double kdyz ma napsane v man definici "every floating-point number" coz float je taky. Vysvetleni prosim

 
Odpovědět
25.8.2019 17:33
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Patrik Pastor
DarkCoder:25.8.2019 18:35

signbit není funkce ale makro a vrací nenulovou integrální hodnotu pokud desetinné číslo předané jako argument začíná znaménkem -. V opačném případě vrací nulu. Je tedy úplně jedno jestli vrátí 1, 10, -10, -100, …), pořád to říká, že desetinné číslo začíná -. Funguje to správně jak u float tak i double typů. Umí to odlišit i následující argumenty 0.0, +0.0 a -0.0.

Funkci makra signbit ulazuje následující program:

#include <stdio.h>
#include <math.h>

int main(void) {

        float fpole[] = { +0.0f, 0.0f, -0.0f, 10.0f, -10.0f };
        double dpole[] = { +0.0, 0.0, -0.0, 100.0, -100.0 };
        int fsize = sizeof(fpole) / sizeof(float);
        int dsize = sizeof(dpole) / sizeof(double);

        // floats
        for (int i = 0; i < fsize; i++) {
                if(signbit(*(fpole + i))) printf("%f - signbit\n", *(fpole + i));
                else printf("%f + signbit\n", *(fpole + i));
        }

        putchar('\n');

        // doubles
        for (int i = 0; i < dsize; i++) {
                if (signbit(*(dpole + i))) printf("%f - signbit\n", *(dpole + i));
                else printf("%f + signbit\n", *(dpole + i));
        }

        return 0;
}
Odpovědět
25.8.2019 18:35
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Odpovídá na DarkCoder
Patrik Pastor:25.8.2019 18:59

co je makro? proc by signbit nemohla byt funkce, kdyz prijima argumenty a vraci nejaky datovy typ - to jsou prece fundamentaly funkce (tyda ma vstupni a vystupni paramter), jak se teda lisi makro.od funkce?

 
Odpovědět
25.8.2019 18:59
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Patrik Pastor
DarkCoder:25.8.2019 19:18

Makro je v mnoha ohledech podobné funkci. Stejně jako funkce může vykonávat nějakou činnost, může mít parametry. Je tu však určitá odlišnost. Výhoda makra s parametry oproti funkcím je ta, že kód generovaný makrem se začleňuje přímo do kódu programu a nedochází tak ke ztrátě času, který je potřebný pro operace volání a návratu z funkce. Je tedy rychlejší. Makra s parametry se ale používají pro jednoduché operace, neboť při každém volání makra dochází také ke generování duplicitního kódu, takže výsledný program tak může být delší než za použití funkce.

Makro signbit by mohlo být vytvořeno jako funkce, ale proč. Je to operace jednoduchá, tak proč ji tvořit jako funkci. Na podobné operace jako je signbit jsou makra určena.

Odpovědět
25.8.2019 19:18
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 16.