Autor | Zpráva | ||
---|---|---|---|
Smudla Profil * |
#1 · Zasláno: 10. 5. 2012, 17:56:47 · Upravil/a: Smudla
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°" ,"?"], 39:[ 0,32,3,"x²" ,"?"], 40:[ 64,33,3,"√x","@"], 41:[ 0,34,3,"x°" ,"?"], 42:[ 0,35,3,"°√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,"<-","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\/π" ,1/Math.PI], ["pi" ,"π" ,Math.PI], ["4*pi" ,"4π" ,4*Math.PI], ["e" ,"e" ,Math.E], ["?" ,"" ,0], ["?" ,"" ,0], ["?" ,"" ,0], ["euro" ,"€" ,25.60], //universal ["electric permittivity eps0" ,"ε0" ,8.85418782e-12, "F.m-¹"], //[F.m^-1] ["magnetic permeability mi0" ,"μ0" ,4e-7*Math.PI, "H.m-¹"], //[H.m^-1] ["Newton gravitation" ,"G" ,6.6725985e-11, "N.m².kg-²"], //[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-¹"], //electromagnetic ["Bohr magneton" ,"μB" ,9.27401543e-24, "J/T-¹"], ["Coulomb κ" ,"1\/(4π*ε0)" ,1/(4*Math.PI*8.85418782e-12),"N.m².C-²"], ["elemetary charge" ,"eV" ,1.60217733e-19, "C"], //atomic and nuclear ["Bohr radius" ,"a0" ,5.29177249e-11, "m"], ["fine-structure" ,"α" ,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-¹"], ["Boltzmann" ,"k" ,1.3806581e-23, "J.K-¹"], ["Faraday" ,"F" ,96485.3383, "C.mol-¹"], ["perfect glass (gas)" ,"R" ,6.02213674e23*1.38065810e-23,"J.K-¹.mol-¹"], ["Stefan-Boltzmann" ,"σ" ,5.66961e-8, "W.m-²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\"> <\/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 |
#2 · Zasláno: 10. 5. 2012, 18:00:55 · Upravil/a: Darker
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;} 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 |
#3 · Zasláno: 10. 5. 2012, 18:46:26
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 * |
#4 · Zasláno: 10. 5. 2012, 18:58:05 · Upravil/a: Smudla
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 |
#5 · Zasláno: 10. 5. 2012, 19:33:49
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 * |
#6 · Zasláno: 10. 5. 2012, 19:40:29
No není. Nemohl jsem najít.
|
||
Sir Tom Profil |
#7 · Zasláno: 10. 5. 2012, 20:51:16
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/ |
||
Darker Profil |
#9 · Zasláno: 10. 5. 2012, 21:42:48
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ý. |
||
Časová prodleva: 11 let
|
0