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

أرجو منكم المساعدة

بدأه randa في 7 يناير 2010 · 17 رد · 1,510 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أحييكم من كل قلبي على هذا المنتدى القيم بكل معنى الكلمة

والذي سارعت بالانتساب اليه لما فيه من فائدة

وارجو ان استفيد كما أن افيد بذات الوقت

اما الآن فأريد منكم مساعدة حول بعض الامور الخاصة بالجافا السكريبت

Write a function that takes an integer value and returns the number with its digits reversed.For example,given the number 7631,the function should return 1367,Incorporate the function into a script that reads a value from the user.Display the result of the function in the status bar.

ويوجد بعض الاسألة اللتي لا افهمها تماما وارجو منكم اشد الرجا ان تساعدوني

وشاكرة لكم حسنة تعاونكم

تم تعديل هذه المشاركة بواسطة randa في 7 يناير 2010 في 20:39

#2

السلام عليكم و رحمة الله و بركاته،،

أهلاً و سهلاً بك في هذا المنتدى..

السؤال بسيط جداً و يعتمد على عمليات رياضية.. و سنستخدم الـ mod و الـ division

أي رقم على افتراض 12345 يمكننا أخذ أول خانة منه عن طريق عملية mod 10 و معناها باقي قسمة هذا الرقم على 10 و التي ستكون 5 بالطبع..

إذن نحتاج لعمل Loop تقوم بعملية mod 10 على الرقم و تخزن الناتج في متغير احتياطي.. أي 5 ثم تقسم الرقم الأصلي قسمة بدون باقي على 10 و تضع النتيجة في نفس المتغير أي 12345 تصبح 1234 و أخيراً نضع الرقم الناتج عن الـ mod بواسطة String Concatenation في متغير أساسي..

الـ Loop تعمل بشرط الرقم الأساسي لا يساوي صفر أي تقف عند وصول الرقم الأساسي في القسمة لـصفر..

و بالتالي نتيجة التطبيق تكون

أول لفة في الـ Loop

الرقم 1234

الرقم الناتج عن الـ mod يكون 5

ال String يكون 5

ثاني لفة في الـ Loop

الرقم 123

الرقم الناتج عن الـ mod يكون 4

ال String يكون 54

و هكذا حتى يصبح الرقم الأساسي 0 و ال String يصبح 54321

بعد ذلك نقوم باستخدام الجملة التي تقوم بالكتابة على الـ status bar و هي:

window.status="Your result Here";

أتمنى في المرة القادمة الشروع في الحل ثم تقديم حلك لنا طلباً للمساعدة.. فهذا يجلب لك فائدة أكثر،،

لا تترددي في طرح أي سؤال أو استفسار،،

تحياتي،،

1
n622971709_461151_8573.jpg
#3
محمد رياض الخضري كتب:

أتمنى في المرة القادمة الشروع في الحل ثم تقديم حلك لنا طلباً للمساعدة.. فهذا يجلب لك فائدة أكثر،،

لا تترددي في طرح أي سؤال أو استفسار،،

تحياتي،،

أشكرك جزيل الشكر

بس انا عندي كزا سؤال بحل الجزء الكبير بس بيبئا كم شغلة ما بعرف لي ما بتزبط معي

وبكرر لك شكري وامتناني عن مساعدتك لالي

وفي شغلة تانية بس يا ربي ما أكون جد مزعجة وتتحملني

عملت هاد الكود لمسألة بيطلب فيها function للـ base و exponent بس ما تكون جاهزة يعني ما تكون الفنكشن اللي بتطلع pow للرقم

أنا عملتو وهاد هو وعندي مشكلة بـ Answer ما بيئبل يطلعلي ياها

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!-- Exercise 7.5: ex07_05.html --> 
<html xmlns = "http://www.w3.org/1999/xhtml">
   <head><title>Sum the Integers from 1 to 10</title>
      <script type = "text/javascript">
         <!--
           var inputfielda =  document.getElementById( "basefield" );
           var inputfieldb =  document.getElementById( "exponentfield" );
           var answer =  document.getElementById( "resultfield" );

           var base = parseInt( inputfielda.value );
           var exponent = parseInt( inputfieldb.value );
           answerfield.value = integerPower( base, exponent );
  function integerPower( base, exponent )
       {
          if ( exponent == 0 )
                return 1;
          else

          for ( exponent = 1; 1 <= exponent; exponent++)
                return base *= exponent;

       }
       -->
      </script>
   </head>
  <body>   
      <form action = "">
      <div>
      <pre><label><h3>base      :<input id = "basefield" type = "text" /><label>

<label><h3>exponent  :<input id = "exponentfield" type = "text" /><label><input type = "button" value = "calculate"
           onclikc = "displayValume()" />  

<label><h3>Answer    :<input id = "resultfield" type = "text" /></label>
      </form>
      </div>

 </body>
</html>
#4

السلام عليكم و رحمة الله و بركاته،،

في العادة تنفيذ كود HTML يكون Sequential أي تسلسي فأينما يجد كود ينفذه بالتسلسل من الأعلى للأسفل و بهذا الكود في الأعلى Javascript ينفذ في البداية فلا يجد العناصر التي تحاولي عمل getElementById لها لأنها في الأسفل..

يمكنك نقل الـ Javascript بالكامل للأسفل و هذا ممكن و لكن ليس بالحل الأمثل..

الحل الأمثل يتلخص في إحاطة الكود الذي ترغبين بتنفيذه مع الصفحة في :

<script type="text/javascript">
window.onload = function() {
	//Put your code here
}
</script>

في هذه الحالة يتم تنفيذ الكود في منطقة Put your code here بمجرد الانتهاء من تحميل الصفحة بالكامل.. و هذا بالتأكيد أمر ممتاز و مستقر و يضمن التنفيذ السليم على أجزاء الـ HTML..

و من الممكن حدوث بعض المشاكل مع Internet Explorer بدون هذه الطريقة أيضاً كأن يظهر خطأ Internet Explorer Can't load this page و هذا يحدث في بعض الأحيان إن كان الـ IE قديم أو غير محدّث..

في حالة استخدام jQuery يمكنك الحصول على نفس النتيجة بالطريقة التالية:

<script type="text/javascript">
jQuery(document).ready(function() {
	//Put your code here
});
</script>

أتمنى أن يسير كل شيء معك على ما يرام..

و لا تترددي في طرح أي أسئلة..

تحياتي..

تم تعديل هذه المشاركة بواسطة محمد رياض الخضري في 8 يناير 2010 في 20:20

1
n622971709_461151_8573.jpg
#5

أمر آخر جدير بالنظر..

لاحظت في الكود الخاص بك أنك تستدعين function غير موجودةو هي displayVolume أنا افترضت أنك تودين عمل post و الحصول على النتيجة بعد ذلك و إن كنت لا أجد داعياً لذلك..

كما لاحظت خطأ في كتابة onclick.. و أيضاً في الكود تستخدمين answerField بينما قد قمتي بتسميته answer بالإضافة لعدة ثغرات في عملية حساب الـ exponent ..

قمت بالتعديل على الكود خاصتك و ها هي النتيجة

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!-- Exercise 7.5: ex07_05.html --> 
<html xmlns = "http://www.w3.org/1999/xhtml">
   <head><title>Sum the Integers from 1 to 10</title>
   </head>
  <body>   
      <form action = "">
      <div>
      <pre><label><h3>base      :<input id = "basefield" type = "text" /><label>

<label><h3>exponent  :<input id = "exponentfield" type = "text" /><label><input type = "button" value = "calculate"
           onclick = "displayVolume()" />  

<label><h3>Answer    :<input id = "resultfield" type = "text" /></label>
      </form>
      </div>

 </body>
</html> 
<script type = "text/javascript">
	  function displayVolume() {
           var inputfielda =  document.getElementById( "basefield" );
           var inputfieldb =  document.getElementById( "exponentfield" );
           var answer =  document.getElementById( "resultfield" );

           var base = parseInt( inputfielda.value );
           var exponent = parseInt( inputfieldb.value );

           answer.value = integerPower( base, exponent );
	  }

  function integerPower( base, exponent )
       {
		   result = 1;
          if ( exponent == 0 ) {
                return 1;
		  } else {
			  while (exponent != 0) {
					result = result * base;
					exponent--;
			  }
		  }

		  return result;
       }
      </script>

