Organizace Free Software Foundation Europe u příležitosti včerejšího Dne Ady Lovelace vydala pod licencí CC BY-SA (Uveďte původ - Zachovejte licenci) půlhodinový animovaný film Ada & Zangemann - Příběh softwaru, skateboardů a malinové zmrzliny vycházející ze stejnojmenné knížky (online verze ve francouzštině).
Byla vydána nová verze 1.11.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace. S vydáním verze 1.11 se předchozí verze 1.10 stala novou LTS verzí nahrazující verzi 1.6.
Byla vydána nová verze 6.8 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.5.6.
Byla vydána nová stabilní verze 6.8 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání. Jedná se o LTS verzi. Pro komerční uživatele byla prodloužena podpora ze 3 na 5 let.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.2 (Mastodon, 𝕏). Přehled novinek i s videi a se snímky obrazovky v oficiálním oznámení. Podrobný přehled v seznamu změn.
Je druhé úterý v říjnu a tedy všem čtenářkám AbcLinuxu vše nejlepší k dnešnímu Dni Ady Lovelace (Ada Lovelace Day), tj. oslavy žen zabývajících se přírodními vědami, technologiemi, inženýrstvím a matematikou (STEM).
Byla vydána nová verze 2.47.0 distribuovaného systému správy verzí Git. Přispělo 83 vývojářů, z toho 28 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Bylo vydáno OpenBSD 7.6. Opět bez písničky.
Programovací jazyk Python byl vydán v nové major verzi 3.13.0. Podrobný přehled novinek v changelogu.
Lze získat roota pouze se zapalovačem? Ano, lze.
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: