السلام عليكم
يمكن للمستخدم ان يدخل حرف و رقم
اكتب دالة
باقل كود ممكن حيث تعيد قيمة بولينية حيث
اذا كان الحرف المدخل a و العدد اكبر 2 صحيح
اذا كان الحرف المدخل a و العدد اصغر او يساوي 2 خطأ
اذا كان الحرف b و العدد اكبر من 7 صحيح
اذا كان الحرف b و العدد اصغر او يساوي من 7 خطأ
اذا كان الحرف c و العدد اكبر من 20 صحيح
اذا كان الحرف c و العدد اصغر او يساوي من 20 خطأ
غير ذلك خطأ
التمرين بسيط

ارونا ابداعاتكم
مدة التمرين 3 ايام يفضل نقل الكود على الموضوع بدل المرفقات
السلام عليكم
الياس انت لم تحترم شروط التمرين المطلوب كتابة دالة + باقل كود ممكن على كل حال عدلت قليلا على الكود
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
begin
if InputValidation2(Edit1.Text[1], StrToInt(Edit2.Text)) then
ShowMessage('True')
else
ShowMessage('False');
end;
حلك الاول
PHP كود :
function TForm1.InputValidation1(s: string; i: integer): Boolean;
begin
if s = 'a' then
begin
if i > 2 then
Result := True
else
Result := False;
end
else if s = 'b' then
begin
if i > 7 then
Result := True
else
Result := False;
end
else if s = 'c' then
begin
if i > 20 then
Result := True
else
Result := False;
end
else
Result := False; ;
end;
حلك الثاني حسب رأي هذا افضل
PHP كود :
function TForm1.InputValidation2(s: string; i: integer): Boolean;
begin
if (s = 'a') or (s = 'b') or (s = 'c') then
begin
if i > 20 then
Result := True
else if (s = 'c') then
Result := False
else if i > 7 then
Result := True
else if (s = 'b') then
Result := False
else if i > 2 then
Result := True
else
Result := False;
end
else
Result := False;
end;
الحلان من ناحية النتائج نتائج صحيحة لكن طبعا خاطئان يمكن كتابة حل اصغر بكثير ...
محاولات اخرى...
السلام عليكم ferrero
قاربت جدا من الحل يمكن حذف else ...
السلام عليكم
حسنا سأطرح الحل
المسئلة منطقية اكثر منها برمجية
حسب مبدأ عدم التناقض لا يمكن لقضية ما ان تكون صحيحة و خاطئة في نفس الوقت و الا سينقلب العالم رأسا على عقب (عفوا على التفلسف لابد منه) :confused:
لدينا العديد من التعليمات التي تحتمل الصحيح و الخطأ لذلك لا يجب ابدا التحقق من الامرين اذا لم تكن صحيحة فهي بدون شك خائطة و اذا لم تكن خائطة فهي بدون شك صحيحة
اذا كان لدينا عدد احتمالات الصحيح > اكبر من عدد احتمالات الخطأ نتحقق من الخطأ و نجعل الصحيح افتراضي
اذا كان لدينا عدد احتمالات الخطأ > اكبر من عدد احتمالات الصحيح نتحقق من الصحيح و نجعل الخطأ افتراضي
في مثالنا امكانية ان يدخل المستخدم مدخلات خاطئة هي 4 احتمالات
و امكانية ان يدخل المستخدم مدخلات صحيحة هي 3 احتمالات
اذن نجعل الخطأ افتراضي و نتحقق من الصحيح ليكون لدينا تعليمات اقل للتحقق منها و اذا لم تكن صحيحة فهي بدون شك خاطئة
حتى دلفي دائما ينبهك الى ضرورة اعطاء قيم ابتدائة للمتغيرات البولينية
ان شاء الله يكون الشرح واضح
@ ferrero
PHP كود :
function InputValidation2(s: string; i: integer): Boolean;
begin
Result := False;
if ((s = 'a') and (i > 2)) or ((s = 'b') and (i > 7)) or ((s = 'c') and (i > 20)) then Result := True
end;
و السلام عليكم
نعم كلامك صحيح والكود الاخير من الناحية البرمجية يعتبر هو الصحيح وشكرا على الشرح ايضا
السلام عليكم
طبعا اخ B.M.AbdelAziZ بارك الله فيك يمكن ذلك في حالتنا لم ارد ذلك لكي اصل الى الغاية من التمرين لاني لاحظت الكثير من الاعضاء يكتبون اكواد التحقق بطريقة خاطئة هناك امور بسيطة تجعل البرمجة ممتعة و جميلة

الجميع هنا للاخذ و المشاركة و هي الغاية من انشاء المنتدى ...