Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.10.38 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Google zveřejnil seznam 1220 projektů od 195 organizací (Debian, GNU, openSUSE, Linux Foundation, Haiku, Python, …) přijatých do letošního, již dvacátého, Google Summer of Code.
Na základě DMCA požadavku bylo na konci dubna z GitHubu odstraněno 8535 repozitářů se zdrojovými kódy open source emulátoru přenosné herní konzole Nintendo Switch yuzu.
Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.
O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).
Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.
Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.
Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
assert(min_teplota < max_teplota); while (true) { teplota = getTeplota(); if (teplota <= min_teplota) { setRele(true); } else if (teplota >= max_teplota) { setRele(false); } }
Č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.Č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
if aktualni_teplota <= minimalni_teplota || ( rele == 1 && aktualni_teplota < maximalni_teplota) { rele = 1; } else { rele = 0; }
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í.
#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; }
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;
#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.
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ší.
Tiskni Sdílej: