Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

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
Avatar
Petr Laštovička:16.7.2016 11:51

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

 
Odpovedať
16.7.2016 11:51
Avatar
Odpovedá na Petr Laštovička
Patrik Valkovič:16.7.2016 12:25

Díky opraveno.

Odpovedať
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
Odpovedať
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

 
Odpovedať
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!

 
Odpovedať
3.10.2018 13:45
Avatar
Odpovedá 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

Odpovedať
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

 
Odpovedať
25.8.2019 17:33
Avatar
DarkCoder
Člen
Avatar
Odpovedá 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;
}
Odpovedať
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
Odpovedá 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?

 
Odpovedať
25.8.2019 18:59
Avatar
DarkCoder
Člen
Avatar
Odpovedá 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.

Odpovedať
25.8.2019 19:18
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
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.

Zatiaľ nikto nevložil komentár - buď prvý!