الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

(بدون عنوان)

مغلق
بدأه M.A.K. في 4 أبريل 2006 · 1 رد · 462 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

< نظرة في البرمجيات المستقلة عن نظم التشغيل >

- مجموعة رائعة من برامج JavaScript الخدمية !

بسم الله الرحمن الرحيم

--------------

____________________________________________________________

___( ملحوظة : جميع الأكواد الموجودة في هذا الموضوع هي مـجـهــود شـخــصــي خــالـــص و لم تنقل من أي مكان أو منتدى آخر )___

____________________________________________________________

من مميزات البرمجة بلغتي JavaScript,Java أنهما platform-independent

لذلك فإذا كنت تريد برنامجا خدميا معينا يصل لأكبر عدد ممكن من المستخدمين فالتفكير المنطقي هو الآتي :

- استخدام لغة Java بكل ما فيها من قوة ..

لكن تعتبر قوتها مفرطة بالنسبة للبرامج التي تهدف أفكار برمجية ذهنية لا علاقة لها بالتعامل الفعلي مع الحاسب مثل :

( DB,System,API,OpenGl,Media,etc )

كما أن - للأسف - لا يوجد عند كل المستخدمين Java Virtual Machine

هذا بالإضافة إلى أنها من أصعب لغات البرمجة للمبتدئين ..

- فالحل إذا ما دام البرنامج يهدف فكرة برمجية خالصة و بعيدة عن التعامل الفعلي مع الحاسب فلا يوجد أفضل من لغة javascript

و هي بالطبع مدعمة من قبل العديد من المتصفحات و بمعنى أصح ( بلا وجع دماغ )

- و هذه البرامج تدعم الفكرة السابقة و أمثلة عليها :

========================================================

********************************************************

========================================================

هذا البرنامج هو عبارة عن برنامج يستفيد منه بالأخص دارسو علم الحاسب و طلبة أقسام هندسة الحاسبات

البرنامج باختصار يحول من نظام الأعداد العشري إلى أي نظام عددي آخر باستخدام مبادىء التحويل ( القسمة و باقي القسمة )

كما يظهر طريقة الحل .

و الكود هو :

<html>

<head>

<div align="center"><h3 style="color:navy">Decimal to any NumSys Converter</h3><h4 style="color:navy"><i>** Programmed By M.A.K. **</i></h4></div>

<script language="javascript">

<!--

var x="";

var calcswin;

//////////////////////////////////////////////////////

function mod(x,y)

{

return (x%y);

}

//////////////////////////////////////////////////////

function tosysno(x,y)

{

var reminder;

reminder=Math.round(mod(x,y));

if (reminder>9){reminder="["+reminder+"]";}

return reminder;

}

//////////////////////////////////////////////////////

function doAction()

{

x="<html><head></head><body><div align='center'><table cellspacing='3' cellpadding='3'><tr style='color:red ; background-color:silver;'><td> Devide <td> By <td> Reminder ";

dec=document.all.frm.t;

sysno=document.all.frm.n;

sys=document.all.frm.s;

var originaldec=dec.value;

y=parseFloat(sys.value);

var num="";

while (dec.value>y)

{

x=x+"<tr align='center'><td>"+dec.value+"<td>"+y+"<td>"+Math.round(mod(dec.value,y));

num=tosysno(dec.value,y)+num;

dec.value=(dec.value-mod(dec.value,y))/y;

}

if (dec.value==y)

{

x=x+"<tr align='center'><td>"+dec.value+"<td>"+y+"<td>"+Math.round(mod(dec.value,y));

num="1"+tosysno(dec.value,y)+num;

x=x+"<tr align='center'><td>"+1+"<td>"+y+"<td>"+1;

x=x+"<tr align='center'><td>"+0;

}

else if (dec.value< y)

{

x=x+"<tr align='center'><td>"+dec.value+"<td>"+y+"<td>"+Math.round(mod(dec.value,y));

num=tosysno(dec.value,y)+num;

x=x+"<tr align='center'><td>"+0;

}

sysno.value=num;

dec.value=originaldec;

x=x+"<tr style='color:red ; background-color:silver;'><td colspan='3' align='center'> Result <tr align='center'><td colspan='3' align='center'>"+num+'<br><br><hr><input type="button" value="Close" onclick="java script:window.close();">  <input type="button" value="Print" onclick="java script:window.print();"></table></form></body></html>';

calcswin=window.open("",null,"scrollbars=yes,width=250,height=250,top=250,left=300,,resizable=yes");

calcswin.document.write(x);

}

//////////////////////////////////////////////////////

//-->

</script>

</head>

<body>

<form name="frm" method="post">

<table>

<tr>

<td> Dec : <input type="text" name="t">  Sys : <input type="text" name="s"><br><br>

<tr>

<td align="center"><input type="button" name="btn" onclick='x="";doAction();' value="Decimal No. to Sys No."><br><br>

<tr>

<td> SysNum : <input type="text" name="n">

</table>

</form>

<br>

<h4>Accuracy = 99.99999999999999%</h4>

<h5>Error = +0.00000000000001%</h5>

</body>

</html>

========================================================

********************************************************

========================================================

هذا البرنامج عبارة عن أداة كاملة للتحويل من و إلى أي نظام أعداد في الكون ! أيضا باستخدام مبادىء التحويل بين الأعداد ..

( أعرف أن بعض القراء سيطيرون فرحا لرؤيتهم هذا البرنامج ! )

يتطلب هذا البرنامج أن تكون على دراية بنظم الأعداد

و الكود هو :

<html>

<head>

<div align="center">

<h2>Numbers Systems Converter<h5> Programmed By M.A.K.</h5></h2>

<h3>Binary - Octal - Decimal - Hexadecimal - Any Sys</h3>

</div>

<hr>

<script language="javascript">

<!--

accuracy=1;

//////////////////////////////////////////////////////

function doActionToDec()

{

sysno=document.all._frm.txtfrm;

dec=document.all.calcsup;

sys=document.all._frm.hidfrm;

originalsysno=sysno.value;

var x=0;

var leftsin=0;

var rightsin=0;

for (var i=0;i<sysno.value.length;i++)

{

if (sysno.value.charAt(i)=='[')

{leftsin=leftsin+1;}

else if (sysno.value.charAt(i)==']')

{rightsin=rightsin+1;}

}

if (leftsin==rightsin)

{

var found=0;

var z="";

var z_="";

var zrole="";

var times=0;

var newnum="";

for(var i=0;i<sysno.value.length;i++) // retrievivg data from praces

{

if (found==1 && sysno.value.charAt(i)!=']')

{

z=z+sysno.value.charAt(i);

}

if (found==1 && sysno.value.charAt(i)==']')

{

found=0;

z_=z+","+z_;

z="";

}

if (sysno.value.charAt(i)=='[')

{

found=1;

}

}

z=";for (var i=0;i<z_.length-1;i++){z=z+z_.charAt(i);} // relative to upper for loop

found=0;

for(var i=0;i<sysno.value.length;i++) // preparing 4 knowing positions

{

if (sysno.value.charAt(i)!='[' && found==0)

{

newnum=newnum+sysno.value.charAt(i);

}

if (found==1 && sysno.value.charAt(i)==]')

{

found=0;

}

if (sysno.value.charAt(i)=='[')

{

found=1;

newnum=newnum+"x";

}

}

sysno.value=newnum; // relative to upper for loop

times=0;

for(var i=0;i<sysno.value.length;i++) //knowing positions

{

if (times==1)

{

if (sysno.value.charAt(sysno.value.length-i-1)==x')

{

zrole=zrole+","+i;

}

}

else

{

if (sysno.value.charAt(sysno.value.length-i-1)=='x')

{

zrole=i;

times=1;

}

}

}

newnum="";

for(var i=0;i<sysno.value.length;i++) // modified num

{

if (sysno.value.charAt(i)=='x')

{

newnum=newnum+"0";

}

else

{

newnum=newnum+sysno.value.charAt(i);

}

}

sysno.value=newnum; // relative to upper for loop

for(var i=0;i<sysno.value.length;i++)

{

x=x+todec(i)*Math.pow(sys.value,sysno.value.length-i-1);

}

dec.value=x; // relative to upper for loop

var inprc="";

var prcpos="";

var w1=0;

var w2=0;

var res=0;

for ( var i=0; i<leftsin;i++)

{

for (w1; w1<z.length;w1++)

{

if ( z.charAt(w1)!=',')

{

inprc=inprc+z.charAt(w1);

}

else {w1=w1+1;break;}

}

inprc=parseFloat(inprc);

for (w2; w2<zrole.length;w2++)

{

if ( zrole.charAt(w2)!=',')

{

prcpos=prcpos+zrole.charAt(w2);

}

else {w2=w2+1;break;}

}

prcpos=parseFloat(prcpos);

if (leftsin==1){prcpos=0;}

res=res+inprc*Math.pow(sys.value,prcpos);

inprc="";

prcpos="";

}

dec.value=parseFloat(dec.value)+parseFloat(res);

sysno.value=originalsysno;

if (accuracy==1 && parseInt(document.all.calcsup.value)>9999999999999998)

{alert('Operation Canceled :\nEntered value of selected system is more than\n9999999999999998 in Dec\n to allow this conversion any way uncheck accuracy option');}

else{doActionFrmDec();}

}

else {window.alert('Input Error');}

}

//*********************************************//

function todec(x)

{

return parseFloat(sysno.value.charAt(x));

}

//////////////////////////////////////////////////////

function doActionFrmDec()

{

dec=document.all.calcsup;

sysno=document.all._frm.txtto;

sys=document.all._frm.hidto;

var originaldec=dec.value;

y=parseFloat(sys.value);

var num="";

while (dec.value>y)

{

num=tosysno(dec.value,y)+num;

dec.value=(dec.value-mod(dec.value,y))/y;

}

if (dec.value==y)

{

num="1"+tosysno(dec.value,y)+num;

}

else if (dec.value< y)

{

num=tosysno(dec.value,y)+num;

}

sysno.value=num;

dec.value=originaldec;

}

//*********************************************//

function mod(x,y)

{

return (x%y);

}

//*********************************************//

function tosysno(x,y)

{

var reminder;

reminder=Math.round(mod(x,y));

if (reminder>9){reminder="["+reminder+]";}

return reminder;

}

//////////////////////////////////////////////////////

//-->

</script>

</head>

<body>

<div align="center">

<form name="_frm" method="post">

<table border="1" align="center" cellpadding="3" cellspacing="2">

<tr>

<th> From 

<th> To 

<td rowspan="3"><input type="button" value="Convert" onclick="doActionToDec()">

<tr>

<td>

<select onchange="java script:

if (this.value==0)

{

x=prompt('Enter System Identifier','');

if (parseInt(x)>1 || x==null)

{document.all._frm.hidfrm.value=x;}

else if (x==null){}

else

{alert('There is No Such System !');}

}

else

{document.all._frm.hidfrm.value=this.value;}

">

<option value="null">- - - - - - - -

<option name="frmbin" value="2">Binary

<option name="frmoct" value="8">Octal

<option name="frmdec" value="10">Decimal

<option name="frmhex" value="16">Hexadecimal

<option name="frmany" value="0">Any-sys

</select>

<input type="text" name="hidfrm" value="null" size="5" disabled>

<td>

<select onchange="java script:

if (this.value==0)

{

x=prompt('Enter System Identifier','');

if (parseInt(x)>1 || x==null)

{document.all._frm.hidto.value=x;}

else if (x==null){}

else

{alert('There is No Such System !');}

}

else

{document.all._frm.hidto.value=this.value;}

">

<option value="null">- - - - - - - -

<option name="tobin" value="2">Binary

<option name="tooct" value="8">Octal

<option name="todec" value="10">Decimal

<option name="tohex" value="16">Hexadecimal

<option name="frmany" value="0">Any-sys

</select>

<input type="text" name="hidto" value="null" size="5" disabled>

<tr>

<td><input type="text" name="txtfrm">

<td><input type="text" name="txtto">

<tr>

<td colspan="3" rowspan="2">

<input type="checkbox" name="chkbx" checked onclick="java script:

if (!this.checked)

{accuracy=0;alert('Accuracy is now ignored for values\nequivalent to more than 999999999999998 Dec');}

else

{accuracy=1;alert('Accuracy Enabled');}

">

Enable Full Accuracy [ 100% ]<br>

<div align="center">

UP to equivalent value for 9999999999999998<sub>Dec</sub>

<h5>

unchecking this option allows you to enter<br>

a value equivalent to more than<br>

9999999999999998<sub>Dec</sub><br>

but with an Error of +0.00000000000001%

</h5>

</div>

</table>

</form>

</div>

<input name="calcsup" type="hidden">

</body>

</html>

========================================================

********************************************************

========================================================

أما هذا البرنامج كنت قد نشرته من قبل في المنتدى .

و هو عبارة عن برنامج تحويل للألوان من نظام HEX إلى RGB و العكس .

و الكود هو :

<html>

<head>

<div align="center">

<h2>Color Converter</h2><h3>A JavaScript Code Programmed By M.A.K.</h3>

</div>

<hr>

<script language="javascript">

<!--

///////////////////////////////////////////////////////////////////////

function hexconverter(num)

{

orgnum=num;

var hexno="";

while (num>16)

{

hexno=tohex(num/16)+hexno;

num=(num-mod_16(num/16))/16;

}

if (num==16)

{

hexno="1"+tohex(num/16)+hexno;

}

else if (num< 16)

{

hexno=tohex(num/16)+hexno;

}

if (orgnum<16){hexno="0"+hexno;}

return hexno;

}

//******************************************************//

function mod_16(x)

{

while (x>1 || x==1)

{

x=x-1;

}

x=x*16;

return x;

}

function tohex(x)

{

var hexchange;

hexchange=mod_16(x);

if (hexchange==10){hexchange="A";}

else if (hexchange==11){hexchange="B";}

else if (hexchange==12){hexchange="C";}

else if (hexchange==13){hexchange="D";}

else if (hexchange==14){hexchange="E";}

else if (hexchange==15){hexchange="F";}

return hexchange;

}

//******************************************************//

//////////////////////////////////////////////////////////////////////

function conv_RGB_H()

{

xr=document.all.frmrgb.r;

xg=document.all.frmrgb.g;

xb=document.all.frmrgb.b;

xh=document.all.frmh.h;

xh.value="#"+hexconverter(xr.value)+hexconverter(xg.value)+hexconverter(xb.value);

var xscolor=document.getElementById("scolor");

xscolor.bgColor=xh.value;

}

//////////////////////////////////////////////////////////////////////

function conv_H_RGB()

{

xr=document.all.frmrgb.r;

xg=document.all.frmrgb.g;

xb=document.all.frmrgb.b;

xh=document.all.frmh.h;

xr.value=todec(1)*16+todec(2);

xg.value=todec(3)*16+todec(4);

xb.value=todec(5)*16+todec(6);

var xscolor=document.getElementById("scolor");

xscolor.bgColor=xh.value;

}

//******************************************************//

function todec(x)

{

if (xh.value.charAt(x)=='A' || xh.value.charAt(x)=='a'){return 10;}

else if (xh.value.charAt(x)=='B' || xh.value.charAt(x)=='b'){return 11;}

else if (xh.value.charAt(x)=='C' || xh.value.charAt(x)=='c'){return 12;}

else if (xh.value.charAt(x)=='D' || xh.value.charAt(x)=='d'){return 13;}

else if (xh.value.charAt(x)=='E' || xh.value.charAt(x)=='e'){return 14;}

else if (xh.value.charAt(x)=='F' || xh.value.charAt(x)=='f'){return 15;}

else {return parseFloat(xh.value.charAt(x));}

}

//////////////////////////////////////////////////////////////////////

//-->

</script>

</head>

<body>

<table align="center" width="80%" border="1" cellpadding="10px" cellspacing="10px" frame="below">

<tr>

<td align="center">

<h3><i>Enter RGB :</i></h3>

<form name="frmrgb" method="post">

<table border="1">

<tr><td> R 

<td><input type="text" name="r" value="0" size="20" maxlength="3"

onblur="java script:

tst=document.all.frmrgb.r.value;

if(-1<tst && tst<256)

{}

else

{

window.alert('Enter a valid value for R ( 0 - 255)');

focus(document.all.frmrgb.r);

}"/>

<tr><td> G 

<td><input type="text" name="g" value="0" size="20" maxlength="3"

onblur="java script:

tst=document.all.frmrgb.g.value;

if(-1<tst && tst<256)

{}

else

{

window.alert('Enter a valid value for G ( 0 - 255)');

focus(document.all.frmrgb.g);

}"/>

<tr><td> B 

<td><input type="text" name="b" value="0" size="20" maxlength="3"

onblur="java script:

tst=document.all.frmrgb.b.value;

if(-1<tst && tst<256)

{}

else

{

window.alert('Enter a valid value for B ( 0 - 255)');

focus(document.all.frmrgb.B);

}"/>

<tr><td colspan="2"><input type="button" name="okrgb" value="Convert to Hex" onclick="conv_RGB_H()"/>

</table>

</form>

<td align="center">

<h3><i>Enter Hex Value :</i></h3>

<form name="frmh" method="post">

<table border="1">

<tr><td> Hex Value 

<td><input type="text" name="h" value="#000000" size="20" maxlength="7"

onblur="java script:

tst=document.all.frmh.h.value;

if(tst.length<7)

{

window.alert('Enter a valid hexadecimal color');

focus(document.all.frmh.h);

}

else if(tst.charAt(0)!='#')

{

window.alert('Enter the pond # sign');

focus(document.all.frmh.h);

}

else if(tst.length==7 && tst.charAt(0)=='#')

{

for (i=1;i<8;i++)

{

if (tst.charAt(i)!=0 && tst.charAt(i)!='1' &&

tst.charAt(i)!='2' && tst.charAt(i)!='3' &&

tst.charAt(i)!='4' && tst.charAt(i)!='5' &&

tst.charAt(i)!='6' && tst.charAt(i)!='7' &&

tst.charAt(i)!='8' && tst.charAt(i)!='9' &&

tst.charAt(i)!='A' && tst.charAt(i)!='B' &&

tst.charAt(i)!='C' && tst.charAt(i)!='D' &&

tst.charAt(i)!='E' && tst.charAt(i)!='F' &&

tst.charAt(i)!='a' && tst.charAt(i)!='b' &&

tst.charAt(i)!='c' && tst.charAt(i)!='d' &&

tst.charAt(i)!='e' && tst.charAt(i)!='f')

{

window.alert('Enter a valid hexdecimal number\n\n(0,1,2,3,4,5,6,7,8,9,a[A],b,c[C],d[D],e[E],f[F])');

focus(document.all.frmh.h);

break;

}

}

}

"/>

<tr><td colspan="2"><input type="button" name="okh" value="Convert to RGB" onclick="conv_H_RGB()"/>

</table>

</form>

<tr>

<td id="scolor" colspan="2" align="center" bgcolor="#000000"> 

</table>

</body>

</html>

========================================================

********************************************************

========================================================

و يلاحظ في البرامج السابقة أنها تعتمد على فكر برمجي خالص .

و بذلك فإن هذا المنهج البرمجي بكونه مرنا حسب إحتياجات المستخدم يعتبر من أفضل المناهج لفئة الدارسين و الباحثين .

أرجو أن أكون قد أوضحت الفكرة و أن تنال البرامج إعجابكم

بانتظار الآراء ...

==================================================

( اللهم إني أسألك علما نافعا ورزقا طيبا وعملا متقبلا )

I'm not an expert programmer but I will do my best to be

غدًا سنكون أفضل منهم .... إنها مسألة إرادة و وقت

#2

شكرا لك،، وجزاك الله خيرا على هذه الشفرات المفيدة...

أقترح عليك أن تنقل هذا الموضوع إلى منتدى تصميم الصفحات الذي يتناول أمور جميع JavaScript.. من هنا:

/index.php?showforum=20

أعتقد أنك ستجد تجاوب أكثر هناك،،

أما هذا القسم فمخصص للجافا..

استعمل إشارة

 حتى تظهر الشفرات بصورة حسنة.
مثل هذا :
[code]
function conv_H_RGB()
{
xr=document.all.frmrgb.r;
xg=document.all.frmrgb.g;
xb=document.all.frmrgb.b;
xh=document.all.frmh.h;
xr.value=todec(1)*16+todec(2);
xg.value=todec(3)*16+todec(4);
xb.value=todec(5)*16+todec(6);
var xscolor=document.getElementById("scolor");
xscolor.bgColor=xh.value;
}

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…