تحياتي،،

n622971709_461151_8573.jpg
#6
محمد رياض الخضري كتب:

تحياتي،،

صدقا أشكرك من كل قلبي

تحياتي لك اخي الكريم

مع كل الاحترام والود

#7
محمد رياض الخضري كتب:

في العادة تنفيذ كود HTML يكون Sequential أي تسلسي فأينما يجد كود ينفذه بالتسلسل من الأعلى للأسفل و بهذا الكود في الأعلى Javascript ينفذ في البداية فلا يجد العناصر التي تحاولي عمل getElementById لها لأنها في الأسفل..

يمكنك نقل الـ Javascript بالكامل للأسفل و هذا ممكن و لكن ليس بالحل الأمثل..

الحل الأمثل يتلخص في إحاطة الكود الذي ترغبين بتنفيذه مع الصفحة في :

<script type="text/javascript">
window.onload = function() {
	//Put your code here
}
</script>

في هذه الحالة يتم تنفيذ الكود في منطقة Put your code here بمجرد الانتهاء من تحميل الصفحة بالكامل.. و هذا بالتأكيد أمر ممتاز و مستقر و يضمن التنفيذ السليم على أجزاء الـ HTML..

و من الممكن حدوث بعض المشاكل مع Internet Explorer بدون هذه الطريقة أيضاً كأن يظهر خطأ Internet Explorer Can't load this page و هذا يحدث في بعض الأحيان إن كان الـ IE قديم أو غير محدّث..

في حالة استخدام jQuery يمكنك الحصول على نفس النتيجة بالطريقة التالية:

<script type="text/javascript">
jQuery(document).ready(function() {
	//Put your code here
});
</script>

أتمنى أن يسير كل شيء معك على ما يرام..

و لا تترددي في طرح أي أسئلة..

تحياتي..

أها أخي الفاضل

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

تم تعديل هذه المشاركة بواسطة randa في 8 يناير 2010 في 22:19

#8

السلام عليكم و رحمة الله و بركاته،،

كلتا الطريقتين تعمل.. و إنما أتحدث عن الأحوط و الأسلم :) من الخبرة العملية ليس إلا..

كما ذكرت آنفاً إن وضعتي الكود في window.onload فلا مشكلة أين تضعيه فوق أو تحت.. لأنه مشروط.. أما دون أي محددات فهنا المحور.. إنما ذكرت لكي في الأسفل احتياطاً إن لم تضغيه داخل هذه الدالة..

تحياتي،،

1
n622971709_461151_8573.jpg
#9

أخي محمد أول سؤال قمت بطرحة يقوم بترتيب الرقم المدخل من الاصغر فالأكبر

حاولت كتابة الفنكشن الخاصة به ولكن من دون جدوى فكما قلت لك سابقا لازلت مبتدئة

ويوجد لدي سؤال آخر حول هذا الكود

والذي يقوم على تحويل من سيلسيوس الى فهرنهيت

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


<html xmlns = "http://www.w3.org/1999/xhtml">
   <head><title>Solution 9.19</title>
      <script type = "text/javascript">
         <!--
  function displayResult()           
       {
           var inputafield =  document.getElementById( "celsiusfield" );
           var inputbfield =  document.getElementById( "fahrenheitfield" );
           var answerfield =  document.getElementById( "answer" );

           var c = parseInt( inputafield.value );
           var f = parseInt( inputbfield.value );
           var exponent = parseInt( inputfieldb.value );
           answerfield.value = convert( c, f );
       }

            function convert( c, f )
       {
          if ( c )
                return f = 9.0 / 5.0 * c + 32;
          else


                return c = 5.0 / 9.0 * ( f - 32 );

       }
       -->
      </script>
   </head>
  <body>   
      <form action = "">
      <div>
      <pre><label><h3>Celsius   :<input id = "celsiusfield" type = "text" /><label>

<input type = "button" value = "calculate"
           onclikc = "displayResult()" />  

<label><h3>Answer    :<input id = "answer" type = "text" /></label>
<hr />

<label><h3>fahrenheit:<input id = "fahrenheitfield" type = "text" /><label>

<input type = "button" value = "calculate"
           onclikc = "displayResult()" />  

