بحث متقدم | التسجيل
الويب العربي
  تسجيل دخول
 
   
   

  ملاحظة
الموقع متاح للإطلاع والقراءة فقط، المشاركة والمواضيع الجديدة غير متاحة حالياً لحين تطوير الموقع.




الموقع متاح للإطلاع والقراءة فقط، المشاركة والمواضيع الجديدة غير متاحة حالياً لحين تطوير الموقع.

عـودة للخلف   الويب العربي سوق الإستضافة خلاصة قسم إدارة و تشغيل السيرفرات

خلاصة قسم إدارة و تشغيل السيرفرات القسم هذا للمواضيع المميزة في إدارة وتشغيل الخوادم, الشبكات وأنظمة التشغيل.

 
 
خيارات الموضوع طريقة العرض
  #1  
قديم 30-09-2007, 08:42 PM
Ali Hamad Ali Hamad غير متصل
ابعاد المعلومات - السيرفرات والاستضافة
 
تاريخ التسجيل: Mar 2005
المدينة: IA, USA
مشاركة: 649
مستوى تقييم العضوية: 21
Ali Hamad is on a distinguished road
إرسال رسالة عبر MSN إلى Ali Hamad
الافتراضي [درس] : عبارة for في لغات البرمجة

السلام عليكم .... أسعد الله اوقاتكم بكل خير :

ملاحظة : الموضوع طويل ومتشعب .


مقدمة :

البرمجة بتعريفها البسيط ( عملية كتابة ، اختبار ، تنفيذ مجموعة أكواد كتبت بلغة برمجة ما لتقوم بعمل ما ) هي عصب الانترنت .
فنظام التشغيل الذي تعمل عليه عبارة عن مجوعة اكواد برمجية بلغات مختلفه معقده . كل شيء تراه في الانترنت امامك عبارة عن اكواد. ولكن تذكر انه باختلاف لغات البرمجة المستخدمة في كتابة الكود ،الكمبيوتر لايعرف الا 0 او 1 فقط .
تختلف الاغراض من كتابة كود معين باختلاف لغات البرمجة المستخدمه . مثلا : لغة البي اتش بي لغة بسيطه تم كتابتها اعتمادا على C/C++ ( بالمناسبة C++ عبارة عن C ولكن مطوره ، بمعنى كل ماهو موجود في C موجود في C++ ) وهذه اللغة ، اعني PHP ، تستخدم بشكل اساسي في تطوير الويب ( المواقع ) . بينما على النقيض تماما لغات برمجة تستخدم في اساس نظام التشغيل على سبيل المثال لا الحصر : Assembly ( تستخدم بشكل اساسي في كتابة drivers بمعنى وسيط التواصل بين انظمة التشغيل مجازا وبين العتاد " الهاردوير " ) ، C/C++ ( لغة البرمجة الام الحنون لاغلب لغات البرمجة واللغة التي كتب بها Linux Kernel ، وايضا Bash ( يستخدم اساسا في نظام Linux غالبا في تسهيل عمل مدير النظام وايضا في تطبيقات ، برامج ، وسكربتات داخل السيرفر ، مثلا سكبرتات الشتغيل rc في مختلف مستويات ال run جميعها كتبت بال bash ) .


الهدف :

لكي تصبح مدير سيرفرات محترف يلزمك دائما تسهيل عملك بعمل برامج مساعدة مساندة لتوفير الوقت والعمل نيابة عنك لتادية بعض المهام. تعلم لغات برمجة اساسية مثل ال C او حتى الـ Bash يغير حياتك العملية الى الافضل بتسهيل عملك وتطوير ادائك .



الموضوع :

درس بسيط للتعرف على أشكال اكواد بعض لغات البرمجة ( java , C and bash ) ، ودراسة عبارة اساسية تقريبا في كل لغات البرمجة loop وبشكل ادق ما ساتكلم عنه هي for loop .


ماهي ال for loop :

عبارة برمجية تعني الاستمرار في تنفيذ ال body الخاص بال loop حتى يتم الوصول الى حالة معينة، ( الوصول الى رقم معين ، تنفيذ امر معين ، تنفيذ شرط معين .... على حسب ماهو شرط استمرار اللوب ) او كسر اللوب ( break ) .


امثلة :

1) JAVA :

