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 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 2
    včera 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

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

    V pořadí šestou knihou autora Martina Malého, která vychází v Edici CZ.NIC, správce české národní domény, je titul Kity, bity, neurony. Kniha s podtitulem Moderní technologie pro hobby elektroniku přináší ucelený pohled na svět současných technologií a jejich praktické využití v domácích elektronických projektech. Tento knižní průvodce je ideální pro každého, kdo se chce podívat na současné trendy v oblasti hobby elektroniky, od

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 03:11 | Komunita

    Linux Foundation zveřejnila Výroční zprávu za rok 2025 (pdf). Příjmy Linux Foundation byly 311 miliónů dolarů. Výdaje 285 miliónů dolarů. Na podporu linuxového jádra (Linux Kernel Project) šlo 8,4 miliónu dolarů. Linux Foundation podporuje téměř 1 500 open source projektů.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | Zajímavý článek

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

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

    OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzi 2.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | IT novinky

    Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.

    Ladislav Hagara | Komentářů: 4
    18.12. 14:44 | IT novinky

    Na lepší pokrytí mobilním signálem a dostupnější mobilní internet se mohou těšit cestující v Pendolinech, railjetech a InterPanterech Českých drah. Konsorcium firem ČD - Telematika a.s. a Kontron Transportation s.r.o. dokončilo instalaci 5G opakovačů mobilního signálu do jednotek Pendolino a InterPanter. Tento krok navazuje na zavedení této technologie v jednotkách Railjet z letošního jara.

    Ladislav Hagara | Komentářů: 6
    18.12. 12:22 | Bezpečnostní upozornění

    Rozšíření webového prohlížeče Urban VPN Proxy a další rozšíření od stejného vydavatele (např. 1ClickVPN Proxy, Urban Browser Guard či Urban Ad Blocker) od července 2025 skrytě zachytávají a odesílají celé konverzace uživatelů s AI nástroji (včetně ChatGPT, Claude, Gemini, Copilot aj.), a to nezávisle na tom, zda je VPN aktivní. Sběr probíhá bez možnosti jej uživatelsky vypnout a zahrnuje plný obsah dotazů a odpovědí, metadata relací i

    … více »
    Ladislav Hagara | Komentářů: 5
    18.12. 05:22 | Zajímavý software

    QStudio, tj. nástroj pro práci s SQL podporující více než 30 databází (MySQL, PostgreSQL, DuckDB, QuestDB, kdb+, …), se stal s vydáním verze 5.0 open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 6
    Kdo vám letos nadělí dárek?
     (24%)
     (0%)
     (8%)
     (0%)
     (4%)
     (4%)
     (12%)
     (32%)
     (16%)
    Celkem 25 hlasů
     Komentářů: 12, poslední dnes 16:06
    Rozcestník

    Dotaz: Jak sestavit podmínku v programu c

    8.2.2024 06:20 Matěj
    Jak sestavit podmínku v programu c
    Přečteno: 1545×
    Ahoj, potřeboval bych vytvořit podmínku, jelikož já s ní nejsem schopen hnout. Mám aktuální teplotu, minimální teplotu, maximální teplotu a relé kotle. Jak sestavit podmínku, když potřebuji aby bylo relé sepnuto pokud je aktuální teplota nižší než maximální teplota, po dosáhnutí maximální teploty aby se relé rozeplo a zapnulo se až aktuální teplota spadne na minimální teplotu. Může mi prosím někdo poradit? Děkuji

    Odpovědi

    8.2.2024 08:10 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Je potřeba mít nějaký indikátor, že byla dosažena maximální teplota, aby se rozlišil stav na začátku procesu od stavu, kdy je relé rozepnuto po dosažení maximální teploty. Indikátor by se přepínal při dosažení maximální nebo minimální teploty. Asi by bylo možné použít jako tento indikátor i stav, ve kterém je relé, jen by se musel nějak ošetřit začátek procesu.

    Jirka
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    AraxoN avatar 8.2.2024 08:25 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    assert(min_teplota < max_teplota);
    
    while (true) {
      teplota = getTeplota();
      if (teplota <= min_teplota) {
        setRele(true);
      } else if (teplota >= max_teplota) {
        setRele(false);
      }
    }
    8.2.2024 08:48 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Otázka je, jestli je efektivní dát to do cyklu. Pokud je to kotel v domě, klidně by stačilo kontrolovat to jednou za minutu. V každém případě je potřeba před začátkem cyklu sepnout relé, pokud je teplota menší než maximální.
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    8.2.2024 11:04 Matěj
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Četl jsi špatně otázku... Kdyby to bylo tak primitivní, tak to zvládnu sám....
    8.2.2024 11:24 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Četl jsi špatně otázku... Kdyby to bylo tak primitivní, tak to zvládnu sám....
    Vzhledem k řazení příspěvků v diskusi není úplně jisté, jestli reaguješ na to, co psal AraxoN, nebo na moji odpověď.

    Jirka
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    8.2.2024 12:05 Matěj
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Omlouvám se, reagoval jsem na ten kód od uživatele AraxoN.
    8.2.2024 22:16 TechnikTom
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Ale ten kód bude fungovat, přeci.

    Máte nižší teplotu než Tmin? - sepne relé a nešahá na něj než než dosáhnete Tmax.

    Jakmile překročíte Tmax, vypnete relé a už na něj nesaháte, než klesnete pod Tmin.

    zapni relé

    cyklus:

    Teplota menší než Tmin? zapni relé

    Teplota větší než Tmax? vypni relé

    konec cyklu

    Jednoduše dokud je teplota menší než Tmin posílá se signál k zapnutí relé.

    Po překročení Tmin zůstává relé zapnuté a až při překročení Tmax se pošle signál pro jeho vypnutí.

    Ten se v cyklu posílá opakovaně, dokud je teplota vyšší než Tmax.

    Jakmile teplota klesne pod Tmax, žádný signál se na relé neposílá a relé zůstává vypnuté než zase klesnete pod Tmin.

    Prostě pokud je teplota mezi Tmin a Tmax s relé nic neděláte a necháváte ho ve stavu, v jakém jste do toho intervalu vešel.

    Do progr. jazyka si to přepište sám a ošetřete počáteční podmínky.
    8.2.2024 12:07 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Četl jsi špatně otázku... Kdyby to bylo tak primitivní, tak to zvládnu sám....
    Vzhledem k řazení příspěvků v diskusi není úplně jisté, jestli reaguješ na to, co psal AraxoN, nebo na moji odpověď.

    Jirka
    Mimochodem, myslím, že to, co radil AraxoN, s doplněním počátečního sepnutí, dává smysl, pokud by to běželo na nějakém jednoduchém řídícím čipu, který nedělá nic jiného. Problém by mohly být případné výjimečné situace.
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    AraxoN avatar 8.2.2024 13:34 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Tak to sa ospravedlňujem, pokazila sa mi veštecká guľa. :D
    9.2.2024 17:31 MarV | skóre: 11
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    A kterou část otázky AraxoN řešení nesplňuje? Logiku věci tam vidím ...
    8.2.2024 11:48 X
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Komunikace s kotlem = vycitani hodnot je realizovano jak? Protokol,sbernice etc.
    8.2.2024 12:08 Matěj
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    To není přeci podstatné, ptal jsem se na logiku/podmínku.
    13.2.2024 19:50 Xerces
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    A nechceš zavolat raději na podporu výrobce toho kotle? Aby se ti to pak díky neošetření něčeho, co nepovažuješ za podstatné (třeba že vždy platí Tmin < Tmax), nepropálilo těma rozžhavenýma nožičkama do podlahy. :-)
    8.2.2024 12:02 Tomáš
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Hádám, že potřebujete stavovou proměnou: aktuální stav relé zapnuto/vypnuto. Bez takové informace o stavu to asi nepůjde.
    8.2.2024 12:15 Matěj
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Z těchto proměnných potřebuji vytvořit podmínku (můžu klidně nějakou přidat, pokud bude potřeba)

    var rele = 0; // 0 = zapnuto, 1 = vypnuto

    var aktualni_teplota; // obsahuje teplotu ve tvaru (například pro 18,75°C) 1875

    var minimalni_teplota; // obsahuje teplotu ve tvaru (například pro 20,50°C) 1050

    var maximalni_teplota; // obsahuje teplotu ve tvaru (například pro 24,00°C) 2400
    8.2.2024 12:16 Matěj
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    EDIT! *1050 // Oprava na 2050, uklepl jsem se.
    9.2.2024 18:16 čavo | skóre: 16
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Hádam som sa niekde nepomýlil.
    if aktualni_teplota <= minimalni_teplota || ( rele == 1 && aktualni_teplota < maximalni_teplota) {
      rele = 1;
    } else {
      rele = 0;
    }
    
    9.2.2024 18:20 čavo | skóre: 16
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Tak pomýlil, je tam opačná logika hodnoty relé, tak treba zmeniť všade 1 za 0 a 0 za 1.
    10.2.2024 22:17 Radovan
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Tyhlety školní úkoly :-D
    if (kotel(teplota) < maxtep) zapnout(ohřev);
    do {
       if (kotel(teplota) > maxtep) vypnout(ohřev);
       if (kotel(teplota) < mintep) zapnout(ohřev);
       } while(topit());
    vypnout(ohřev);
    Přidat tam hlídání hladiny a tlaku je triviální.
    cbrpnk avatar 13.2.2024 08:53 cbrpnk | skóre: 10 | blog: bl0gium
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    #include <stdio.h>
    #include <stdbool.h>
    
    bool regulace_kotle(float aktualni_teplota, float minimalni_teplota, float maximalni_teplota) {
      /*
      Funkce pro regulaci kotle.
    
      Argumenty:
        aktualni_teplota: Aktuální teplota.
        minimalni_teplota: Minimální požadovaná teplota.
        maximalni_teplota: Maximální požadovaná teplota.
    
      Vrací:
        Stav relé kotle (true/false).
      */
    
      if (aktualni_teplota < minimalni_teplota) {
        // Teplota je nízká, zapneme relé.
        return true;
      } else if (aktualni_teplota >= maximalni_teplota) {
        // Teplota je vysoká, vypneme relé.
        return false;
      } else {
        // Teplota je v požadovaném rozmezí, relé zůstane beze změny.
        return false;  // Předpokládám, že chcete prozatím relé vypnout
      }
    }
    
    int main() {
      float aktualni_teplota = 22.5;
      float minimalni_teplota = 20;
      float maximalni_teplota = 25;
    
      bool stav_rele = regulace_kotle(aktualni_teplota, minimalni_teplota, maximalni_teplota);
    
      printf("Aktualni teplota: %.1f°C\n", aktualni_teplota);
      printf("Minimalni teplota: %.1f°C\n", minimalni_teplota);
      printf("Maximalni teplota: %.1f°C\n", maximalni_teplota);
      printf("Stav rele: %s\n", stav_rele ? "zapnuto" : "vypnuto");
    
      return 0;
    }
    
    13.2.2024 18:30 tttttttttttt
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Tohle nesplňuje zadání. Relé se po zapnutí vypne jakmile přeleze minimální teplotu. Ten skript funguje stejně pro jakoukoliv maximální teplotu.
    14.2.2024 01:10 TecnikTom
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    A na to jste přišel při pohledu na tu jedinou podmínku pro vypnutí relé, kdy je to podmíněno vyšší nebo rovnou teplotou než Tmax???
    14.2.2024 01:50 ttttttttttt
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Ano. Celý tenhle kód
    if (aktualni_teplota >= maximalni_teplota) {
      // Teplota je vysoká, vypneme relé.
      return false;
    } else {
      // Teplota je v požadovaném rozmezí, relé zůstane beze změny.
      return false;  // Předpokládám, že chcete prozatím relé vypnout
     }
    jde nahradit za
    return false;
    14.2.2024 12:19 TechnikTom
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Máte pravdu.

    Já takhle v noci přehlédl, že sice napsal:

    // Teplota je v požadovaném rozmezí, relé zůstane beze změny.

    Ale pak tam stejně aktivně vrazil "return false"
    20.2.2024 23:42 Stydím se...
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    AI je mocný nástroj pro příliš hloupé a líné lidi jako jsem například já (nejsem profesí programátor). Každopádně máte asi chybné zadaní, musel jsem je patřičně upravit aby to dávalo smysl.
    #include <stdio.h>
    int main() {
        int minimalni_teplota = 2050;
        int maximalni_teplota = 2400;
        int aktualni_teplota;
        int rele_stav = 0; // 0 pro vypnuto, 1 pro zapnuto
        while (1) {  // Nekonečná smyčka
            printf("Rele stav:        %d\n", rele_stav);  // Výpis stavu relé
            printf("Teplota v 0.01°C: ");
    	    scanf("%d", &aktualni_teplota);
            if (aktualni_teplota < minimalni_teplota) {
                rele_stav = 1; // Sepnout relé
            } else if (aktualni_teplota >= maximalni_teplota) {
                rele_stav = 0; // Rozepnout relé
            }
        }
        return 0;
    }
    
    Tento kód vypisuje stav relé a čeká na uživatelský vstup teploty v jednotkách setin stupňů Celsia. Pokud je teplota nižší než minimální teplota, relé se spustí; pokud je teplota rovna nebo vyšší než maximální teplota, relé se vypne.
    21.2.2024 22:24 TechnikTom
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    Zadání není chybné, jen ten váš kód ho nesplňuje.

    Zadání zní, že pokud je teplota nižší než Tmax, má vystoupat k Tmax a pak se má udržovat v rozmezí Tmin a Tmax.

    Váš kód, pokud spustíte v okamžiku, kdy je teplota mezi, tak nevystoupá k Tmax, ale hned klesne k Tmin.

    Je třeba:

    A) prakticky - vstoupit do regulačního cyklu se zapnutým relé

    B) puristicky - buď před cyklem otestovat a zapnout relé pokud jsme pod Tmax nebo v cyklu testovat jeho první běh a provést totéž.
    22.2.2024 03:43 Stydim se...
    Rozbalit Rozbalit vše Re: Jak sestavit podmínku v programu c
    A tak, nedbale jsem si vaše zadání přečetl. Potřebujeme na počátku dohřát na maximální teplotu. Jinak je ale kód správný a funkční, stačí před nekonečnou smyčku doplnit:
    if (aktualni_teplota < maximalni_teplota) rele_stav = 1; // Sepnout relé
    Nic jednoduššího mě nenapadá.

    A) Začínat se zapnutým relé int rele_stav = 1; není úplně čisté řešení. Po spuštění, při (aktualni_teplota >= maximalni_teplota) by relé bylo zapnuto jen na okamžik, v rámci jednoho cyklu - v případě pomalého taktu procesoru, rychlého relé a velkého spínaného výkonu by to teoreticky mohlo způsobit potíže. Šlo by to ošetřit, ale to by bylo zbytečně krkolomné.

    B) Testovaní prvního běhu v nekonečném cyklu je nepraktické, zbytečně by se opakovalo a kód by byl složitější.

    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.