<label><h3>Answer    :<input id = "answer" type = "text" /></label>


      </form>
      </div>

 </body>
</html>

وشاكرة لك حسن تعاونك اخي الفاضل

تم تعديل هذه المشاركة بواسطة randa في 9 يناير 2010 في 14:46

#10

السلام عليكم و رحمة الله و بركاته،،

1. إسم دالة النقر ليس onclikc و إنما onclick

2. يجب تسمية كل متغير إسم منفصل و من المستحسن أن يكون معبر

var inputafield =  document.getElementById( "celsiusfield" );
var inputbfield =  document.getElementById( "fahrenheitfield" );

هذا خطأ بالطبع لأن المتغير له نفس الإسم و بالتالي ليس لديكي سوى الأخير و الأصح

var celsiusfield =  document.getElementById( "celsiusfield" );
var fahrenheitfield =  document.getElementById( "fahrenheitfield" );

يتبع ذلك تغييرات في مواقع مختلفة..

3. أنتي تقومين بالتعامل مع نفس الـ input فقط تعتمدين على نفس الدالة و تعتمدين أن يكون أحد الـ inputs فارغاً و في هذا مشاكل عدة و كود لا داعي له و الحل الأحسن هي عمل دالتين منفصلتين..

إليكي الكود بعد التعديل:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


<html xmlns = "http://www.w3.org/1999/xhtml">
   <head><title>Solution 9.19</title>
      <script type = "text/javascript">
         <!--
  function displayFehrenhite()           
       {
           var celsiusfield =  document.getElementById( "celsiusfield" );

           var answerfield =  document.getElementById( "answerFehrenhite" );

           var c = parseInt( celsiusfield.value );

           answerfield.value = convert( c, false );
       }

	   function displayCelsius()           
       {
           var fahrenheitfield =  document.getElementById( "fahrenheitfield" );

           var answerfield =  document.getElementById( "answerCelsius" );

           var f = parseInt( fahrenheitfield.value );

           answerfield.value = convert( false, f );
       }

            function convert( c, f )
       {
          if ( c )
                return 9.0 / 5.0 * c + 32;
          else


                return 5.0 / 9.0 * ( f - 32 );

       }
       -->
      </script>
   </head>
  <body>   
      <form action = "">
      <div>
      <pre><label><h3>Celsius   :<input id = "celsiusfield" type = "text" /><label>

<input type = "button" value = "calculate"
           onclick = "displayFehrenhite()" />  

<label><h3>Answer    :<input id = "answerFehrenhite" type = "text" /></label>
<hr />

<label><h3>fahrenheit:<input id = "fahrenheitfield" type = "text" /><label>

<input type = "button" value = "calculate"
           onclick = "displayCelsius()" />  

<label><h3>Answer    :<input id = "answerCelsius" type = "text" /></label>


      </form>
      </div>

 </body>
</html>

بالنسبة لدالة العكس هي بسيطة جدا

function invertNumber(number) {
	var result = "";
	var subNumber = 0;
	number = Number(number);
	while (number != 0) {
		subNumber = number % 10;
		number = Math.floor(number / 10);
		result = result + subNumber;
	}

	return result;
}

تحياتي،،

تم تعديل هذه المشاركة بواسطة محمد رياض الخضري في 9 يناير 2010 في 20:39

n622971709_461151_8573.jpg
#11

يعجز لساني عن شكرك اخ محمد

ولكن لازال هناك مشكلة في عرض ناتج التحويل من درجة الى الاخرى حيث لايقوم بعرضها

#12

معذرة.. لقد جربت الكود و يعمل عندي دون أي مشاكل..

جربته على Mozilla Fire Fox و على Internet Explorer..

أرجو التأكد من نسخه كاملاً و دون تغيير..

تحياتي،،

n622971709_461151_8573.jpg
#13

أشكرك من كل قلبي اخي الكريم

#14

