Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
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.
Ř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é ify ;)
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
ify ;)
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: