Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 193.84.197.–

peter
JavaScript, AJAX, jQuery › js-react, character sheet, z…
5. 5. 2021   #387873

Asi se mi to podarilo uz vyresit. Jsem to mel sice pekne ohandlovane, ukladalo se mi to, ale tam je nutne pridat jeste prekresleni forceUpdate(), kdy nepouzivate funkci setState().
A soucasne se mi podarilo zjistit, ze setState skutecne neumi pracovat se strukturovanymi objekty. Je pouze jedno-levelovy. Ty se musi zpracovat zvlast a pak poslat jako celek do setState.

Shrnuti, react je na pikacu :)
Ja to brachovi rikal uz na zacatku, ze mne do toho nema tahat. Ze jenom blazen by to delat reactu, kdyz 10x rychleji to lze udelat beznym JS :)

peter
Hry › Geometrie, obrazce
4. 5. 2021   #387869

Jako, matematicky, se znalosti stredoskolske matiky, jde ten prusecik P spocitat jako: 

kruznice (pro zjednoduseni si bod [0,0] posunu do S)
xx + yy = rr
xx + yy = 16

uhlopricka
y = kx + q
[4,0]  :  0 = 4k + q => q=-4k
[-4,-4]: -4 = -4k + q => -4 = q + q => q = -2
q = -4k => -2 = -4k => k = 2
y = 2x - 2

prusecik (prunik)
xx + yy = 16
y = 2x - 2
xx + (2x-2) * (2x-2) = 16
xx + 4xx + 4 + 2*2*(-2)*x = 16
5xx - 8x - 12 = 0
D = bb - 4ac = (-8)*(-8) - 4*5*(-12) = 64 + 240 = 304
x12 = (-b +- odm(D)) / 2a
x12 = (--8 +- odm(304)) / 2*5
zajima te cast, kde bude x<0
// ta odmocnina bude mezi 10*10=100 a 20*20 = 400, 
// tipnu si treba 16 [kalk. 17.44], x2 = -0.8,
// podle obrazku by to melo vyjit tak kolem -2.2 az -2.4)
// takze tam mam nekde chybu, ale principialne takhle nejak :)

A potom prusecik pouzijes pro integraly. jestli pouzijes stejne krivky,
tak integral vztahuje obsah k nulove ose, takze vyslednou prochu bude 
treba odecist od ctverce 4 * 4, abys dostal jen tu vybarvenou casy
peter
JavaScript, AJAX, jQuery › js-react, character sheet, z…
3. 5. 2021   #387868

https://mlich.zam.slu.cz/js-react/vampire_peter/index2.htm
1. Dokazal by mi nekdo rici, jake chyby tam jsou proti like-react kodu  a jak je odstranit? (protoze reactu nerozumim, jen jsem to dal dohromady za pomoci googlu a dokumentace) Nejak to funguje, ale pry je tam vice js kodu nez react-kodu. To tvrdi clovek, kteremu to zatim nefunguje vubec :)
2. A nedari se mi rozchodit input type text, aby sel prepisovat scriptem a soucasne editovat uzivatelm. Bud ho po kliknuti na "Lubo" prepisi, ale neni mozne jej editovat. Nebo jej muzu editovat, ale script mi jej nedokaze opravit po kliknuti na "Lubo" (to je zrovna pripad toho kodu, co tam ted mam)

peter
JavaScript, AJAX, jQuery › Odstranění nepotřebného z JS?
3. 5. 2021   #387867

Priklad. Takova malickost. Zalamovani radku. Musis vykreslit pismenko, zjistit jeho rozmery, sirku. Spocitat sirku slova a zjistit, zda s temi ostatnimi se ti vejde na delku radku. A kdyz ne, pridat novy radek a cele to opakovat. A kdyz mezi pismenka pridas obrazek, jak ho to ma obtect. A ostatni tagy
Je to pomerne slozity program, ktery pod 100k nenapises, pokud ma fungovat za vsech okolnosti.
tak tohle ma browser vestavene. Ale ne okenka, grafy a dalsi veci. Ale existuje google doc, sheet, ktere to ma a tez ma 10MB knihovny :)

peter
JavaScript, AJAX, jQuery › Odstranění nepotřebného z JS?
3. 5. 2021   #387866

Si to naprogramuj sam. Da se to realizovat obrazky.
Vyhazet to urcite jde, zpusobem debugovanim. Nicmene, vetsina tech knihoven vyuziva velkou cast. 4MB je naprosto zanedbatelne pro to, co koukam, ze to umi. Navic, koukam, ze uz je to minifikovana verze.

