Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

الخوارزمياتدالة إدخال البيانات 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 و العدد الذي أدخله المستخدم.

الحل و التفسير



التمرين الرابع

أكتب برنامج يطلب من المستخدم إعطائه عددين صحيحين ثم يعرض له جميع الأرقام المزدوجة بين هذين العددين.

الحل و التفسير



التمرين الخامس

أكتب برنامج يطلب من المستخدم إعطائه عددين صحيحن, ثم يقارن العددين اللذين قام المستخدم بإدخالهما ثم يخبره نتيجة المقارنة.

الحل و التفسير



التمرين السادس

أكتب برنامج يطلب من المستخدم إعطائه ثلاثة أعداد صحيحة, ثم يقارن الأعداد التي قام المستخدم بإدخالها ثم يخبره فقط من هو العدد الأكبر بينهم.

الحل و التفسير

نرجو منك الإنتقال لدورة البرمجة للمبتدئين الجديدة التي أنشأنها كبديل أفضل لهذه الدورة ففي تلك الدورة قمنا بتبسيط الشرح أكثر و جعلناك قادر على تجربة الكود بشكل مباشر في موقعنا.


دورة تعلم البرمجة للمبتدئين >