كود PHP:
public class AwtLoop {
    public static 
void main (String[] args){
        
     for (
int i=05i++){
         
         
System.out.println("Loop is at " i);
     
     }   
    } 


الشرح :

كود PHP:
for (int i=05i++) 
int i = 0 تعني تعريف المتغير i بانه integer ووضع قيمته بصفر .
i < 5 تعني الشرط الذي تنتهي عنده اللوب ، بمعنى قم بتنفيذ البودي ( اي عبارة برمجية بين ال } و { حتى تصبح قيمة المتغير i اقل من خمسه .
i++ = قم بزياة قيمة المتغير i بواحد في كل مره تنفذ اللوب مالم يتحقق الشرط .


كود PHP:
System.out.println("Loop is at " i); 
البودي الخاص بال for loop ويعني قم بطباعة الجملة ( String ) التالية Loop is at ملحوقة بقيمة المتغير i .


الناتج :

كود PHP:
Loop is at 0
Loop is at 1
Loop is at 2
Loop is at 3
Loop is at 4 
كما تلاحظ ، قام الكود اعلاه بطباعة كل الارقام من صفر الى 4 وتوقف عندما تحقق الشرط ( رقم اقل من خمسه ) .


2) C/C++:

كود PHP:
#include <stdio.h>
int main void ){
 
 
int i;
 for (
i=0<5i++) {
      
printf("Loop is at %d\n"i);
 }
 return 
0;

الشرح :

كود PHP:
for (i=0<5i++) 
i = 0 تعني وضع قيمة المتغير i بانه صفر ، لاحظ في لغة C لابد من تعريف المتغير خارج اللوب .
i < 5 تعني الشرط الذي تنتهي عنده اللوب ، بمعنى قم بتنفيذ البودي ( اي عبارة برمجية بين ال } و { حتى تصبح قيمة المتغير i اقل من خمسه . لاحظ انه في لغة ال C يمكنك عدم استخدام ال {} .
i++ = قم بزياة قيمة المتغير i بواحد في كل مره تنفذ اللوب مالم يتحقق الشرط .



كود PHP:
printf("Loop is at %d\n"i); 
البودي الخاص بال for loop ويعني قم بطباعة الجملةالتالية Loop is at ملحوقة بقيمة المتغير i . علامة %d تعني تعريف للمتغير i عند الطباعة وعلامة \n تعني طباعته في سطر جديد .


الناتج :

كود PHP:
Loop is at 0
Loop is at 1
Loop is at 2
Loop is at 3
Loop is at 4 

3) BASH : التخصص والعشق الاول والاخير

كود PHP:
#!/bin/bash

for (( =0<5i++))
do
        echo 
"loop is at $i"
done

#EOF 
الشرح :

كود PHP:
for (( =0<5i++)) 
i = 0 تعني وضع قيمة المتغير i بانه صفر ، لاحظ في لغة الباش لانحتاج لتعريف نوع المتغير ، مثلا هل هو integer , double , long , short , string , char ...etc
i < 5 تعني الشرط الذي تنتهي عنده اللوب ، بمعنى قم بتنفيذ البودي ( اي عبارة برمجية بين ال do و done حتى تصبح قيمة المتغير i اقل من خمسه( شرط اغلاق اللوب ) . لاحظ انه في لغة الباش لاتستخدم ال }{ في تحديد البودي الخاص باللوب ، بل يستخدم do , done .
i++ = قم بزياة قيمة المتغير i بواحد في كل مره تنفذ اللوب مالم يتحقق الشرط .


كود PHP:
echo "loop is at $i
قم بطباعة loop is at ملحوقة بقيمة المتغير i .

الناتج :

كود PHP:
loop is at 0
loop is at 1
loop is at 2
loop is at 3
loop is at 4 
ماذا تعني break ؟

عكس العبارة continue بمعنى .. break تعني قم بالخروج خارج اللوب ، قم بانهاء اللوب بدون الرجوع للشرط الاساسي لاستمرار اللوب .


مثال بسيط بلغة الجافا Java لتقريب المعلومة :

كود PHP:
public class AwtLoop {
    public static 
void main (String[] args){
        
     for (
int i=05i++){
         if (
== 3){
             
System.out.println("Going to break the loop");
             break;   
         }
         
System.out.println("Loop is at " i);
     }   
    } 

الشرح :

كود PHP:
 if (== 3){
             
System.out.println("Going to break the loop");
             break;   
         } 
لاحظ ان الشرط الخاص باستمرار اللوب هو ان يقوم بطباعة قيمة i من 0 الى 4 ( اقل من خمسه ) ولكن وضعنا جملة شرطية بانه في حالة كانت القيمة للمتغير i تساوي 3 ، قم بالخروج من اللوب باستخدام الامر break بعد ان تقوم بطباعة الجملة Going to break the loop حتى وان لم يتم تحقق الشرط الخاص باستمرار اللوب.


الناتج :

كود PHP:
Loop is at 0
Loop is at 1
Loop is at 2
Going to 
break the loop 
ماذا تعني Nested Loop ؟

بالعامية لوب داخل لوب ، بمعنى قم بتنفيذ اللوب العلوية مره ثم تنفيذ اللوب الداخلية كامله وعند الانتهاء منها قم بالرجوع للوب الاساسية وتنفيذها وهكذا الى ان يتحقق شرط توقف اللوب الخارجية ( الاساسية ) .


مثال بسيط لتقريب المعلومة بلغة Bash :

الكود في الاسفل يعطيك حاصل الضرب للاعداد من 1 الى 3 في الاعداد من 1 الى 3 ، شاهد الناتج لتوضح النتيجة :


كود PHP:
#!/bin/bash

for (( =1<=5i++))
do
        echo 
"The main loop is at $i"
        
echo "## The multiplication table of $i ##"

        
for ((x=1x<=3x++))
        do
             echo 
"## The inner loop is at $x ##"
             
echo $i * $x = $(($i * x))"
        
done
done

#EOF 

الشرح :

لاحظ وجود اللوب الثانية في داخل اللوب الاولى :

كود PHP:
 for ((x=1x<=3x++)) 
الناتج :

كود PHP:
## The multiplication table of 1 ##
## The inner loop is at 1 ##
 
1
## The inner loop is at 2 ##
 
2
## The inner loop is at 3 ##
 
3
The main loop is at 2
## The multiplication table of 2 ##
## The inner loop is at 1 ##
 
2
## The inner loop is at 2 ##
 
4
## The inner loop is at 3 ##
 
6
The main loop is at 3
## The multiplication table of 3 ##
## The inner loop is at 1 ##
 
3
## The inner loop is at 2 ##
 
6
## The inner loop is at 3 ##
 

لاحظ في الناتج بانه يقوم بعرض قيمةاللوب الاساسية ( الخارجية ) اولا ، ثم يقوم بتنفيذ اللوب الداخلية حتى يتحقق شرطها ( اقل من او يساوي 3) ثم يعود الى تنفيذ اللوب الخارجية ويسالها ، هل تحقق الشرط الخاص بك ؟ اذا نعم ، تتوقف كل loops ، اذا لا ، يرجع للتنفيذ ويدخل اللوب الداخلية .


المثال اعلاه بلغة C للتوضيح بشكل اكبر ( ارجو التركيز في علامة فتح البودي الخاص باللوب } وعلامة اغلاقها {:

كود PHP:
#include <stdio.h>

int main void ){
    
int i,x,result;

    for (
=1<=3i++) {  <-- لاحظ فتح البودي لللوب الاولى
    printf
(" ## The main loop is at %d ## \n",i);
    
printf(" ## The multiplication table of %d ## \n"i);

    for (
=1x<=3x++){ <-- لاحظ فتح البودي لللوب الثانية مع اننا لم نغلق الاولى
         printf
(" ## The inner loop is at %d ## \n ",x);
         
result x;
         
printf("%d * %d = %d \n",i,x,result);
    } <-- 
لاحظ اقفال البودي لللوب الثانية قبل الاولى 
  
} <-- لاحظ اقفال البودي لللوب الاولى في النهاية

    printf
(" ## The End of All loops \n ");
  return 
0;    

الناتج :

كود PHP:
 ## The main loop is at 1 ## 
 ## The multiplication table of 1 ## 
 ## The inner loop is at 1 ## 
 

 
## The inner loop is at 2 ## 
 

 
## The inner loop is at 3 ## 
 

 
## The main loop is at 2 ## 
 ## The multiplication table of 2 ## 
 ## The inner loop is at 1 ## 
 

 
## The inner loop is at 2 ## 
 

 
## The inner loop is at 3 ## 
 

 
## The main loop is at 3 ## 
 ## The multiplication table of 3 ## 
 ## The inner loop is at 1 ## 
 

 
## The inner loop is at 2 ## 
 

 
## The inner loop is at 3 ## 
 

 
## The End of All loops 

هل ال syntax الخاص ب for-loop متساوي في كل لغات البرمجة ؟

حقيقه منطقيا نعم ( شرط التحقق ، العداد ، الجملة الاساسية ، بودي اللوب تقريبا متواجدة في كل لغات البرمجة ، ولكن تختلف في ( الشكل ) .. لتقريب المعلومة .. كانت لدي فكرة وانا اقوم بكتابة الموضع بشرح طريقة ال for loop بلغة ADA ، ولكن توقفت لاني اعتقدت انها ستخرج الموضوع عن syntax الي تستخدمه اغلب لغات البرمجة والي ذكرته اعلاه ، لكن للعلم فقط وشرح اوجه التشابه في المنطق والاختلاف في syntax، تعريف for loop في Ada :


كود PHP:
loop
     statment
;
     exit 
when cond;
end loop
الشرح :

يبدا فتح اللوب بكلمة loop وينهيها بكلمة end loop ، والجملة الشرطية تاتي بعد الجملة
exit when ! لاحظ وجود ( شرط التحقق ، الجمله الاساسية ، بودي اللوب ... ولكن بشكل اخر ) .



الفائدة المرجوة من الموضوع :

1) تعرف على ثلاث اشكال اساسية من لغات البرمجة .
2) التعرف بشكل اكبر على اللوجيك ( المنطق ) الخاص بال for-loop بشكل عام ورؤيته بشكل واضح في لغات برمجة اخرى بامثلة بسيطه .
3) اعطاء دافع هنا لاعضاء الويب العربي بتعلم لغات برمجة مفيده في مجال ادارة السيرفرات مثل C, Bash , Java .



في ابعاد المعلومات :

انا شخصيا أؤمن باهمية البرمجة في تطوير العمل الداخلي او حتى في تطوير اداء وكيفية عملنا في قسم الاستضافة .. ابعاد المعلومات مؤسسة كانت اساسا تهتم وتعنى بالبرمجة فقط قبل ان تتفرع الى اقسام عديدة . ترى نتائج اعمال قسم البرمجة واضحه ( انفنتي ، الكومبو ، ديواني ، تسكين ... ) وايضا سيكون قريبا ناتج عمل قسم الاستضافة ROE قريبا ان شاء الله وهو اول برنامج معلن عنه رسميا. في ابعاد المعلومات نحترف لغات البرمجة ( Java , Bash, C , ADA , PHP , CGI ) ونعمل جاهدين على تطوير العمل الداخلي والويب العربي ( الانترنت ) ككل .


قبل الختام :

1) انا اسف ان كانت اللهجة الي استخدمتها عامية بحته ، ولكن حاولت تقريب الفكرة باكثر من لغة برجمة والتنويع لتقريب الفكرة بافضل مااستطيع بلهجة بسيطه مفهومه للكل.
2) انا اسف مسبقا على الاخطاء الاملائية او النحوية ان وجدت ..
3) شكرا لك على وقتك لقراءة الموضوع .
4) اذا كان لديك اي سؤال او استفسار في لغات البرمجة Bash , Ada , Java or C ، الرجاء التكرم بوضعه في هذا الموضوع ولكن لي رجاء بان يكون السؤال ليس واجب دراسي مطلوب من دكتورك الجامعي لاني لان اقوم بحله من الان


علي حمد ، قسم الاستضافة .
أبعاد المعلومات .






التوقيع
علي حمد
ابعاد المعلومات لخدمات الويب المتكاملة

 




قوانين المشاركة
لا يمكنك إضافة موضوع جديد
لا يمكنك الرد على المواضيع
لا يمكنك إضافة مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML مغلق
إنتقل إلى


جميع الأوقات بتوقيت مكة المكرمة. الساعة الآن » 02:35 AM.

Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


 
 »  خدمات البرمجة   »  رئيسية الدليل
  »  خدمات التصميم   »  الأمن والحماية
  »  الدعاية والتسويق
  »  الدعم والتطوير
  »  الشركات الرسمية
  »  حجز دومينات
  »  خدمات الإستضافة
 
 
  »  مكتبة الإستايلات   »  رئيسية المكتبة
  »  أكواد برمجية   »  أدوات الويب ماسترز
  »  مكتبة الهاكات   »  أدوات المصممين
  »  سكربتات متنوعة
  »  مجلات إلكترونية
  »  بلوكات متنوعة
  »  ثيمات مختلفة
 
 

صحيفة متخصصة في متابعة أخبار وجديد الإنترنت العربي
والحوارات الصحفية ومعلومات تقنية متنوعة .

   
 
 

للتواصل مع فريق عمل الويب العربي
يمكنك ذالك من خلال مركز الدعم والمساندة.

 الدعم الفني |  اعتماد العضويات |  قوانين الإنتساب |  إتفاقية الإستخدام |  أهداف الويب العربي |  دليل الشركات |  مكتبة الويب |  صحيفة الويب العربي |  الرئيسية