قمت بوضع الكود ولكن لازلت المشاكل تواجهني عند اظهار النتيجة

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns = "http://www.w3.org/1999/xhtml">
   <head><title>Solution 9.23</title>
      <script type = "text/javascript">
         <!--
  function displayResult()
    {
           var inputfield =  document.getElementById( "numberfield" );
              var number = parseInt( inputfield.value );
           var answer =  document.getElementById( "resultfield" );


           answer.value = invertNumber( number );
    }
  function invertNumber( number ) 
  {        
      var result = "";        
      var subNumber = 0;        
      number = Number( number );        
      while ( number != 0 ) 
     {                
        subNumber = number % 10;                
        number = Math.floor( number / 10 );                
        result = result + subNumber;        
     }                return result;
  }
       -->
      </script>
   </head>
  <body>   
      <form action = "">
      <div>
      <pre><label><h3>The number:<input id = "numberfield" type = "text" /><label>

<input type = "button" value = "calculate"
           onclikc = "displayResult()" />  

<label><h3>Answer    :<input id = "resultfield" type = "text" /></label>
      </form>
      </div>

 </body>
</html>
#15

السلام عليكم و رحمة الله و بركاته..

الغلطة نفسها! onclikc لا يوجد شيء بهذا الإسم إنها onclick!

:blink:

تحياتي،،

n622971709_461151_8573.jpg
#16
محمد رياض الخضري كتب:

السلام عليكم و رحمة الله و بركاته..

الغلطة نفسها! onclikc لا يوجد شيء بهذا الإسم إنها onclick!

:blink:

تحياتي،،

أخ محمد أرجوك أن تتحملني ان شالله هالغلط ما حينعاد :blush:

بس في مشكله هاد اللوب بيعمل لفة وحد لرقم واحد بس

مع العلم انو انا بدي ياه يرتب تصاعدي

كما ارجو منك توضيح عمل الكودات التالية

var result = "";

number = Number( number );

var subNumber = 0;

تم تعديل هذه المشاركة بواسطة randa في 10 يناير 2010 في 18:34

#17

السلام عليكم و رحمة الله و بركاته،،

الأولى تعرف الـ Result كمتغير من نوع String حتى لا تكون عملية + عملية جمع بل عملية Concatenation

الثانية تحول الرقم المأخوذ إلى number لتصلح عليه عمليات القسمة و الـ mod

الثالثة هي تعريف الرقم الذي سيتم لصقه بـ 0 و هي قيمة ابتدائية..

أنا مستعد لأي اسئلة اخرى،،

تحياتي،،

n622971709_461151_8573.jpg
#18
محمد رياض الخضري كتب:

السلام عليكم و رحمة الله و بركاته،،

أنا مستعد لأي اسئلة اخرى،،

تحياتي،،

وعليكم السلام ورحمة الله وبركاته

أخي الكريم أقدر ما تبذله من مجهود، لكن المشكلة تكمن في انه لدي تسليم أسايمنت اقصى موعد غدا وأريد مساعدة من أي احد والمشكلة انه ليس لدي اي معارف على دراية بهذه المادة

فكنت انت الامل الوحيد لدي وأنا حاليا استنجد بك

هناك سؤال آخر عن perfect number يريد ان نحدد

الأرقام perfect number

من 1 ولغاية 1000

ثم نقوم بطباعتها

فمثلا عند اختبار الرقم 6 وبعد ما حدد انه perfect number

يجب ان يقوم بطباعته كاتالي

3 + 2 + 1 = 6

وهكذا لجميع الارقام البيرفكت يجب ان يطبعها جميعا

ان كتبت الكود ولكن كالعادة يبدو ان هناك فيه اخطاء كبيرة

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns = "http://www.w3.org/1999/xhtml">   
   <head><title>Solution 9.21</title>      
<script type = "text/javascript">         
<!--  


 for ( var i = 1; i < number; ++i )
document.writeln( number + "i" + "+" + "<br/>");



    function perfectNumber( number )                 
   {           
       for ( number = 1; number <= 1000; ++number )
      {
         for ( var i = 1; < num )     
        {
          if ( number % i == 0 )
        }
      }
   }         

  -->      
  </script>   
   </head>  
  <body>         

   </body></html>

<!--

-->

مع خالص شكري وامتناني كما واريد معرفة ما اذا كنت على دراية بالـ Arry حيث أواجه بها ايضا بعض المشاكل

أرجوووووووووووووووووووووووووووووك للضرورة القصوى ان تساعدني

وجزالك الله خيرا

تم تعديل هذه المشاركة بواسطة randa في 11 يناير 2010 في 17:53

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