Autor Zpráva
Smudla
Profil *
Při zpracování BB značek došlo k samovolnému sežrání celého příspěvku. Pardon.
Zdravim, udělal jsem kalkulaku v javacsriptu není na to nějaký program aby se to udělalo v php? Děkuju




[pre]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!-- saved from url=(0014)about:internet -->
<html><head>
<title>Calculator</title>

<style type="text/css">
body {background:#f5f5f5;}
table {background:#ccc;}
.a0 {background:#ddd;font-weight:bold;}
.a1 {background:#bbb;color:#004;}
.a2 {background:#ada;color:#040;}
.a3 {background:#edb;color:#220;}
.a4 {background:#eeb;color:#220;}
.a9 {background:#bdd;}
input.butt {width:97%;min-width:1.5em;font-family:Times;cursor:pointer;}
input.num {width:96%;text-align:right;}
div#konsFyz {display:none;}
</style>

<script type="text/javascript">
// Original: 2005 Peter Mlich http://www.volny.cz/peter.mlich/

function objGet(x)
{var d=document;if(typeof(x)=='string')
x=d.getElementById?d.getElementById(x):d.all?d.all[x]:d.layers?d.layers[x]:null;
return x;}

function objv(x,z) {objGet(x).value=z;}
function obji(x,z) {objGet(x).innerHTML=z;}
function objc(x,z) {objGet(x).className=z;}
function objds(x,z) {objGet(x).disabled=z;}
function objdis(x,z) {objGet(x).style.display=z?"block":"none";}
function getv(x) {return objGet(x).value;}

var funkce={
//n, key, function, color, text, key title
0:[48, 0, 0,"0","0"],
1:[49, 1, 0,"1","1"],
2:[50, 2, 0,"2","2"],
3:[51, 3, 0,"3","3"],
4:[52, 4, 0,"4","4"],
5:[53, 5, 0,"5","5"],
6:[54, 6, 0,"6","6"],
7:[55, 7, 0,"7","7"],
8:[56, 8, 0,"8","8"],
9:[57, 9, 0,"9","9"],
10:[ 97,10,1,"A","a"],
11:[ 98,11,1,"B","b"],
12:[ 99,12,1,"C","c"],
13:[100,13,1,"D","d"],
14:[101,14,1,"E","e"],
15:[102,15,1,"F","f"],
16:[ 65,10,0,"A","A"],
17:[ 66,11,0,"B","B"],
18:[ 67,12,0,"C","C"],
19:[ 68,13,0,"D","D"],
20:[ 69,14,0,"E","E"],
21:[ 70,15,0,"F","F"],

22:[ 43,16,2,"\+","\+"],
23:[ 45,17,2,"\-","\-"],
24:[ 42,18,2,"\*","\*"],
25:[ 47,19,2,"\/","\/"],
26:[ 46,20,0,"." ,"." ], //totez jako del
27:[ 44,20,0,"," ,"," ],
28:[120,21,0,"\+\/\-","f9"],
29:[ 37,22,2,"\%","\%"],
30:[ 40,23,2,"(" ,"(" ],
31:[ 41,24,2,")" ,")" ],
32:[ 0,25,2,"Ran","?"],

33:[ 33,26,3,"x\!" ,"\!"],
34:[114,27,3,"1\/x","r"],
35:[110,28,3,"ln" ,"n"],
36:[108,29,3,"log" ,"l"],
37:[120,30,3,"exp" ,"x"],
38:[ 0,31,3,"10&deg;" ,"?"],
39:[ 0,32,3,"x&sup2" ,"?"],
40:[ 64,33,3,"&radic;x","@"],
41:[ 0,34,3,"x&deg;" ,"?"],
42:[ 0,35,3,"&deg;&radic;x","?"],

43:[115,36,4,"sin" ,"s"],
44:[111,37,4,"cos" ,"o"],
45:[116,38,4,"tg" ,"t"],
46:[ 0,39,4,"asin" ,"?"],
47:[ 0,40,4,"acos" ,"?"],
48:[ 0,41,4,"atg" ,"?"],
49:[ 0,42,4,"sinh" ,"?"],
50:[ 0,43,4,"cosh" ,"?"],
51:[ 0,44,4,"tgh" ,"?"],
52:[ 0,45,4,"asinh","?"],
53:[ 0,46,4,"acosh","?"],
54:[ 0,47,4,"atgh" ,"?"],

55:[ 0,48,0,"Rad","?"],
56:[ 0,49,0,"Deg","?"],
57:[ 0,50,0,"Bin","?"],
58:[ 0,51,0,"Oct","?"],
59:[ 0,52,0,"Dec","?"],
60:[ 0,53,0,"Hex","?"],
61:[ 0,54,0,"12" ,"?"],
62:[ 0,55,0,"60" ,"?"],

63:[ 46,56,0,"CE","del"], //totez jako tecka clear all
64:[ 27,57,0,"C" ,"esc"], //clear
65:[ 8,58,0,"&lt;-","backspace"],
66:[ 13,59,0,"=" ,"enter"],
67:[ 0,60,0,"Memory clear","?"],

68:[ 0,61,0,"-","?"],
69:[ 0,62,0,"-","?"],
70:[ 0,63,0,"-","?"],
71:[ 0,64,0,"-","?"],
72:[ 0,65,0,"-","?"],
73:[ 0,66,0,"-","?"],
74:[ 0,67,0,"-","?"],
75:[ 0,68,0,"+","?"],
76:[ 0,69,0,"+","?"],
77:[ 0,70,0,"+","?"],
78:[ 0,71,0,"+","?"],
79:[ 0,72,0,"+","?"],
80:[ 0,73,0,"+","?"],
81:[ 0,74,0,"+","?"]
};

var tlacitka=[
63,64,65,66,
55,56,57,58,59,60,61,62, 67,
68,75,
47,44,33,34, 7, 8, 9,22, 69,76,
46,43,35,37, 4, 5, 6,23, 70,77,
48,45,36,38, 1, 2, 3,24, 71,78,
53,50,41,39, 0,28,26,25, 72,79,
52,49,42,40,10,11,12,29, 73,80,
54,51,30,31,13,14,15,32, 74,81
];

//http://en.wikipedia.org/wiki/Mathematical_constant
//http://en.wikipedia.org/wiki/Physical_constant
//nazev tlacitko hodnota
var konstanty=[
//math
["1/pi" ,"1\/&pi;" ,1/Math.PI],
["pi" ,"&pi;" ,Math.PI],
["4*pi" ,"4&pi;" ,4*Math.PI],
["e" ,"e" ,Math.E],
["?" ,"" ,0],
["?" ,"" ,0],
["?" ,"" ,0],
["euro" ,"&euro;" ,25.60],

//universal
["electric permittivity eps0" ,"&epsilon;0" ,8.85418782e-12, "F.m-&sup1;"], //[F.m^-1]
["magnetic permeability mi0" ,"&mu;0" ,4e-7*Math.PI, "H.m-&sup1;"], //[H.m^-1]
["Newton gravitation" ,"G" ,6.6725985e-11, "N.m&sup2;.kg-&sup2;"], //[N.m^2.kg^-2]
["Planck" ,"h" ,6.62660755e-34, "J.s"],
["Planck-bar" ,"hbar" ,6.62660755e-34/(2*Math.PI),"J.s"],
["light speed" ,"c" ,2.99792458e8, "m.s-&sup1;"],
//electromagnetic
["Bohr magneton" ,"&mu;B" ,9.27401543e-24, "J/T-&sup1;"],
["Coulomb &kappa;" ,"1\/(4&pi;*&epsilon;0)" ,1/(4*Math.PI*8.85418782e-12),"N.m&sup2;.C-&sup2;"],
["elemetary charge" ,"eV" ,1.60217733e-19, "C"],
//atomic and nuclear
["Bohr radius" ,"a0" ,5.29177249e-11, "m"],
["fine-structure" ,"&alpha;" ,7.29735308e-3, "-"],
["Hartree energy" ,"Hr" ,2*2.17987411e-18, "J"],
["Rydberg" ,"Rd" ,2.17987411e-18, "?"],
//physico-chemical
["atomic mass unit" ,"amu" ,1.66054021e-27, "kg"],
["mass proton" ,"mp" ,1.672614e-27, "kg"],
["mass neutron" ,"mn" ,1.674920e-27, "kg"],
["Avogadro" ,"Na" ,6.02213674e+23, "kmol-&sup1;"],
["Boltzmann" ,"k" ,1.3806581e-23, "J.K-&sup1;"],
["Faraday" ,"F" ,96485.3383, "C.mol-&sup1;"],
["perfect glass (gas)" ,"R" ,6.02213674e23*1.38065810e-23,"J.K-&sup1;.mol-&sup1;"],
["Stefan-Boltzmann" ,"&sigma;" ,5.66961e-8, "W.m-&sup2;K-4"],
//?
["elec ?" ,"J" ,1/1.60217733e-19, "eV"],
["elec mass" ,"m" ,9.10938975e-31, "?"],
["compton" ,"compton" ,2.42631058e-12, "?"],
["c1" ,"c1" ,4.922579e-24, "?"],
["c2" ,"c2" ,1.438833e-2, "?"]
];

var vypOper;
var keys = new Array();
var oper1=1;
var oper2="";
var soustyp=10;
var sousmem=0;
var Vypmem='';
var Zavmem=0;

function drawButton(Xvalue,Xclick,Xclass)
{return "<input type=\"button\" value=\""+Xvalue+"\" onclick=\""+Xclick+"\" class=\"butt"+Xclass+"\"\/>";}
function drawButtonN(n)
{var i=tlacitka[n]; return drawButton(funkce[i][3],"pocitej("+funkce[i][1]+")"," a"+funkce[i][2]);}

function kresliplochu()
{
var t,i,j,k,l;k=0;l=0;
t ="<form action=\"#\">";
t+="<table width=\"550\" align=\"center\" cellpadding=\"1\" cellspacing=\"1\" border=\"3\">\n<tbody>";
t+="\n<tr>\t<td colspan=\"12\"><div id=\"chyba\">&nbsp;<\/div><\/td><\/tr>";
t+="\n<tr>";
t+="\t<td>"+drawButtonN(0)+"<\/td>";
t+="\n\t<td>"+drawButtonN(1)+"<\/td>";
t+="\n\t<td colspan=\"6\"><input type=\"text\" value=\"0\" id=\"vysl\" onkeypress=\"return false\" class=\"num\"\/><\/td>";
t+="\n\t<td width=\"26\">"+drawButtonN(2)+"<\/td>";
t+="\n\t<td width=\"42\">"+drawButtonN(3)+"<\/td>";
t+="\n\t<td width=\"26\">"+drawButton("?","help()","")+"<\/td><\/tr>";
t+="\n<tr>";
t+="\t<td colspan=\"8\">";i=4;
t+="<input type=\"radio\" name=\"soust2\" value=\""+funkce[tlacitka[i]][1]+"\" onclick=\"pocitej("+funkce[tlacitka[i]][1]+")\" checked=\"checked\" class=\"ch\"\/>"+funkce[tlacitka[i]][3]+"\n";
for (i=5;i<12;i++)
t+="<input type=\"radio\" name=\"soust2\" value=\""+funkce[tlacitka[i]][1]+"\" onclick=\"pocitej("+funkce[tlacitka[i]][1]+")\" class=\"ch\"\/>"+funkce[tlacitka[i]][3]+"\n";
t+="<\/td>";
t+="\n\t<th colspan=\"4\">"+drawButtonN(12)+"<\/th>";
t+="<\/tr>";
t+="\n<tr class=\"button\">";
for (i=0;i<8;i++){
t+='\t<td width="48"><input type="button" value="'+konstanty[i][1]+'" onclick="objv(\'vysl\',konstanty['+i+'][2])" class="butt a9"\/><\/td>'}
t+="\n\t<td>"+drawButtonN(13)+"<\/td>";
t+="\n\t<td><input type=\"text\" value=\"0\" size=\"5\" id=\"memory"+ '0' +"\" class=\"num\"\/><\/td>";
t+="\n\t<td>"+drawButtonN(14)+"<\/td>";
t+='<\/tr>';
k=15;
for (j=0;j<6;j++){
t+="\n<tr class=\"button\">";
for (i=0;i<9;i++,k++)
t+="\n\t<td>"+drawButtonN(k)+"<\/td>";
t+="\n\t<td><input type=\"text\" value=\"0\" size=\"5\" id=\"memory"+(j+1)+"\" class=\"num\"\/><\/td>";
t+="\n\t<td>"+drawButtonN(k)+"<\/td>";k++;
}
t+="<\/tr>";
t+="\n<tr>\t<td colspan=\"11\">";
t+="<input type=\"checkbox\" onclick=\"objdis('konsFyz',this.checked)\"\/>Fyzikalni konstanty";
t+="<div id=\"konsFyz\"><table><tbody valign=\"top\">";
for (i=8;i<konstanty.length;i++){
t+="\n<tr>";
t+="\t<td>"+konstanty[i][0]+"<\/td>";
t+="\n\t<td>"+drawButton(konstanty[i][1],"objv('vysl',"+konstanty[i][2]+")","")+"<\/td>";
t+="\n\t<td>"+konstanty[i][2]+"<\/td>";
t+="\n\t<td>"+konstanty[i][3]+"<\/td>";
t+="<\/tr>";
}
t+="\n<\/tbody><\/table><\/div><\/td><\/tr>";
t+="\n<\/tbody><\/table>";
t+="\n<\/form>";
obji("plocha",t);
}


function vmem(a,b,c)
{var d,e,f;
f=oper2;
if (!oper1 && f!=0) {d=f;oper2="";} else {d="";}
if (oper1) {oper2=b;}
e=(b!='' && c>=0) ? b : "";
Vypmem+=d + a + e;
Zavmem+=c;
if (Zavmem<0) {Zavmem=0;}

f=0;
if (c<0)
{
e=Vypmem.split("(");
d=e.length-1;
if (d>0)
{
f=eval(e[d]);e.pop();
Vypmem=e.join("(");
}
else f=eval(Vypmem);
// objv("vysl",f);
}
obji("chyba",Vypmem);
return f;
}


function calc_add(a)
{return ((a==0 || a=='-Infinity'|| a=='NaN') ? '' : a);}

function pocitej(func)
{var a,b,c,d,i, u,v,w, o, m,s;
m=Math;
a=getv("vysl");
b=parseFloat(a);
c=parseInt(a);
o=0;
u=0;v=0;

switch (func)
{
case 0:a=calc_add(a)+'0';break;
case 1:a=calc_add(a)+'1';break;
case 2:a=calc_add(a)+'2';break;
case 3:a=calc_add(a)+'3';break;
case 4:a=calc_add(a)+'4';break;
case 5:a=calc_add(a)+'5';break;
case 6:a=calc_add(a)+'6';break;
case 7:a=calc_add(a)+'7';break;
case 8:a=calc_add(a)+'8';break;
case 9:a=calc_add(a)+'9';break;
case 10:a=calc_add(a)+'A';break;
case 11:a=calc_add(a)+'B';break;
case 12:a=calc_add(a)+'C';break;
case 13:a=calc_add(a)+'D';break;
case 14:a=calc_add(a)+'E';break;
case 15:a=calc_add(a)+'F';break;

case 16:a=vmem(calc_add(a),'\+',0);o=1;break;
case 17:a=vmem(calc_add(a),'\-',0);o=1;break;
case 18:a=vmem(a,'\*',0);o=1;break;
case 19:a=vmem(a,'\/',0);o=1;break;
case 20:a+='.';break;
case 21:a*=-1*b;break;
case 22:a=(b!=a)?b/100:b*100+"%";break;
case 23:a=vmem(calc_add(a),'(',1);break;
case 24:a=vmem(calc_add(a),')',-1);break;
case 25:a=m.random()*a;break;

case 26:if (b==0 ||


Není celý případně pošlu.
Darker
Profil
a) Dlouhý kód linkuj externě.
b)
function objv(x,z) {objGet(x).value=z;}
function obji(x,z) {objGet(x).innerHTML=z;}
function objc(x,z) {objGet(x).className=z;}
function objds(x,z) {objGet(x).disabled=z;} 
To trochu přeháníš, ne? Vypadá to skoro jako kód prohnaný obfuscátorem.

c) kresliplochu() - proč dané HTML není v kódu a nemění se jen obsah?


Konverze mezi javascriptem a PHP je až na úplně primitivní kódy téměř nemožná věc. Zamysli se nad tím, jak je stavěný JS a jak PHP... Co by se stalo s eventy? Jak bys zkonvertoval volný objektový model, kde ti projde všechno do PHP?
Keeehi
Profil
Javascriptová kalkulačka => PHP. To už tu bylo, je jen jednodušší. To to máte ve škole za úkol? A proč to potřebujete zrovna v PHP a proč to nemůže být v JS? Automatické přeložení z JS do PHP je, jak psal Darker, téměř nemožné, neboť PHP a JS pracují každý jinak, jinde a s jinými prostředky.
Smudla
Profil *
Jo máme ale teď tam máme mít i závorky.


A ano musí me to mít v php. Náš učitel to tak chce.
Keeehi
Profil
Smudla:
Předpokládám, že ani ten javascript není tvůj vlastní výtvor, takže proč už si nenajdeš už hotové řešení v PHP? Můžeš vyjít z toho odkazovaného příkladu a ty závorky si tam přidat.
Smudla
Profil *
No není. Nemohl jsem najít.
Sir Tom
Profil
Smudla:
No je. https://www.google.cz/search?q=calculator+php&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:cs:official&client=firefox-a Stačí více a lépe hledat...
Chamurappi
Profil
Reaguji na Darkera:
To trochu přeháníš, ne? Vypadá to skoro jako kód prohnaný obfuscátorem.
Nikoliv obfuskátorem…
// Original: 2005 Peter Mlich http://www.volny.cz/peter.mlich/ 
… ale petou. Ono by nebylo úplně jednoduché ani přepsat tu kalkulačku z JavaScriptu do slušně napsaného JavaScriptu :-)
Darker
Profil
Smudla:
Teď mě napadlo - proč chodíš na programování když tě spíše zajímá tématika "Hledání cizích skriptů na google"? A co se tohohle studijního předmětu týče, také nejsi příliš nadaný.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0