الخوارزمياتدالة إدخال البيانات Read
- مفهوم إدخال البيانات من المستخدم
- إدخال بيانات من المستخدم في الخوارزميات
- طريقة جعل البرنامج يقبل المعلومات من المستخدم في لغة جافا
- دوال إدخال المعلومات الموجودة في الكلاس
Scanner
- تمارين شاملة حول إدخال البيانات من المستخدم
مفهوم إدخال البيانات من المستخدم
ما المقصود من إدخال البيانات؟
في البرامج التي كنا نكتبها سابقاً, كنا نكتب جميع كودات البرنامج ثم نقوم بتشغيله, فيتم تنفيذ كامل البرنامج دفعة واحدة, و عند إنتهائه يعرض لنا الوقت الذي إستغرقه الكمبيوتر منذ أن قمنا بتشغيل البرنامج و حتى إنتهائه.
ستتعلم في هذا الدرس كيف تتفاعل مع البرنامج عندما يكون شغالاً.
فعلياً, ستجعل البرنامج يطلب منك إدخال معلومات (مثل إسمك, عمرك أو أي عدد), بعدها ستجعله ينتظرك لإدخال المعلومات من لوحة المفاتيح (Keyboard).
ما الهدف الحقيقي من هذا الدرس؟
الهدف الحقيقي من الدرس أن تتعلم طريقة إنشاء برامج تناسب جميع المستخدمين.
من الآن و حتى إنتهاء سلسلة دروس الخوارزميات ستجهز برامجك للمستخدم و تنتظر منه إدخال معلوماته الخاصة, ثم تجعل برنامجك يتعامل مع المعلومات التي قام المستخدم بإدخالها.
كيف نتعامل مع البيانات التي سيدخلها المستخدم؟
إذا أردت أن يقوم المستخدم بإدخال المعلومات إلى البرنامج فعليك تجهيز مكان في الذاكرة (أي تعريف متغيرات) من أجل تخزين المعلومات التي سيدخلها المستخدم قبل أن تجعل البرنامج يطلب منه إدخال المعلومات.
دائماً عندما تريد من المستخدم أن يدخل أي معلومة, إجعل البرنامج يطلب منه أن يدخلها ثم خزنها في متغير.
إذاً, سابقاً كنا نضع قيم مباشرةً لجميع المتغيرات التي نستخدمها, أما الآن سنجعل المستخدم هو الذي يضع القيم للمتغيرات.
إدخال بيانات من المستخدم في الخوارزميات
في الخوارزميات نستخدم الدالة Read()
لقراءة أي شيء سيدخله المستخدم من لوحة المفاتيح سواء رقم أو نص لأننا نكتب الخوارزمية على الورقة و ليس على الكمبيوتر.
بينما في لغة جافا و في أي لغة برمجة أخرى, نستخدم دالة إدخال تتوافق مع نوع البيانات التي سيتم إدخالها.
لا تقلق إذا لم تفهم المقصود الآن لأنك ستفهم كل شيء من التمارين.
مثال
في هذا المثال بواسطة الدالة Print()
سيطلب البرنامج من المستخدم أن يدخل رقماً,
بعدها سيتم تجهيز متغير إسمه a
في الذاكرة لتخزين الرقم الذي نريد من المستخدم إدخاله أثناء تشغيل البرنامج.
في الأخير بواسطة الدالة Read()
سوف يقوم البرنامج بانتظار المستخدم لإدخال الرقم.
بعد أن يتم إدخال الرقم سيتم تخزينه في المتغير a
.
الخوارزمية
تفاعل المستخدم مع البرنامج
خلاصة
في الخوارزميات نكتب Read()
في حال أردنا من المستخدم إدخال أي نوع من معلومات.
طريقة جعل البرنامج يقبل المعلومات من المستخدم في لغة جافا
في لغة جافا لكي تجعل البرنامج يقبل معلومات من المستخدم عليك إتباع ثلاث خطوات.
الخطوة الأولى
إستدعاء الكلاس Scanner
الذي يحتوي على دوال إدخال المعلومات من المستخدمين.
أي يجب كتابة السطر التالي فوق كود الكلاس مباشرةً.
import java.util.Scanner;
الخطوة الثانية
إنشاء كائن من هذا الكلاس لأنك لا تستطيع إستخدام دوال الكلاس Scanner
إلا من خلال الكائن الذي يشير إليه.
أي يجب كتابة السطر التالي في الدالة main()
.
Scanner input = new Scanner(System.in);
الخطوة الثالثة
إستدعاء إحدى دوال إدخال المعلومات من هذا الكائن و تخزين ما سيدخله المستخدم في متغير من نفس نوع الدالة.
هنا كمثال إستخدمنا الدالة nextInt()
, ستتعرف لاحقاً على دوال أخرى و متى تستخدم كل واحدة منهم.
int a = input.nextInt();
أنت الآن تدرس الخوارزميات و ليس لغة جافا. لذلك ليس مطلوباً منك أن تفهم معنى هذه الأوامر حرفياً, و يكفي أن تفهم فكرتهم و مكان كتابتهم فقط.
مع الإشارة إلى أنك يجب أن تدون هذه الخطوات كملاحظات لأنك ستحتاج كتابتها عند تجربة أي خوارزمية على الكمبيوتر تطلب فيها من المستخدم أن يدخل أي عدد أو نص عند تشغيل البرنامج.
خطوات إدخال بيانات من المستخدم في جافا
المثال التالي يعلمك طريقة جعل البرنامج يطلب من المستخدم أن يدخل رقم و يخزّنه في متغير.
إذاً, عند تشغيل البرنامج سيطلب منك إدخال أي رقم.
بعد إدخال الرقم و النقر على الزر Enter سيقوم بعرض الرقم الذي أدخلته أثناء عمل البرنامج.
كود الجافا
import java.util.Scanner; public class TestScanner { public static void main (String[] args) { Scanner input = new Scanner(System.in); int a; System.out.print("Enter a number: "); a = input.nextInt(); System.out.print("You have entered the number: " +a+ "\n"); } }
قمنا بتجربة الكود و إدخال الرقم 5 أثناء التشغيل, فكانت النتيجة كالتالي.
نتيجة الكود
دوال إدخال المعلومات الموجودة في الكلاس Scanner
لغة جافا توفر لك العديد من الدوال التي تسمح لك بإدخال المعلومات و كل واحدة منهم تستخدم لغرض محدد.
أمثلة
- إذا كنت تريد من المستخدم أن يكتب إسمه, فأنت بحاجة لدالة الإدخال التي تستخدم لقراءة النص الذي سيكتبه المستخدم.
- في حال كنت تريد من المستخدم أن يكتب عمره, فأنت بحاجة لدالة الإدخال التي تستخدم لقراءة الرقم الذي سيكتبه المستخدم و هكذا.
الجدول التالي يحتوي على الدوال التي سنستخدمها لقراءة المعلومات من المستخدم.
الدوال | دواعي الإستخدام |
---|---|
nextLine() |
تستخدم لإستقبال نص من المستخدم, أي لإستقبال قيمة نوعها String |
nextInt() |
تستخدم لإستقبال عدد صحيح ( أي بدون فاصلة ) من المستخدم, أي لإستقبال قيمة نوعها int |
nextDouble() |
تستخدم لإستقبال عدد عشري ( أي يحتوي على فاصلة ) من المستخدم, أي لإستقبال قيمة نوعها double |
تمارين شاملة حول إدخال البيانات من المستخدم
التمرين الأول
أكتب برنامج يطلب من المستخدم إدخال إسمه و مهنته و عمره, ثم يعرض له المعلومات التي قام هو بإدخالها بشكل مرتب.
التمرين الثاني
أكتب برنامج يطلب من المستخدم إعطائه عدد صحيح و خزنه في المتغير N
.
بعدها يقوم بجمع جميع الأرقام من 1 إلى N
.
التمرين الثالث
أكتب برنامج يطلب من المستخدم إعطائه عدد صحيح ثم يعرض له ناتج جمع جميع الأرقام المفردة الموجودة بين 1 و العدد الذي أدخله المستخدم.
التمرين الرابع
أكتب برنامج يطلب من المستخدم إعطائه عددين صحيحين ثم يعرض له جميع الأرقام المزدوجة بين هذين العددين.
التمرين الخامس
أكتب برنامج يطلب من المستخدم إعطائه عددين صحيحن, ثم يقارن العددين اللذين قام المستخدم بإدخالهما ثم يخبره نتيجة المقارنة.
التمرين السادس
أكتب برنامج يطلب من المستخدم إعطائه ثلاثة أعداد صحيحة, ثم يقارن الأعداد التي قام المستخدم بإدخالها ثم يخبره فقط من هو العدد الأكبر بينهم.