You are on page 1of 6

‫الجمهورية العربية السورية‬

‫‪Syrian Arab Republic‬‬

‫‪Ministry of Higher Education‬‬ ‫وزارة التعـليــم العـالـــــــــي‬

‫‪Syrian Virtual University‬‬ ‫الجامعة االفتراضية السورية‬

‫وظيفة مادة‬
‫‪Programming I‬‬
‫لطالب الجامعة االفتراضية السورية‬
‫‪ITE‬‬

‫البرمجة ‪Programming I 1‬‬ ‫المادة‬


‫تدريب القسمة الصحيحة‬ ‫عنوان الوظيفة‬
‫د ‪.‬زهير دحروج د ‪.‬وسيم صافي م ‪.‬سماح شويكاني‬
‫م ‪.‬مرح حسن م ‪.‬هانئة المالكي‬ ‫المدرسون‬

‫‪30/05/2020‬‬ ‫تاريخ التوزيع‬


‫‪25/06/2020‬‬ ‫تاريخ اإلعادة‬
‫‪Visual Studio .NET‬‬ ‫الموارد المطلوبة‬

‫األهداف‬
‫تهدف الوظيفة إلى‪:‬‬
‫• التدرب على استخدام بنى التحكم وبنى المعطيات التي تم التعرف عليها في المحاضرات‪.‬‬
‫• استخدام األدوات التي تم التعرف عليها في المحاضرات لكتابة برنامج كامل واختباره‪.‬‬
‫نص المسألة‬

‫مالحظة هامة‪ :‬يوجد في آخر نص الوظيفة المساعدة الكافية إلنجاز المطلوب‪.‬‬

‫نريد كتابة برنامج للتدريب على الحساب الذهني السريع لعملية القسمة الصحيحة‪.‬‬

‫يطلب البرنامج من المستخدم فترة االختبار التي يريدها (بالدقائق)‪ ،‬كما في الشكل التالي‪:‬‬

‫‪Max Time (min) :1‬‬

‫ويطلب البرنامج من المستخدم عدد األسئلة التي يريدها كما في الشكل التالي‪:‬‬
‫‪Max Question :15‬‬

‫يقوم البرنامج بتوليد أعداد عشوائية ضمن المجال ]‪ [1..200‬للقاسم ]‪ [1..50‬للمقسوم عليه‬
‫يطلب البرنامج ناتج القسمة ‪ ،‬نظهر السؤال للمستخدم‪ ،‬كما في الشكل التالي‪:‬‬

‫= ‪113 /48‬‬

‫إذا كان الجواب صحيحاً‪،‬‬


‫‪113 /48 = 2‬‬

‫يظهر البرنامج‬

‫‪113 / 48 = 2 Good‬‬

‫إذا كان الجواب خطأ‪،‬‬


‫‪162 /40 = 3‬‬

‫يظهر البرنامج الجواب الصحيح كما يلي ‪:‬‬


‫‪162 / 40 = 4‬‬

‫يكرر البرنامج االختبار مادام مدة االختبار أصغر من المدة المحددة و عدد األسئلة أقل من العدد األعظمي‬
‫المحدد‪.‬‬
‫يقوم البرنامج بإظهار النتيجة كما في الشكل التالي‪:‬‬
-------------------------------
Question Count = 10
Time = 1.10 min
-------------------------------

113 / 48=2 Good


56 / 26=1
50 / 48=1 Good
162 / 40=3
181 / 7=10
126 / 10=12 Good
154 / 12=9
112 / 5=20
159 / 42=5
139 / 49=3

:‫مثال عن كامل التنفيذ‬


Max Time (min) :1
Max Question :15
113 /48 = 2
113 / 48 = 2 Good
56 /26 = 1
56 / 26 = 2
50 /48 = 1
50 / 48 = 1 Good
162 /40 = 3
162 / 40 = 4
181 /7 = 10
181 / 7 = 25
126 /10 = 12
126 / 10 = 12 Good
154 /12 = 9
154 / 12 = 12
112 /5 = 20
112 / 5 = 22
159 /42 = 5
159 / 42 = 3
139 /49 = 3
139 / 49 = 2
-------------------------------
Question Count = 10
Time = 1.10 min
-------------------------------
113 / 48=2 Good
56 / 26=1
50 / 48=1 Good
162 / 40=3
181 / 7=10
126 / 10=12 Good
154 / 12=9
112 / 5=20
159 / 42=5
139 / 49=3
‫ كيفية تجميع كامل اإلظهار في سلسلة حرفية لكتابته عند‬:1 ‫مساعدة‬
:‫نهاية التنفيذ‬
:‫مثالً اإلظهار المطلوب‬
2*5=10
10*9=90
:‫تعليمات الكتابة الالزمة‬
System.Console.WriteLine( 2+"*"+5+"="+(2*5) );
System.Console.WriteLine ( 10+"*"+9+"="+(10*9) );
s ‫ ثم نكتب‬s ‫أو يمكن تجميع الخرج المطلوب في سلسلة حرفية‬
string s="";
s += 2+"*"+5+"="+(2*5) +"\n";
s += 10+"*"+9+"="+(10*9);
System.Console.WriteLine ( s )
(s ‫ إلى السلسلة‬abc ‫ (إضافة‬s +=" abc" ‫ هي‬s = s + "abc" ‫َّر أن‬‫تذك‬
.‫\" سطر جديد‬n" ً‫و تذكر أيضا‬

‫ طريقة توليد أعداد عشوائية‬:2 ‫مساعدة‬

Random rand = new Random();


int nb = rand.Next(10, 50); // nb in [10..50]

:‫ كيفية معرفة زمن التنفيذ‬:3 ‫مساعدة‬


using System;
using System.Diagnostics;

class Calculator {
public static void Main() {

Stopwatch stopwatch = new Stopwatch();


stopwatch.Start();
// type your code here
double time = stopwatch.ElapsedMilliseconds / 1000.0;
System.Console.WriteLine ("Spent Time (Second): "+ (time /1000.));
}
}
‫الجزء األول (البرنامج ‪:)1‬‬

‫المطلوب كتابة برنامج أول بلغة ‪ C#‬يحقق ما سبق اعتمادا ً على التعليمات األساسية الخمسة فقط‬
‫(دون استخدام ‪ for‬مثالً) و بنى المعطيات البسيطة فقط (دون استخدام الجداول)‪ ،‬وبال استخدام‬
‫البرامج الجزئية‪.‬‬

‫الجزء الثاني (البرنامج ‪( :)2‬استخدام الجداول وتعليمة ‪)for‬‬


‫المطلوب كتابة برنامج ثاني بلغة ‪ :C#‬في هذا الجزء عوضاً عن عرض النتيجة بعد كل سؤال‪ ،‬ال يتم إعالم‬
‫المستخدم بصحة أو عدم صحة إجابته بعد كل سؤال وإنما يتم ذلك فقط عند انتهاء االختبار‪ ..‬لهذا الغرض‬
‫ُيطلب كتابة البرنامج بالشكل التالي‪.‬‬
‫‪ -‬يتم طلب الزمن وعدد األسئلة كما في الحالة السابقة‪.‬‬

‫‪Max Time (min) :1‬‬

‫‪Max Question :15‬‬

‫‪ -‬يتم إنشاء جدولين‪ Correct :‬يتم تخزين اإلجابات الصحيحة فيه‪ ،‬و ‪ Answers‬يتم تخزين إجابات‬
‫المستخدم فيه‪ .‬طول الجدولين متساو ويساوي عدد التمارين (المدخلة من قبل المستخدم)‬

‫‪ -‬في كل مرحلة يتم توليد السؤال وعرضه على المستخدم ويتم حفظ جوابه الصحيح في الجدول‬
‫‪ Correct‬نقوم بخزن نص السؤال في جدول سالسل حرفية ‪string[] Qarray : Qarray‬‬
‫ال يظهر البرنامج أي شيء ردا على جواب المستخدم‬
‫(سيقوم البرنامج بعرض األسئلة و اإلجابات الحقاً أيضاً في نهاية االختبار) ‪.‬‬

‫‪ -‬بعد أن يتم عرض السؤال على المستخدم وقراءة اإلجابة من المستخدم‪:‬‬

‫‪139 /49 = 3‬‬

‫‪ -‬يتم تخزين االجابات في الجدول ‪.Answers‬‬


‫‪ -‬بعد نهاية التمارين كلها‪ ،‬يقوم البرنامج بمقارنة الجدولين ‪ Correct‬و ‪ Answers‬لعرض النتائج على‬
‫المستخدم تماما كما في البرنامج السابق‪ .‬ولكننا هنا نأخذ نصوص األسئلة واإلجابات من الجداول‬
‫‪ Qarray‬و‪. Answers‬‬
‫البرنامج ‪ ، )65( 1‬البرنامج ‪. )35( 2‬‬ ‫سلم التصحيح‪:‬‬

‫‪2020-6-26‬‬ ‫موعد التسليم ‪:‬‬

‫مالحظات هامة‬
‫• تقدم الوظيفة بشكل إفرادي واليسمح بتشكيل مجموعات‪.‬‬
‫• التقيد بالمطلوب تماماً ‪.‬‬
‫• عدم استخدام أنماط متحوالت أو مفاهيم لم نأخذها في هذه المادة‪.‬‬
‫• سيكون هنالك محاسبة شديدة على النقل وعند وجود تشابه يحسم عالمات من الطرفين‪.‬‬
‫• االهتمام الكبير بالتعليقات (‪ )Comments‬من أجل شرح عمل كل من المقاطع البرمجية‬
‫(مجموعة تعليمات)‪.‬‬
‫• االهتمام بمظهر االدخال واإلخراج وترتيب النص البرمجي وأناقته‪.‬‬
‫• االلتزام بموعد التسليم‬

‫طريقة التسليم‬
‫• يتم تسليم الوظيفة عبر موقع موودل للجامعة االفتراضية‬
‫(‪ )/https://lms.svuonline.org‬ضمن صفحة المادة وسيتم الحقاً إضافة رابط‬
‫الوظيفة‪.‬‬
‫• يتم تسليم الملفات بالحقة ‪ :cs‬وتوضع الملفات( ‪ 2‬برنامج) ضمن ملف مضغوط يسمى برقم‬
‫الطالب الذاتي‪:‬‬
‫ال‪.22915.rar :‬‬
‫مث ً‬

‫مع متنياتنا ابلتوفيق‬


‫مدرسو املادة‬

You might also like