المشاركات : 10
المواضيع 1
:
: 11
الإنتساب : May 2018
السلام عليكم
كيف يمكن ان ااجعل البرنامج يتحقق ان ماتم ادخاله هو حروف وليست أرقام بواسطة if
يعني للتوضيح
if x>0 then
هنا يتم التحقق هل ماتم ادخاله هو أكبر من الصفر .
كيف يمكني ان اجعل مايتم التحقق من ادخاله هو حروف وليس أرقام ؟
وشكرا
المشاركات : 305
المواضيع 50
:
: 43
الإنتساب : Sep 2010
20-09-2018, 11:56 AM
(آخر تعديل لهذه المشاركة: 20-09-2018, 12:13 PM بواسطة S.FATEH.)
يمكنك من التاكد من المدخلات بعدة طرق و كمثال
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
i:string;
begin
repeat
i:='';
if InputQuery('Progress', 'Enter the desired number:', i) then
begin
try
if (StrToInt(i) < 0) or (StrToInt(i) > 100) then
showmessage('Please enter an Integer value between 0 and 100');
except
showmessage('Please enter numbers only (an Integer value between 0 and 100)');
i:='-1';
end;
end
else
break;
until (StrToInt(i) >= 0) and ((StrToInt(i) <= 100));
end;
كل من 1 user says قال شكرا ل bouh25 على المشاركة المفيدة1 user says Thank You to bouh25 for this post
• bi4ani
المشاركات : 10
المواضيع 1
:
: 11
الإنتساب : May 2018
لم أفهم أي شيئ أخي الكريم .....انالسا بادي في تعلم البرمجة
أنا أريد برنامج بسيط في بئة الدوس او الكوماندلاين يتحقق من عمر واسم المستخدم .....التحقق من العمر بسيط
علي سبيل المثال
PHP كود :
var
s:string;
x:integer;
begin
writeln('what is your name' );
readln(s);
writeln(how old are you );
readln(x);
if x>0 then هنا ..... اريد ان يتحقق من الاسم هل هو حروف ام ارقام
begin
if (x>0)and(x<10) then
writeln(s,' you are child');
if (x>=10)and(x<20)then
writeln(s,' you are teenager')
المشاركات : 334
المواضيع 83
:
: 17
الإنتساب : Feb 2008
مثال (FreePascal )
كود :
program Test;
{$mode objfpc}
Uses sysutils;
var
s : string; // الاسم
x : string; // العمر
i : integer;// العمر كرقم
begin
writeln('what is your name' ); // إدخال الاسم
readln(s); // قراءة الاسم
writeln('how old are you' ); // إدخال العمر
readln(x); // قراءة العمر
Try
i := StrToInt(x); // تحويل العمر المعطى إلى رقم
except
On E : EConvertError do //في حالة وجود خطأ خلال عملية التحويل
begin
Writeln ('Not a number !'); // كتابة أن العمر المعطى ليس رقم
exit; // الخرورج -- في هذه الحالة من البرنامج
end;
end;
// إذا كان كل سطر صحيح
if (i>0) and (i<10) then
writeln(s,' you are child')
else if (i>=10) and (i<20) then
writeln(s,' you are teenager');
end.
في دلفي (Community Edition)
كود :
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var
s : string; // الاسم
x : string; // العمر
i : integer;// العمر كرقم
begin
writeln('what is your name' ); // إدخال الاسم
readln(s); // قراءة الاسم
writeln('how old are you' ); // إدخال العمر
readln(x); // قراءة العمر
Try
i := StrToInt(x); // تحويل العمر المعطى إلى رقم
except
On E : EConvertError do //في حالة وجود خطأ خلال عملية التحويل
begin
Writeln ('Not a number'); // كتابة أن العمر المعطى ليس رقم
exit; // الخرورج -- في هذه الحالة من البرنامج
end;
end;
// إذا كان كل سطر صحيح
if (i>0) and (i<10) then
writeln(s,' you are child')
else if (i>=10) and (i<20) then
writeln(s,' you are teenager');
end.
كل من 1 user says قال شكرا ل merouane على المشاركة المفيدة1 user says Thank You to merouane for this post
• bi4ani
المشاركات : 10
المواضيع 1
:
: 11
الإنتساب : May 2018
كود :
Try
i := StrToInt(x); // تحويل العمر المعطى إلى رقم
except
On E : EConvertError do //في حالة وجود خطأ خلال عملية التحويل
begin
Writeln ('Not a number !'); // كتابة أن العمر المعطى ليس رقم
exit; // الخرورج -- في هذه الحالة من البرنامج
لكن أخي لم أفهم هذا الجزء من الكود
المشاركات : 334
المواضيع 83
:
: 17
الإنتساب : Feb 2008
StrToInt هي String to Integer: تقوم بتحويل نوع المتغير من String إلى Integer
أردت من خلالها أن أريك كيفية التحويل (بما أنك ذكرت أنك تتعلم: "ماتم ادخاله هو حروف وليست أرقام" )
Try.. Except
تفيد للتحكم بمجريات البرنامج عند حدوث خطأ محدد أو غير محدد: هنا سنراقب إذا حدث خطأ خلال عملية التحويل
exit تفيد الخروج من البرنامج (أو procedure, function) لأان عند إدخال العمر غير رقمي صحيح لا فائدة نت مواصلة مقارنة العمر المطلوب.
يمكن القيام بتعديل بسيط لنفس النتيجة (
[size=small]حيث [/size][size=small]EInOutError[/size] تفيد مراقبة في حالة كان هناك خطأ في الإدخال - أي قمنا بتحديد X العمر كرقم intreger
وعند إدخال نص يحتوي على حروف أو رقم ذو فاصلة ..إلخ، سيتحول البرنامج إلى كتابة أن العمر المعطى ليس رقم integer، ثم يخرج من البرنامج.
PHP كود :
program test;
{$mode objfpc}
Uses sysutils;
var
s : string; // الاسم
x : integer; // العمر
begin
writeln('what is your name' ); // إدخال الاسم
readln(s); // قراءة الاسم
writeln('how old are you' ); // إدخال العمر
Try
readln(x); // قراءة العمر
except
On E : EInOutError do //في حالة وجود خطأ خلال عملية التحويل
begin
Writeln ('Not a number !'); // كتابة أن العمر المعطى ليس رقم
exit; // الخروج -- في هذه الحالة من البرنامج
end;
end;
// إذا كان كل سطر صحيح
if (x>0) and (x<10) then
writeln(s,' you are child')
else if (x>=10) and (x<20) then
writeln(s,' you are teenager');
end.
المشاركات : 10
المواضيع 1
:
: 11
الإنتساب : May 2018
جميل جدا أخي الكريم ......وشكرا علي اهتمامك
ماذا لو أردت التحقق من أن الاسم الذي تم ادخاله لايحتوي ارقام هل هناك دالة تقوم بعكس ماتقوم به strToint
وأرجو المعذرة علي الاسألة اللتي ربما تجدها سخيفة لكنها مهمة جدا بالنسبة لي ..........
المشاركات : 334
المواضيع 83
:
: 17
الإنتساب : Feb 2008
(22-09-2018, 03:03 PM)bi4ani كتب : جميل جدا أخي الكريم ......وشكرا علي اهتمامك
ماذا لو أردت التحقق من أن الاسم الذي تم ادخاله لايحتوي ارقام هل هناك دالة تقوم بعكس ماتقوم به strToint
وأرجو المعذرة علي الاسألة اللتي ربما تجدها سخيفة لكنها مهمة جدا بالنسبة لي .......... 
لا أعلم عن دالة تقوم بهذا، لكن برمجتها بسيطة،
النص برمجيا هو سلسلة بحيث كل حلقة بها لها فهرس (index) أي النص 'S := 'Samir هو سلسلة بحيث 'S[1] = 'a
لمعرفة هل يوجد رقم في النص نقوم بحلقة ونقرأ كل حرف في السلسة ونقارنه بالأرقام من 0 حتى 9
إذا وجده سيقوم بما يريده المبرمج..
لن أكتب الحل هنا لأنك تتعلم، ولن أضرك بتقديم الجاهز، حاول.
بالتوفيق.
كل من 1 user says قال شكرا ل merouane على المشاركة المفيدة1 user says Thank You to merouane for this post
• bi4ani
المشاركات : 10
المواضيع 1
:
: 11
الإنتساب : May 2018
أخي الفاضل كل الشكر و الامتنان علي فضلك و رحابت صدرك
انشاء الله سوف أحاول .......أنا لسا مبتدء في تعلم البرمجة