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 17:22 | Nová verze

    Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 0
    dnes 03:44 | Nová verze

    Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).

    Ladislav Hagara | Komentářů: 0
    dnes 02:11 | Komunita

    Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.

    Ladislav Hagara | Komentářů: 0
    dnes 00:44 | Nová verze

    Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Nová verze

    D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

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

    Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 4
    včera 10:22 | Upozornění

    Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.

    Ladislav Hagara | Komentářů: 11
    včera 10:11 | IT novinky

    Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.

    Ladislav Hagara | Komentářů: 33
    včera 09:33 | IT novinky

    Meta převezme sociální síť pro umělou inteligenci (AI) Moltbook. Tvůrci Moltbooku – Matt Schlicht a Ben Parr – se díky dohodě stanou součástí Meta Superintelligence Labs (MSL). Meta MSL založila s cílem sjednotit své aktivity na poli AI a vyvinout takovou umělou inteligenci, která překoná lidské schopnosti v mnoha oblastech. Fungovat by měla ne jako centralizovaný nástroj, ale jako osobní asistent pro každého uživatele.

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

    Byla vydána betaverze Fedora Linuxu 44 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 14. dubna.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (0%)
     (11%)
     (29%)
     (2%)
     (5%)
     (2%)
     (12%)
     (25%)
    Celkem 1057 hlasů
     Komentářů: 26, poslední dnes 08:56
    Rozcestník

    Dotaz: Ukoly v C [easy]

    Bundas avatar 2.1.2014 14:04 Bundas | skóre: 14 | Pardubice
    Ukoly v C [easy]
    Přečteno: 473×
    Ahojte vsichni. Ucim se C z jedne knihy. Ted tam mam na konci kapitoly ukoly. Vsechny sem vyresil az na posledni dva. Premyslel sem nad tim, ale opravdu nevim.

    Prvni ukol:

    Napiste program, ktery vypise hodnotu EOF

    Druhy ukol:

    Napiste program pro kopirovani vstupu na vystup, nahrazujici retezce jedne nebo nekolika mezer jednou mezerou

    Vim jak okopirovat vstup na vystup, ale nevim jak nahradit ty retezce.
    int main(void){
    
     int z;
    
     while((z = getchar()) != EOF){
     putchar(z);
     }
     return 0;
    
    }
    diky za pomoc
    Abe the Messiah has come.

    Odpovědi

    Jendа avatar 2.1.2014 14:27 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    bool space=0;
    if (z == ' ') {
      if(!space) {
        putchar(z);
      }
      space=1;
    } else {
      putchar(z);
      space=0;
    }
    
    Netestováno a neumím programovat.
    2.1.2014 14:45 DK
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    nahradit bool za int a je to ok
    Bundas avatar 2.1.2014 14:51 Bundas | skóre: 14 | Pardubice
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    no, nejak mi tam chybi prikaz pro vstup.
    Abe the Messiah has come.
    Jendа avatar 2.1.2014 15:09 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    To musíš dát do toho cyklu, co už máš…
    rADOn avatar 2.1.2014 15:39 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    …Netestováno a neumím programovat.
    Je to znát :-) Kdyz si misto priznaku (byla/nebyla mezera) budes drzet cely predchozi znak, tak se ti to podstatne zjednodussi.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    2.1.2014 14:50 axel
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    Napiste program, ktery vypise hodnotu EOF

    k tomu neni moc co poradit, predstav si temer identickou ulohu

    Napiste program, ktery vypise hodnotu 123

    a bude to jasne
    Bundas avatar 2.1.2014 14:52 Bundas | skóre: 14 | Pardubice
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    Takze to bude
    printf("%EOF");
    ?
    Abe the Messiah has come.
    Jendа avatar 2.1.2014 15:11 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    Ne (man printf)

    putchar(hodnota EOF, kterou jsi zjistil v ASCII tabulce);
    rADOn avatar 2.1.2014 15:30 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    Ceckovy EOF neni znak v ascii tabuli, je to konstanta definovana v libc.

    Napoveda: getchar() vraci int a ne char.

    Napoveda pro pomalejsi: kdyby EOF byl platny znak, tak ceckove programy (vcetne rady dalsich programovacich jazyku ktere jsou v C napsany) mely celkem velky problem precist soubor ve kterem se takovy znak vyskytuje.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    2.1.2014 16:00 MadCatX
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    Jak pozoruji, máš problém pochopit rozdíl mezi znakem a hodnotou, která ten znak kóduje. Znak je celkem logicky to, co se vykreslí na obrazovku, hodnota znaku (jakkoliv to zní kostrbatě) je číslo, které ten znak reprezentuje. Text je v počítači reprezentován jako posloupnost bytů v paměti. Když třeba v C zavoláš
    char* str = "Ahoj!";
    printf("%s", str);
    
    bude se (zjednodušeně) dít toto: Funkce printf() bude číst řetězec "str" byte po bytu a podle použité převodní tabulky převádět ta čísla na znaky. Kdyby se použilo ISO-8895-1, provedl by následující kód toto:
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        int i;
        char str[] = "Lama Glama!";
    
        for (i = 0; i <= strlen(str); i++) {
            int val = str[i];
            printf("%d => '%c'\n", val, str[i]);
        }
    
        return 0;
    }        
    
                   
    76 => 'L'
    97 => 'a'
    109 => 'm'
    97 => 'a'
    32 => ' '
    71 => 'G'
    108 => 'l'
    97 => 'a'
    109 => 'm'
    97 => 'a'
    33 => '!'
    0 => ''
    
    Používat putchar() na zjištění hodnoty znaku je tedy blbost, putchar() dělá pravý opak. Správný postup je tedy použít getchar() a vypisovat, co dostane. Hodnota EOF by měla být -1, na *NIXech se EOF z klávesnice dá vložit pomocí CTRL+D.
    martin-ux avatar 2.1.2014 20:38 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: Ukoly v C [easy]
    EOF je zadefinovane macro, e.g. (BSD):
    $ grep EOF /usr/include/stdio.h
    #define	EOF	(-1)
    
    takze vypisat to vies napr.
    #include <stdio.h>
    
    int main() {
    
    #ifdef EOF
       printf ("yop, EOF is defined: %d\n", EOF);
    #else
       printf ("sorry, we don't have EOF defined\n");
    #endif
    
    	return 0;
    }
    
    no, a co sa tyka tej druhej ulohy, trosku sa potrap :). ako hint - ulozeny retazec budes prechadzat po znakoch a budes kontrolovat, ci dany znak je medzera.

    ..when you do things right, people won't be sure you've done anything at all..

    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.