#1 Martin
ideálně by bylo ukázat tu funkci případně část programu kde tu strukturu plníš, někde tam budeš mít nějakou malou nenápadnou chybku.
Ono v C/C++ kolikrát stačí málo, aby se program fungoval jinak než má.
#3 remmidemmi
Dle mého to máš opačně, máš u FF nastaveno vyžadování TLS 3 a většina stránek má starší.
FF - about:config
vyhledej security.tls.version.min a otestuj si nastevení na 0 (TLS1) nebo 1 (TLS1.1)
restart FF
#5 remmidemmi
počet platných číslic na počítačích je daná pravěkou normou, kdy bylo potřeba, aby měla čísla v paměti nějakou rozumnou velikost a bylo potřeba zvolit rozumný formát velikost (64/80bit) vs přesnost, u starých 8bitů i menší myslím že 16b formát.
Zrovinka nedávno jsem v excelu připravoval tabulku předdefinovaných hodnot Sin a Cos no a samozřejmě mi to u Cos 90° (Pi/2) vyhodilo 6,12574E-17.
Možná by stálo za úvahu, aby byla aktualizovaná ta norma na dnešní dobu.
Jinak pro výpočty s extrémní přesností nebo velikostí jsou vytvořené knihovny, kdy je velikost/přesnost omezena jen a pouze velikostí dostupného datového prostoru.
jde o něco obdobného, jako když dnes ve formuláři na eshopu vyplňuji adresu, zadám ulici - třeba i jen pár začátečních písmen a našeptávač začne nabízet čísla popisná a města.
U té DB co mám je toho zatím málo cca 30 slov ve slovníku a cca 100 vět s délkou 3-5 slov, takže používám array v $_SESSION.
Pro PHP jsou to funkce na 5-10 řádků dle požadovaného nastavení. S 0-4 rekurzivním vnořením. U DB by se musel použít obdobný počet SQL volání + dekódování výsledků.
#2 Kit
jj a koukal jsem, že stejně tak se chová i print_r().
Už jsem to překopal, naštěstí to tam bylo jen pro kontrolu struktury, to pole textů má trošku složitější strukturu.
Jde o to že mám v DB 2 tabulky: v první jsou slova a ve druhé jsou stromy vět.
tabulka TREE vět
ID, IDParent (z TREE) , IDSlova
zlobilo mě SQL, resp. nedařilo se mi pomocí zadaného slova udělat SQL na rekonstrukci vět.
Takže mám v php slovník i TREE vět v poli a řeším to 3 funkcemi
- vyhledání ID s IDChild = slovo, zatím je toho v testovací verzi málo, v konečné verzi bude v poli se slovníkem index na výskyt v TREE vět
- rekonstrukce zbytku věty před slovem
- rekonstrukce zbytku věty za slovem
Vše to bude v rámci trvalého obecného Cachovaného objektu s doplňováním/rekonstrukcí v případě aktualizací (přidávání/změn)
Ahoj,
právě jsem se setkal s podivným chováním při spojování řetězců.
...
$vystup="";
$pole_textu.....
foreach($pole_textu as $text){
$vystup .= $text . "<br>";
}
$vystup .= var_dump($pole_textu); //kontrolní výpis pole
Jde o to, že nejdříve by měl být výpis textů a následovat by měl ten var_dump, ale reálně mi to nejdříve vyhodí ten var_dump pole a až pak jednotlivé texty.
#2 remmidemmi
ale jo šlo by to, chvilku jsem nad tím strávil, otázkou je zda na komunikaci použít nějaký UART obvod typu 8250, nebo i to řešit hradly, jinak bych to viděl na nějakých 30+ IC, multiplex+řízení režimu příjem zobrazení, registry nebo paměť pro segmentovky, časování, dekódování komunikace. Dále definovat protokol, zda posílat vše v balíku, nebo adresa + hodnota.
Vhodné možná jako výuka, z praktického hlediska dnes finančně a složitostně nevýhodné.
V C to jde dnes taky, jen je třeba se postarat o vše okolo vytváření Windows okna a jeho součástí, to co si v C# .NET s WPF nebo WInform nakóduješ/naklikáš vizuálně, to musíš v C vše obsloužit kódem - není to tak složité, když natrefíš na správný YT tutoriál.
Co se týče toho zdrojového obrázku a zobrazení je několik možností.
Pro jednoduchost přechodu ze starého na nové programování/kódování si lze starou grafickou paměť představit jako bitmapu a obraz generovat do bitmapy a tu následně zobrazit v daném prvku okna.
#5 remmidemmi
ahojky, jsi moc velký detailista.
Vím stejně jako většina programátorů, že většina jazyků používá pseudonáhodný generátor.
Jeho výhody se využívají např k procedurálnímu generování map/světů ve hrách jako je např Minecraft, ale i tak nebývají světy se stejným "Seedem" úplně stejné.
Na lepší náhodu s úspěchem používám další funkce a kombinace, od změny Seedu v určité fázi => vytvoří nový/jiný sled, po kombinaci s dalšími hodnotami např datetime s časem v ms (jedinečné číslo žádné se neopakuje pokud se v PC neupraví a ani pak nemusí sednout ms) nebo systémových ticků - větší rozsah než hodnoty z AD převodníků pro šum, variant je dost. Pro většinu aplikací jsou tyto možnosti dostatečné.
Pokud nedostačuje výše uvedené SW řešení, lze využít i další zdroje šumu jako např. zvuk z mikrofonu nebo obraz z kamery/videa - dobrým zdrojem jsou např.videa ze sportů - většina je dostatečně rychlých, aby každý snímek vykazoval dostatečnou jedinečnost i náhodu v závislosti na aplikovaných algoritmech.
EDIT:
Dodatečně mě napadlo, že u videa typu záznam by šlo opět o pseudonáhodu, stejné videa typu záznam s použitím stejného algoritmu => stejný sled. Lepší tedy živé video, např, kamera na akvárium s rybičkami nebo třeba dopravní kamera a realtime snímky.
#3 elektrikovo
To máš dobré, já když jsem v 90 letech začínal, tak internet ještě nebyl, muselo se spoléhat na dokumentaci nebo shánět tištěné návody většinou v angličtině, kterou jsem neuměl, takže v jedné ruce 1.000-1.500 stránkový referenční manuál v druhé slovník a hledat odpovídající funkce. Díky tomu jsem se naučil aspoň číst základní dokumentace v angličtině.
FLASH je mrtvý.
Je potřeba vytvořit a tlačítku přiřadit událost na kliknutí myš.
Výběr náhodného textu se dělá tak, že si texty vložíš do pole a následně si vygeneruješ náhodné číslo, které použiješ jako index při přiřazení do Text prvku.
Zde máš příklad, který by tě mohl navést, (v dnešní době se na internetu dá najít téměř vše, když se člověk správně zeptá).
https://stackoverflow.com/questions/24971877/as3-how-to-generate-a-random-number-between-10-and-20
V poradně ti spíš lidi odpoví, když předvedeš nějakou snahu, tzn máš nějaký kód, který ti nefunguje jak má.
#1 rob
Zjednodušeně jde o počítání určitých znaků v daném textu, zde velkých písmen od "A" do "Z".
co znamena to "-" a tohle
lett >= ‘A’
"-" je mínus
lett >='A' je porovnání proměnné lett zda je hodnota větší nebo rovná hodnotové prezentací písmene A
stejně tak lett <= 'Z' porovnává zda je lett menší nebo rovno písmenu Z
řádka 23 převede text do znakového pole
řádka 24 je začátek cyklu pro průchod znakovým polem
řádka 25 do proměnné lett se načte znak na dané pozici
řádka 26 podmínka zda se jedná o velké písmeno : proměnná lett je větší nebo rovno "A" a menší nebo rovno "Z"
řádka 27 zvýší počítadlo daného znaku +1
řádky 31 až 35 pak obsahují cyklus pro výpis znaků a jejich počtů v textu.
řádky 32-34 je rozložená 1 programová řádka a řádek 32 vypíše znak a řádek 33 vypisuje ten počet kolikrát je v textu
a ty indexy [lett-'a'] a [count-'a'] řeší rozdíl mezi indexací počítadla 0-25 a hodnotou písmene
No designově vypadají dobře. na straně klienta/prohlížeče je to kódování děsný guláš, ale pozor, pokud je to dobře udělané na straně serveru, tak to nemusí být tak strašné, tam to může být úplně jinak, stačí šikovné rozdělení na moduly a jejich pospojování při requestu.
Dobré by bylo vědět jaký simulátor to máš (odkud jsi ho stáhl).
No nejsem si jist jak ten problém vypadá, zda se ti čísla zobrazují jen na 1. místě nebo zda ti prosvítají mezi pozicemi.
mělo by to být
nastav pozici
pošli číslo
počkej malou chviličku
vymaž číslo (00/FF)
a to celé opakovat pro další pozice pozice 2. = 0xFB, 3.= 0xFD a pozice 4.= 0xFE
pokud bys na to použil subrutinu případně pro načítání obsahu z paměti lze to čekání vynechat, využije se trvání instrukcí pro skoky do rutiny nebo na přípravu dalšího čísla.
Bohužel, naše školství v této oblasti momentálně spí, na středních školách se vyučují hlavně věci jako web design, tvorba webu (dnes zvládne šikovnější žák základní školy), pak věci kolem HW klasických PC a sítí případně ještě MCU, ale kromě několika oborů na VŠ chybí povědomí o dalších možnostech a výuka jejich programování a použití. Vytvářejí ajtáky co sice rozumějí administraci PC a sítí, ale s HW si už moc neporadí jakýkoliv problém se zařízením (často poměrně drahým) řeší jeho výměnou.
Nad vodou to drží nestoři z 70-80. let 20.století, kdy nebyl přístup k západním součástkám a bylo třeba si poradit s náhradami, které občas neodpovídali originál součástkám a bylo nutné dělat natvrdo určité úpravy.
Navíc tehdy ještě u nás neexistoval internet, takže se informace sháněli kde se dalo, tenkrát jsme se s kamarádem ze studií museli spolehnout na katalog součástek RVHP, ARadio a konzultace v servisu (myslím že to byla tehdá firma Consul servis opravy počítačů).
Zrovna letos jsem se ze zvědavosti koukal na 3 zařízení co jsme vyřazovali nebo opravovali (NVR, Switche Zyxel a Cisko, tiskárna štítků), všechny měli 1-3 FPGA obvody obvykle XILINX Spartan + 1-2 CPU/MCU.
#6 remmidemmi
Jedna věc je HW, schémata, zapojení, DPS zde bych výrazný bezpečnostní problém neviděl, navíc i zde lze použít jisté bezpečnostní prvky, ke kterým se BigBrother nedostane.
A druhou věcí je SW tzn. specifické naprogramování, museli by mít přístup i k tomuto.
Toto může být, ale také důvodem proč jsou v některých oborech dále, je to v podstatě oficiální průmyslová špionáž, divím se, že to ještě amíci nezatrhli jako Huawei a podobné Aktivity čičiny a spol.
Hm pěkná zásobička.
Jinak čipy byly aktuální někdy před 15lety, odpovídají tomu i podklady a nástroje, např odpovídající compilery nejnovější z r.2009 pro WinXP / WinVista.
Zkus se zeptat nebo nabídnout na MCU.cz nebo https://forum.mcontrollers.com/
#14 Navara
Ahoj, zase jsem týden nebyl, tak přicházím s křížkem po funuse.
Variantou by možná bylo vytvořit si v TTratovaKolej proměnou pro MDIchild, kam se při otevření uloží a při zavření uvolní daná instance MDIchildu, pak ti při smazání stačí otestovat proměnou a v případě že existuje instance jí zavřít.
Budeš pak mít křížové propojení MDIchild Tratovou kolejí, kdy o soběbudou navzájem vědět.
S MDI jsem zatím nedělal, ale u jiného programu mi toto fungovalo na několik subformů.
#2 peter
ahoj díky za aspoň nějakou reakci, to co pužíváme momentálně na ty věci okolo výrobních strojů - tikety a dokumentaci, tak je řešené pevným layoutem a dynamickou aktualizací vybraných sekcí layotu, cca 2 statické a 6 dynamických částí, aktualizuje se vždy jen co je potřeba, obvykle se spouští 2 Ajax dotazy jeden na data a druhý na stav stránky, kde pak je kam ty data jdu a které sekce layoutu mají být aktivní případně speciální nastavení jako např. CSS styl (změnou třídy).
Původní autor využíval k zabezpečení obfuskaci a komprimaci JS, a jednu z vlastností jQuery, kdy obsah nahraný přes $element.html(data) není vidět v kodu stránky, tvrdil, že v rámci interní sítě je to dostačující.
Hoj, dostal jsem v práci za úkol rozšířit jednoduchý firemní intranet, zatím jen pár stránek v procedurálním PHP.
Jsem na začátku co použít za prostředí pro Front end a Back end, nebo nějaký vhodný CMS.
Co potřebuji u CMS by bylo potřeba snadné doplňování vlastních knihoven a modulů (widgetů / adonnů) na obou stranách, např. vlastní Systém Tiketů, správa uživatelů a přístupů k jednotlivým sekcím sytému, zobrazování dokumetů jako směrnice, návody nebo technická dokumentace a další, vše v několika stromových strukturách, obsah pro informační panely (cyklické zobrazování několika stránek s dynamicky měněným obsahem, např. stránka s tím co se aktuálně vyrábí na které lince).
Nebo zda si to vytvořit od podlahy sám a jakou kombinaci frameworků použít pro Backend a Frontend
Composer, Nette, Symphony, Node.JS, React atd..
Aktuální stránky využívají na straně serveru procedurální PHP s mySQL databází a na straně klienta JS+jQuery a komunikace AJAX.
#55 hlucheucho
Myslím, že jsou situace pro které se ten tvůj algoritmus hodí například jiné pro jiné různé kombinace než je toto postupné rozsvěcení a zhasínání, ale zrovna u tohoto zadaní se to dá řešit jednodušeji.
U té mojí varianty nemusí hlídat žádné cykly, jediné ošetření u změny stavů led je případ, kdy by zhasly všechny, což asi nechce
;podprogram změny stavu portů
AKCE:
MOV A, STAV1 ;aktuální stav 1.sady LED z paměťového místa nebo registru
RL A ;posuň stav doleva stav D7 do D0
XRL A,#1 ;změň stav D0
MOV STAV1, A ;ulož nový stav 1.sady LED
MOV A, STAV2 ;aktuální stav 2.sady LED z paměťového místa nebo registru
RR A ;posuň stav doprava stav D0 do D7
XRL A,#128 ;změň stav D7
MOV STAV2, A ;ulož nový stav 2.sady LED
;---volitelná část test na zhasnutí stav $FF (oba ho mají ve stejném cyklu)
INC A ;když je zhasnuto $FF, tak +1 znuluje A
JZ AKCE ;opakuj posun aby se rozsvítily D0 a D7
DEC A ;*1) vrácení stavu
;--- konec testu zhasnutí
MOV P1, A ;*2) v A je stále STAV2 pošli na odpovídající PORT
MOV A, STAV1 ;*1)načti znovu STAV1 a pošli na odpovídající PORT
MOV P0, A ;*2) a pošli na odpovídající PORT
RET
;*1) při použití registrů pro stavy vynechat
;*2) - - - / / - - - a na porty poslat přímo dané registry MOV PX, RX
Trošku zmatek v pojmech, dle mého nepotřebuješ BIOS ale firmware a tam by bylo dobré vědět pro jaký BIOS základní desky. Tedy pokud to chceš mít upgradovatelné a ne natvrdo 1 verzi přímo v BIOSu.
Také není info zda systém je 8 nebo 16bitový, že je 8bitová ISA karta neznamená, že to běží na 8-bitovém PC
Nejlepší by bylo zájemcům poslat aspoň základ a ať naprogramují třeba 1 - 2 funkce, obvykle detekci karty a základní inicializaci, k tomu moc informací vědět nepotřebují a mělo by to být otestovatelné, dále v závislosti na firmware by měl být vytvořen též nějaký driver nebo přímo ovládací soft, nejde jen o BIOS+FW.
Myslím, že tohle jsi měl mýt vymyšleno dříve než jsi to začal nabízet a uzavírat smlouvy.
#6 oxidián
Řekl bych, že je pro ně čeština na analýzu trošku těžká proto jí moc nedělají, viz translatory před érou strojového učení, Dnes translatory využívají výkonné servery se strojovým učením, které mají za sebou dlouhodobou analýzu velkého množství textů a jejich lidských překladů do různých jazyků.
#22 oxidián
pokud je poslední pixel a odpovídá
yCurrent := pFirstByte+stride-4;
tak první pixel další by měl být
yCurrent := pFirstByte+stride;
EDIT:
resp spíš yCurrent := pFirstByte+stride-3;
ještě pozor, je třeba zjistit zda je šířka width dělitelná těmi kroky, jinak nutno počítat se zbytkem.
#18 oxidián
DWORD a integer jsou stejně velké a můžeš je rovnou použít i v mém příkladu - velikostně jsou zaměnitelné. Rozdíl je pouze v tom že DWORD je neznaménkový v rozsahu 0....4G-1 a integer je znaménkový což určuje nejvyšší bit v rozsahu -2G...2G-1.
Pak by mělo jít i jednoduché přetypování hodnoty
císloInteger := integer(pointerDWORD^);
zítra mám volno můžu se na to kouknout.
Dále co se týče délky šířky řádku, můžeš řešit buď pomocí cyklu jako v příkladech nebo si načteš scanline další řádky a budeš porovnávat s pointerem na pixel.
Sory za spamování, nebyl jsem na PC, kde jsem přihlášený, takže nešlo editovat.
Jinak myslím, že metoda bitmap.canvas.pixels[X,Y] to řeší efektivněji, respektive má v sobě vše ošetřeno od barevné hloubky po odpovídající načtení barvy, vrací TColor což je v podstatě DWORD..
#2 gna
Souhlasím, pokud tam má i datetime, lze použít, trošku bordel mu to udělá při přechodu z letního na zimní čas, kdy se opakuje jedna hodina, ale pochybuju že bude resetovat počítadlo v noci mězi 2-3h.
Podobně by šlo použít i ID, ale to už nemusí být v některých situacích tak úplně košer.
Tak to mám vyřešené díky, bylo to v pochopení rozdílu mezi čistým array [] a arraylistem {}
Funguje mi to v testu takto, a je to přesně ten způsob který jsem potřeboval pro většinu dat.
list2={}
for (r=2020;r<=2022;r++){
list2[r] = {}
for (m=1;m<=12;m++){
list2[r][m] = {min:r-m, max:r+m}
}
}
a=list2[2020][12].min
if (a) { //TEST
console.log(a)
} else {
console.log("nedefinovaný index")
}
#6 peter
dík, vyzkouším, to je přesně to co jsem potřeboval, ještě otázečka, myslíš že by se daly použít místo roku měsíce a dne použít proměnné, případně řádka textu ze souboru.
Když by to jinak nešlo vygeneruji si ty pole rovnou v exportu a do JS vložím jako include.
#3 hlucheucho
no o chart.js vím.
Vytvoření grafů pomoc HTML5 a canvasu pro mě není problém.
Problém je organizace vstupních dat v JS bo nepoužívám DB a server.
Kopii originálních dat importují laboranti z csv (pouze čtení) uložených na výrobním serveru, do excelu kvůli potřebě doplňování:
- chybějících časů (výpadky el., údržba serveru, apod) - automatika při importu
- kontrolních záznamů
- poznámek k údajům mimo limity
Organizace je v ročních sešitech s listy po měsících a skupinách senzorů.
Jednoduché měsíční grafy nejsou problém udělat v excelu problémem je množství dat (pro každý senzor a veličinu cca 9000 ůdajů/měsíc - potřeba rozdělení např po týdnech nebo dekádách) a grafy mezi roky např, vybraný sensor, měsíc a za každý rok. A navíc tak aby to zvládl obsluhovat laik, tzn nějaký formulář s výběrem senzorů, období, rozložení senzor/měsíce, měsíc/senzory. Navíc tak, aby se to dalo tisknout.
Ahoj,
řeším grafické rozhraní pro několik sensorů a přemýšlím, jak zorganizovat načítaná data resp. zda použít
vícerozměrné pole nebo strukturu nebo objekt-třída, návrhy případně s ukázkou implementace plnění a přístupu k datům
Co se týče dat tak tam jde např. o limity hodnot (teploty, vlhkost) rok a měsíc tzn sensor, rok, měsíc, minT, maxT [, minV, maxV]
případně data: Senzor. rok, mesic, den, hodina a 12 (T) nebo 24 (T+V) hodnot (měření v 5min intervalu)
za nasměrování předem děkuji.
Co se týče výpočtů, tam záleží zda z toho potřebuješ už přesné hodnoty, nebo zda by to nemohlo zpracovávat cílové zařízení.
Pokud potřebuješ, aby se to zpracovalo v MCU, šlo by použít výpočty int s ukládáním pozice desetinné čárky - zde by záleželo na požadované přesnosti. Nebo opravdu zvolit cestu s MCU obsahujícím FPU jednotku.
#13 Honza
Ahoj, koukal jsem se na ten excel, máš tam chybku u těch Tlakových kompenzačních konstant jsou kromě P5 a P6 všechny ostatní znaménkové, tzn P2 P7 P8 a P11 by měli být záporné a ještě upravená hodnota tzn. pro 1B hodnotu, když je větší než 127, tak ~hodnota - 1
#11 Jan
Nejdříve by ses měl naučit základy Assembleru + a organizaci paměti a až poté se pokoušet si hrát s nějakým low-level programováním.
1) or al,1 - logický součet nastaví nejnižší bit,
ta skupina instrukcí znamená načtení 32bitového controlního registru CR0, následné nastavení bitu pro privilegovaný přístup a vrácení zpět do CR0
2) Align je zarovnání adresy umístění kodu/dat v paměti na daný počet Bajtů
tzn aling 16 značí, následující kód nebo data budou uložena na adrese končící .....0000
#1 arden89
pro příště vkládej kód pomocí menu "<?"
1. na začátku procedury, je potřeba vložit do proměnné Zacatek ukazatel na první prvek (ideálně jako vstupní parametr procedury), ten si musíš v programu nějak zapamatova jinak to ztrácí smysl.
2. a v prvním while bys měl testovat Pomocna^.Dalsi <> nill
#19 ZAČÁTEČNÍKDE
no na program se ti podívám dnes nebo zítra večer, včera to nešlo stáhnout.
Každopádně vytvoření složky má několik předpokladů:
1) složka nesmí v daném umístění již existovat
2) musí existovat ..
3) a být správně zadaná existující cesta nadřazeného adresáře
nebo sem dej kod co ti nefunguje a lidi ti to opraví, ale nikdo ti tu nebude vytvářet celý kod od začátku
na většinu práce s adresáři, má delphi 2 funkce např na to vytváření lze použít CreateDir nebo MkDir. U MkDir by to mělo dokonce vyhodit chybu. Každopádně něco by ti to mělo hlásit abys věděl v čem je problém.
#12 ZAČÁTEČNÍKDE
takhle se moc nenaučíš, v tom odkazu máš všechny funkce ohledně adresářů, tak si to vyzkoušej, od výpisu aktuálního adresáře přes změnu cesty po vytvoření nového, v první řadě bych nejdříve zkusil nastavit cestu na C:\Program Files\Raven\Star Trek Voyager Elite Force následně vytvořit ten nový adresář, ono ti to ten adresář možná někde tvoří, ale jinde než chceš.
#9 ZAČÁTEČNÍKDE
vše je v online dokumentaci, stačí se správně zeptat
#1 TomTom
asi budeš muset použít mezistupeň nejdříve zkopírovat data do textového souboru .csv a až ten pak otevřít v excelu.
pozor oddělovač by se neměl nacházet ve vlastních datech jinak to bude dělat neplechu, např pokud bude oddělovač pomlčka a budeš mít nastaven formát data a času na rr-mm-dd, tak se mlže stát že ten datum bude rozložen do více sloupců.
Myslel jsem i na další varianty
spočítání znaků a slov, alokace pole na pointery a pole pro kopii věty, kopie věty s nahrazením delimiterů a uložením začátků slov do pole pointerů opět 3 průchody počítání/kopírování/náhrada delim s uložením pointerů
další 2 průchodový algoritmus byl se zásahem do původního
1 průchodové varianty by se také našly ví o dvou
- alokovat pole pointerů a cílového řetězce určité velikosti a rovnou kopírovat, nahrazovat delimitery a ukládat pointery, při překročení kapacity pole pointerů nebo cíle realokovat na vyšší kapacitu
- struktura 2x char** první ukazuje na slovo, druhý na další strukturu opět s alokací a realokací cílového řetězce
jako představit si to dokážu, ale jde občas o ty operace a pointery.
#11 Kit
souhlasím, včera jsem ty pointery vyřešil mám to hotové bez struktury jen holé
pointer1+slovo0 , pointer2+slovo1....pointer poslední+slovo předposlední , pointer=0 slovo poslední
samozřejmě s uložením startovního pointeru pro další práci a následné uvolnění
#9 Kartmen
ORM je v podstatě mapování zdroje na cíl, u jednoduchého přímého bez kontrol to je otázka chvilky, u složitějšího s kontrolami to může trvat déle podle množství kontrol,
Co se týče řešení, tak záleží na předpokládaném procentu chybovosti, u nízké chybovosti bych udělal import bez kontrol a až u nepovedených importů bych záznam prohnal kontrolou nebo zkopíroval do chybové tabulky, kde by se provedli opravy a následně do importovali,
EDIT: Případně zvolit default hodnoty naimportovat a pak záznamy vyfiltrovat podle těch default hodnot a zkontrolovat.
#3 fix
Jen by se to mělo řešit křížovou tabulkou
v tabulce filmy jen ID a název
přidat tabulku FilmZanr, kde budou propojené filmy s žánry
....ID_filmu | ID_zanru
#15 MilanL
Jinak každý má svůj způsob práce.
Já se např nejdříve soustředím na funkčnost a až pak na refactoring a optimalizaci.
Ted jak jsem to procházel jsem přišel na další optimalizaci přibližně 1/3 řádek u Loadu a 1/2+ u čtení klíčů by se dala zredukovat.
Hlavní je co největší čitelnost a přehlednost kodu, alespoň pro autora, abys i za 5 let věděl co jak a proč jsi dělal.
Cest je vícero, záleží co ti vyhovuje a na tom jak s těmi objekty chceš pracovat. Někdy stačí nastavení a výchozí zpracování provést hned v konstruktoru jindy je lepší si ty fáze práce rozložit, obvykle není problém construktor přetížit a udělat jeden základní jen vytvoření objektu a druhý rovnou se zpracováním.
Každopádně bych zpracování oddělil do samostatné metody, tzn
construktor(owner) - vytvoří objekt
constructor(owner, FilePathName) - vytoří objekt nastaví file a přesměruje např na Load
SetFile(FilePathName) - samostatné nastavení souboru
Load - načtení a zpracování souboru
Já mám podobně načítání configurace v delphi z INI file
v construktoru nastavím cestu a název souboru a příznak stavu /ne/načteno
pak mám funkce
fromCFG a toCFG, první načítá druhá ukládá nastavení
funkce mají kolem 100 řádek rozdělených podle sekcí INI po cca 25-30 řádkách
celkem asi 40 klíčů ve 3 sekcích, na načítání klíčů mám podle typu proměnné přetíženou metodu ctiKlic(sekce,klic,proměnná), která vrací zda se povedlo nebo nepovedlo načíst
projdu všechny klíče a pokud se nepovedlo načíst vše co je potřeba, spustí se konfigurační dialog.
#44 klimenko
Hezký, aspoň že jsi na to přišel, jinak měl jsem to už v té první odpovědi #2, že máš zkontrolovat řídící vstupy.
#2 MilanL
ahoj, bez kodu a schémátka, to bude asi těžký, pokud má ten pin také něco spínat jako reakce na nějaký vstup, tak bude nejspíš problém v tom.
Jinak já jsem se díky tomu z reakcí na to schémátko, také dozvěděl pár nových věcí, za což jim (HU a Jerrymu) děkuji.
Mám několik nápadů co bych si pro sebe a domů chtěl stvořit, tak aspoň vím na co si dát majzla, zatím to připravuji na vývojovém kitu, hodit se to bude až budu navrhovat konečné cílové schéma..
#1 Tereza Černá
no nevím není vidět program takže nevím jestli ty řádky jsou definicí funkcí nebo jejich voláním.
typoval bych že chyba bude u varargin(:) nebo u sum ( : , ...)
to lze podle mě použít při definici funkce, ale už ne při jejím volání tam je třeba mít skutečný předdefinovaný objekt/pole. proto ta chybějící reference nebo pole.
MATLAB neznám tak nevím co dovoluje a co ne odhaduji podle typu chyby a vzhledu řádek
#5 klimenko
pak bych tedy ještě zkontroloval vstupy, jestli ti tam něco po tom resetu neleze.
Zkusil bych po resetu nastavit RB na výstup a znulovat a následně 3-5s pauzu před dalším zpracováváním, tím odhalíš, zda to dělá reset nebo nějaký stav na vstupech.
Když v zapojení s oddělenýn napájením ti to funguje a se společným ne, tak je tam u toho napájení něco špatně.
#1 JM
kod ti tu nikdo dělat nebude, v podstatě je to pro laika na 5-10 min hledání pomocí strejdy Googla
1) vytvořit/otevřít XML soubor
2) otevřít csv soubor
3) pomocí cyklu procházet csv řádku po řádce
4) pomocí funkcí PHP nebo vlastních rozparsovat řádku CSV na jednotlivé údaje
5) uložit údaje z dané řádky dle požadované struktury do XML
variantou je zjištění struktury dle prvního řádku csv
další variantou/doplňkem je případná kontrola hodnot
tak jsem ještě trošku pohledal, zkus tohle
https://stackoverflow.com/questions/29510540/adding-a-mouselistener-mouseevent-to-each-object-in-an-objects-list
#1 Gesler
tak jak to máš to asi nebude fungovat nebo jen na ten poslední.
navíc to přiřazuješ tomu tmp, nejsem si jist u javy jestli to funguje takto. zkusil bych to přímo
místo
tmp.setOnMouseDragged(new EventHandler<MouseEvent>() {
dát
circles[i].setOnMouseDraged.....
případně si vytvořit vlastní třídu
class MyCircle extends Circle
s tím draged eventem
#9 krpik
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Call conecDB()
Form1.DateTimePicker1.CustomFormat = "yyyy-MM-dd"
Form1.DateTimePicker1.Format = DateTimePickerFormat.Custom
Form1.DateTimePicker2.CustomFormat = "yyyy-MM-dd"
Form1.DateTimePicker2.Format = DateTimePickerFormat.Custom
Dim cmd As New MySqlCommand("
SELECT sum(ROUND(s.celkovacena,2)) AS suma, hotovost
FROM platby
WHERE (hotovost = 1 or bezhotovost = +)
and placeno = 1 and storno = 0
and cas BETWEEN '" & Form1.DateTimePicker1.Text
& "' AND '" & Form1.DateTimePicker2.Text & "'
GROUP BY hotovost ", connDB)
cmd.ExecuteNonQuery()
Dim i As MySqlDataReader = cmd.ExecuteReader()
While i.Read()
if i("hotovost")=1 then
//nebo ="1"//
Label3.Text = i("suma")
else
Label5.Text = i("suma")
End While
i.Close()
Catch ex As Exception
MessageBox.Show(ex.ToString)
connDB.Close()
connDB.Dispose()
End Try
End Sub
navíc pokud budeš dělat DPH pro víc sazeb, tak to budeš muset opět nějak rozlišit
jako SQL ti vše spočítá, ale je zbytečné na každou věc dělat extra query.
#6 Borisek
no pokud nejde čeština, je potřeba to překódovat.
např. https://stackoverflow.com/questions/9844250/not-able-to-send-utf-8-email-using-delphi-indy
#4 Borisek
nejdřív stačí zjistit jestli ti login projde true nebo false
jinak zkus tohle, je tak krok po kroku sledování těch fází spojení
http://www.ararat.cz/synapse/doku.php/public:howto:smtpsend
nebo podle verze delphi použij indy
#6 peter
jo ty chyby znám snažím se si to hlídat, navíc sublime si to hned páruje takže dáš začáteční závorku je jedno jakou a hned to udělá i koncovou a ty vkládáš mezi ně, to samé u uvozovek a apostrofů. Jen při přidání doprostřed hotové řádky podle umístění to někdy udělá trošku jinak než člověk potřebuje.
horší je že si nemůžu zvyklnout na == v podmínkách furt tam cpu = a pak se divím jak to blbne, protože to neohlásí chybu, není to syntaktická chyba.
dík za rady.
#17 KIIV
kdyby jen konvence ale i způsob zacházení s daty
#1 Petr35
doplnění #16 syscall volání pro výpis na obrazovku a exit je pro LINUX
a je to na předem definované pole, pokud by byl nějaký jiný vstup ze souboru nebo terminálu, bylo by potřeba, to upravit
celé mi to trvalo necelých 30 minut, algoritmus byl vymyšlený za chvilku, nejvíc času mi zabrala úprava syntaxe pro nasm a následně nastavení kompilace na x86-64,
drobná oprava měnil jsem pojmenování rutiny pro ten převod čísla zapoměl jsem změnit u cyklu loop
loop _toDec má být _HEXtoDec
tDend:
#1 Petr35
měl jsem dnes chuť to zkusit vytvořit
použit online kompiler
https://www.tutorialspoint.com/compile_assembly_online.php
případné nastavení kompilace v Project-Compile options:
nasm -f elf64 *.asm; ld -m elf_x86_64 -s -o demo *.o
section .text global _start ;must be declared for using gcc _start: ;tell linker entry point mov rdi, poleA ;pointer poleA mov rsi, poleB ;pointer poleB mov rcx, lenA ;prvků v poli A call _hamming ;vrátí počet rozdílů v RAX mov rdi, msgK ;adresa pro převod HEX na DEC od konce dec rdi ;-1 znak odřádkování mov rcx, lenmsg ;znaků pro číslo (aktuálně 32 lze zvýšit) call _HEXtoDec ;převod HEX na DEC, RAX číslo, RDI cíl, RCX max číslic ;vrátí v RDI začátek čísla mov rdx, msgK ;vezme adresu konce sub rdx, rdi ;odečte adresu začátku => RDX délka zprávy mov rcx, rdi ;začátek zprávy
mov rbx, 1 ;file descriptor (stdout)
mov rax, 4 ;system call number (sys_write) int 0x80 ;call kernel
mov rbx, 0
mov rax, 1 ;system call number (sys_exit)
int 0x80 ;call kernel _hamming: ; vstup ESI a EDI pointery na pole, ECX velikost poleA xor rax,rax ;počítadlo hammL: mov rbx, qword [rdi] cmp rbx, qword [rsi] je hammL2 inc rax hammL2: add edi, 8 add esi, 8 loop hammL ;opakuj pro prvky pole ret ;RAX počet rozdílů ;převod čísla HEX na DEC-string _HEXtoDec: ;RAX = value, RDI = dest od konce, RCX = dest size
and rax, rax jz tDend mov rdx, 0 mov rbx, 10 div rbx add rdx, 0x30 mov [rdi], dl dec rdi loop _toDec tDend: ret ; v RDI začátek section .data poleA dq 1, 0, 0, 1, 0 lenA equ ($ - poleA) / 8 poleB dq 1, 1, 0, 1, 1 lenB equ ($ - poleB) / 8 msgZ times 32 db 0x20 msgK db 0x0A lenmsg equ msgK - msgZ
mov
Totální nepochopení programování a algoritmů.
Neschopnost si cokoliv najít sám a opsat to správně z knížky,
Mě to připadá spíš jako úkol do školy.
V příkladu jsou věci co by student měl znát po pár základních lekcích.
V pythonu nedělám a nevšiml jsem si řešení od GNA, ale všechny chyby od překlepu v Importu přes špatné uvozovky po chyby v odsazení jsem měl vyřešené za necelých 5 minut.
#10 Lisiak46
ahoj.
Počet kombinací ty podmínky sníží hodně, ale stále je tu časová otázka generování kombinací a jejich testování.
Rychlost by hodně záležela od způsobu generování kombinací. Jde o to, že pokud bys šel sekvenčně kombinace po kombinaci, lze některé vyřadit rychle, ale u jiných pak musíš analyzovat celý řádek.
Např pokud by sis generování 2x32b => 64b rozložil ,a generování 8B (8x 8b), celkem rychle vyřadíš kombinace, kdy se 1B skládá ze 4 stejných párů 00000000, 01010101, 10101010, 11111111 a B před končí nebo B za začíná stejným párem, navíc se v tomto případě dá přeskočit relativně velká část kombinací v závislosti na pozici výskytu. U dalších bys pak musel porovnávat konce a začátky sousedících B., kolik stejných je na konci jednoho a na začátku druhého
#1 juraj175
pokud jde o vzdálenost mezi pozicí, tak jde o celkem jednoduchý výpočet vycházející z pythagorovi věty, jen aplikované na 3D
tzn
vzdálenost^2=(o1.X-o2.X)^2+(o1.Z-o2.Z)^2+(o1.Z-o2.Z)^2
https://forum.unity.com/threads/distance-between-two-objects.37918/
a zbytek lze udělat při jednom z těch průchodů výpisu pole, do jedné proměnné sčítat do dalších dvou proměnných hledat minima maxima, porovnáš číslo odpovídajícím způsobem s aktuálním minimem nebo maximem a když se splní podmínka dáš do proměnné novou hodnotu, následně po výpisech pole vypíšeš dané hodnoty součtu, vypočteš průměr, a pak min max.
Ty postupy jsou určitě k nalezení na netu, rozdíl u arduina je pouze v potřebě směrování výstupu na serial port.
#5 Lisiak46
to vypadá jako oprava starých fotografií, chtělo by to více řádků okolo pokud chybí řádek dole tak 3-5 nad a pokud není úplně dole tak pár 1-3 pod. Pak by se dala provést nějaká analýza po blocích XxX pixelů s různými úrovněmi překrývání a tím najít v rozumném čase několik nejpravděpodobnějších kombinací.
#2 hlucheucho
Záleží jestli jsou ty funkce povolené, pokud to má jako úkol tak nejspíš ne.
#1 nika
základem je procházet původní řetězec znak po znaku a přes podmínky detekovat zda je znak číslo, na začátku si vytvoříš nějako dočasnou proměnnou vynulovanou, když v řetězci najdeš číselný znak, vynásobíš dočasnou 10 a přičteš číselnou hodnotu znaku, když dojdeš na nečíselný znak uložíš dočasnou hodnotu do pole pro výsledky a vynuluješ a takto pokračuješ dokud nedojdeš na konec řetězce.
Tohle je základní algoritmizace. Také jde na internetu najít spoustu řešených příkladů i zde na programujte foru už to určitě bylo.
#7 gna
já myslím, podle jeho popisu co mu to dělá, že mu to upraví pozice, aby se prvky v řádku vešlí na řádku, ale nepřizpůsobí se jejich velikosti, takže ty componenty se překrývají jen nevím v jaké míře, znamená to, že první label začíná klasicky vlevo, první text pole už začátkem překrývá, ten první label, druhý label leze do prvního text pole a druhé text pole do druhého labelu atd.
hodil by se výřez screenu
#2 m6692
pro začátečníka stačí i zdarma kurzy, hlavní je si to i hned zkoušet. Placené se vyplatí až budeš mít alespoň nějaký základy.
Zkus třeba
https://www.itnetwork.cz/cplusplus
mají tam části co jsou free a i placené e-learningy a dokonce ted zrovna se slevou.
#1 PetrJansky
je třeba ukázat (ne Screen, ale přes tlačítko <? přímo kód daný úsek kódu) , část/funkci načítání a část/funkci porovnávání, může to být třeba jen typový nesoulad při uložení nebo porovnávání ať už u indexu/ukazatele nebo obsahu.
#1 oxidián
hele ty různé významy a kontexty nejsou tak odlišné od češtiny.
Jinak na tuhle analýzu už by to chtělo pracovat s DB,
K jednotlivým slovíčkům bych nadefinoval indexy kontextů v rámci slovních spojení
K testům bych přidal indexy kontextů tech slovíček v rámci té fráze.
Pak můžeš vyhodnotit i jednotlivá slovíčka z fráze, např odpovídá sloveso a rod a neodpovídá čas apod.
#4 PascalMlaskal
To jsou základy programování, stačí si najít nějaký jednoduchý tutoriál na internetu.
Když necháš někoho udělat za sebe tyhle jednoduché školní úlohy, tak se nic nenaučíš, a později až budeš potřebovat něco složitějšího, tak s tím nehneš už vůbec. Také jde o školu případně obor co děláš, někde je programování jen okrajově, aby studenti měli základní přehled jak to vlastně funguje, jinde se jde hlouběji.
Je to také cesta k rozvoji analytického a tvůrčího myšlení.
#3 Pavelv
Souhlasím s Kitem
Na editaci můžeš ještě zkusit Sublime text.
RRDTool jsem chtěl také navrhnout, má to výhodu pevně nastavené velikosti DB, nevýhodou je, že starší data jsou postupně průměrována za delší a delší období.
Dnes by pro šikovnějšího programátora neměl být tvorba grafů problém v OpenCL, viděl jsem webově řešenou správu cesty zpracování vody pro výrobu schema zařízení v DB (pozice případně rozměry ikon prvků, definice linek propojení a kontrolních bodů) při kliknutí na kontrolní bod se zobrazí popup graf nebo tabulka.
#5 hlucheucho
takže taková kombinace původního a mého co?
ono ty subselecty si v podstatě také dělaj dočasné tabulky, ale nejspíš jen v paměti takže to může být rychlejší, než to vytvoření klasické dočasné tabulky.
Zkus srovnat časy provedení.