Bylo vydáno Eclipse IDE 2024-09 aneb Eclipse 4.33. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Byla vydána (Mastodon, 𝕏) nová verze 2024.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Ve FreeBSD byla nalezena a opravena kritická bezpečnostní chyba CVE-2024-43102 s CVSS 10.
K posouzení byly předány patche přidávající do linuxových stromů zařízení (device trees) zařízení s SoC A7 až A11 od Applu (iPhone, iPad, iPod a Apple TV).
Vývoj webového prohlížeče nad renderovacím jádrem Servo, aktuální příspěvek na blogu Serva (Wikipedie). Vedle referenčního prohlížeče servoshell vzniká prohlížeč Verso. Vyzkoušet lze noční sestavení.
Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 16.0. Přidáno bylo 5 185 nových znaků. Celkově jich je 154 998. Přibylo 7 nových Emoji.
Byla vydána první major verze 1.0 oficiálního firmwaru pro zařízení Flipper Zero (Wikipedie). Po třech letech vývoje. Přehled novinek i s náhledy a videi v příspěvku na blogu: podpora aplikací třetích stran, nový NFC podsystém, podpora JavaScriptu pro psaní aplikací, vylepšení spotřeby, zrychlení Bluetooth přenosu…
Radicle, distribuovaná alternativa k softwaru pro spolupráci jako např. GitLab, byl vydán ve verzi 1.0. Nyní obsahuje nad gitem postavený, rozšiřitelný protokol pro diskuze a nakládání s patchi, autentizaci a autorizaci, integraci Toru a uživatelské rozhraní v příkazovém řádku či jednoduché webové rozhraní pro prohlížení repozitářů. Projekt byl dříve představen a diskutován na Linux Weekly News.
Byla vydána nová verze 6.7 ž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.3. Thunderbird na verzi 115.15.0. OnionShare z verze 2.2 na verzi 2.6.
Rozsudky Soudního dvora Evropské unie ve věcech C-465/20 P (Apple) a C-48/22 P (Google a Alphabet): Irsko poskytlo společnosti Apple protiprávní daňová zvýhodnění ve výši 13 miliard eur a je povinné je získat zpět. Byla potvrzena pokuta ve výši 2,4 miliardy eur uložená společnosti Google za to, že zneužívala svého dominantního postavení tím, že upřednostňovala vlastní službu srovnávání výrobků.
Řešení dotazu:
IF „hlad“ GOTO „lednice“
if
není funkce. A když už bys to rád dělal nějak divně složitě, proč to neuděláš pomocí operátorů & | ^
?
if
? Chceš efektivní algoritmus pro celočíselné mocniny? Všechno lze zařídit!
double mocnina(double x, int i) { double r = 1.0; if (!i) return 1.0; bool negative = false; if (i < 0) { negative = true; i = -i; } for ( ; ; ) { if (i & 1) r *= x; if (!(i >>= 1)) break; x *= x; } return negative ? 1.0/r : r; }Jen nevím, jak budeš vysvětlovat, jak to funguje...
double mocnina(double x,int y) { return x*(y>1?mocnina(x,--y):1); }
if
. Cílem bylo mít tam nějaké if
y ;)
double mocnina(double x,int y) { if (y>1) return x*mocnina(x,--y); else return 1; }Ale jinak je to blbost dobrá akorát na hraní.
Je tam chyba.
Má tam byť:
else
return x;
if (y>0)
Jirka
if
y ;)
template <int base, int pow> struct mocnina { enum { value = base * mocnina<base, pow - 1>::value }; }; template <int base> struct mocnina<base, 0> { enum { value = 1 }; };
error: template instantiation depth exceeds maximum of 900
jsem zkoušel vytvořitAno? A ako ďaleko si sa dostal?
int mocnina(int x,y) { if (y == 2) return x*x; if (y == 3) return x*x*x; if (y == 4) return x*x*x*x; if (y == 5) return x*x*x*x*x; if (y == 6) return x*x*x*x*x*x; if (y == 7) return x*x*x*x*x*x*x; if (y == 8) return x*x*x*x*x*x*x*x; if (y == 9) return x*x*x*x*x*x*x*x*x; if (y == 10) return x*x*x*x*x*x*x*x*x*x; if (y == 11) return x*x*x*x*x*x*x*x*x*x*x; if (y == 12) return x*x*x*x*x*x*x*x*x*x*x*x; if (y == 13) return x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 14) return x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 15) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 16) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 17) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 18) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 19) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; return x; }Je to najlepsia verzia lebo obsahuje najviac ifov. Pre profesionalnu verziu si na zaciatok mozes doplnit assert(y<20);
void setup() { int x=10; int y=10; int q=mocnina(x,y); Serial.println(q); } int mocnina(int x,int y) { if (y == 2) return x*x; if (y == 3) return x*x*x; if (y == 4) return x*x*x*x; if (y == 5) return x*x*x*x*x; if (y == 6) return x*x*x*x*x*x; if (y == 7) return x*x*x*x*x*x*x; if (y == 8) return x*x*x*x*x*x*x*x; if (y == 9) return x*x*x*x*x*x*x*x*x; if (y == 10) return x*x*x*x*x*x*x*x*x*x; if (y == 11) return x*x*x*x*x*x*x*x*x*x*x; if (y == 12) return x*x*x*x*x*x*x*x*x*x*x*x; if (y == 13) return x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 14) return x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 15) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 16) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 17) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 18) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; if (y == 19) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x; return x; } void loop() { }Binary sketch size: 4,084 bytes
void setup() { int x=10; int y=10; int q=mocnina(x,y); Serial.println(q); } int mocnina(int c,int y) { int x=c; if (y >= 2) x*=c; if (y >= 3) x*=c; if (y >= 4) x*=c; if (y >= 5) x*=c; if (y >= 6) x*=c; if (y >= 7) x*=c; if (y >= 8) x*=c; if (y >= 9) x*=c; if (y >= 10) x*=c; if (y >= 11) x*=c; if (y >= 12) x*=c; if (y >= 13) x*=c; if (y >= 14) x*=c; if (y >= 15) x*=c; if (y >= 16) x*=c; if (y >= 17) x*=c; if (y >= 18) x*=c; if (y >= 19) x*=c; return x; } void loop() { }Binary sketch size: 3,856 bytes
void setup() { int x=10; int y=10; int q=mocnina(x,y); Serial.println(q); } double mocnina(double cislo, int umocni_na) { int i, vysledok = 1; for (i = 1; i <= umocni_na; i++) vysledok *= cislo; return vysledok; } void loop() { }Binary sketch size: 4,068 bytes
void setup() { int x=10; int y=10; int q=mocnina(x,y); Serial.println(q); } int mocnina(int cislo, int umocni_na) { int i, vysledok = 1; for (i = 1; i <= umocni_na; i++) vysledok *= cislo; return vysledok; } void loop() { }Binary sketch size: 3,454 bytes
void setup() { int x=10; int y=10; int q=mocnina(x,y); Serial.println(q); } double mocnina(double x,int y) { return x*(y>1?mocnina(x,--y):1); } void loop() { }Binary sketch size: 3,950 bytes
void setup() { int x=10; int y=10; int q=mocnina(x,y); Serial.println(q); } int mocnina(int x,int y) { return x*(y>1?mocnina(x,--y):1); } void loop() { }Binary sketch size: 3,474 bytes
0000000000400578 <main>: 400578: 48 83 ec 08 sub $0x8,%rsp 40057c: 48 be 00 e4 0b 54 02 mov $0x2540be400,%rsi 400583: 00 00 00 400586: bf 98 06 40 00 mov $0x400698,%edi 40058b: 31 c0 xor %eax,%eax 40058d: e8 d6 fe ff ff callq 400468 <printf@plt> 400592: 5a pop %rdx 400593: 31 c0 xor %eax,%eax 400595: c3 retq0x2540be400 = 10^10
Tiskni Sdílej: