Professional Documents
Culture Documents
Lec 13
Lec 13
والعدد 6زوجي ويقبل القسمه على 3 فالعدد 7فردي وال يقبل القسمة على 3
مالحظة :2لمعرفه ان كان الرقم nعدد زوجي فيتم استخدام الشرط if mod( n , 2) == 0فان تحقق الشرط
فالرقم nزوجي وبحاله عدم تحقق الشرط فالرقم nهو عدد فردي.
وبالتالي :نستخدم mod( n , 2) == 0لفحص ان العدد زوجي وعدم تحقق الشرط فالعدد nفردي
نستخدم if mod( n , 2) ~= 0لفحص ان العدد فردي وعدم تحقق الشرط فالعدد nزوجي
سؤال : 1اكتب برنامج اليجاد عدد القيم الزوجيه وعدد القيم الفرديه من بين 5اعداد ؟ الحل بطريقتين وكالتالي :
الطريقه :1استخدام جملتي if : ifاألولى لمعرفه ان كان العدد زوجي و ifالثانية لفحص الفردي
-1نحتاج الى استخدام معدادين فرضا iلعدد القيم الزوجية و jلعدد القيم الفردية
-2قراءه العدد
-3اذا كان العدد زوجي فيزداد معداد الزوجي iبواحد
-4اذا كان العدد فردي فيزداد معداد jبواحد
-5تكرار الخطوات 2و 3و 4لحين االنتهاء من قراءه وفحص 5قيم عندها يتم طباعه المعدادين iو j
;i=0 Runتصفير معداد القيم الزوجيه i=0
;j=0 تصفير معداد القيم الفرديه j=0
for k = 1 : 5 No. = 6 i=1
;)' = a= input (' No. No. = 8 i=2
if mod (a , 2) == 0 No. = 5 j=1
; i = i +1 No. = 12 i=3
end No. = 9 j=2
if mod (a , 2) ~= 0
; j = j +1
3 2
end
end
;) ] disp( [ i j
الطريقه :2استخدام جمله شرط واحده if … elseفان لم يكن العدد زوجي فاكيد يكون العدد فردي
-1نحتاج الى استخدام معدادين فرضا iلعدد القيم الزوجية و jلعدد القيم الفردية
-2قراءه العدد
-3اذا كان العدد زوجي فيزداد معداد الزوجي iبواحد
-4بحاله عدم تحقق الشرط أعاله فنستدل على ان العدد فردي فيزداد معداد jبواحد
-5االنتقال الى خطوه 2لحين قراءه 5قيم
-6بعد انتهاء ادخال 5قيم يتم طباعه المعدادين iو j
;i=0 Runتصفير معداد الزوجي i=0
;j=0 تصفير معداد الفردي j= 0
for k = 1 : 5 No. = 6 i=1
;)' = a= input (' No. No. = 8 i=2
if mod (a , 2) == 0 No. = 5 j=1
; i = i +1 No. = 12 i=3
else No. = 9 j=2
;j=j+1
end
end 3 2
;) ] disp( [ i j
سؤال : 2اكتب برنامج اليجاد عدد القيم الزوجيه وعدد القيم التي تقبل القسمه على 5من بين 7اعداد ؟
نالحظ ان العدد 11و 21كالهما زوجي ويقبل القسمه على 5فيزداد كل من المعداد eو d
;e=0 Runتصفير معداد القيم الزوجيه e=0
;d=0 تصفير معداد مضاعفات الرقم 5 d=0
for k = 1 : 7
;)' = a= input (' No. No. = 6 e=1
if mod (a , 2) == 0 No. = 8 e=2
; e = e +1 No. = 10 e=3
d=1
end
if mod (a , 5) == 0 No. = 12 e=4
; d = d +1 No. = 5 d=2
No. = 7
end
end No. = 20 e=5
;) ] disp( [ e d d=3
5 3
:Quizهل باإلمكان حل المساله أعاله باستخدام الشرط if… else؟ ( نعم /ال ) ؟ وضح السبب ؟
مالحظه :3كيف يتم إيجاد مجموع تراكمي لرقم معلوم أي جمع الرقم مع نفسه عده مرات (تستخدم في حاله الضرب)
متغير = 0 -1يتم تصفير المجموع (يوضع قبل الحلقه)
s = s + constant number -2متغير = متغير +القيمة المطلوب اضافتها
-3تكرار خطوه 2لحين جمع كل القيم (أي ان خطوه 2يتم وضعها داخل الحلقه ) for
مثال :1استخدام المجموع التراكمي لعمليه الضرب :3*4وذلك بجمع العدد 4مع نفسه ل 3مرات s = 4 + 4 + 4
;s=0 s=0 ;s = 0 RUN
s = s + 4 ; s = 0 + 4 = 4 for i =1 : 3
s=s+4; s=4+4=8 s = s + 4 ; 12
s = s + 4 ; s = 8 + 4 = 12 end
; )disp(s
حل اخر للمسأله أعاله 3 * 4وذلك بجمع العدد 3مع نفسه ل 4مرات s = 3 + 3 + 3 + 3
;s=0 s=0 ;s = 0 RUN
s = s + 3 ; s = 0 + 3 = 3 for i =1 : 4
s=s+3; s=3+3=6 s = s + 3 ; 12
s = s + 3 ; s = 6 + 3 = 9 end
; )s = s + 3 ; s = 9 + 3 = 12 disp(s
مالحظه : 4لجمع أي مجموعه من القيم (جمع درجات ...جمع قيم موجبه ...جمع قيم زوجيه ...الخ)
لحل هكذا نوع من المسائل نحتاج :
-1تصفير المجموع قبل الحلقه ( نفرض المجموع ) s = 0
-2ادخال الرقم ( نفرضه ) x
s=s+x -3اضافه xالى المجموع التراكمي : s
-4تكرار خطوة 2و 3بقدر عدد القيم المطلوب جمعها
-5طباعه المجموع بعد انتهاء الحلقه
s=7+9+5+8 مثال :2استخدام المجموع التراكمي لجمع القيم 8 5 9 7 = x :بمعنى
;s=0 s=0
s=s+7; s=0+7=7
s = s + 9 ; s = 7 + 9 = 16
s = s + 5 ; s = 16 + 5 = 21
s=s+8 s = 21 + 8 = 29
مثال :3جد مجموع 5درجات والمعدل ( الدرجات ) 6 8 5 9 7 :
-1تصفير المجموع قبل الحلقه ( نفرض المجموع ) s
-2تكرار خطوة 3و 4بقدر عدد الدرجات
-3ادخال درجه ( نفرض الدرجة ) x
-4اضافه الدرجه على المجموع التراكميs = s + x :
-5طباعه المجموع واحتساب المعدل وطباعته بعد انتهاء الحلقه
;s = 0 Run Run
for i =1 : 5 7 5
;)' = x = input (' mark 9 8
;s=s+x 5 6
end 8 4
; ) ] disp([ s s/5 6 9
35 7 32 6.4