العودة   منتديات طلاب الجامعة العربية المفتوحة > منتدى كليات الجامعة العربية المفتوحة > منتدى تقنية المعلومات والحاسوب > M180=M211

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

قديم 12-11-2009, 01:23 PM   #1
شمس لاتغيب شمس لاتغيب غير متصل
طالب فضي
 
الصورة الرمزية شمس لاتغيب

 











ناجح Question 1 & 2 & 3 - M211 - TMA - 2010..









Question 1















Question 2











Question 3










ملف الواجب في المرفقات ..

الملفات المرفقة
نوع الملف: pdf M211_TMA_Fall_2010.pdf‏ (87.7 كيلوبايت, المشاهدات 74)

التعديل الأخير تم بواسطة شمس لاتغيب ; 28-11-2009 الساعة 04:44 PM سبب آخر: إضافة روابط أسئلة الواجب =)
شمس لاتغيب غير متصل  
قديم 16-11-2009, 08:25 AM   #2
لولو2007 لولو2007 غير متصل
طالب فعال
 
الصورة الرمزية لولو2007

 










افتراضي رد: Question 1 - M211 - TMA ..


السلام عليكم الله يعطكي العافيه علي المجهود
يلا نبداء نحل الواجب ونخلص منو لانو طويللللللل اول مره شوف هيك واجب بهل الطول الله يسامحهونd:
طيب بما اني هلا بديت بالواجب عندي سوال هلا علي اي برنامج رح نحل الاسئله ازا في برنامج رح نحل عليه ..؟؟من وين نحصل عليه ..؟ ازا كان من النت...؟؟؟ ازا ممكن بدي الرابط مباشر ضروري حتي بداء حل ..!!
كمان ازا ممكن ترجمه وضحه للسوال الاول

وشكراا تحياتي واحترمي
لولو2007 غير متصل  
قديم 16-11-2009, 01:30 PM   #3
شمس لاتغيب شمس لاتغيب غير متصل
طالب فضي
 
الصورة الرمزية شمس لاتغيب

 











افتراضي رد: Question 1 - M211 - TMA ..



مافي برنامج نشتغل عليه ..

هو أساسا ما طلب منا نعمل الواجب على برنامج ..

//

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




شمس لاتغيب غير متصل  
قديم 16-11-2009, 08:36 PM   #4
لولو2007 لولو2007 غير متصل
طالب فعال
 
الصورة الرمزية لولو2007

 










افتراضي رد: Question 1 - M211 - TMA ..


يعني بدو ندخل الكود بالبرنامج ونشوف الناتج d:
شو هوه البرنامج وكم تطلع النتيجه تبعت الكود هاد
S:

التعديل الأخير تم بواسطة لولو2007 ; 16-11-2009 الساعة 08:37 PM
لولو2007 غير متصل  
قديم 16-11-2009, 11:55 PM   #5
Learner Learner غير متصل
طالب فضي
افتراضي رد: Question 1 - M211 - TMA ..


يعطيك العافية ياشمس ، جزاك الله خير على التنظيم

بالنسبة للمطلوب في السؤال هو حساب عدد الـ operations اللي راح تتنفذ في الكود
المقصود بالأوبريشنز هو هذي الإشارات:
<<
>>
=
==
+
++
-
--
*
/
%
وجميع عمليات المقارنات

هذي اللي في بالي الحين

وطبعاً بحكم ان الكود يحتوي على لوب ، فمانقدر نحدد بالضبط كم عدد العمليات ولكن نقدر نسوي لها معادلة رياضية
مثلاً لو قلنا عندنا هذا اللوب البسيط:
كود PHP:
for (int i 0ni++)
{
coat << << endl;

عندنا أول أوبريشن موجودة في int i = 0 وهذي راح يتم تنفيذها على أي حال وبدون أي شرط
وبعدها المقارنة i < n ، هذي ثاني أوبريشن وبرضو راح ينفذها البرنامج إجباري

يعني الآن عندنا عمليتين راح يتم تنفيذهم على أي حال (ثابتين يعني)

بعدها لو كان الشرط صحيح ، راح يتم تنفيذ 4 أوامر:
>> اللي بعد كوت
>> اللي بعد i
i++
وأخيراً بيرجع ينفذ المقارنة

بعدين لو كان الشرط صحيح مرة ثانية راح يتم تنفيذ الأربع عمليات مرة ثانية

يعني النتيجة الحين هي أمرين ثابتين ، وأربع أوامر مرتبطين بالمتغير n
فراح تكون المعادلة اللي تعطينا عدد الأوبريشن لهذا الكود هي:
2 + 4n

لو افترضنا ان n قيمتها 1 ، راح يتم تنفيذ اللوب مرة وحدة ، يعني بتكون عدد الأوامر 2 (الثابتة) + 4 (عدد الأوامر اللي يتم تنفيذهم في كل لوب)
ولو كانت n قيمتها 2 راح يتم تنفيذ اللوب مرتين ، فبيكون عدد الأوامر 2 (الثابتة) + 4*2 (عدد الأوامر اللي يتم تنفيذهم في كل لوب ضرب 2 عدد مرات تكرار اللوب)

وبالنسبة للـ big-O notation هذا يرتبط في نفس الفكرة ، ولكنه عبارة عن تبسيط المعادلة اللي نطلعها.

هذا اقتباس من صفحة الـ big-O notation في الويكيبيديا بيوضح الفكرة:
اقتباس:
For example, let f(x) = 6x4 − 2x3 + 5, and suppose we wish to simplify this function, using O notation, to describe its growth rate as x approaches infinity. This function is the sum of three terms: 6x4, −2x3, and 5. Of these three terms, the one with the highest growth rate is the one with the largest exponent as a function of x, namely 6x4. Now one may apply the second rule: 6x4 is a product of 6 and x4 in which the first factor does not depend on x. Omitting this factor results in the simplified form x4. Thus, we say that f(x) is a big-oh of (x4) or mathematically we can write f(x) = O(x4).
وعموماً اللي يقرأ الكتاب من صفحة 8 إلى 15 راح يفهم المطلوب ان شاء الله

التعديل الأخير تم بواسطة Learner ; 16-11-2009 الساعة 11:56 PM
Learner غير متصل  
قديم 17-11-2009, 07:30 AM   #6
شمس لاتغيب شمس لاتغيب غير متصل
طالب فضي
 
الصورة الرمزية شمس لاتغيب

 











ناجح رد: Question 1 - M211 - TMA ..


اقتباس:
المشاركة الأصلية كتبت بواسطة Learner مشاهدة المشاركة
يعطيك العافية ياشمس ، جزاك الله خير على التنظيم
الله يعافيك يارب ..

اقتباس:
المشاركة الأصلية كتبت بواسطة Learner مشاهدة المشاركة
بالنسبة للمطلوب في السؤال هو حساب عدد الـ operations اللي راح تتنفذ في الكود
المقصود بالأوبريشنز هو هذي الإشارات:
<<
>>
=
==
+
++
-
--
*
/
%
وجميع عمليات المقارنات

هذي اللي في بالي الحين

وطبعاً بحكم ان الكود يحتوي على لوب ، فمانقدر نحدد بالضبط كم عدد العمليات ولكن نقدر نسوي لها معادلة رياضية
مثلاً لو قلنا عندنا هذا اللوب البسيط:
كود PHP:
for (int i 0ni++)
{
coat << << endl;

عندنا أول أوبريشن موجودة في int i = 0 وهذي راح يتم تنفيذها على أي حال وبدون أي شرط
وبعدها المقارنة i < n ، هذي ثاني أوبريشن وبرضو راح ينفذها البرنامج إجباري

يعني الآن عندنا عمليتين راح يتم تنفيذهم على أي حال (ثابتين يعني)

بعدها لو كان الشرط صحيح ، راح يتم تنفيذ 4 أوامر:
>> اللي بعد كوت
>> اللي بعد i
i++
وأخيراً بيرجع ينفذ المقارنة

بعدين لو كان الشرط صحيح مرة ثانية راح يتم تنفيذ الأربع عمليات مرة ثانية

يعني النتيجة الحين هي أمرين ثابتين ، وأربع أوامر مرتبطين بالمتغير n
فراح تكون المعادلة اللي تعطينا عدد الأوبريشن لهذا الكود هي:
2 + 4n

لو افترضنا ان n قيمتها 1 ، راح يتم تنفيذ اللوب مرة وحدة ، يعني بتكون عدد الأوامر 2 (الثابتة) + 4 (عدد الأوامر اللي يتم تنفيذهم في كل لوب)
ولو كانت n قيمتها 2 راح يتم تنفيذ اللوب مرتين ، فبيكون عدد الأوامر 2 (الثابتة) + 4*2 (عدد الأوامر اللي يتم تنفيذهم في كل لوب ضرب 2 عدد مرات تكرار اللوب)
في مثال في الكتاب ما دخل مخي إلى الآن .. :s

بس شرحك سهَّل المهمة شوي ..

بشوف الأمثلة كمان مرة .. و أرجعلكم ..


اقتباس:
المشاركة الأصلية كتبت بواسطة Learner مشاهدة المشاركة
وبالنسبة للـ big-O notation هذا يرتبط في نفس الفكرة ، ولكنه عبارة عن تبسيط المعادلة اللي نطلعها.

هذا اقتباس من صفحة الـ big-O notation في الويكيبيديا بيوضح الفكرة:


وعموماً اللي يقرأ الكتاب من صفحة 8 إلى 15 راح يفهم المطلوب ان شاء الله
يعطيك العافية يارب ..

في كمان ملف بالمرفقات .. ان شااء الله رح يساعدكم في فهم السؤال ..

الملفات المرفقة
نوع الملف: doc O Notation.doc‏ (44.5 كيلوبايت, المشاهدات 77)

التعديل الأخير تم بواسطة شمس لاتغيب ; 17-11-2009 الساعة 09:53 AM
شمس لاتغيب غير متصل  
قديم 17-11-2009, 12:10 PM   #7
شمس لاتغيب شمس لاتغيب غير متصل
طالب فضي
 
الصورة الرمزية شمس لاتغيب

 











افتراضي رد: Question 1 - M211 - TMA ..


اقتباس:
المشاركة الأصلية كتبت بواسطة Learner مشاهدة المشاركة
يعطيك العافية ياشمس ، جزاك الله خير على التنظيم

بالنسبة للمطلوب في السؤال هو حساب عدد الـ operations اللي راح تتنفذ في الكود
المقصود بالأوبريشنز هو هذي الإشارات:
<<
>>
=
==
+
++
-
--
*
/
%
وجميع عمليات المقارنات

هذي اللي في بالي الحين

وطبعاً بحكم ان الكود يحتوي على لوب ، فمانقدر نحدد بالضبط كم عدد العمليات ولكن نقدر نسوي لها معادلة رياضية
مثلاً لو قلنا عندنا هذا اللوب البسيط:
كود PHP:
for (int i 0ni++)
{
coat << << endl;

عندنا أول أوبريشن موجودة في int i = 0 وهذي راح يتم تنفيذها على أي حال وبدون أي شرط
وبعدها المقارنة i < n ، هذي ثاني أوبريشن وبرضو راح ينفذها البرنامج إجباري

يعني الآن عندنا عمليتين راح يتم تنفيذهم على أي حال (ثابتين يعني)

بعدها لو كان الشرط صحيح ، راح يتم تنفيذ 4 أوامر:
>> اللي بعد كوت
>> اللي بعد i
i++
وأخيراً بيرجع ينفذ المقارنة

بعدين لو كان الشرط صحيح مرة ثانية راح يتم تنفيذ الأربع عمليات مرة ثانية

يعني النتيجة الحين هي أمرين ثابتين ، وأربع أوامر مرتبطين بالمتغير n
فراح تكون المعادلة اللي تعطينا عدد الأوبريشن لهذا الكود هي:
2 + 4n

لو افترضنا ان n قيمتها 1 ، راح يتم تنفيذ اللوب مرة وحدة ، يعني بتكون عدد الأوامر 2 (الثابتة) + 4 (عدد الأوامر اللي يتم تنفيذهم في كل لوب)
ولو كانت n قيمتها 2 راح يتم تنفيذ اللوب مرتين ، فبيكون عدد الأوامر 2 (الثابتة) + 4*2 (عدد الأوامر اللي يتم تنفيذهم في كل لوب ضرب 2 عدد مرات تكرار اللوب)



مو احنا عندنا لوبين داخلين في بعض ..

كود PHP:
count 0;


for (
1<= ni++)

for (
1<= ij++)



count++; 

معاتها لازم نضرب عدد الـ Operetions الموجودة في اللوب الأول × عدد الـ Operetions الموجودة في اللوب الثاني ..



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

شمس لاتغيب غير متصل  
قديم 22-11-2009, 09:59 AM   #8
أم هادي أم هادي غير متصل
طــالب

 











افتراضي رد: Question 1 - M211 - TMA ..


اقتباس:
المشاركة الأصلية كتبت بواسطة Learner مشاهدة المشاركة
يعطيك العافية ياشمس ، جزاك الله خير على التنظيم

بالنسبة للمطلوب في السؤال هو حساب عدد الـ operations اللي راح تتنفذ في الكود
المقصود بالأوبريشنز هو هذي الإشارات:
<<
>>
=
==
+
++
-
--
*
/
%
وجميع عمليات المقارنات

هذي اللي في بالي الحين

وطبعاً بحكم ان الكود يحتوي على لوب ، فمانقدر نحدد بالضبط كم عدد العمليات ولكن نقدر نسوي لها معادلة رياضية
مثلاً لو قلنا عندنا هذا اللوب البسيط:
كود PHP:
for (int i 0ni++)
{
coat << << endl;

عندنا أول أوبريشن موجودة في int i = 0 وهذي راح يتم تنفيذها على أي حال وبدون أي شرط
وبعدها المقارنة i < n ، هذي ثاني أوبريشن وبرضو راح ينفذها البرنامج إجباري

يعني الآن عندنا عمليتين راح يتم تنفيذهم على أي حال (ثابتين يعني)

بعدها لو كان الشرط صحيح ، راح يتم تنفيذ 4 أوامر:
>> اللي بعد كوت
>> اللي بعد i
i++
وأخيراً بيرجع ينفذ المقارنة

بعدين لو كان الشرط صحيح مرة ثانية راح يتم تنفيذ الأربع عمليات مرة ثانية

يعني النتيجة الحين هي أمرين ثابتين ، وأربع أوامر مرتبطين بالمتغير n
فراح تكون المعادلة اللي تعطينا عدد الأوبريشن لهذا الكود هي:
2 + 4n

لو افترضنا ان n قيمتها 1 ، راح يتم تنفيذ اللوب مرة وحدة ، يعني بتكون عدد الأوامر 2 (الثابتة) + 4 (عدد الأوامر اللي يتم تنفيذهم في كل لوب)
ولو كانت n قيمتها 2 راح يتم تنفيذ اللوب مرتين ، فبيكون عدد الأوامر 2 (الثابتة) + 4*2 (عدد الأوامر اللي يتم تنفيذهم في كل لوب ضرب 2 عدد مرات تكرار اللوب)

وبالنسبة للـ big-O notation هذا يرتبط في نفس الفكرة ، ولكنه عبارة عن تبسيط المعادلة اللي نطلعها.

هذا اقتباس من صفحة الـ big-O notation في الويكيبيديا بيوضح الفكرة:


وعموماً اللي يقرأ الكتاب من صفحة 8 إلى 15 راح يفهم المطلوب ان شاء الله


شكرا على التوضيح بس عندي سؤال
كيف جت 4n ؟؟؟؟؟؟؟؟؟؟؟؟؟
محتاجة توضيح بليزززززززززززز
أم هادي غير متصل  
قديم 23-11-2009, 01:57 AM   #9
Learner Learner غير متصل
طالب فضي
افتراضي رد: Question 1 - M211 - TMA ..


اقتباس:
المشاركة الأصلية كتبت بواسطة شمس لاتغيب مشاهدة المشاركة





مو احنا عندنا لوبين داخلين في بعض ..

كود PHP:
count 0;


for (
1<= ni++)

for (
1<= ij++)



count++; 

معاتها لازم نضرب عدد الـ Operetions الموجودة في اللوب الأول × عدد الـ Operetions الموجودة في اللوب الثاني ..



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

السؤال رياضي بحت ، الله يعين اللي مادرسها أو مايحبها لأن الحل معقد شوي ويحتاج لشخص فاهم البرمجة والرياضيات في نفس الوقت
ومثل ماقلتي الكتاب ماتعمق في شرح هالنقطة ، بس عطانا مثال بسيط جداً وكان مركز على الـ big-o أكثر من عملية إيجاد المعادلة نفسها

المعادلة النهائية طلعت معي بهالشكل:
كود:
f(n) = (  ( 3n^2 + 11n ) / 2   ) + 3

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

إن شاء الله لي عودة أحاول أوضح طريقتي اللي وصلت فيها للمعادلة إذا أحد مهتم
اقتباس:
المشاركة الأصلية كتبت بواسطة أم هادي مشاهدة المشاركة
شكرا على التوضيح بس عندي سؤال
كيف جت 4n ؟؟؟؟؟؟؟؟؟؟؟؟؟
محتاجة توضيح بليزززززززززززز
العفو أختي
الـ 4n طال عمرك جت من هذا الكلام:
اقتباس:
بعدها لو كان الشرط صحيح ، راح يتم تنفيذ 4 أوامر:
>> اللي بعد كوت
>> اللي بعد i
i++
وأخيراً بيرجع ينفذ المقارنة i < n
بمعنى ثاني انه بحسب قيمة n راح يتم تكرار أربع عمليات داخل اللوب
يعني لو كانت n تساوي 1 راح يتم تنفيذ الأربع عمليات مرة وحدة
ولو كانت n تساوي 2 راح يتم تنفيذ الأربع عمليات مرتين (يعني 4*2 وتذكري ان ال2 هي قيمة n)
وهكذا

مشكلتي في الرياضيات اني أعرف أفهمها بس مادري شلون أشرح اللي فهمته
لو ماوضحت لك الفكرة قولي لاتستحين ..
عشان أوضحها أنا أو أي حد تاني بطريقة ثانية



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

التعديل الأخير تم بواسطة Learner ; 23-11-2009 الساعة 02:02 AM
Learner غير متصل  
قديم 23-11-2009, 06:23 AM   #10
أم هادي أم هادي غير متصل
طــالب

 











افتراضي رد: Question 1 - M211 - TMA ..


العفو أختي
الـ 4n طال عمرك جت من هذا الكلام:


بمعنى ثاني انه بحسب قيمة n راح يتم تكرار أربع عمليات داخل اللوب
يعني لو كانت n تساوي 1 راح يتم تنفيذ الأربع عمليات مرة وحدة
ولو كانت n تساوي 2 راح يتم تنفيذ الأربع عمليات مرتين (يعني 4*2 وتذكري ان ال2 هي قيمة n)
وهكذا

مشكلتي في الرياضيات اني أعرف أفهمها بس مادري شلون أشرح اللي فهمته
لو ماوضحت لك الفكرة قولي لاتستحين ..
عشان أوضحها أنا أو أي حد تاني بطريقة ثانية



شكرا أخ Learner وضحت الفكرة
أم هادي غير متصل  
قديم 24-11-2009, 12:27 AM   #11
meryl meryl غير متصل
طالب فعال
 
الصورة الرمزية meryl

 











افتراضي رد: Question 1 - M211 - TMA ..


أولا أبدي اعجابي بالواجب الخرافي...اللي قضى على جميع واجبات المواد اللي مرت علي للآن...من ام تي 262...إلى ام 301...ما صارت ماده اختياريه...صارت أم التخصص

جزاك الله خير ليرنر على توضيح فقرة a من السؤال الأول..و أشكر شمس لا تغيب على إشرافها على الموضوع...

استناداً على شرح اخ ليرنر...اعطانا مثال من لوب مكون من واحد فور...فيهم 2 عمليات ثوابت...و نحنا عندنا لوبين فور...يصير عندنا اربع ثوابت...

count = count + 1 صاروا خطوتين اثنين...و عملية العوده للوب و المقارنه...تحسب بواحد في كل مره يرجع يقارن...صاروا ثلاث خطوات...يعني 3n ^ 2 + 4

بس عندي ملاحظه...لوب ال j داخل في لوب ال i...حسب ما درست في itc250...في حال تحقق ما بداخل لوب ال j ...يصير يطبق فقط لوب ال i الى ان ينتهي البرنامج...يعني مو في كل مره نطبق اللوبين سوا...ولا كيف


اقتباس:
f(n) = ( ( 3n^2 + 11n ) / 2 ) + 3
يا ريت اخ ليرنر توضحلنا كيف جت 11 و ليش قسمت على اثنين الله يوفقك....و ايش نعمل بالنوت تبع السيجما دي...عسى ما نرجع لكتب الام اس تي
meryl غير متصل  
قديم 24-11-2009, 02:27 AM   #12
Learner Learner غير متصل
طالب فضي
افتراضي رد: Question 1 - M211 - TMA ..


/
\
خخخخخخخخ والله من جد المادة متعمقة بزيادة
بس مايمنع إني استفدت منها كثير والحمدلله ماندمت على تسجيلها مع إني غير مطالب بدراسة المواد الاختيارية

طيب بخصوص هالسؤال انسوا كل اللي قلته قبل
وهذا شرح جديد حاولت أرتب فيه المعلومات أكثر ..

عشان نعرف كم عدد العمليات اللي يتم تنفيذها في داخل لوب راح نمشي في ثلاثة خطوات ..
وراح أشرح الثلاث خطوات لحالتين (اللوبات العادية واللوبات المتداخلة)

أولاً - اللوب العادي:


نفترض ان عندنا هذا الكود:
كود PHP:
for (i++)
{
count++;




الخطوة الأولى: تحديد عدد مرات تكرار اللوب (iterations) ، وهذي بسيطة جداً

اللوب هذا راح يتكرر بحسب قيمة n ، يعني بيتنفذ n مرة
على حسب قيمة n راح يكون هو عدد مرات التكرار

ونفس الشي ينطبق لو كان اللوب بهذا الشكل:
كود PHP:
for ( <= i++) 
أيضاً راح يتم تكرار اللوب بحسب قيمة n
السبب طبعاً منطقي ، اللي عارف طريقة عمل for راح يفهم ويقتنع ليه اللوب يتكرر بحسب قيمة n في المثالين السابقين





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

في الـ for loops دائماً فيه أمرين راح يتم تنفيذهم بدون أي قيود
الأمرين هم أمر إنشاء متغير التحكم باللوب (مثل int i = 0) والثاني هو الشرط الخاص باللوب
دائماً سيتم تنفيذهم ، بمعنى ان أقل عمليات سيتم تنفيذها في كود اللوب هو 2

فإذا كان عندنا هذا الكود:
كود PHP:
for ( 0ni++)
{
count++;

هنا راح يتم تنفيذ عمليتين على الأقل ، وهي:
كود:
i = 0;
i < n
بالإضافة إلى 3 عمليات مرتبطة بالتكرار ، وهي:
كود:
sum++
i++
i<n



الخطوة الثالثة: كتابة المعادلة الخاصة بإجمالي عدد العمليات

طيب الحين احنا ذكرنا في الخطوة الأولى بأن هذا اللوب سيتكرر بمقدار n
وبما ان الكود يحتوي على 3 عمليات مرتبطة بعدد مرات تكرار اللوب (n) ، سيكون عدد العمليات المرتبطة بتكرار اللوب هو 3*n
ولدينا أيضاً عمليتين ثابتين سيتم تنفيذهم على أية حال.

فسيكون إجمالي عدد العمليات التي سيتم تنفيذها في الكود هو:
2 (العمليتين اللي يتم تنفيذهم في البداية) + 3 (العمليات المرتبطة بالتكرار) * n (عدد مرات التكرار)
يعني:
كود:
f(n) = 3n + 2




ثانياً - اللوبات المتداخلة (nested loops):


مثال:
كود PHP:
for (0i++)
{
for ( 
0j++)
{
++
count;
}




الخطوة الأولى: حساب عدد مرات التكرار

هنا عندنا لوبين متداخلين ، وكل لوب راح يتكرر بقيمة مختلفة عن الثاني ..
اللوب الخارجي راح يتكرر بشكل عادي ، يعني بحسب قيمة n
واللوب الداخلي راح تكون معادلة تكراره هي n ضرب n ، أو باختصار n^2

لو كان شرط اللوب الداخلي يحتوي على l مثلاً بدل n ..
عدد مرات تكرار اللوب الداخلي راح يكون l * n
يعني نضرب عدد مرات تكرار اللوب الداخلي (كأنه لوب عادي) في عدد مرات تكرار اللوب الخارجي





الخطوة الثانية: حساب عدد العمليات في كل دورة تكرار


سيتم تنفيذ عمليتين على الأقل في هذا الكود:
كود:
i = 0
i < n
بعدها نحسب عدد العمليات المرتبطة بتكرار اللوب الخارجي ، وعددها 4:
كود:
j = 0
j < n
i++
i < n
يمكن بعضكم يستغرب من إضافتي لأمرين يتبعون للوب الداخلي من ضمن الأوامر السابقة
السبب هو ان هذي الأمرين يتم تنفيذها متى ماتم الدخول في أوامر اللوب الخارجي وبغض النظر عن شرط اللوب الداخلي ، يعني متى ماتم تكرار اللوب الخارجي ; سيتم تنفيذ هذي الأمرين مباشرة ، عشان كذا اعتبرتها من ضمن عمليات اللوب الخارجي

فالآن لدينا عمليتين ثابتة + 4 عمليات مرتبطة بتكرار اللوب الخارجي

سننتقل للوب الداخلي لنحسب عدد العمليات الخاصة به ، والعمليات عددها 3 وهي:
كود:
count++
j++
j < n
طبعاً ما أضفت أمر إنشاء المتغير ولا الشرط الخاصين باللوب الداخلي لأنه مثل ماذكرت قبل شوي : الأمرين هذي سيتم تنفيذها بالاعتماد على تكرار اللوب الخارجي وليس الداخلي

فالنتيجة الآن:
عمليتين ثابتتين + 4 عمليات مرتبطة باللوب الخارجي + 3 عمليات مرتبطة باللوب الداخلي




الخطوة الثالثة: كتابة المعادلة

عمليتين ثابتة يعني : 2

4 عمليات مرتبطة باللوب الخارجي يعني:
= 4 * عدد مرات تكرار اللوب الخارجي
= 4 * n
= 4n

3 عمليات مرتبطة باللوب الداخلي يعني:
= 3 * عدد مرات تكرار اللوب الداخلي
= 3 * n^2
= 3n^2

الآن نجمع المعادلات مع بعض:
3n^2 + 4n + 2

وهذي هي (f(n





ان شاء الله يكون الشرح أوضح الحين

بالنسبة للسيجما ياميرل ..
لا أبشرك مايحتاج ترجعين لكتب الـ MST

مشكلة اللوب الداخلي انه تكراره يعتمد على متغير ثاني غير n
واحنا مانبغا المعادلة النهائية تحتوي على متغير ثاني غير n

فعشان كذا عطانا التلميحة حقت السيجما

بشكل سريع ..
عدد مرات تكرار اللوب الداخلي راح يكون عبارة عن هذي السلسلة ..
كود:
1 + 2 + 3 + ... + N-2 + N-1 + N
ومثل مادرسنا في الإم اس تي
هذي السلسلة يمكن اختصارها بهذي المعادلة:
كود:
n(n+1)   /  2

or

(n^2+n) / 2
فهذي المعادلة تعتبر هي عدد مرات تكرار اللوب الداخلي

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

وضربت عدد عمليات اللوب الخارجي في عدد مرات تكراره

وحسبت العمليات الثابتة اللي راح تتنفذ في الكود

بعدين جمعت الثلاث نتائج اللي طلعت معي ، ونتيجتها هي هذي المعادلة:
كود:
f(n) = ( ( 3n^2 + 11n ) / 2 ) + 3
وان شاء الله اني متأكد من الحل النهائي لأني سويت trace table للكود وجربت أول أربع قيم لـ n وطلعت نتائجها متطابقة مع نتائج المعادلة هذي

إذا برضو ماوضحت الفكرة علموني عشان أطبق الكلام على الفقرة الأولى ..
وعموماً إذا أحد متفرغ شوي ويقدر يسوي trace table للأكواد راح يفيد الجميع (للأسف اللي سويتها ماحفظتها )
Learner غير متصل  
قديم 24-11-2009, 02:34 PM   #13
أم هادي أم هادي غير متصل
طــالب

 











افتراضي رد: Question 1 - M211 - TMA ..


شكرا Learner على التوضيح و الشرح الله يعطيك العافية
بس عندي سؤال
في مسألة الواجب
count = 0;
for (i = 1; i <= n; i++)
for (j = 1; j <= i; j++)
count++;

سؤالي هل count =0 نحسبها مع المعادلة ؟؟؟
أم هادي غير متصل  
قديم 24-11-2009, 06:03 PM   #14
Learner Learner غير متصل
طالب فضي
افتراضي رد: Question 1 - M211 - TMA ..


هلا أم هادي ..
أكيد راح نحسبها لأنها تحتوي على =
وفي المعادلة راح تكون مثلها مثل i = 1 و i<=n
يعني من ضمن الثوابت اللي راح تتنفذ مرة وحدة
Learner غير متصل  
موضوع مغلق

مواقع النشر (المفضلة)

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

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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


الساعة الآن 07:38 AM.


Powered by vBulletin® Version 3.8.1, Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. TranZ By Almuhajir
جميع المواضيع والمشاركات تعبر عن وجهة نظر أصحابها
ولا تعبر باي شكل من الاشكال عن وجهة نظر منتديات AOUA
تصميم وتطوير : التكنولوجيا الماسية