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 23:22 | Bezpečnostní upozornění

    Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.

    vencour | Komentářů: 1
    včera 12:44 | Pozvánky

    Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »

    lkocman | Komentářů: 0
    včera 00:44 | Bezpečnostní upozornění

    Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění

    … více »
    vencour | Komentářů: 14
    23.10. 17:44 | IT novinky

    Francouzský výrobce kabelů Nexans upozornil na napjaté dodávky elektrických kabelů. Výstavba nové výrobní linky pro některé typy kabelů může trvat přibližně tři roky. Datacentra potřebují rozsáhlé nízkonapěťové a středněnapěťové rozvody. Poptávka roste současně s modernizací elektrických sítí. Někteří odběratelé proto uzavírají výrazně delší dodavatelské smlouvy [Reuters].

    vencour | Komentářů: 14
    23.10. 14:44 | Zajímavý projekt

    Představena byla (𝕏) virtuální platforma FLYBENCH FPV, která nováčky provede zapojením a konstrukcí dronů.

    Ladislav Hagara | Komentářů: 5
    23.10. 04:11 | Nová verze

    Google Chrome 156 byl prohlášen za stabilní. Přehled novinek v poznámkách k vydání. Opraveno bylo 353 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

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

    Indická společnost eMudhra po bezpečnostním incidentu, tj. kompromitaci soukromých klíčů osmi mezilehlých certifikátů své certifikační autority, opouští globální byznys s SSL/TLS certifikáty.

    Ladislav Hagara | Komentářů: 4
    22.10. 15:44 | Bezpečnostní upozornění

    Dle Phoronixu zveřejnila společnost Trend Micro prostřednictvím programu Zero Day Initiative (ZDI) několik hlášení bezpečnostních zranitelností přímo na veřejném mailing listu LKML, přestože některé chyby dosud nemají opravu začleněnou do hlavní větve jádra. Mezi hlášenými problémy jsou dvě zranitelnosti s hodnocením CVSS 9.0, týkající se SMB Direct a KSMBD, které mohou umožnit vzdálené spuštění kódu. Další hlášení se týkají … více »

    vencour | Komentářů: 0
    22.10. 15:33 | Nová verze

    Správce hesel KeePassXC byl vydán ve verzi 2.8.0. Přechází na Qt 6, podporuje vkládání hesel s Waylandem, rychlé odemykání pomocí Polkitu nebo možnost nastavení klávesových zkratek (seznam změn).

    ʚĭɞ 🍉 | Komentářů: 0
    22.10. 15:22 | Nová verze

    Databáze DuckDB (Wikipedie) byla vydána ve verzi 2.0.0 LTS. S kódovým názvem Cinnamon Teal (čírka skořicová). S vyladěným protokolem Quack.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2909 hlasů
     Komentářů: 33, poslední 20.10. 23:44
    Rozcestník

    Dotaz: Převod do desítkové soustavy z matice - jazyk C

    12.2.2020 16:52 vincenzo
    Převod do desítkové soustavy z matice - jazyk C
    Přečteno: 901×
    Ahoj,

    nějaké hodiny už tápu nad úkolem, jehož zadání je převést čísla ve dvojkové soustavě na desítkovou. Zatím jsem vyřešil pouze to, že se mi matice vypisuje, ale nevím, jak spárovat druhé jednorozměrné pole pro ukládání dvojek pro převod a vypsání výsledků převodu. Dokázal by mi někdo, prosím, pomoci?

    Kód je na této stránce: https://codeshare.io/Matice1

    Ještě jednou děkuji

    Odpovědi

    12.2.2020 17:12 Radek Isa | skóre: 14
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    v kódu předáváš pole hodnotou místo odkazem. Pak může docházet k velkému kopírování data na zásobní. Skus použít parameter int pole [][SLOUPCE] Dávej si bacha na to jestli je pole typu int pole[VEL_POLE] nebo typu int pole [] je v tom docela velký rozdíl. V prvním případě se veškerá data překopírují na zásobník a změna jakékoliv hodnoty v poli má vliv pouze ve funkci. V druhém případě se jedná a předání pomocí ukazatele. Tedy předání odkazem. V tomto případě se jakákoliv změna projeví i ve zbytku programu. Pokud se o tom něco chceš dozvědět více prozkoumej standard jazyka C.
    12.2.2020 17:20 vincenzo
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Nemohl bys to prosím demonstrovat přímo do kódu? Nejvíce si opravdu lámu hlavu s tím převodem a prací s tou maticí v tomto konkrétním příkladu
    12.2.2020 17:44 Radek Isa | skóre: 14
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Promin, mluvím bludy. Špatně jsem si zapamatoval chování pole a ukazatele. Zpět k tvému problému. https://matematika.cz/prevod
    12.2.2020 19:28 vincenzo
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Děkuji. Toto chápu, ale prostě mi nejde to převést do kódu, nevím, jak to mám napsat programátorsky s maticí a polem....
    12.2.2020 20:06 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Zatím pominu způsob předávání proměnných, ale potřeboval bych vyjasnit úkol. Podle zdrojáku na odkazu se matice náhodně naplní nulami a jedničkami. Takže každý řádek je číslo ve dvojkové soustavě, které se má převést do desítkové, nebo je to jinak?

    Jirka
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    12.2.2020 20:15 vincenzo
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    je to přesně tak ..
    12.2.2020 20:55 debian+
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Naprv vyries ako previes nejake cislo "101" na 5 na papieri (obycajna matematika). A ak to budes mat na papiery, tak ries ako s pocitacom, a budes vediet naprogramovat na tu maticu. Kedze maticu urcuje ako tie data dostavas. A nasledne nacitane data matice spracovat. A ty nevies spracovat.
    ❗Červivý Hřib krade❗ avatar 12.2.2020 21:05 ❗Červivý Hřib krade❗ | skóre: 43 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C

    nóóóóóóó tak já to za tebe jako napišu i když vim že ty bys za mě domácák neuďál ;D

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <math.h> //TODO mužem použít math??????
    #define RADKY 5
    #define SLOUPCE 5
    #define POCET 5
    
    void naplnMatici(int matice[RADKY][SLOUPCE]){
        int r;
        int s;
    
        for(r=0;r<RADKY;r++){
            for(s=0;s<RADKY;s++){
                matice[r][s] = rand() % 2;
            }
        }
        return; //FIXME nemusíme volat na konci funkce co vrací void ;D
    }
    void vypisMatici(int matice[RADKY][SLOUPCE]){
        int r;
        int s;
        printf("PREVODY Z MATICE\n");
        printf("----------------\n");
        for(r=0;r<RADKY;r++){
            for(s=0;s<SLOUPCE;s++){
                printf("%5d", matice[r][s]);
            }
            printf("|");
            for(s=0;s<SLOUPCE;s++){
                printf("%d", matice[r][s]);
            }
            printf("\n");
        }
        return; //FIXME tady taky ne
    }
    
     //Zde je funkce pro převod, bohužel nevím, jak na to
    void prevod(int matice[RADKY][SLOUPCE], int * pole){
        int r,s;
        for(r=0;r<RADKY;r++)
        {
            //matematickej způsob pro debílky
            int cislo=0;
            for(s=0;s<SLOUPCE;s++)
            {
                cislo+=matice[r][SLOUPCE-s-1]*pow(2,s);
            }
            printf("%d\n",cislo);
            
            //frajerskej způsob pomocí bitovejch operací
            //je to uplně to samý co nadtim ale uplně jiný
            int cislo2=0;
            for(s=0;s<SLOUPCE;s++)
            {
                //děláme logickou operaci OR/NEBO s hodnotou elementu tý matice
                //to << ji bitově popostrčí o SLOUPCE-s-1 "doleva"
                //nazačátku máme v cislo2 samý nuličky takže prakticky nastavujeme jeden bit proměný
                //na jedničku pokud je i jednička jakože v tom řádku matice
                //ale tosi nejdřiv někde našprtej jestli to fakt chceš používat neni 
                //to moc intuitivní ale zase to je jako dost praktický ;D
                cislo2 |= matice[r][s] << SLOUPCE-s-1;
            }
            printf("%d\n\n",cislo2);
            
            pole[r]=cislo;
        }
    }
    
    int main(){
        int matice[RADKY][SLOUPCE];
        int pole[POCET];
        srand((unsigned)time(NULL));
        naplnMatici(matice);
        vypisMatici(matice);
        prevod(matice, pole);
        return EXIT_SUCCESS;
    }
    
    
    Pamatujete, jak Medvěděv chtěl hodit atomovku na Berlín? Tak teďko by se to hele šiklo 💥☢️🤪
    12.2.2020 21:14 vincenzo
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Děkuji mnohokrát, vážím si Tvé pomoci. Ještě se chci zeptat, jestli se u funkce preved() nemusí nic vracet, return?
    ❗Červivý Hřib krade❗ avatar 13.2.2020 01:41 ❗Červivý Hřib krade❗ | skóre: 43 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C

    nemáš vubec zač :D :D ;D

    jsme tam jakoby strčili ukazatel na to pole a tam pak z tý funkce zapisujeme. takže čistě technicky nic vracet nemusíme ale nevim co máš jako v zadání jestli třeba hlavička funkce neni od učitelskýho nějak zadaná. ale jestli tě to fakt jako znepokojuje že je void tak de uvnitř funkce deklarovat pole jako statickou proměnou a vrátit ho takhlenc jako ukazatel. si myslim že řešení s tim argumentem je ale lepšejší ;D

    nóóóó a pak taky de samo použít malloc hele. na něj zachvilku určitě taky narazíš ;D

    se to takhle různě musí řešit protože když vracíš ukazatel na něco z funkce tak nemáš zaručený že to něco eště vubec existuje ta pamět už mohla bejt po proběhnutí funkce uvolněná a použitá na něco jinýho. nóóóó a uplně největší zrada je že se to někdy nestane a zdrojáček normálně funguje. až jednou..... :O :O :D :D

     

    takhle by to vypadalo s tim statickým polem

    ...
    
    int * prevod(int matice[RADKY][SLOUPCE]){
    
        static int pole[POCET];
        ...
        return pole;
    
    }
    
    
    int main(){
    
        ...
        int * pole;
        ...
        pole=prevod(matice);
        ...
    }
    
    Pamatujete, jak Medvěděv chtěl hodit atomovku na Berlín? Tak teďko by se to hele šiklo 💥☢️🤪
    12.2.2020 21:22 debian+
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Com druhych urazas. Ak sa na to hodi na optimalizaciu prekladu, tak ci to bude bez 21ms alebo 22ms, nebude nejako hrat vo vecsine pripadov problem.

    A citaj text s porozumenim, on nechcel vypracovane zadanie, ale to vediet spravit a niekto za neho to spravy. A s takym pristupom nepokracuj, nie div potom dnesna uroven progamatorov je horsia a horsia.
    ❗Červivý Hřib krade❗ avatar 13.2.2020 01:55 ❗Červivý Hřib krade❗ | skóre: 43 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C

    se jako hluboce omlouvám všem debílkům kterejch se muj nevinej vtípek dotkul :D :D :D :D :D :D

    chudák to třeba  zejtra vodezdává celej tejden se stim mazal a neví si s tim rady stresem si rve vlasy a kouše nechty a ty po něm chceš aby napapíře luštil nějakou pitomou křížovku. todleto zase za urážku považuju já ;D a sorry jako že učitelskej vodved mizernou práci a já to za něj teďko dohánim. a taky si jako myslim že nejlepší učení je vidět jak něco dělá někdo další ;D

    při -O3 sem tam nenaměřila žádnej rozdíl ale bez -O to bylo o +-88% rychlejší že se mi tomu ani moc nechce věřit a myslim si že sem tam něco pokazila jak už pomalu spim :O :O :O :O

    Pamatujete, jak Medvěděv chtěl hodit atomovku na Berlín? Tak teďko by se to hele šiklo 💥☢️🤪
    12.2.2020 22:20 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
            //matematickej způsob pro debílky
            int cislo=0;
            for(s=0;s<SLOUPCE;s++)
            {
                cislo+=matice[r][SLOUPCE-s-1]*pow(2,s);
            }
    
    
    Nebyl bych tak odsuzující. Pokud se někdo učí programovat, tak použít mocninu ho napadne jako první, protože to odpovídá matematickému zápisu. Teprve jak si postupně osvojuje programátorské dovednosti, dojde mu, že použití funkce pow je v tomto případě nejen zbytečné, ale spíše kontraproduktivní. Jednodušší a lepší je použít přímo mocniny 2, které navíc postupně rostou:
            int cislo=0,m2; // v m2 jsou mocniny 2
            for(s=0,m2=1;s<SLOUPCE;s++,m2*=2)
            {
                cislo+=matice[r][SLOUPCE-s-1]*m2;
            }
    
    
    No a v C se dá samozřejmě namísto násobení dvěma použít bitový posun:
            int cislo=0,m2; // v m2 jsou mocniny 2
            for(s=0,m2=1;s<SLOUPCE;s++,m2<<=1)
            {
                cislo+=matice[r][SLOUPCE-s-1]*m2;
            }
    
    
    Myslím, že ten trik s logickým NEBO to nijak neurychlí.

    Jirka
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    ❗Červivý Hřib krade❗ avatar 13.2.2020 02:01 ❗Červivý Hřib krade❗ | skóre: 43 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C

    eště by to možná jako šlo zrychlit přeskakováním nul protoře nazačátku to máme samý nuličky to číslo tak je tam nemusíme zapisovat

    Pamatujete, jak Medvěděv chtěl hodit atomovku na Berlín? Tak teďko by se to hele šiklo 💥☢️🤪
    13.2.2020 10:53 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Paradoxem je, že výsledek je ve skutečnosti uložen také ve dvojkové soustavě a převod dělá funkce printf, která ho převádí na znaky, jež posílá na výstup. To by byl o něco zajímavější domácí úkol.

    Jirka

    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    14.2.2020 03:18 debian+
    Rozbalit Rozbalit vše Re: Převod do desítkové soustavy z matice - jazyk C
    Uz podla toho, ako dava data cez funkciu, je jasne, ze aktualne je to pre neho vyssi level.

    Založit nové vlákno • Nahoru

    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.