Totiz, problem je, ze kazdy prohlizec si zobrazuje stranku po svem. Takze pak tam mas casto kod treba 5x pro kazdy browser jiny. A je treba resit ruzne nedokonalosti prohlizece a veci, ktere nema vestavene. Treba rizeni okenek, presun okenek po obrazovce, animaci a tak. To, co delaji normalne ruzne programy ve win, tak v prohlizeci neni a ten kod to tam prave doplnuje.
A pak tam mas jquery, ktere tez nejake funkce doplnuje.

Mozna to jde i bez toho, tady maji furu js.
https://github.com/…ee/master/js

peter
Matematika › Úprava rovnice a odůvodnění…
29. 4. 2021   #387859

   

f(x) = (1-(y^2))^(1/2)
x = (1-(y^2))^(1/2)
xx = 1 - yy
xx + yy = 1 - to je rovnice kruznice s polomerem 1 (xx + yy = rr)

U kruznice to funguje tak, ze pro jedno X existuji 2 reseni +-y

xx + yy = 1
y = odm( (1 - x) * (1 + x) )

A existuje uprava vzorsem pro cos (x/2). Nevim, jestli ti to k necemu bude :)
A taky cos^2(x) + sin^2(x) = 1 je take rovnice kruznice.

Jinak, existuje jakesi spesl matematicke forum, tusim na matika.cz nebo tak nejak.

peter
HTML / XHTML › Výpočet výšky SVG
20. 4. 2021   #387823

Tak to vykresli do js canvas. Tam by width mohla stacit.

peter
PHP › Vypsání získaných informací…
20. 4. 2021   #387822

Kdyby slo o jednoduchou zalezitost, asi by sis vystacil s textovym souborem (nejlepe format csv nebo json), ne moc casta aktualizace. Jenze, jak pises, 50.000 radku, na to je lepsi databaze.
Pro chat je treba take mozne, aby cely program bezel jako soubor v pameti, pokud ti to server dovoli.

peter
HTML / XHTML › Ikona v odkaze
20. 4. 2021   #387821
peter
PHP › textarea auto-resize
15. 4. 2021   #387781

Jmeno class je jen jmeno.
Vlastnost se da prebit tak, ze okopirujes jeji definici z kkodu, ktery ti ji prebiji, nejaky css soubor / js. Viz Paja, dej si vyhledat text v souborech.
Nebo muzes zkusit pridat important. 

textarea.abc {height:3rem !important;}

Nebo id ma vyssi prioritu (css #, html id=""). Nebo napsani jmena tagu (css textarea). A nebo, to pouzivam nerad, ale muzes jit pres body a vypsat postupne kazde jmeno tagu a pripadne id, pokud ma, pro jistotu.
Kazdopadne, musis ten css mit jako posledni. Pokud neni posledni, muze fungovat !important, pokud jej ten druhy kod nepouziva taky :) Pak, opet, vyhrava posledni.

<link text/css src=...>
<link text/css src=...>
<style>...</style>

<link text/css src=mujstyle>
<style>mujstyle2</style>
peter
PHP › textarea auto-resize
14. 4. 2021   #387776

Ptas se v nespravnem foru. Jsou tu fora na html, css, js.

Pokud bys potreboval autoresize, resi to js.
Pokud ti kod neco upravi, je to nejaky framework s css, js.
Pokud chces zmenit vlastnosti prvku, obvykle se mu prida class a zbytek se definuje pomoci css.
 

<?php echo '<textarea class="xyz" id="abc" cols="80" rows="10"></textarea>'; ?>
<style>
textarea.abc {width:10rem; height:3rem;}
textarea#xyz {width:10rem; height:3rem;} /*nebo takto*/
</style>

To style vkladas do externiho souboru, obvykle, atd... To jsou zkratka zaklady html, css. Dobre je si to projit na jakpsatweb.cz/html a jakpsatweb.cz/css

Ty tam mas pravdepodobne nejaky framework, soubor css, ktery ti to upravi. Ano, v html se pise cols=, rows=, ale v css width ti to prebije. Tam muzes pak pouzit px, rem, em a jine jednotky
https://www.jakpsatweb.cz/css/width.html
https://www.jakpsatweb.cz/…ednotky.html#… - a niz na strance, v dalsich tabulkach
 

peter
Hry › Geometrie, obrazce
13. 4. 2021   #387772

Ok, takze, nejspis spodni modra linka nema delku R. Timpadem je obsah toho trojuhelniku spatne a muselo by se jit asi pres vysec nebo to dopocitat jinak.

