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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 0
včera 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 19
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 2
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 767 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: c++ zkrácení zlomku

9.1.2013 19:25 marek33
c++ zkrácení zlomku
Přečteno: 819×
Ahoj, mam tady takovou úlohu a nevím si s ni rady. Mam zlomek 6/4 a mam ho zkrátit na 3/2, chtěl bych to udělat pomocí cyklu while. Díky za vaší pomoc.

Řešení dotazu:


Odpovědi

9.1.2013 19:53 ?
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
#include <iostream>

int find_gcd(int a, int b)
{
    return b == 0 ? a : find_gcd(b, a % b);
}

int main(int argc, char **argv)
{
    int numerator = 6;
    int denominator = 4;
    int gcd = 1;

    while ((gcd = find_gcd(numerator, denominator)) != 1)
    {
        numerator /= gcd;
        denominator /= gcd;
    }

    std::cout<<numerator <<"/" <<denominator <<std::endl;

    return 0;
}    
10.1.2013 10:47 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
Tak tady je ten while cyklus opravdu zásadní… :-)
10.1.2013 11:09 l4m4
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
Na požadavek udělat to pomocí while cyklu je to myslím adekvátní reakce...
10.1.2013 11:27 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
To ovšem vede k otázce, co ještě lze považovat za "udělat pomocí". Tohle už mi připadá, jako kdyby zadáním bylo sestavit skříňku pomocí šroubováku a v řešení byl šroubovák použit jen k zatížení plánku, aby ho neodfoukl vítr. Nebo spíš ještě hůř, protože tady je cyklus použit tak nesmyslným způsobem, že pokud vstupní hodnoty nejsou nesoudělné, bude se find_gcd() úplně zbytečně volat podruhé. Takže ten cyklus jen překáží, kdyby tam místo while bylo napsáno if, bude kód fungovat také a navíc bude efektivnější.
Jendа avatar 10.1.2013 16:34 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
while ((gcd = find_gcd(numerator, denominator)) != 1)
Vy mě fakt jednou zabijete! :-D :-D
Takže ten cyklus jen překáží, kdyby tam místo while bylo napsáno if, bude kód fungovat také a navíc bude efektivnější.
Ale nebude splněno zadání Pomocí cyklu while…
10.1.2013 16:53 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
Tak by se dal cyklus do té funkce find_gcd() místo machrování s rekurzí a doufání, že z ní překladač ten cyklus udělá…
10.1.2013 11:59 monika
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
ahoj,

jak tak na to koukám, proč je proměnná gcd = 1 inicializovaná na hodnotu 1? Vždyt se v cyklu pořád přepisuje.
10.1.2013 12:07 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
Ne víc než dvakrát (ale i to je o jednou víc, než je potřeba).
10.1.2013 12:10 monika
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
ok, pro pevně dané hodnoty jednoho zlomku. Ale stejně mi není jasné proč je ta proměnná inicializovaná zrovna na jedničku.
10.1.2013 12:42 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
ok, pro pevně dané hodnoty jednoho zlomku

Pro kterékoli hodnoty.

Ale stejně mi není jasné proč je ta proměnná inicializovaná zrovna na jedničku.

Ono je úplně jedno, na co je inicializovaná (a jestli vůbec), protože první použití té proměnné je stejně přiřazení do ní. Takže nemá ani smysl hloubat nad tím, proč ta či ona hodnota.

10.1.2013 12:46 monika
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
Jasně, pro jekékoliv hodnoty, ale v příkladu, který uvádíte, jsou pevně dány jen jeden čitatel a jeden jmenovatel. Aha, já myslela, že to má nějaký speciální význam ta jednička, tak jsem nad tím dumala :))
10.1.2013 12:58 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
Základní chyba byla možná v předpokladu, že to řešení je dobře napsané. Ono je bohužel dobře jen v tom smyslu, že poskytuje správný výsledek.
9.1.2013 19:55 chrono
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
V tom cykle while sa nájde najväčší spoločný deliteľ (pomocou Euklidovho algoritmu) a potom sa čitateľ a menovateľ tým číslom jednoducho vydelí. :)
9.1.2013 20:16 marek33
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
díky, přesně to sem myslel
9.1.2013 21:02 Sten
Rozbalit Rozbalit vše Re: c++ zkrácení zlomku
Pro počítání se zlomky je dobrý Boost Math Rational

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.