abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 00:22 | Nová verze

    Byla vydána verze 1.96.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    28.5. 20:33 | IT novinky

    Společnosti IBM a Red Hat představily Project Lightwell s investicí 5 miliard dolarů. Jedná se o důvěryhodné clearingové centrum pro bezpečnost open source softwaru a zabezpečení dodavatelských řetězců s novým AI modelem a globální skupinou více než 20 000 softwarových inženýrů. Služby centra budou dostupné prostřednictvím komerčních předplatných. Project Lightwell staví na iniciativách jako Anthropic Glasswing nebo OpenAI Trust Access for Cyber.

    Ladislav Hagara | Komentářů: 1
    28.5. 18:22 | Nová verze

    Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 26.05. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    28.5. 11:44 | IT novinky

    Český stát by v budoucnu mohl provozovat vlastní alternativu ke komunikačním aplikacím typu WhatsApp, Signal, Telegram, Facebook Messenger a podobně. Cílem je zajistit bezpečnou datovou komunikaci pro stát a jeho důležité subjekty, jako jsou bezpečnostní složky, ministerstva a další organizace.

    Ladislav Hagara | Komentářů: 24
    28.5. 11:22 | Pozvánky

    Už za týden, ve čtvrtek 4. června, se v Národní technické knihovně v pražských Dejvicích uskuteční další konference věnovaná tématům spojeným s IPv6 - Den IPv6. Program akce a registrační formulář jsou k dispozici na webu akce. Kapacita konference je omezená, proto organizátoři doporučují, aby se vážní zájemci přihlásili včas (k dnešnímu dni zbývá přibližně 30 volných míst). Konferenci Den IPv6 2026 organizují i letos společně sdružení CESNET, CZ.NIC a NIX.CZ.

    VSladek | Komentářů: 1
    28.5. 05:22 | IT novinky

    Zařízení Steam Deck OLED bylo znovu naskladněno, ale vlivem rostoucích cen pamětí a úložišť má novou, vyšší cenovku. Steam Deck OLED 512 GB stojí nově 779 EUR (stál 569 EUR) a Steam Deck OLED 1 TB stojí 919 EUR (stál 679 EUR). Samotné zařízení se nijak nezměnilo a nové ceny tedy pouze odráží aktuální náklady na komponenty a další globální logistické výzvy, se kterými se potýká celá branže.

    Ladislav Hagara | Komentářů: 0
    27.5. 22:22 | IT novinky

    Český telekomunikační úřad zahajuje novou etapu využívání vysokofrekvenčního rádiového spektra v pásmu 26 GHz. Toto pásmo bude od 1. 7. 2026 otevřeno pro provoz moderních bezdrátových sítí, zejména sítí páté generace (5G), pevných bezdrátových přístupových sítí (FWA) a lokálních či průmyslových sítí určených například pro výrobní areály, logistická centra nebo technologické kampusy. Současně s otevřením pásma 26 GHz přistoupil ČTÚ ke zpřístupnění informací o využívání rádiových kmitočtů v tomto pásmu.

    Ladislav Hagara | Komentářů: 9
    27.5. 22:11 | IT novinky

    Logitech představil myš Signature Comfort Plus M850 L s polstrovanou opěrkou dlaně pro větší pohodlí a sadu s touto myší a klávesnicí s integrovanou opěrkou dlaní Signature Comfort Plus Combo MK880.

    Ladislav Hagara | Komentářů: 1
    27.5. 16:33 | IT novinky

    Gaël Duval se rozepsal o novinkách a plánech Murena a /e/OS. Počet uživatelů telefonů Murena a mobilního operačního systému /e/OS bez aplikací a služeb od Googlu se blíží 100 000. Ambicí je, aby se /e/OS stal třetí mobilní platformou v Evropě i na světě, s potenciálem dostat se i na PC. Blíží se vydání nové verze 4 s funkcemi zálohování a obnova, import e-mailů z Gmailu a rozpoznávání hlasu. Murena Workspace přinese videohovory, elektronický podpis a správu zařízení (MDM).

    Ladislav Hagara | Komentářů: 4
    27.5. 15:22 | Komunita

    Dnes a zítra probíhá Ubuntu Summit 26.04. Na programu je řada zajímavých přednášek. Sledovat je lze na YouTube. Úvodní slovo měli Mark Shuttleworth a Jon Seager.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (12%)
     (8%)
     (2%)
     (15%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1757 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Rovnost v céčku

    4.11.2018 20:54 Kacka99
    Rovnost v céčku
    Přečteno: 1819×
    Zdravím, potřebovala bych pomoci s rovností.

    long double a, b, c, x, y, z;

    scanf("%Lf%Lf%Lf%Lf%Lf%Lf", &a, &b, &c, &x, &y, &z);

    long double o1, o2;

    o1 = a + b + c;

    o2 = x + y + z;

    if (o1 == o2) printf("obvody jsou stejné");

    if (o1 < o2) printf("obvod dva je větší");

    no a když zadávám desetinná čísla, tak i když jsou stejné obvody, tak mi to vyhazuje, že obvod dva je větší. U celých čísel to funguje. Prosím tedy o radu, co dělám špatně?

    Řešení dotazu:


    Odpovědi

    4.11.2018 21:11 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Čísla typu float a double se nedají přímo porovnávat na rovnost. Je nutné zpracovat i přesnost porovnání (eps).
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Blaazen avatar 4.11.2018 21:16 Blaazen | skóre: 24 | blog: BL
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Protože double nedokáže přesně uložit některé hodnoty, např. místo 4,5 uloží 4,49999999 a někdy to nevyjde.
    4.11.2018 21:32 Kacka99
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Děkuji moc. A prosím jak to mám tedy udělat?
    vencour avatar 4.11.2018 21:50 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Testujte rozdíl obou čísel, že je menší třeba než 10E-5.
    Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
    4.11.2018 22:23 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Rovnost v céčku

    Pro jistotu: …že je jeho absolutní hodnota menší…

    Ad "třeba než 10E-5": (1) 10E-5 se obvykle píše spíš jako 1E-4 (což je docela dost). (2) U skutečných úloh je odhadování chyb mnohem komplikovanější než že podívám z okna a plácnu od oka nějaké číslo. Tady ale zadání vypadá tak uměle, že to až smrdí domácím úkolem, takže je to asi jedno.

    Jendа avatar 5.11.2018 03:14 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Neměl by ten limit být nějaký zlomek z magnitudy toho čísla? Pro porovnávání 1e-10 a 2e-10 je limit 1e-4 moc, pro porovnávání 1e+20 a 1.1e+20 je málo.
    5.11.2018 05:27 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    To by v praxi znamenalo, že třeba porovnání "a + b == c" a "a == c - b" může dát výrazně odlišné výsledky. Pokud bych to chtěl dělat opravdu pořádně, spíš bych se snažil spočítat horní odhad zaokrouhlovací chyby a použít ten.
    4.11.2018 22:24 Luboš | skóre: 2
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Před porovnání double (nebo float) je třeba rozhodnout, s jakou přesností budou čísla porovnávána.
    Řešeno je to např.zde:
    Comparing floating point numbers
    The following definitions are from The art of computer programming by Knuth:

    bool approximatelyEqual(float a, float b, float epsilon)
    {
    return fabs(a - b) <= ( (fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
    }

    bool essentiallyEqual(float a, float b, float epsilon)
    {
    return fabs(a - b) <= ( (fabs(a) > fabs(b) ? fabs(b) : fabs(a)) * epsilon);
    }

    bool definitelyGreaterThan(float a, float b, float epsilon)
    {
    return (a - b) > ( (fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
    }

    bool definitelyLessThan(float a, float b, float epsilon)
    {
    return (b - a) > ( (fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
    }
    5.11.2018 01:04 MadCatX | skóre: 28 | blog: dev_urandom
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Kdyby to z toho kódu nebylo zřejmé, je důležité hodnotu epsilon škálovat podle toho, jak velká čísla se porovnávají (resp. porovnávané hodnoty normovat). Ten kód samotný je mimochodem trochu hybrid, v klasickém C není bool, v C++ by se zase mělo použít std::abs() místo fabs().
    10.11.2018 18:25 luky
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    C99 neni ani po temer dvaceti letech klasicke C? A jake je tedy to klasicke - C89, K&R...?

    Hlavicka stdbool.h musi definovat bool jako _Bool. _Bool je interni typ stene jako treba int.
    10.11.2018 19:52 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Visual Studio pridalo _Bool s verziu 2013. Čo je púhych 5 rokov dozadu. A poznám ľudí, ktorí sa ešte nepohli za C98 ... všetko novšie považujú za nepotrebné "panské huncútstvo" a chvíľkový ošiaľ, ktorému sa neoplatí venovať čas ... do čerta, musím si ísť zapiť depku ... :-(
    10.11.2018 22:42 debian+
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Co z C98? Hm, dvojriadkove komentare, snprintf(), UTF16 (ktoru som nikdy v zivote nevyuzil). Strnlen bola pridana neskor. A mozno nejake fun.

    Kto ma rad C, bool zrejme az tak nefandi.
    10.11.2018 21:39 MadCatX | skóre: 28 | blog: dev_urandom
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Uvedený snippet neříká, že by se mělo includovat stdbool.h a protože jde zřejmě o začátečnický dotaz, přišlo mi vhodné na to upozornit. Co se podpory C99 týče, třeba MSVC úplnou podporu standardního C99 pořád nemá.
    5.11.2018 06:19 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    To by např. znamenalo, žeessentiallyEqual(a, 0, epsilon) bude totéž co "a == 0" a pro epsilon < 1 i approximatelyEqual(a, 0, epsilon).
    5.11.2018 10:25 MadCatX | skóre: 28 | blog: dev_urandom
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Což může být žádoucí, protože "skoro nula" a "úplně nula" je v některých případech zásadní rozdíl. V opačném případě je třeba porovnání vůči nule ošetřit zvlášť.
    5.11.2018 11:23 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Ten problém se netýká jen nuly, na té je to jen názornější. Chyba je v samotném předpokladu, že velikost zaokrouhlovací chyby poznám z čísla samotného a nepotřebuji vědět, jak jsem k němu došel. Pokud bych chtěl jít touhle cestou, musel bych si u každé číselné hodnoty udržovat i informaci o její (ne)přesnosti a tu dopočítávat i při každé aritmetické operaci.
    5.11.2018 10:37 sad
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Já bych zkusil desetinná čísla převést na řetězce pomocí funkce sprintf, sprintf je podobná funkce jako printf, s tím zásadním rozdílem, že proměnné nevypisuje na monitor, ale zapisuje je do řetězce.

    Zde je její tvar. Jak vidíš, tak prvním argumentem, je řetezec, do kterého budeš zapisovat ono číslo. Formátovací řetězec bys mohla mít třeba pro dvě desetinná místa, takže "%.2Lf", a poté jen řetězce porovnáš funkcí strcmp.
    5.11.2018 15:36 Tomáš
    Rozbalit Rozbalit vše Re: Rovnost v céčku

    Z https://bitbashing.io/comparing-floats.html

    bool relativelyEqual(float a, float b,
        float maxRelativeDiff = FLT_EPSILON)
    {
        const float difference = fabs(a - b);
    
        // Scale to the largest value.
        a = fabs(a);
        b = fabs(b);
        const float scaledEpsilon =
            maxRelativeDiff * max(a, b);
    
        return difference <= scaledEpsilon;
    }
    
    13.11.2018 21:15 Kacka99
    Rozbalit Rozbalit vše Re: Rovnost v céčku
    Ahoj, všem moc díky. Porovnala jsem to s epsilon a šlo to. :)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.