في هذا الدرس سيتم شرح طريقة استقبال مدخلات من المستخدم ومعالجتها في البرنامج، هذا الدرس قد يتطلب مراجعة الدروس السابقة في قسم دروس C.
في لغة C نستخدم الدالة scanf لإدخال قيمة معينة لمتغير عبر المستخدم، وطريقة استخدامها:
scanf(type, variable);
الشطر الأول type: ويقصد به نوع المتغير سواء كان عددًا صحيح، أو حرف وإلخ..
الشطر الثاني variable: اسم المتغير، لكن مسبوقًا بـ&
مثال:
float a; scanf("%f", &a);
سيتم تقسيم الدرس قسمين، وثالث متفرع من الثاني لتسهيل تتبع الدرس.
أولًا: الادخال البسيط:
في هذا الشطر سنقوم بتخزين المدخلات في متغيرات بسيطة، مثلا نخزن الرقم 5 في المتغير a و 2 في المتغير b وهكذا، هذا مثال مع الشرح:
#include<stdio.h> main() { /* ***************************************************** * تعريف المتغيرات المستخدمة * * number1: لتخزين الرقم الأول * * number2: لتخزين الرقم الثاني * * sum: لتخزين حاصل جمع الرقم الأول مع الثاني * ****************************************************** */ int number1, number2, sum; // طباعة رسالة لطلب ادخال رقمين printf("Enter 2 numbers: "); /* *************************************************************** * scanf(): هي دالة لاستقبال مدخلة من قبل المستخدم * * %d: هنا تك نوع المتغير، وهنا تم تحديده كعدد صحيح * * &: يستخدم هذا الرمز قبل اسم المتغير لتتم تخزين البيانات به * **************************************************************** */ scanf("%d", &number1); scanf("%d", &number2); // عملية الجمع الاعتيادية sum = number1 + number2; //طباعة النتائج، لاحظ طريقة الكتابة printf("Sum of %d + %d = %d", number1, number2, sum); }
ثانيا: الادخال إلى مصفوفة:
الجزء 1 من 2: الادخال لمصفوفة مباشرة:
المثال مع الشرح:
#include<stdio.h> main() { /* ***************************************************** * تعريف المتغيرات المستخدمة * * numbers: مصفوفة بطول 3، لتخزين الأرقام * * sum: تخزين حاصل جمع المتغيرات الثلاثة * ****************************************************** */ int numbers[3], sum; // رسالة طلب ادخال 3 أرقام printf("Enter 3 numbers: "); // الادخال للخانة الأولى من المصفوفة scanf("%d", &numbers[0]); // الادخال للخانة الثانية من المصفوفة scanf("%d", &numbers[1]); // الادخال للخانة الثالثة من المصفوفة scanf("%d", &numbers[2]); // عملية الجمع الاعتيادية sum = numbers[0] + numbers[1] + numbers[2]; printf("Sum of %d + %d + %d = %d", numbers[0], numbers[1], numbers[2], sum); }
الجزء 2 من 2: استخدام التكرارات في الادخال والجمع:
المثال مع الشرح:
#include<stdio.h> main() { /* ***************************************************** * تعريف المتغيرات المستخدمة * * numbers: مصفوفة بطول 5، لتخزين الأرقام * * sum: تخزين حاصل جمع المتغيرات كافّة * * i: الرقم المتزايد للتكرار * ****************************************************** */ int numbers[5], sum, i; // تحديد القيمة المبدئية لمتغير الجمع لتجنب الأخطاء sum = 0; // رسالة طلب ادخال 5 أرقام printf("Enter 5 numbers: "); /* ******************************************************* * التكرار الأول، للإدخال * * بدء عملية التكرار، البدء من 0 والتوقف عند 9 * * لاحظ استبدال رقم الفهرس في المصفوفة بالمتغير المتزايد * ******************************************************** */ for(i=0;i<5;i++) { scanf("%d", &numbers[i]); } /* ******************************************************* * التكرار الثاني؛ عملية الجمع * * لاحظ طريقة كتابة سطر الجماع: * * sum += numbers[i]; * * ويمكن كتابته بالطريقة الآتية أيضًا: * * sum = sum + numbers[i]; * ******************************************************** */ for(i=0;i<5;i++) { sum += numbers[i]; } // طباعة النتيجة printf("result is %d", sum); }
يتضح بعد الدرس أن الاختلاف بين Java و C بسيط وليس هناك صعوبة لمن يتقن أحدهما في تعلم الأخرى 🙂