القوانين العامة لمنتديات الخوارزمى ... مشاهدة الإدارة ونقص عدد المشرفين ... للتقدم بطلب للإشراف ... مسابقة ترشيح المشرف العام

خدمات مركز الخوارزمى

خريطة الموقع

معرض الصور

مركز تحميل الصور و الملفات

القرآن الكريـــم

تفسير القرآن الكريــم

المرجع الدينى الشامل

مكتبة البرامج

مكتبة الدروس


« آخـــر الــمــواضــيــع »
         :: اغرب واروع سجادات!! (آخر رد :حسناء)       :: هل لديك ماوس "فأرة" عطلانه؟ (آخر رد :حسناء)       :: اغرب اربع شمعات!!!!! (آخر رد :حسناء)       :: احدث تشكيله لغرف السفره (آخر رد :حسناء)       :: كتاب الفصل في الملل والنحل (آخر رد :حسناء)       :: كتاب من أحكام الحيض في الصلاة والصيام (آخر رد :حسناء)       :: كتاب ثلاثون طريقة لخدمة الدين (آخر رد :حسناء)       :: كتاب بداية المجتهد ونهاية المقتصد (آخر رد :حسناء)       :: كتاب حراسة الفضيلة (آخر رد :حسناء)       :: كتاب مشكل إعراب القرآن الكريم (آخر رد :حسناء)       :: كتاب الوصايا العشر للعاملين في حقل الدعوة إلى الله (آخر رد :حسناء)       :: كتاب القواعد الذهبية في أدب الخلاف (آخر رد :حسناء)       :: كتاب رياض الصالحين (آخر رد :حسناء)       :: كتاب الدروس المهمه لعامة الامة (آخر رد :حسناء)       :: طائرة يضربها البرق (آخر رد :حسناء)       :: نظارات كشخه (آخر رد :حسناء)       :: وجبات اطفال المدارس باليابان (آخر رد :تبارك)       :: البرغل (آخر رد :حسناء)       :: فوائد القرفه والعسل (آخر رد :حسناء)       :: ساندوتش التاكو تاكل صوابعك وراه (آخر رد :حسناء)      



العودة   :: مركز الخوارزمى للترجمة وخدمات الإنترنت العودة ركن الكمبيوتر و الإنترنت العودة قسم البرمجة وقواعد البيانات
قسم البرمجة وقواعد البيانات ASP.net SQL, ADO.net, C#, PHP , CGI , MySQL , JavaScript , Html , Delphi , Ajax ...




 
   
أدوات الموضوع انواع عرض الموضوع
قديم 19-02-2006, 01:41 PM رقم المشاركة : 1
معلومات العضو
عضو

الصورة الرمزية mito_alex

افتراضي المختصر فى لغه البرمجه باستخدام لغه ال(c)الجزء(2)

الـ Loop أو قل (الجمل التكرارية)

لا يكاد كود يخلو من هذه الجمل فهي توفر علينا مشقة الإعادة.
من هذه الجمل:
For
While
Do while
Foreach

وغيرها ....

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

نفرض بأنك مبرمج ألعاب (Game Programmer) وتستخدم أي لغة برمجة مع مكتبات الـ DirectX.

الآن تريد أن تبرمج بطل هذه اللعبة وهو عبارة عن وحش بأربعة أرجل ويدان وخمسة عيون وأنياب كبيرة وحراشف على الظهر ولسان طويل وأذنان... أصبح (مسخ) :)

المهم ...
هل تعلم كم من الوقت يحتاج المبرمجون لفعل ذلك ... آه ... لنرى .... ماذا ... نعم قرابة الشهرين إلى ستة شهور ..
ولأكن لماذا ... أنا أقول لك لماذا ..

لأن الـ DirectX يقوم برسم أي مجسم بإستخدام المثلثات.. ولك أن تتخيل ما معنى هذا... أعتقد أنك لم تستوعب بعد حجم هذه الكارثة ... لا بأس سأطلب منك تطبيق عملي أريد منك أن تأخذ قطعة من الورق وتقصها إلى قطع صغيرة وتكون بشكل مثلثات .. الآن أريد منك أن تصنع لي مجسم (لكوب)بواسطة هذه القطع... أترى مدى الكارثة.

الآن تخيل بأن بطلنا أقصد مسخنا ... سوف نعمله بهذا النظام فكم عدد الإحداثيات والمتجهات التي سأستخدمها لرسم هذا الجسم ولا تنسى أن المثلثات يجب أن تتوضع بشكل دقيق وإلا فأنه سيتحول إلى لعبة x و o .. :)

ولأكن هل هذا فعلاً ما يحدث .. في الحقيقة لا ... هناك طريقة أخرى ...

عندما أريد عمل المسخ الذي بالأعلا .... فكل ما علي فعله هو أن أرسم الجسم في الـ 3D MAX أو Maya ... وأقوم بتخزين هذا الشكل بصيغة أكس File.

الآن صنعت الشكل وبقي لدي أن أقرأه بواسطة الـ DirectX ليتسنى لي بعد ذلك تحريكه كما أشاء..

الآن لقراءة ملف أكس File بواسطة الـ DirectX سيحتاج بالطريقة العادية لقرابة عشرة أيام أو أكثر قليلاً لكتابة كود يستطيع قراءة هذا الملف الذي يحوي مسخنا .. أي أننا وفرنا على أنفسنا مسافة كبيرة ... هذا جميل أليس كذلك .... لا أعتقد أنك توافقني الرأي وخصوصاً إذا علمنا أن اللعبة الواحدة من الممكن أن تحوي ملايين الأشكال ...

آن آوان الخطوة الأخيرة وهي إستخدام جمل الـ Loop لقراءة الملف .. أتدري كم من الوقت ستحتاج لكتابة كود يقوم بقراءة هذا الملف ... أراهن أنها أقل من خمسة دقائق ...

أليس هذا رائعاً ..

إذن هيا نلقي نظرة على هذا الإختراع الـ Loop

نبدأ بشرح القاعدة الذهبية لجمل الـ Loop (الجمل التكرارية).
لأي جملة من الجمل التكرارية .. قاعدة ثابته إذا لم تلتزم بها فتوقع حدوث دوامة من الأرقام الانهائية أو أخطاء في النتائج ..

أي جمل تكرارية يجب أن تحدد لها ثلاثة أشياء
الأول: أين البداية.
الثاني: أين النهاية.
الثالث: كيفية العرض.

سوف نقوم هنا بأخذ الجملة For وتنطبق فكرة عملها على باقي الجمل...

لنفرض بأني أريد طباعة الأرقام من 1 إلى 200 .
في الحالة العادية سيكون تمثيل الكود كالتالي:
إطبع 1
إطبع 2
إطبع 3
إطبع 4
إطبع 5
إطبع 6
………
………
………
إطبع 200

أعتقد بأن هذا المثال يذكرك بقصاصات الورق في المثال بالأعلا .. أي أن هذا الكلام غير عملي ..

حسناً لنأخذ نفس المثال بالأعلا وهو طباعة الأرقام إلى العدد 200 ولأكن بإستخدام جملة الـ For

For (i=0;i==200;i++)
{
إطبع i
}

الآن لاحظ أننا في الطريقة العادية قمنا بكتابة 200 سطر من الأكواد من أجل طباعة الأرقام إلى 200

أما في الجملة For فقد قمنا بكتابة أربعة أسطر فقط ..

حسناً ما رأيك أن نستخرج القوعدة الذهبية التي تكلمنا عنها بالأعلا من جملة For
البداية هي :0 أي إبدأ طباعة الأرقام من الرقم صفر
النهاية هي : 200أي عندما تصل إلى الرقم 200 توقف
طريقة العرض i++ أي رقم وراء الآخر.

حيث أن i++ هي إختصار لي i = i + 1
أي أن الزيادة ستكون بمقدار واحد.
ومن الممكن إستخدام i— من أجل تحديد عملية النقصان بمقدار واحد.


ما رايك الآن بأن نذهب في العمق قليلاً لنرى كيف يقوم المعالج (Processor) بهذا العمل.

عندما نبدأ بالتكلم عن جمل الـ Loop ففي الحقيقة بأن الكمبيوتر لا يميز بين For أو While او اي من الجمل المذكورة ...

كل ما يهم المعالج هي المسجلات وقد شرحنا في مقالات سابقة عن هذه المسجلات..

فالمسجل الذي يختص بتحديد عدد مرات التكرار هو المسجل CX .. وهذا يعني أننا لو ترجمنا الكود بالأعلا الذي يقوم بي عملية طباعة الأرقام من 1 إلى 200 سيكون كالتالي:
أولا: قم بوضع العدد 200 في المسجل CX والتي تمثل عدد مرات التكرار
ثانياً: قم بوضع العدد 0 في المسجل AX والتي تمثل البداية
ثالثاً: قم بإستدعاء المقاطعة الخاصة بي طباعة الأرقام على الشاشة وهي int 21h

نلاحظ أثناء عمل run بأن االمسجل CX ينقص بمقدار واحد.
والمسجل AX يزيد بمقدار واحد.

وعندما يصبح المسجل CX صفر يتوقف الـ LOOP







التوقيع

إسم الشركة : شبكــــــة المهندس العربى
صاحب الشركة : م/أحمد السيد
خدمات الشركة : | تصميم | حماية | تطوير | إستضافة | حجز نطاقات | دعم فنى | سد ثغرات | دروس و دورات | برامج|منتديات هندسية| كتب | هاكات | اسكريبتات | شروحات برامج |استايلات و قوالب للمواقع |مجلات المواقع|
مقر الشركة : |جمهورية مصر العربية|الاسكندريـــــة|
هاتف الشركة : 0020129851556
بريد الشركة : admin@3rab-eng.com
رابط الشركة :www.3rab-eng.com

رد مع اقتباس
 


مواقع النشر

الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
المختصر فى لغه البرمجه باستخدام لغه ال(c)الجزء(1) mito_alex قسم البرمجة وقواعد البيانات 2 19-07-2006 02:05 PM
المختصر فى لغه البرمجه باستخدام لغه ال(c)الجزء(3) mito_alex قسم البرمجة وقواعد البيانات 2 19-07-2006 02:03 PM
المختصر فى لغه البرمجه باستخدام لغه ال(c)الجزء(4) mito_alex قسم البرمجة وقواعد البيانات 2 19-07-2006 02:02 PM
المختصر فى لغه البرمجه باستخدام لغه ال(c)الجزء(5) mito_alex قسم البرمجة وقواعد البيانات 3 19-07-2006 02:02 PM
فهرس دروس المختصر فى لغه البرمجه باستخدام ال (c) mito_alex قسم البرمجة وقواعد البيانات 2 19-07-2006 01:59 PM

أدوات الموضوع
انواع عرض الموضوع

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