peter
Hry › Geometrie, obrazce
13. 4. 2021   #387771

Ale, musis znat vzorecek na kruhovou usec :) Tvuj postup je sikovny.

Napadlo mne pri tom, resit to jeste jinak. Modra cast je 1/6 kruhu a trojuhelnik r-r-r.
A zelenou uhloprickou jsem rozdelil obdelnik na 4 casti.
Připojen obrázek.Takze, pak je to:
S1 = 1/6 kruhu
S2 = modry trojuhelnik
S3 = S1 - S2 = dolni oblouk
S6 = (S4) spodni 1/4 celeho obdelniku MINUS (S5) plocha cerno-zeleno-modreho trojuhelniku uvnitr modreho
S = (S6 - S3) / 2
---
S1 = 1/6 pi r r
S2 = r/2 v = r/2 (rr - rr/4) = r/2 odm(3)
S3 = S1 - S2 = 1/6 pi r r - r/2 odm(3) = 8/3 pi - 2 odm(3)
S4 = 2 x 4
S5 = r/2 x r/4 ... ten obsah vim, protoze pomer stran je 1:2, podobnost trojuhelniku, a polovina modre je r/2
S6 = S4 - S5 = 8 - 2 = 6
2 x S = (S6 - S3) / 2 = 6 - (8/3pi - 2 odm(3)) = 6 - (8 - 3.4) = 6 - 4.6 = 2.4
S = 1.2 (melo vyjit 1.25)
pro zjednoduseni:
pi je jen 3.14 (rekneme 3)
odm(3) je 1.73 (rekneme 1.7)
Kdyz dosadim presne, tak vyjde: 6 - (8/3pi - 2 odm(3)) = 6 - (8.378 - 3,464) = 6 - 4,915 = 1,085... polovina 0.5 (melo vyjit 1.25) takze, je mozne, ze tam mam nekde chybu :)

 

Ja mam pocit, ze tohle jsem mel nekde na prijimackach na stredni nebo na vysokou a ze tam kalkulacka moc nebyla povolena, protoze uz tehdy umeli pracovat s grafy a tyhle veci pocitat :)
Myslim, ze tam se to resilo odhadem, prave pomoci te ctvereckove mrizky

peter
Hry › Geometrie, obrazce
12. 4. 2021   #387769

Stale mi to vrtalo hlavou, tak jsem nakonec precijem udelal program.
Program si stahnes pres prohlizes, ulozit stranku jako, editovat muzes v poznamkovem bloku windows.

https://mlich.zam.slu.cz/js-geometrie/js-geometrie.htm

Co te zajima nejvic je toto cislo:
"b_plocha8x4":1.2520161295774328 (zoom je 50, cili plocha 200x400 pixelu)

sum.a = soucet vypocitane hodnoty pro x = 1, 2, 3
sum.b = soucet zaokrouhlene vypocitane hodnoty (pro zobrazeni pixelu)
Rozdil je asi 25, to je proti hodnote 3000 zanedbatelne.

Tady pridavam rozdil pro zoom 50 a 200, hodnoty se moc nelisi

zoom = 50
{"a":3130.0403239435823,"b":3055,"plocha":80000,
"a_plocha":"3.9125%",
"b_plocha":"3.8187%",
"a_plocha8x4":1.2520161295774328}}

zoom = 200
{"a":50079.70768613711,"b":49770,"plocha":1280000,
"a_plocha":"3.9124%",
"b_plocha":"3.8882%",
"a_plocha8x4":1.2519926921534277}}

V kodu najdes matematicke reseni, ale to mam spatne, nekdy to spravim :) Nicmene, sel jsem pres trojuhelniky a potrebujes jen znat vysledky odmocnin. Ty by slo celkem presne odhadnout. nicmene, je to spatne, nekde je tam chyba, vychazi mi uplne jina cisla nez detekuje program.

peter
JavaScript, AJAX, jQuery › Jak vzít data z tabulky?
12. 4. 2021   #387768

$_POST['filters'], tam dosadis vlastni nazev promenne :)
Jj, cetl jsem, jen se mi zdalo, ze jsme se uplne nepochopili. Coz s mou slabou vysvetlovaci schopnosti neni nic noveho :)

peter
PHP › Přihlášení přes heslo z Word…
11. 4. 2021   #387764

