Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Komu se nelení,
tomu se zelení.

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Archiv klubu JavaScript [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
- http://al3x.3web.cz/js/ - najdete zde zaklady javascriptu je tam i docela dobre vysvetleny cookies
- specifikace ECMAScriptu - standard založený na JavaScriptu a JScriptu.
Download Opera
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
   
[ 150 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 27.5.2005 17:11  147
Ano.
huh huh 27.5.2005 14:26  146
Zdar programátoři. Funguje někomu v Mozille focus() na textaeře?
trofozoit Trofozoit DNA, DNA - come out and play 12.4.2005 14:27  145
No tak on nakonec má Javascript jen přirozený logaritmus, což znamená, že chci-li dostat logaritmus při základu 10 zaokrouhlený dolů, musím to udělat takhle:
var rad = Math.floor(Math.log(vysledek)/Math.LN10)  
a za to můžu vynechat to převedení na řetězec.. no nevím co z toho je nakonec lepší..
trofozoit Trofozoit DNA, DNA - come out and play 12.4.2005 13:16  144
Díky za názory :)

Kdokoliv: No já právě dost využívám toho jak je Javascript velmi tolerantní ;) Konkrétně u té změny typu proměnné.
Tu délku bych spojit mohla, pravda. O tom vzorci vím že není úplně ideální, je to hodně dělaný hodně rozepsaným stylem, jak by se to asi dělalo na papíře, prioritnější je neztratit někde po cestě nějaký ten řád. Uvidím, když bude čas.
No, ta "drsná finta" předpokládám se asi nejvíc nelíbila, je pravda že mě jiný způsob nenapadl, praktické využití logaritmů mě poněkud minulo, krom toho že se tím dá pěkně šachovat v osách grafu. Zkusím se na to podívat.

No ale jinak děkuju, celkem to docela potvrzuje co jsem si o tom dotyčném myslela už dlouho předtím ;)
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 12.4.2005 12:44  143
AL3X: A vidis, ja si zase rikal, ze jsi v prispevku 140 shrnul to moje, jenom mene slovy. :-) Ono to skutecne nejsou nijak hrozny veci, me jenom zarazilo to tvrzeni, ze se nad tim kdosi usklibal, tak jsem se zoufale snazil najit, co se mu tak asi nelibilo. :-)
al3x 12.4.2005 12:33  142
Sakra. Kdyz si ctu, co vsechno jsem tam ja prehlid.. Proste jsem to bral jako "tady je nejaky prirazovani" a podrobneji jsem to nezkoumal. Mno nic.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 12.4.2005 12:18  141
Trofozoit: Na prvni pohled tam nevidim nic az tak straslivyho, byt osobne bych nektere veci psal jinak.
Predevsim je JS sice velmi tolerantni, co do typu promennych, presto ja osobne (cili neni to nic jineho nez nejaky osobni pocit) nerad menim jedne promenne typ v prubehu programu. Takze jak do ni jednou priradim cislo, uz do ni priste nedavam string, to radsi vymyslim jinou promennou. Timto narazim na takove veci jako var delka = document.getElementById("delka").value; delka = parseInt(delka); Bud bych tam vytvoril dve promenne, nebo bych zrovna tohle asi spojil do jednoho volani.
Volani Math.pow s takovymito hodnotami asi skutecne bude zpomalovat, mozna bych skutecne zvazil toho Avogadra tam normalne vypsat. Navic ale jeste jedna vec - vsimni si, ze tam nasobis tim Avogadrem Math.pow(10,-9), to uz je uplne zbytecne - kdyz oboje vyhodis a jedno z toho nahradis Math.pow(10,12)*6.022, tak si usetris jedno nasobeni a jedno volani Math.pow().
Jako drsna finta mi prisla ta sekvence vezmi vysledek - udelej z nej String - zjisti jeho delku - nebylo by jednodussi spocitat neco jako desitkovej logaritmus? :-) Uz jenom proto, ze kdyz pocitas mez, tak je vysledek String, takze se to zase musi prevadet zpatky na cislo.
Tak asi tak nejak. :-)
al3x 12.4.2005 12:12  140
Ja myslim, ze je to v klidu.
trofozoit Trofozoit DNA, DNA - come out and play 12.4.2005 11:39  139
Napsala jsem kdysi takový jednoduchý skriptík na přepočítání něčeho co často používám, a pamatuju si, že když ho při jedné příležitosti viděl někdo kdo tomu rozumí, tak se nad ním dost ušklíbl.
Já nejsem programátor a ten skript funguje dobře, takže mi to bylo docela jedno, nicméně nejspíš na něj budu někde odkazovat, tak bych ráda věděla, jestli tam není nějaká fakt ošklivá lamařina za kterou by se mi někdo vysmál. Jako jenom fakt očividný věci, co vás napadnou když se na to kouknete.

