Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).
Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".
Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.
OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.
Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).
Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.
Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.
Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.
Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.
Už mě to deptá. Další úkol z C++ nejde tak jak by měl.
Úkolem je realizovat program, který provede analýzu obsahu 2D matice celých čísel. Předpokládáme, že matice vznikla jako kartézský součin dvou vektorů celých čísel. Program pro zadanou matici určí tyto vektory. Vstupem programu jsou celá čísla n a m, n představuje počet řádek zadávané matice a m počet sloupců. Obě čísla jsou celá, větší nebo rovná jedné. Po zadání velikosti matice následuje n x m celých kladných čísel, která udávají vlastní obsah matice (po řádcích zadaný). Výstupem programu jsou dva vektory a a b. Vektor a má n prvků (řádky), vektor b má m prvků (sloupce). Nalezené vektory splňují následující rovnosti: a = ( a1, a2, ..., an ) b = ( b1, b2, ..., bm ) mat[i][j] = a[i] * b[j] Pro zadanou matici takový rozklad nemusí existovat. V tom případě program tuto skutečnost oznámí (viz vzor v ukázce). Protože hledání rozkladu může být časové náročné, je úloha zjednodušena tím, že: * Čísla obsažená v matici i ve vektorech a a b jsou pouze celá, kladná. * Prvek matice mat[0][0] je číslo, které vzniklo součinem dvou prvočísel. Program detekuje chybu a oznámí ji na svém standardním výstupu, pokud: * Velikost matice je zadaná nesmyslná či nesprávná. * Prvky obsažené v matici nejsou zadané jako celá kladná čísla. * Prvek matice [0][0] není číslo, které by vzniklo jako součin dvou prvočísel. Pokud vstup neodpovídá těmto podmínkám, program zobrazí chybové hlášení (viz ukázka). Chybové hlášení je oznámeno okamžitě jak je detekováno. Program nesmí používat datové struktury z STL (vector, list, ...). Jejich použití povede k chybě při kompilaci. Program je v testovacím prostředí spouštěn s omezením času a paměti. Velikost paměti s rezervou postačuje na uložení analyzované matice a výsledných vektorů v binární podobě. Celková doba běhu programu je omezena 5 sekundami pro matice obsahující řádově milióny prvků. (Referenční řešení potřebuje na výpočet čas maximálně 0.5 sec). ------ Zadejte pocet radek a sloupcu: 3 2 Zadejte prvky matice: 33 24 77 56 165 120 Nalezene reseni: a = (3, 7, 15) b = (11, 8) Zadejte pocet radek a sloupcu: 3 4 Zadejte prvky matice: 49 56 63 70 7 8 9 10 42 48 54 60 Nalezene reseni: a = (7, 1, 6) b = (7, 8, 9, 10) Zadejte pocet radek a sloupcu: 2 3 Zadejte prvky matice: 15 30 40 21 42 56 Nalezene reseni: a = (5, 7) b = (3, 6, 8) Zadejte pocet radek a sloupcu: 2 3 Zadejte prvky matice: 15 30 40 21 41 56 Reseni neexistuje. Zadejte pocet radek a sloupcu: 2 3 Zadejte prvky matice: 15 30 40 21 41 asdf Nespravny vstup. Zadejte pocet radek a sloupcu: 3 2 Zadejte prvky matice: 56 63 64 72 72 81 Nespravny vstup.
Tak jsem něco spatlal, tady mi to funguje. Zkusil jsem si to na matici 1000x1500 a fungovalo to. Jenže školnímu progtestu se to nelíbí a nadává mi, že tam mám 3 neuvolněné bloky paměti. Přitom jsem na to hodil dmalloc a ten mi ukazuje, že to uvolňené je. 100x jsem si prošel zdroják a fakt netuším, kde tu paměť neuvolňuju. Asi jsem fakt krypl, kterej nic neumí. Nechce na to někdo kouknout? Zdroják hodím jako přílohu do prvního komentáře. Hezky jsem to okomentoval, aby se to dalo číst.
Jak jsem řekl, jsem dement. Už je to vyřešené a dík patří uživateli "mich".
Tiskni Sdílej:
Já jsem dal také dobré. Za obdiv, že rozumí tomu zadání. Já vůbec netuším, o co jde.
A to zadání jsi pochopil?
Já teda objektivně musím říct, že má zadání jsou mnohem srozumitelnější.
valgrind --leak-check=full
nepomaha?
==20149== Memcheck, a memory error detector. ==20149== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al. ==20149== Using LibVEX rev 1884, a library for dynamic binary translation. ==20149== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP. ==20149== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation framework. ==20149== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al. ==20149== For more details, rerun with: -v ==20149== ==20149== ==20149== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 8 from 1) ==20149== malloc/free: in use at exit: 0 bytes in 0 blocks. ==20149== malloc/free: 1,387 allocs, 1,387 frees, 76,062 bytes allocated. ==20149== For counts of detected errors, rerun with: -v ==20149== All heap blocks were freed -- no leaks are possible.Takže to je snad bez memory leaků ... maj to rozbitý.
==20385== ==20385== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 8 from 1) ==20385== malloc/free: in use at exit: 0 bytes in 0 blocks. ==20385== malloc/free: 4 allocs, 4 frees, 6,010,008 bytes allocated. ==20385== For counts of detected errors, rerun with: -v ==20385== All heap blocks were freed -- no leaks are possible.Nechápu to suppressed: 8 from 1
if (!najdiPrvniPrvky(matice, radku, sloupcu, a1, b1)) { // První prvek není násobkem 2 prvočísel cout << "Nespravny vstup." << endl; return 1; }tady podle mě neuvolňuješ
Toliko k otázce zda je lepší občas neoptimálně fungující gc a nebo občas chybující programátor . Smutné je že já to v tom kusu stále nevidím :(.
delete []matice
. S tím GC jste mě teď utřel Fakt, on GC je dobrý, ale když uvolňuje paměť hned, když není třeba a nezastavuje při tom všechny vlákna.
jestli není lepší držet se zásady "každá metoda má jenom jeden 'return point' "
Počkej! Ty tomu tam nahoře vážně říkáš C++?
Třeba, namátkou:
malloc()
není operátor delete
, ale funcke free()
.struct
a class
je v C++ to samý, ale podle mě je to španě. Má to být class
.#undefine
, který nemá co oddefinovat.Toš tak. Podle mě je to odfláknutý.
Ale já vím o C++ hovno a jsem za to rád.
1) Opakem funcke malloc() není operátor delete, ale funcke free()Na jakém řádku říkám opak? Nějak to nemůžu najít.
BitArray je třída, nikoli struktura. Ano, struct a class je v C++ to samý, ale podle mě je to španě. Má to být classstruct a class v C++ není to samý. struct má totiž všechno public a třída private, pokud se neurčí jinak.
Názvy metod třídy jsou zavádějící. Ano, podle Javí notace.Jaké javí notace? Názvy metod si snad můžu vybrat dobrovolně a mně to takhle vyhovuje a psal jsem je takhle dřív, než do nás ve škole javu začli hrotit. Nejprve jsem tedy začínal velkými písmeny na začátku, ale shift moc zdržuje
Pak je tam nějaký #undefine, který nemá co oddefinovat.Je tam
#undef
a pokud kompilátoru předáte argument na definování GENERATOR (gcc -DGENERATOR), tak ho to oddefinuje.
Nemáte na mysli maticový součin?