#7 Kit
Tak mne napada, ze byt hacker, tak se velice zajimam o doplnky a pozadavky uzivatelu. Udelam mu doplnek, ktery chce a obohatim ho dirami, ktere potrebuji :)
Ono, jako md5 neni spatna funkce. Jen zalezi na tom, k cemu presne ji pouzijes. Sifrovani neni primarni ucel :)

peter
JavaScript, AJAX, jQuery › Jak vzít data z tabulky?
11. 4. 2021   #387763

Jak jsi tam psal, ty zadas pozadavek a db ti vrati vysledky ala json, treba. Tak ti to muze vracet jako csv, ten samy php kod. Tak jsem to myslel. Prijde mi to jednodussi nez se drbat s javascriptem, kdyz uz mas vlastne vse hotove.
Pokud to ale nasledne jeste nejak filtrujes u uzivatele, i tak by bylo jednodussi poslat ty filtry php. Hlavne jde o to, ze php ma na csv funkce. 

$filters = $_POST['filters']; // samozrejme bys pridal kontroly proti hackingu a tak
$q = "SELECT ... WHERE ".$filters;
$data = ... fetch();

// https://stackoverflow.com/…array-to-csv
function array2csv($data, $delimiter = ',', $enclosure = '"', $escape_char = "\\")
{
    $f = fopen('php://memory', 'r+');
    foreach ($data as $item) {
        fputcsv($f, $item, $delimiter, $enclosure, $escape_char);
    }
    rewind($f);
    return stream_get_contents($f);
}

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);
var_dump(array2csv($list));