function PocetKopii() {

var hmotnost = document.getElementById("hmotnost").value; //načteni, parsování, nahrazení desetinné čárky
hmotnost = parseFloat(hmotnost.replace(",","."));
var delka = document.getElementById("delka").value;
delka = parseInt(delka);
if (isNaN(hmotnost)|| isNaN(delka) || delka == 0) {alert("Špatně zadané")} //kontrola správnosti zadání
else {
var Avg = 6.022*Math.pow(10,23);
var vysledek = ((hmotnost*Math.pow(10,-9))/(delka*660))*Avg; // výpočet
vysledek = Math.round(vysledek); // zaokrouhlení
vysledek = vysledek.toString(); // převedení na 10^x-tou
var rad = vysledek.length;
mez = vysledek/Math.pow(10,rad-2);
alert("Výsledek je " + Math.round(mez)/10 + " x 10 na " + (rad-1) + " kopií\/\u03bcl");}

}

Slouží to na velmi primitivní úkol, spočítat běžnou chemickou rovnice (n=m/Mr; n*N=počet částic - tady jen zkompikovaná tím, že Mr se počítá z počtu bází DNA Mr=bp *660 a zadáním hmotnosti v nanogramech místo normálníc gramů), ovšem protože pracuje s velkými čísly (Avogadrova konstanta je 10 na 23) a předpokládá zadání v daleko vyšších jednotkách než mám k dispozici, což činí tu věc moc zdlouhavou a v Excelu, kde se to běžně počítá mi to přišlo dost jednorázový a taky docela omezený, tak jsem to udělala jako webovou "aplikaci".

Takže jádrem je vlastně tahle rovnice, pak bylo potřeba nahradit u nás používanou desetinou čárku tečkou, udělat kontrolu zadání, a poslední část (co zabrala nejvíc práce ;) nahradit výsledný výpočet např. 35321589756.256849 zaokrouhleně jedno desetinné místo a řád "3.5 krát 10^8".

Vím, že tam občas mám možná zbytečně Math.pow funkce, což možná počítání zpomaluje, ale napsat tam 23 nul mi přijde daleko nepřehlednější a stejně je to tak malý, že IMHO na tom až tak nesejde, a asi jsou některý kroky moc rozepsaný, ale jednak se v tom pak líp vyznám a jednak to slučování je někdy problém (pro mě).
badguy 14.1.2005 14:42  138
Kdokoliv: paráda, funguje to perfektně, díky moc :-)
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 14.1.2005 14:23  137
"0000011".substr(5, 2). A pokud by to vratilo nahodou "01", tak potom "0000011".substr(6, 2), ale to mi prijde min pravdepodobny. Jo a v tomhle specialnim pripade by asi melo stacit i "0000011".substr(5).
badguy 14.1.2005 14:14  136
Kdokoliv: mohl bys mi prosím napsat přesnou syntaxi výrazu, pokud bych chtěl například z řetězce 0000011 dostat 11?
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 14.1.2005 14:05  135
No takze odpoved viz klub Software, pokud je neco nejasneho, tak pokracujici debata radeji tady. :-)
badguy 14.1.2005 14:03  134
Myslíte, že by šlo sesmolit výraz v Java Scriptu, který mi vybere část řetězce, třeba poslední tři znaky nebo tak?
al3x 4.1.2005 18:44  133
TVX: Ano, tak nejak. Pokud je to rozhrani JS, tak je dulezity, aby ta neznama adresa nebyla nikde patrna a ani z niceho vyvoditelna. Proto ta jednostranna (!) sifra. Neco jako hesla v /etc/passwd, ktera se kvuli pouziti brutalforce nakonec stejne musela vyhodit.

[ 150 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt