Byla vydána Beta 1 verze KDE 6 (Plasma, Frameworks a Gear) postavené na Qt 6. Testovat lze například v distribuci KDE Neon. Stabilní verze je plánována na konec února 2024. Předchozí velké vydání 5 vylo vydáno téměř před 10 lety (červenec 2014).
Open-source webmail Roundcube se připojil k balíku aplikací Nextcloudu. Převzetí firmou Nextcloud ale plánováno není, pouze integrace a podpoření vývoje.
Stability AI představila SDXL Turbo, tj. umělou inteligenci pro generování obrázků z textového popisu v reálném čase, viz ukázka na YouTube.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové major verzi 6. Přehled novinek i s náhledy a videi v oficiálním oznámení a na GitHubu (6.0.0, 6.0.1).
S eDoklady lze mít od ledna 2024 občanku v mobilní aplikaci [Digitální a informační agentura – DIA].
Google představil novou doménu nejvyššího řádu: .meme. Viz například knowyour.meme nebo find.meme.
IKEA představila 3 senzory pro chytrou domácnost: senzor na dveře a okna PARASOLL, bezdrátový pohybový senzor VALLHORN a senzor úniku vody BADRING. Budou kompatibilní s Home Assistant?
Weston, referenční implementace kompozitoru pro Wayland, byl vydán ve verzi 13.0.0. Přehled novinek v oznámení.
Laboratoře CZ.NIC vydaly novou verzi 4.23.0 aplikace Datovka, tj. svobodné multiplatformní desktopové aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi. Přidána byla podpora pro velkoobjemové datové zprávy (VoDZ) a pro typy datových schránek PFO_ARCH, PFO_AIAT a PFO_AZI. Další novinkou je pamatování velikosti dialogových oken, pozice ovládacích prvků, šířek sloupců a řazení položek
… více »Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 5.20. Mimo jiné aktualizuje Tor Browser (13.0.4) a Thunderbird (115.5), opravuje několik chyb.
1 2 3 4 5 6 1 2 3 4 5 6 6 1 2 3 4 5→5 1 2 3 4→4 5 1 2 3→3 4 5 1 2→2 3 4 5 1→1 2 3 4 5 6 1 2 3 4 5
public void orotujMatici() { int predchozi = 1; for (int i = 0; i < zadanaMatice.length - 1; i++) { for (int j = 0; j < zadanaMatice[0].length - 1; j++) { if((i == 0) && (j == 0)) predchozi = zadanaMatice[pocetRadku - 1][pocetSloupcu - 1]; if((j == 0) && (i != 0)) predchozi = zadanaMatice[i-1][pocetSloupcu - 1]; if(j != 0) predchozi = zadanaMatice[i][j - 1]; orotovanaMatice[i][j] = predchozi; } } }
class Matice: Matice (pocet_radku, pocet_sloupcu): M = new int[pocet_radku * pocet_sloupcu]; offset = 0 int prvek(int radek, int slupec): return M[ (pocet_sloupcu * radek + sloupec + offset) % (pocet_radku * pocet_sloupcu) ]; void orotuj(): offset += pocet_radku * pocet_sloupcu - 1; offset %= pocet_radku * pocet_sloupcu;a obesel bych se uplne bez kopirovani pameti. Samozrejme v realny aplikaci by volba konkretniho algoritmu zalezela na spouste dalsich faktoru ( napr. jak casto budu provadet tuhle operaci a jak casto nejaky jiny ? je tahle reprezentace matice vhodna i pro ostatni operace s ni ? atd. ... )
orotovanaMatice[0][0]= zadanaMatice[pocetRadku - 1][pocetSloupcu - 1]
Ale tak, ako som to pôvodne pochopil, by malo byť možné použiť systém, kedy máš metódu, ktorá zarotuje len jeden riadok a túto metódu postupne zavolať na všetky riadky. Inými slovami, nemá dochádzať k presunu medzi riadkami (a fungovanie takej metódy som navrhol vyššie). Ako je to? Daj príklad, na maticu, ktorá má viac ako jeden riadok.
Zdenek: pri tvojom riešení vymieňaš prvky. To znamená 3 priradenia na jeden krok. Pri mojom riešení, je to len jedno.
program shift_array implicit none integer, parameter :: max=6 integer :: i, j integer :: a(max) a = (/1, 2, 3, 4, 5, 6/) print'(a12,x,6(i2,1x))',"A(puvodni)= ",(a(i), i=1,max) a = cshift(a,-1) print'(a12,x,6(i2,1x))',"A(nova)= ",(a(i), i=1,max) end program shift_arrayA potom
[milan@penguin-shift-array]$ gfortran -o shift-array shift-array.f90 [milan@penguin-shift-array]$ ./shift-array A(puvodni)= 1 2 3 4 5 6 A(nova)= 6 1 2 3 4 5 [milan@penguin-shift-array]$
Tiskni
Sdílej: