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 14:11 | Zajímavý projekt

    Představena byla nová linuxová distribuce Shadowfetch Linux. Na rozdíl od mnoha nováčků, které nabízejí převážně jiné téma a výběr softwaru, tato distribuce založená na Debianu Testing s desktopovým prostředím KDE Plasma 6.6, klade lokálně běžící umělou inteligenci do centra svého desktopového zážitku.

    Pinhead | Komentářů: 0
    včera 17:22 | Zajímavý projekt

    Max Leiter v roce 2019 zkusil zprovoznit X server na iPadu (iOS). Nyní se k tématu vrátil a s pomocí LLM a balíčkovacích nástrojů Procursus rozběhl desktop s X11 i Waylandem. Jeho balíčky jsou dostupné v repozitáři xiOS.

    |🇵🇸 | Komentářů: 13
    včera 13:33 | IT novinky

    Společnost Google Cloud dnes oznámila, že její infrastruktura a služby byly oficiálně zařazeny do Katalogu cloud computingu vedeného Digitální a informační agenturou (DIA). Tato certifikace potvrzuje, že infrastruktura a služby Google Cloud splňují přísné bezpečnostní a regulační požadavky České republiky pro provoz cloudových služeb ve veřejném sektoru.

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

    Vůbec poprvé v historii se stát při testování digitálních služeb obrací na širokou veřejnost. Digitální a informační agentura (DIA) a Ministerstvo vnitra zvou občany k zapojení do zátěžového testu eDokladů, které od loňského podzimu prošly optimalizací aplikace a posílením infrastruktury. Test proběhne 13. srpna ve 13:00 a pro jeho úspěch bude potřeba zapojení několika desítek tisíc občanů. Zapojení do testu je zcela dobrovolné a úkol

    … více »
    Ladislav Hagara | Komentářů: 30
    včera 13:00 | Nová verze

    FireDragon je webový prohlížeč, doposud založený na Floorpu, jednom z forků Firefoxu s větším důrazem na ochranu soukromí a přizpůsobení uživatelského rozhraní. Spravuje ho člen komunity distribuce Garuda Linux. Nové vydání verze 13 opouští Floorp a přechází přímo na Firefox s patchi z LibreWolfu a vlastními úpravami. Dostupný je také na Flathubu.

    |🇵🇸 | Komentářů: 0
    včera 05:44 | Zajímavý software

    picogame (GitHub) je malý 2D herní engine pro mikrokontroléry jako RP2040, čip uvnitř kapesní konzole Picopad. Hru napíšeš v Pythonu a vyzkoušíš ji v prohlížeči nebo desktopovém simulátoru. Až bude hotová, zkopíruješ ji na podporovanou desku. Na začátku nepotřebuješ C, sestavení firmwaru ani hardware.

    Ladislav Hagara | Komentářů: 1
    29.7. 19:22 | Nová verze

    Multiplatformní prohlížeč elektronických knih KOReader byl vydán ve verzi 2026.07 "Sailing Walrus". U PDF souborů s SMask lze vyčistit pozadí. Přibyla podpora Kobo v5 nebo základní podpora OPDS 2.0.

    Ladislav Hagara | Komentářů: 1
    29.7. 14:22 | Komunita

    Společnost Valve sponzoruje a společnost Collabora portuje RADV (open source Vulkan ovladač pro AMD GPU z projektu Mesa) na Windows.

    Ladislav Hagara | Komentářů: 0
    28.7. 20:44 | Zajímavý projekt

    Starling (GitHub) je desktopové prostředí vytvořeno umělou inteligencí (s dohledem jednoho vývojáře během šesti měsíců).

    Ladislav Hagara | Komentářů: 46
    28.7. 14:22 | IT novinky

    Dne 30. června 2026 byla završena fyzická realizace projektu Czech National Quantum Communication Infrastructure (CZQCI), tedy České národní kvantové komunikační infrastruktury. Projekt byl realizován od 1. března 2023 a financován z Národního plánu obnovy částkou 121,6 milionu Kč. Cílem podpořeného projektu bylo vybudovat základy národní kvantové komunikační infrastruktury a ověřit možnosti jejího praktického využití. Mezi

    … více »
    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (18%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2288 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: implementace cyklu For pomocí While v C

    2.6.2013 09:23 Maruška
    implementace cyklu For pomocí While v C
    Přečteno: 877×
    Ahojte, jak by se implementoval cyklus for pomoci cyklu while v C? Slo by to treba nejak pomoci konstrukce do-while anebo i jinak? Diky!

    M.

    Řešení dotazu:


    Odpovědi

    Řešení 1× (Vojtěch Trefný)
    2.6.2013 09:43 JMP | skóre: 30
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    vzhledem k podivnosti požadavku to vypadá na školní zadání

    zkuste to vyřešit sama

    [hint] zkouněte, jak funguje cyklus for, potom omrkněte cyklus while a nakonec zjistěte jak inkrementovat... :-) [/hint]
    2.6.2013 18:06 Maruška
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    něco udělanýho mám, ale je to taková neefektivní slátanina :-/
    2.6.2013 18:11 potato
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    for a while cyklus existují jako dvě různé konstrukce z nějakého důvodu. Pokud je něco elegantní vyjádřit jednou, pomocí druhé to může být škaredé. Kde je přesně problém?
    Řešení 2× (DarkKnightCZ, Vojtěch Trefný)
    2.6.2013 11:35 Radovan Garabik
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    #include <stdio.h>
    
    #define do(x) for(x) {
    #define while }
    
    void main(void) {
        unsigned short i;
        do (i=0; i<10; i++)
            printf("%i\n", i);
        while;
    }
    
    
    
    2.6.2013 15:01 mankind_boost
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Luxusní :-D
    2.6.2013 18:05 Maruška
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    není mi jasné to "define" Je i jiný způsob prosím?
    2.6.2013 18:16 potato
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Pravděpodobně existuje i nějaký zvrácenější způsob, ale zrovna mě žádný nenapadá.
    2.6.2013 19:06 w4rr10r
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Já bych tam nějak zamotal zásobník.
    3.6.2013 10:53 ...
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    no protoze jde vyhradne jen o ten cyklus, tak by to mohlo i forkovat :-D
    Bystroushaak avatar 2.6.2013 19:52 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Pořád by to ještě mohla být rekurzivní funkce, kde v každém volání while proběhne právě jednou :D
    3.6.2013 09:28 kuka
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Jen pro poradek - toto v zadnem pripade neni spravne reseni, protoze se tam "konstrukce do-while" jazyka C vubec nepouziva. Je to jen vtip, mozna dobry, vyuzivajici nepresnou formulaci puvodniho dotazu.
    2.6.2013 19:51 fabulator
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Tohle je kus stareho kodu z Fortranu 66 nebo Basicu prepsany do C:
    int main()
    {
      int i = 1;
      int n = 7;
     label_start:
      i = i + 1;
      if( i > n ) goto label_end;
      /* do work */
      goto label_start;
     label_end:
      return 0;
    }
    
    Na vysvetlenou. Nekonecny cyklus (simulujici do-while) je mezi label_start a goto label_start. Podminka na ukonceni pak je if se skokem mimo smycku.

    Ano. Presne takhle se ve starych jazycich kodovaly tyhle veci. Dneska uz maji oba zminene konstrukce analogicke obou tymum cyklu a je skoda, ze si jich nevazite.
    2.6.2013 20:17 Maruška
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Děkuju všem za pomoc, už vím. Dííky :)
    3.6.2013 09:43 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C

    S ohledem na odpovědi mám trochu obavu, co vlastně víte. Takže pro pořádek:

      for (INIT; COND; ITER) {
        BODY;
      }
    

    lze (za předpokladu, že v těle nepoužijete continue) ekvivalentně přepsat jako

      INIT;
      while (COND) {
        BODY;
        ITER;
      }
    

    Pomocí do-while je to horší, protože ten vždy proběhne aspoň jednou. Takže by bylo potřeba použít nějaký špinavý trik typu

      INIT;
      do {
        if (!(COND))
          break;
        BODY;
        ITER;
      while (true);
    

    a samozřejmě ani tady to nebude fungovat správně, pokud v těle použijete continue.

    Podstatná otázka samozřejmě je, k čemu je to dobré.

    David Watzke avatar 3.6.2013 10:35 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Ještě pro úplnost bych dodal, že INIT v případě for cyklu zaniká tam kde for cyklus končí, zatímco u toho while cyklu zaniká až když končí blok, ve kterém je jeho INIT obsažen.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    3.6.2013 11:07 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Pravda, na to to, že v inicializaci může být i deklarace, jsem úplně zapomněl; přitom to s oblibou využívám a vadilo mi, že to v C před C99 nešlo…
    3.6.2013 11:44 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Zajímavější dříve bylo, že některé compiler-y, fungovali takto:
    zápis v pořádku:
    for(int i=1;…){
    }
    
    ale fungoval jako:
    int i;
    for(i=1;…){
    }
    
    což měnilo platný scope pro 'i'.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    5.6.2013 15:36 Sten
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    +1

    Ten druhý přepis by měl být
    {
      INIT;
        while (COND) {
          BODY;
          ITER;
        }
      }
    
    3.6.2013 15:07 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Spíše to bude z Basicu. FORTRAN měl pouze a jedině pěticiferné numerické labely. cyklus s DO
    C     EKVIVALENT V FORTRAN 77 DO
          INTEGER I
          INTEGER N
          N=7
          DO 10 I=1,N
    C    DO WORK
    10    CONTINUE
          STOP
          END
    
    totéž pomocí IF
    C     EKVIVALENT V FORTRAN 77 IF
          INTEGER I
          INTEGER N
    10    IF (N=I) 40,30,20
    20    I=I+1
    C    DO WORK
    30    GOTO 50
    40    PRINT 'CHYBA I JE VETSI NEZ N'
    50    STOP
          END
    
    3.6.2013 15:12 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    Fuj, napsal jsem to špatně, druhá možnost je správně
    C     EKVIVALENT V FORTRAN 77 IF
          INTEGER I
          INTEGER N
    10    IF (N-I) 40,30,20
    20    I=I+1
    C    DO WORK
    30    GOTO 50
    40    PRINT 'CHYBA I JE VETSI NEZ N'
    50    STOP
          END
    
    jak už 20 let píšu do if podmínku, tak ty prsty to napsaly automaticky, přitom tohle FORTRANí IF je na číslo.
    3.6.2013 21:13 fabulator
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    V C neni numericky label, prikaz continue a taktez aritmeticke if. Jinak by tam asi melo byt spis goto na 10.
    5.6.2013 15:03 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    jo to by mělo.
    5.6.2013 09:46 dword
    Rozbalit Rozbalit vše Re: implementace cyklu For pomocí While v C
    #define LIMIT 100
    
    int i;
    
    //--- FOR LOOP -----------
    for(i = 0; i < LIMIT; i++)
      f(i);
    
    //--- WHILE LOOP -----------
    i = 0;
    while(i < LIMIT)
    {
      f(i);
      i++;
    }
    
    //--- DO-WHILE LOOP -----------
    i = 0;
    if(i < LIMIT)
    {
      do
      {
        f(i);
      } while(++i < LIMIT);
    }
    

    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.