// ---NEBO---

 $f=fopen('php://memory','w');
 $header=array("asdf ","asdf","asd","Calasdflee","Start Time","End Time" );      
 fputcsv($f,$header);
 fputcsv($f,$header);
 fputcsv($f,$header); 
 fseek($f,0);
 header('content-type:text/csv'); 
 header('Content-Disposition: attachment; filename="' . $filename . '";');
 fpassthru($f);```

Tuhle jsem delal pro nejaky program, export csv, json, xml, html table, php array().
 

<?php
// --- class ExportData ---

class classExportData
{
private $vars;

function __construct()
	{
	$this->vars = array();
	$this->vars['name']    = 'classExportData';	// evid3 form name / what, template / htx file prefix
//	$this->config = array('debug' => true);
	}

private function isDebug()
	{
	return isset($this->config['debug']) && $this->config['debug']===true ? true : false;
	}

private function errorDebug($fn='')
	{
	return !$this->isDebug() ? '' : 'class'.$this->vars['name'].'::'.$fn.' ';
	}

private function errorAdd($fn='', $text='')
	{
	global $REPORT;
	$REPORT[] = $this->errorDebug($fn).$text;	//$app->errAdd('', $this->errorDebug($fn).$text)
	}

// function defination to convert array to xml
public function arrayToXml( &$data_xml, $data_list=array() )
	{
	foreach( $data_list as $key => $value )
		{
        	if (trim($key)=='')
	  		{continue;}
	 	if (is_array($value))
			{
			if (is_numeric($key))
				{
				$key = "item".$key; //dealing with <0/>..<n/> issues
				}
			$new_child = $data_xml->addChild($key);
			$this->arrayToXml($new_child, $value);
			}
		else	{
			if (is_numeric($key))// if the key is an integer, it needs text
				{
				$key = "key".$key;
				}
			$new_child = $data_xml->addChild("$key", htmlspecialchars("$value"));
			}
		}
	}

public function csvStrToCsv($input=array(), $delimiter = ',', $enclosure = '"')
	{
	if (!is_array($input))
		{return false;}
	foreach($input as $key=>$value)
		{
		if (is_array($value))
			{
			$input[$key] = $this->csvStrToCsv($value, $delimiter, $enclosure);
			}
		}
//	if (is_array($input))
//		{
//		}
        $fp = fopen('php://temp', 'r+');	// Open a memory "file" for read/write...
        fputcsv($fp, $input, $delimiter, $enclosure);
        rewind($fp);
        $data = fread($fp, 1048576);	// limit 1MB per csv line
        fclose($fp);
        return rtrim($data, "\n");
	}


public function format($data=array(), $format='')	// output format php array (/ json / xml / csv - not implement)
	{
	if ($format=='')
		{
		return $data;
		}
	elseif ($format=='csv')
		{
		$content = '';
		$valenc = "\"";
		$coldel = ";";
		$rowdel = "\n";
//		$rowdel = "<br>";	// for html/text
		foreach ($data as $row)
			{
			$content .= $this->csvStrToCsv($row, $coldel) . $rowdel;	// excel csv, del=; enc=" row=\n
			}
		return $content;
		}
	elseif ($format=='json')
		{
		return json_encode($data);
		}
	elseif ($format=='xml')
		{
		$xml = new SimpleXMLElement('<?xml version="1.0"?><data></data>');
		$this->arrayToXml($xml, $data);
		return $xml->asXML();
		}
	elseif ($format=='html')
		{
//var_dump($data); die();
		$pad_table = "\n";
		$pad_tbody = "\n  ";
		$pad_tr    = "\n    ";
		$pad_td    = "\n      ";
		$out = "$pad_table<table>$pad_tbody<tbody>";
		foreach ($data as $row)
			{
//var_dump(is_array($row), $row);
//die();
			if (!is_array($row))
				{
				$out .= "$pad_tr<tr>$pad_td<td>".((string) $row)."</td>$pad_tr</tr>";
				continue;
				}
			$out .= "$pad_tr<tr>";
			foreach ($row as $col)
				{
				$out .= "$pad_td<td>".((string) $col)."</td>";
				}
			$out .= "$pad_tr</tr>";
			}
		$out .= "$pad_tbody</tbody>$pad_table</table>";
		return $out;
		}
	}

}

peter
Hry › Geometrie, obrazce
4. 4. 2021   #387722

Kdyz to bude, jako na obrazku, ...
obdelnik oznaci ABCD, prunik kruznice a usecky jako M, prunik kruznice a osy x jako N.
- S1 = ctverec ANN'D je ctverec = 4x4 = 16
- S2 = a soucasne je tam 1/4 kruhu = pi rr
- S3 = S1 - S2 = ctverec - cast kruhu = 16 - 1/4 PI rr
- S4 = trojuhelnik ABC = 4 x 8 / 2= 16
- S5 = cast kruhu vytvorena useckou MC, na to je nejaky vzorecek pro kruhovou vysek, usec nebo tak neco
S5 = 1/2 rr (arc alfa - sin alfa)
S5 = PI rr * alfa/360
- S6 = S4 - S3 - S5 je vysledek

Jenze S5 neni takovy problem, jak se zda.
C = [8,4]
A = [0,0]
2 strany jsou r r a treti je prepona MC, r = 4.
Navic, uhel beta a gama jsou stejne a jsou z trojuhelniku ACD, tg beta = 4/8 = 1/2. A tez cos beta = 4 / (MC)
alfa = 180 - 2 x beta.
Ale, pokud mas tabulky, tg pro 1/2 je 25.6 ... https://www.vypocitejto.cz/…tangens.html
To je asi jediny zadrhel, kde ti nestaci znalosti ZS a mozna to nenajdes v tabulkach. Zbytek uz si dopocitas.

peter
PHP › univerzální desktopová aplik…
3. 4. 2021   #387717

google = javascript php emulator
Ja bych mozna hledal nejaky javascriptovy prekladac php kodu. Ale php kod by se musel vhodne upravit. Prepsat, co ten prekladac nezna.
https://phpjs.hertzen.com/

peter
Hry › Geometrie, obrazce
2. 4. 2021   #387713

V tom obrazku, obecny vzorecek je:
- prusecik kruznice a primky, bod A
- prusecik kruznice a oxy x (primky), bod B (shodou okolnosti je to [4,0])
- S = integral primky 0 az Ax + integral kruznice Ax az Bx

Primka ma body: [0,0] a [8,4]
y = kx + q
0 = k0 + q => q = 0
4 = k8 + 0 => k = 2
___y = 4x___
kdyby to nula nebyla (q = 0), musel bys obe rozvnice odecist tak, aby se jeden parametr vyloucil.

Ta kruznice je
xx + yy = rr ; r = 4, to vidis z obrazku, ale, opet muzes dosadit dva body, jestli chces [0,4] [8,4]
Ale, protoze nema stred v x=0 y=0, tak tam musis pridat jeste posunuti
(x-4) (x-4) + (y-4) (y-4) = rr
(0-4) (0-4) + (4-4) (4-4) = rr
rr = 16 + 0 => r = 4
(8-4) (8-4) + (4-4) (4-4) = rr
rr = 16 + 0 => r = 4
xx + yy = 16 => ___y = odmocnina(xx - 16)___

A ty rovnice pouzijes pro ten integral a vypoceku pruseciku A a B.

----

Ale, na mat. olympiade bys pouzil ctvereckovou sit a vysledek odhadl, protoze ti daji 4 moznosti, ktere se budou vyrazne lisit.

----

A bez nejakych velkych vypoctu se da z obrazku vysledek odhadnout.
S kruhu =  pi rr = 16 pi
S poloviny je 8 pi = 8 * 3.14 = 25,12
S obdelniku je 8 x 4 = 32
S obdelniku - S poloviny kruhu je 32 - 25.12 = 6.88 ... to jsou vsechny spodni casti
A ta vybarvena je zhruba mensi nez 1/4.
6.88/4 = 1.71, cili, by to mohlo byt tak 1.6-1.65-1.7 odhadem

----

Nebo, jiny odhad.
Vybarvena oblast pod primkou vypada stejne jako pod kruznici.
bod na primce (usecce [0,0], [4,8]) je od nuly v jakesi vzdalenosti. Na uhlopricku celeho obdelniku se vejde rekneme 4,7 krat.
y = 4 / 4.7
x = 8 / 4.7
S = xy/2, dvojnasobna plocha je S = xy
S = (4 / 4.7) (8 / 4.7)
S = 32 / (16+2.8+2.8+0.49) = 32 / 22.09, rekneme 22, a mozna rekneme 20, 32/20 = 1.6
32/22 bude jen o neco malo mensi.
Kdyz to porovnam s predchozim, kde bych tipoval spis 1.65, tak, pokud tam budou vyrazne odlisna cisla jako 0.6, 2.6, 3.6, tak 1.6 je jasna volba.

peter
JavaScript, AJAX, jQuery › Jak vzít data z tabulky?
1. 4. 2021   #387704

#3 Kit
Hele, to je fixos. Clovek, ktery vlastni kod nikdy neposkladal. Takze ani ma rada mu k nicemu nebude, pac si to neumi dat dohromady.
Muzes mu sim te pridat i ten dalsi kod, jakym zpusobem se ten tvuj pouziva? Obavam se, ze na ajaxovy request by proste neprisel nebo script src :) Pripadne mu tam udelej upravy pro include

peter
JavaScript, AJAX, jQuery › Jak vzít data z tabulky?
1. 4. 2021   #387702

Zalezi na tom, jakym zpusobem s tim pracujes.

1. Pokud data z php vycucas do js pole a to pak filtrujes a zobrazujes jako tabulku, tak misto zobrazeni tabulky to posles do csv (js kod, ktery ti array prepise do csv a nabidne ke stazeni, urcite se to da najit googlem, takovy js)
2. Pokud generujes pres php primo html kod tabulky, tak je reseni 1 trochu problem. Pak ti zbyvaji 2 moznosti. Ziskat data z tabulky javascriptem. Nebo kliknutim na odkaz Stahnout CSV si odesli filtry do php. Tam uz si to znova vyfiltrujes a vygenerujes mu csv, coz se dela programove lip a neni treba shanes js kod na csv. Navic muzes upravit ten kod, aby ti generoval xml, json, pdf (na pdf je treba knihovku, ale) nebo jine formaty :)
3. Moznost z 2. Ziskat data pomoci js z html tabulky.

// Principialne...

table = document.getElementByTagsName('TABLE')[0]
th_list = table.getElementByTagsName('TH');
td_list = table.getElementByTagsName('TD');

y = 0
pole[y] = []
k = 0 az td_list.length
{
x = 0 az th_list.length // vybere prvni radek
{
pole[y][x] = td_list[k].innerHTML // obsah bunky tabulky
}
y++; // zvysi cislo radku
pole[y] = [];
}

// Za predpokladu, ze tam nemas colspan

A mozna bys jako prvni tam mohl zapsat zahlavi.

peter
PHP › Fake-submit formulář
29. 3. 2021   #387697

Prohlizece ted zavedli ruzne nepratelske blokace, ktere maji usporit prenaseni. FF uz neni, co byval :) Google taky ne.
Mozna se ti to kesuje. Zkus tam pridat do url casove razitko. V PHP "t=".time(), v js ted nevim tu casovou funkci

peter
Hry › Geometrie, obrazce
29. 3. 2021   #387690

Cim vice ctverecku, obdelnicku pouzijes, tim presnejsi bude vysledek. ja mel jenom 140. Pocet policek 10. Pocet oznacenych policek, prunik, je v tomto pripade strasne maly k nejakym presnejsim poctum. Odhadem bude vysledek 2.3+-2.3, protoze kazde to policko v mem 140 polickove oblasti je soucasti hranice krivek, nikoliv vyplne. Takze je velka sance, ze tam mozna z neho bude jen malinkata ploska a nebo mohlo byt nektere policko vynechano. No, proste problem vybarvovani ctverecku, no.

.... prazdny ctverecek
....
....
....

.... plny ctverecek? zvolim si NE
....
....
...x

.... plny ctverecek? zvolim si NE
....
...x
..xx

...x plny ctverecek? zvolim si ANO
..xx
..xx
.xxx
A tim padem 50% plochy je zaokrouhleni.
A v mem prikladu mam takovych nejistych ctverecku 10, vsechny,
shodou okolnosti :) Diky malemu meritku
peter
Hry › Geometrie, obrazce
29. 3. 2021   #387688

Jeste mne napadlo vcera jedno reseni, podobne zminenemu. Pouzit pruniky a procentualni podil.
Mam ctvereckovanou sit. Vypocitam body krivky pro x = 1, 2 .. n. A vyctvereckuji oblast, ktera mne zajima (do pole zapisi +1). Totez udelam z ostatnimi krivkami. Pak spocitam pocet ctverecku s nejvetsim cislem. Spocitam pocet vsech ctverecku. Udelam pomer. Vypocitam realnou plochu cele oblasti. Ukazka:

..................111 krivka 1
...............111111
............111111111
.........111111111111
......111111111111111
...111111111111111111
111111111111111111111

..................... krivka 2
1...................1
1...................1
11.................11
111...............111
11111...........11111
11111111.....11111111

11111111111.......... oblast, kde se nachazi vysledek, prusecik s osou x krivky 2
11111111111..........
11111111111..........
11111111111..........
11111111111..........
11111111111..........
11111111111..........

Soucet / prunik:

1111111111........111 * nechtelo se mi pocitat, ale je tam jine cislo nez 3
2111111111*****111112
2111111111**111******
221111111211*********
2221112222***********
2223322222***********
333333332211122222222

Pocet trojek (3) je 10.
Cela plocha, pocet vsech policek je 20x7 = 140.
Cela plocha, realny obsah je 4x8 = 32 jednotek
Procentualni podil trojek je 10/140 = procentualni podil obsahu hledane casti vuci cele plose.
Prepocitano na obsah realne plochy: 1/14 * 32 = 16/7 = 2.3 priblizne.

Kolik ti to vyslo matematicky? :)
peter
JavaScript, AJAX, jQuery › úkol od hovada
26. 3. 2021   #387676

Normalne nakreslis div. A divu menis width podle teploty.
Zvolis si max delku 100 px, ta ma odpovidat 100 stupnum. Teplotu podle toho prepocitas a zobrazis. Je treba nastavit background. 

div = document.getElementById('mujdiv');
div.style.backgroundColor = '#f00';
div.style.width = 33+'px';
//Hotovo, vyreseno, jen to obalit do funkce a pridat moznost menit teplotu

Podstatne na tom zadani je to, ze ti ucitel nerekl, jakym zpusobem ma ten teplomer vypadat a cim to mas realizovat. Takhle bohuzel komunikuje zakaznik. Az pak ti zacne rikat, sis, ja jsem nechtel teplomer jako teplomer rtutovy, ale zobrazovat ciselny udaj, a pripadne obarvit zelenou, kdyz je to v rozmezi x-y teplot. Ted se tluces do hlavy, proc ti to nerekl uz na zacatku?!!!

peter
Hry › Geometrie, obrazce
26. 3. 2021   #387675

Vsichni, kdo umi aspon zaklady programovani? Ktere se muze bezny clovek naucit asi za hodinu, kdyby fakt moc chtel?

Ale zadani je samozrejme k nicemu. Je tam nejaky obrazek, par krivek, a co dal?  A jakou nabizis odmenu? Ceny zacinaji od 500 kc za kazdou zapocatou hodinu. Studenti ti to mozna vyresi za 2 piva, ale, to ja nejsem, muj cas je drahy. SS a VS skoly jsou vsude, staci tam zajit a poptat se.

A vis, jak to resit uplne jednoduse?
Vemes si plochu 10.000 x 10.000. Ctverec. Ten rozpulis, od rohu, k rohu a chces vedet, kolik je ta polovina?
Matematicky: S = 10k * 10k = 100M; S2 = S/2 = 50M
Graficky: Kdyz to nakreslis. Pulctverecky uplne zanedbas (bude jich presne 10.000), tak dostanes plochu 50M-10k = 49.99M Coz se velmi blizi spocitane hodnote. A jen si pocital pixely obarvene cervene. Docela slusna presnost, co rikas? :)

Na papire to muzes odhadovat, nic, 1/4, 1/3 ctverecku, 1/5, 2/3, 3/4, plny. Neboj se vyuzit cely ctvereckovany papir. nepocitej 8 jako 8cm ale jako 30cm (delka papiru), tim padem mas 4 jako 15cm. nakresli krucnici a pocitej ctverecek po ctverecku. Muzes si jako pomucku zvyraznit linie po 4 ctvereccich. a pak poscitat cele ctverice a ostatni spocitat rucne.

peter
C / C++ › C program Kompresia Dekompre…
8. 2. 2021   #387380

Jo, ten huff. kod muzes udelat velmi jednoduse. Proste urcis nejcastejsi znaky, treba top 16. Ty nahradis bit 0 + index (16 znaku, index ma 4 bity). Ostatni znaky ulozis jako bit 1 + puvodni kod. Velmi snadne, asi jako RLE.

Nebo, muzes udelat slovnik slov, pro e-book, jako jsem popisoval pro LZ. To je v podstate take huffman, kdyz si udelas seznam slov a seznam jinych znaku a kazde nahradis jinym binarnim kodem.

peter
C / C++ › C program Kompresia Dekompre…
8. 2. 2021   #387379

Hufmanovo kodovani funguje takhle, treba. Nemusis tam zrovna delat generator stromu.

1. Zjistis pocet vyskytu znaku (slozitejsi algoritmy mapuji dvojice, trojice znaku nebo cela slova)
2. Kazdy znak nahradis binarnim kodem. Napr

00 - top 1
01 - top 2
1xxxxxxxx - vsechny ostatni, xxx jse puvodni kod

Nebo muj oblibeny je binarni koder, kde si vygenerujes binarni nahradu za dvojici bitu, pro celou sadu 256 znaku, ktere pak nahradis

00 - 1
01 - 01
10 - 001
11 - 000

Udelas vsechny kombinace pro 8 bitovy znak a ulozis si tabulky bitu,
takze dostanes pole, treba
ord(char) = 0 = 00000000 => 1111
ord(char) = 1 = 00000001 => 11101
ord(char) = 2 = 00000010 => 111001
...

3. Nezapomen zapsat take poradi cetnosti znaku, abys to mohl pak dekodovat.
---------------
RLE mas jeste jednodussi. Sledujes opakovani znaku
AABDAAAREEE -> A2-krat B1-krat D1-krat A3 R1 E3
AABDDDDAAAREEE (14 znaku) -> A2B1D4A3R1E3 (12 znaku)

----------------
LZ (ZIP) je slovnikovy algoritmus. Ten teda generuje slovnik podle vstupu.

Veme 2 znaky ze vstupu.
Kdyz je nenajde ve slovniku, tak je prida do slovniku. ZAPISE na vystup tyto 2 znaky.
Kdyz je najde ve slovniku, ulozi si index ze slovniku a prida dalsi znak ze vstupu.
Tuto novou trojici se opet pokusi najit ve slovniku.
Pokud nenajde. ZAPISE kod(indexu) + posledni znak ze vstupu, ktery pridaval.
Pokud najde, prepise kod indexu novym a dal pokracuje...

Mozna to zni slozite. Ale muzes udelat podobny, ne uplne ZIP.
Predstav si, ze vstupni data je plain-text Harry potter.
1. Tvuj program sesbira vsechna slova. Vytvori silovnik. Pocet slov v nem bude kolem 20.000 (v anglicke verzi, ceska verze bude mit i 40.000 slov).
2. Vsechny znaky, ktere nejsou slova zapises do tabulky ostatnich znaku (mezery, tecky, carky, uvozovky).
Kazde slovo nahradis bitem 0 + indexem ve slovniku slov (poradim).
Kazdy jiny znak nahradis bitem 1 + indexem ve slovniku znaku.
... Ono to krasne funguje, protoze prumerna delka slova je 6 znaku. Tvuj slovnik ma 20.000 znaku, na to ti staci 2 bajty (max 32.000). Takze nahrazujes pro slova 6 znaku za 2 (+1 bit, lze zanedbat pro vypocet). Pro ostatni znaky je to 1 bit + 5 bitu (rekneme 1 bajt, cili, zadny bonus). Celkovou kompresi lze tedy odhadnou tak, ze text je slovo+znak. znak je casto mezera. To se cele opakuje. Cili, mas 6+1 znaku na vstupu a 2+1 na vystupu, pomer 3/7 = 45%. LZ to umi lepe, na 35%. A s ruznymi vylepsenimi se da dostat na 25% i 15%. ale, to je text, ten se komprimuje krasne.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý