delphi4arab منتديات دلفي للعرب
تمرين - الأخطاء الشائعة - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : تمارين دلفي وحلول (https://delphi4arab.net/forum/forumdisplay.php?fid=16)
+--- الموضوع : تمرين - الأخطاء الشائعة (/showthread.php?tid=2640)

الصفحات: 1 2 3 4


تمرين - الأخطاء الشائعة - bassem_43 - 25-12-2013

B.M.AbdelAziZ كتب :بارك الله فيك على التعقيب، ماكنت افكر فيه هو عدد صحيح موجب الذي نفسه هو عدد طبيعي وعندما كتبت اخطأت وكتبت عدد طبيعي موجب، تحدث معي هذه الاخطاء غالبا عندما اكتب بتسرع وانا اعمل فكثيرا تجد كلمة بدل اخرى أو حرف بدلا حرف أخر...

لا عليك يا استادنا عادي
اصلا الاجابة صحيحة عندما كتبت بالفرنسية
un nombre premier est un entier naturel qui admet exactement deux diviseurs distincts entiers et positifs.
انت اخطات سهوا في الترجمة
على كل حال بارك الله فيك على المعلومات


تمرين - الأخطاء الشائعة - S.FATEH - 26-12-2013

تمرين اكتب دالة تتحقق من نص مدخل اذا كان النص يساوي احد القيم التالية :
'aaa'
'bbb'
'ccc'
ترجع قمية True


الطالب 1
PHP كود :
CheckStr(s: string):Boolean;
begin
  Result 
:= False;
  if 
s = 'aaa' then Result := True;
  if 
s = 'bbb' then Result := True;
  if 
s = 'ccc' then Result := True;
end; 
الطالب 2
PHP كود :
CheckStr(s: string):Boolean;
begin
  Result 
:= True;
  if 
not (s = 'aaa') then Result := False;
  if 
not (s = 'bbb') then Result := False;
  if 
not (s = 'ccc') then Result := False;
end; 

الطالب 3
PHP كود :
CheckStr(s: string):Boolean;
begin
  
if s = 'aaa' then Result := True else
  if 
s = 'bbb' then Result := True else
  if 
s = 'ccc' then Result := True else
  
Result := False;
end; 

نكتفي عند هذا الحد هناك حلول اخرى لكن لا احبب ان اثقل عليكم

ما هو احسن حل و لماذا ؟


تمرين - الأخطاء الشائعة - خالد على22 - 26-12-2013

لا يوجد أحسن خل
لأنه هناك حلان خاطئان

الحل الأول خطأ

لو كان المتغير = aaa
فإنه عند الشرط الثالث فإن result ستساوى false مخالف للحقيقة

الحل الثانى خطأ

لو كان المتغير = aaa
فإنه عند الشرط الثالث فإن result ستساوى false مخالف للحقيقة

الحل الثالث فقط هو الصحيح

الحل الأمثل سيكون بإستغلال التعليمة or


تمرين - الأخطاء الشائعة - S.FATEH - 26-12-2013

السلام عليكم

حسنا كتبت الكود دون تجريب مع ذلك يبقى التمرين قائم
خالد على22
انت مخطأ الحل الاول صحيح جرب لو كان المتغير aaa ستعيد القيمة True غير مخالف للحقيقة كما تقول
الحل الثالث صحيح جرب كذلك ذلك
معك حق الحل الثاني خطأ...


تمرين - الأخطاء الشائعة - bassem_43 - 26-12-2013

السلام عليكم
احسن حل برايي هو الحل 1 لانه الاسرع في التنفيد ، فسرعه تنفيد حلقة if .....then اسرع من تنفيد حلقة
if.... then.. else كما في اجابة الطالب رقم 3 اما اجابة الطالب 2 فهي خاطئة ولو عدل في الحل واعتبرناها صحيحة فتعليماتها تحتوي على not اي ان المعالج (ِCPU ) يقوم بعملين اولهما تنفيد التعليمة
if (s = 'aaa') ثم عملية النفي ب not ما يعني ان المعالج سيستغرق وقت اضافي لمعالجة تعليمات الدلة في الحل 2 .
طبعا الفرق في زمن التنفيد لا يظهر جليا في دوال او برامج من 3 او 4 تعليمات لكن في برامج من مئات الاسطر البرمجية يظهر الفرق والله اعلم واعدروني ان اخطات .


تمرين - الأخطاء الشائعة - S.FATEH - 27-12-2013

السلام عليكم اخ بسام معك حق في كل ما قلته لكن تعلمية if/then/else احسن من if/then لانه مع تعليمة if/then/else لن ينفذ التعلميات التاليةاذا تحقق الشرط من البداية لكن مع تعلمية if/then سينفذ التعليمات التالية سواء تحقق الشرط او لم يتحقق ...نعم اخطأ الطالب 2 مرتين الخطأ الاول هو احتماله لوجود الصحيح اكثر من الخاطئ و هذا خطأ لانه عدد القضايا الصحيحة 3 و عدد القضايا الخائطة لا نهاية له مما اضطره بعد ذلك الى استخدام not و الخطأ الثاني كان عليه الخروج باستخدام exit او استخدام المعاملات المنطقية ليصبح الكود صحيح


تمرين - الأخطاء الشائعة - bassem_43 - 27-12-2013

بارك الله فيك على المعلومات القيمة
اسف لم اركز مع التعليمة if ..then ..else :confused: شكرا للتوضيح والتنبيه في انتظار اسئلة اخرى


تمرين - الأخطاء الشائعة - خالد على22 - 27-12-2013

s.fateh كتب :السلام عليكم

حسنا كتبت الكود دون تجريب مع ذلك يبقى التمرين قائم
خالد على22
انت مخطأ الحل الاول صحيح جرب لو كان المتغير aaa ستعيد القيمة true غير مخالف للحقيقة كما تقول
الحل الثالث صحيح جرب كذلك ذلك
معك حق الحل الثاني خطأ...

حسنا
لنفاضل بين الكود الأول و الثالث

الثالث أفضل
لأنه جمع الثلاثة شروط فى مقطع شرطى واحد

بينما الكود الأول تعامل مع الأكواد الثلاثة بثلاثة مقاطع