![]() |
|
الصحيح و الخطأ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : تمارين دلفي وحلول (https://delphi4arab.net/forum/forumdisplay.php?fid=16) +--- الموضوع : الصحيح و الخطأ (/showthread.php?tid=5816) الصفحات:
1
2
|
الصحيح و الخطأ - S.FATEH - 26-12-2013 السلام عليكم يمكن للمستخدم ان يدخل حرف و رقم اكتب دالة باقل كود ممكن حيث تعيد قيمة بولينية حيث اذا كان الحرف المدخل a و العدد اكبر 2 صحيح اذا كان الحرف المدخل a و العدد اصغر او يساوي 2 خطأ اذا كان الحرف b و العدد اكبر من 7 صحيح اذا كان الحرف b و العدد اصغر او يساوي من 7 خطأ اذا كان الحرف c و العدد اكبر من 20 صحيح اذا كان الحرف c و العدد اصغر او يساوي من 20 خطأ غير ذلك خطأ التمرين بسيط ارونا ابداعاتكممدة التمرين 3 ايام يفضل نقل الكود على الموضوع بدل المرفقات الصحيح و الخطأ - الياس الدويرة - 26-12-2013 الكود الاول كود : var
i:integer;
s:string;
begin
i:=1;
s:='a';
if s='a' then begin
if i > 2 then ShowMessage('true')
else ShowMessage('false');
end
else
if s='b' then begin
if i > 7 then ShowMessage('true')
else ShowMessage('false');
end
else
if s='c' then begin
if i > 20 then ShowMessage('true')
else ShowMessage('false');
end
else ShowMessage('errrrrrr');
end;كود : var
i:integer;
s:string;
begin
i:=8;
s:='c';
if ( s='a' ) or (s='b' )or (s='c' ) then begin
if i > 20 then ShowMessage('true')
else
if ( s='c' ) then ShowMessage('false')
else
if i > 7 then ShowMessage('true')
else
if ( s='b' ) then ShowMessage('false')
else
if i > 2 then ShowMessage('true')
else ShowMessage('false') ;
end
else ShowMessage('rrrrrr');الصحيح و الخطأ - S.FATEH - 27-12-2013 السلام عليكم الياس انت لم تحترم شروط التمرين المطلوب كتابة دالة + باقل كود ممكن على كل حال عدلت قليلا على الكود PHP كود : procedure TForm1.Button1Click(Sender: TObject);PHP كود : function TForm1.InputValidation1(s: string; i: integer): Boolean;حلك الثاني حسب رأي هذا افضل PHP كود : function TForm1.InputValidation2(s: string; i: integer): Boolean;الحلان من ناحية النتائج نتائج صحيحة لكن طبعا خاطئان يمكن كتابة حل اصغر بكثير ... محاولات اخرى... الصحيح و الخطأ - ferrero - 28-12-2013 كود : function InputValidation2(s: string; i: integer): Boolean;
begin
if ((s = 'a') and (i > 2)) or ((s = 'b') and (i > 7)) or
((s = 'c') and (i > 20)) then
Result := True
else
Result := False;
end;الصحيح و الخطأ - S.FATEH - 28-12-2013 السلام عليكم ferrero قاربت جدا من الحل يمكن حذف else ... الصحيح و الخطأ - ferrero - 28-12-2013 نعم صحيح يمكن حذف else كود : function InputValidation2(s: string; i: integer): Boolean;
begin
if ((s = 'a') and (i > 2)) or ((s = 'b') and (i > 7)) or
((s = 'c') and (i > 20)) then
Result := True
end;الصحيح و الخطأ - S.FATEH - 28-12-2013 السلام عليكم حسنا سأطرح الحل المسئلة منطقية اكثر منها برمجية حسب مبدأ عدم التناقض لا يمكن لقضية ما ان تكون صحيحة و خاطئة في نفس الوقت و الا سينقلب العالم رأسا على عقب (عفوا على التفلسف لابد منه) :confused: لدينا العديد من التعليمات التي تحتمل الصحيح و الخطأ لذلك لا يجب ابدا التحقق من الامرين اذا لم تكن صحيحة فهي بدون شك خائطة و اذا لم تكن خائطة فهي بدون شك صحيحة اذا كان لدينا عدد احتمالات الصحيح > اكبر من عدد احتمالات الخطأ نتحقق من الخطأ و نجعل الصحيح افتراضي اذا كان لدينا عدد احتمالات الخطأ > اكبر من عدد احتمالات الصحيح نتحقق من الصحيح و نجعل الخطأ افتراضي في مثالنا امكانية ان يدخل المستخدم مدخلات خاطئة هي 4 احتمالات و امكانية ان يدخل المستخدم مدخلات صحيحة هي 3 احتمالات اذن نجعل الخطأ افتراضي و نتحقق من الصحيح ليكون لدينا تعليمات اقل للتحقق منها و اذا لم تكن صحيحة فهي بدون شك خاطئة حتى دلفي دائما ينبهك الى ضرورة اعطاء قيم ابتدائة للمتغيرات البولينية ان شاء الله يكون الشرح واضح @ ferrero PHP كود : function InputValidation2(s: string; i: integer): Boolean;و السلام عليكم الصحيح و الخطأ - ferrero - 28-12-2013 نعم كلامك صحيح والكود الاخير من الناحية البرمجية يعتبر هو الصحيح وشكرا على الشرح ايضا الصحيح و الخطأ - محمد عبد العزيز - 28-12-2013 السلام عليكم يمكن اختصار الكود السابق كود : function InputValidation3(s: string; i: integer): Boolean;
begin
Result := ((s = 'a') and (i > 2)) or ((s = 'b') and (i > 7)) or ((s = 'c') and (i > 20));
end;الصحيح و الخطأ - S.FATEH - 28-12-2013 السلام عليكم طبعا اخ B.M.AbdelAziZ بارك الله فيك يمكن ذلك في حالتنا لم ارد ذلك لكي اصل الى الغاية من التمرين لاني لاحظت الكثير من الاعضاء يكتبون اكواد التحقق بطريقة خاطئة هناك امور بسيطة تجعل البرمجة ممتعة و جميلة الجميع هنا للاخذ و المشاركة و هي الغاية من انشاء المنتدى ...
|