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:49 | Zajímavý článek

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 26.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 3
    včera 17:33 | Zajímavý článek

    Bylo vydáno nové číslo hackerského magazínu tmp.0ut: Volume 5.

    Ladislav Hagara | Komentářů: 1
    včera 01:44 | Nová verze

    Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 1
    3.9. 23:11 | Nová verze

    Byla vydána nová stabilní verze 4.0 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). S rozhraním přepsaným do Qt. Přehled novinek také na YouTube. Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 2
    3.9. 16:55 | IT novinky

    NVIDIA kupuje Hugging Face za 12,93 miliardy dolarů.

    Ladislav Hagara | Komentářů: 2
    3.9. 15:44 | IT novinky

    Předobjednat si lze nový jednodeskový počítač Arduino VENTUNO Q s předinstalovaným Ubuntu. S 16 GB LPDDR5 a 64 GB eMMC. Pro lokální LLM, agentní AI, počítačové vidění, robotiku…

    Ladislav Hagara | Komentářů: 1
    3.9. 13:00 | Zajímavý software

    Hexpair není nejlepší HEX editor na světě a ani se o to nesnaží. Zato je k dispozici kdykoliv a kdekoliv – všude tam, kde máte svůj Vim. Vznikl jako hobby projekt před pár měsíci a dospěl do stavu, kdy by mohl být užitečný širší komunitě. Přepnout do HEX režimu se dá i uprostřed rozdělané práce: Soubor, který už máte otevřený běžným vim file.md, jedním příkazem přepnete do HEX editoru a dalším příkazem ho můžete vrátit zpět do textu. Kurzor přitom

    … více »
    Cohen | Komentářů: 0
    3.9. 01:55 | Nasazení Linuxu

    CERN dlouhodobě používal vlastní sestavení RHEL, ze kterého přešel na CentOS Stream. Federico Vaga a Nikos Tsipinakis ale nyní v přednášce na MiniDebConf Winterthur 2026 popisují plán probíhajícího přechodu na Debian pro řízení akcelerátorů. Důvodem k opuštění CentOS Stream jsou zachování zpětné kompatibility se starším hardwarem, kterou Red Hat narušuje, když tlačí sestavení balíčků pro novější verze architektury (x86-64), a nedostatečné nástroje pro sestavování vlastních balíčků a repozitářů.

    |🇵🇸 | Komentářů: 21
    3.9. 01:44 | Nová verze

    UZDoom (Wikipedie), tj. fork GZDoom, byl vydán ve verzi 5.0.0. Videopředstavení na YouTube. Podrobný přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    2.9. 16:11 | Nová verze

    Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.

    |🇵🇸 | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (3%)
     (20%)
     (29%)
     (7%)
     (6%)
     (2%)
     (14%)
     (21%)
    Celkem 2577 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    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: 665×
    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.