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í
×

    dnes 15:22 | Humor

    Je tu opět apríl. Společnost Razer představila holící myš Razer Razer. Vědci z CERNu navrhují 25hodinový den. Společnost Elgato představila kolekci Elgato Home. Společnost Nothing Beer (5.1%). Další aprílové novinky například na April Fools' Day On The Web.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | Komunita

    Před 25 lety byl uvolněn zdrojový kód balíku aplikací Netscape Communicator jako open source (např. dobová zpráva CNET), z čehož vzešel projekt Mozilla – ten si výročí nyní připomíná.

    Fluttershy, yay! | Komentářů: 1
    včera 17:11 | Zajímavý software

    Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Deep Sky Derelicts.

    Ladislav Hagara | Komentářů: 4
    včera 14:22 | Nová verze

    Sound Open Firmware, projekt Linux Foundation, open source audio DSP firmware a SDK, byl vydán ve verzi 2.5.0. Přináší podporu platformy Mediatek mt8188 nebo nový audio modul ARIA (Automatic Regressive Input Amplifier Module).

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Nová verze

    Byla vydána nová verze 5.8 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu. Ke stažení budou oficiální binární balíčky pro Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, CentOS 7, Amazon Linux 2 a Red Hat Universal Base Image 9.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Nová verze

    Byla vydána nová verze 1.77 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.77 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 6
    včera 12:11 | Nová verze

    Byla vydána beta verze Ubuntu 23.04 s kódovým názvem Lunar Lobster. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 23.04 mělo vyjít 20. dubna 2023.

    Ladislav Hagara | Komentářů: 0
    30.3. 17:44 | Nová verze

    Linuxová distribuce OpenMandriva byla vydána ve verzi ROME 23.03. Název ROME říká, že se jedná se o průběžně aktualizovanou (rolling) edici. Stabilní edice nese název Rock, aktuálně OpenMandriva Lx 4.3 Dysprosium.

    Ladislav Hagara | Komentářů: 4
    30.3. 17:33 | Pozvánky

    Tento pátek od 14:00 proběhne v Brně na FI MUNI konference DevConf Mini. Na programu je celá řada zajímavých přednášek od testování releasů Fedory, přes super počítače nebo Big Data, až po závody autonomních aut. Konferenci bude možné sledovat i na online streamu.

    joejoe | Komentářů: 0
    30.3. 15:00 | Zajímavý článek

    Minulý týden proběhla hackerská soutěž Pwn2Own Vancouver 2023. Adobe Reader, Microsoft SharePoint, Oracle VirtualBox, Tesla, Ubuntu Desktop, Windows 11, macOS, Microsoft Teams, VMWare Workstation. Vše hacknuto. Synacktiv získal 530 000 dolarů a Teslu Model 3.

    Ladislav Hagara | Komentářů: 17
    Chodí vám kočka nebo jiné domácí zvíře po klávesnici?
     (56%)
     (11%)
     (6%)
     (11%)
     (17%)
    Celkem 18 hlasů
     Komentářů: 1, poslední dnes 16:04
    Rozcestník


    Dotaz: Nacteni matematickeho vyrazu do pole stringu [c++]

    Bundas avatar 19.8.2014 16:57 Bundas | skóre: 14 | Pardubice
    Nacteni matematickeho vyrazu do pole stringu [c++]
    Přečteno: 214×
    Ahojte vsichni. Posledni dobou se snazim prijit na pro mnohe z vas urcite jednoduchou vec. Potrebuju napr. tento matematicky vyraz: 2 * 0 + 333 / 50 / 0 - 5 = nacist do pole stringu (co index, to znak (napr pole[2] == 0, pole[4] == 333 atd)). Nevite nekdo jak to udelat? zkousel sem spoustu veci.. napr toto:

    string matematicky_vyraz[100];
    ofstream soubor;
    soubor.open("dafuq", ios::in);
    int a =0;
    while(true){
    soubor >> matematicky_vyraz[a];
    if(matematicky_vyraz[a].compare("=") == 0) break;
    a++;
    }
    soubor.close();

    predem diky za pomoc
    Abe the Messiah has come.

    Odpovědi

    Bundas avatar 19.8.2014 17:39 Bundas | skóre: 14 | Pardubice
    Rozbalit Rozbalit vše Re: Nacteni matematickeho vyrazu do pole stringu [c++]
    ted sem si vsiml, ze tady mam ofstream místo ifstream. V programu to mam napsane spravne.
    Abe the Messiah has come.
    19.8.2014 17:43 MadCatX
    Rozbalit Rozbalit vše Re: Nacteni matematickeho vyrazu do pole stringu [c++]
    Předpokládám, že nechceš každý znak jako jeden prvek v poli, ale každý člen a operátor jako jeden prvek v poli? To je celkem jednoduché. Načteš celý výraz do stringu, pojedeš znak po znaku. Mezery přeskočíš, číslice budeš přidávat do pomocného stringu, a když narazíš na znak matematického operátoru, parsování přerušíš. Pomocný string uložíš do pole (v C++ bys měl daleko spíš použít std::vector). Tohle budeš opakovat, dokud nenarazíš na "=". Není mi úplně jasné, k čemu je tohle dobré, sice ten výraz rozsekáš na kousky, ale stejně je pak budeš muset projít všechny znova, převést členy na čísla, vyřešit prioritu operátorů, atd... Já bych to asi parsoval a rovnou vyhodnocoval nějak rekurzivně.

    Jinak "správně" se infixové matematické výrazy parsují třeba takto: http://en.wikipedia.org/wiki/Shunting-yard_algorithm Tím se výraz převede na postfixový, který se strojově vyhodnocuje jednodušeji.
    Bundas avatar 19.8.2014 17:52 Bundas | skóre: 14 | Pardubice
    Rozbalit Rozbalit vše Re: Nacteni matematickeho vyrazu do pole stringu [c++]
    jak mam nacist cely vyraz do stringu?
    Abe the Messiah has come.
    19.8.2014 19:33 Sten
    Rozbalit Rozbalit vše Re: Nacteni matematickeho vyrazu do pole stringu [c++]
    19.8.2014 19:32 Sten
    Rozbalit Rozbalit vše Re: Nacteni matematickeho vyrazu do pole stringu [c++]
    Pokud jde o to jej vyčíslit a nejsou tam proměnné, může být jednodušší to rozparsovat na haldu (strom) tak, že operátor s nejnižší prioritou bude navrchu a pod ním operátory s vyšší prioritou, v listech potom samotné hodnoty. Vyčíslení se provede rekurzí.

    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.