المدخلات والمخرجات
بسم الله الرحمن الرحيم
المدخلات والمخرجات :
![]() |
رسم تخطيطي للمدخلات والمخراجات |
مثال :
الكود: |
#include <stdio.h> //This is needed to run printf() function. int main() { printf("C Programming"); //displays the content inside quotation return 0; } |
المخراجات :
C Programming |
شرح كيف يعمل هذا البرنامج :
1-كل برنامج يبدأ من الدالةmain() .
-2 الدالة printf() هى دالة مكتبة لعرض المخرجات والتى تعمل فقط إذا تم تضمين الصيغة #include<stdio.h> عند البداية .
-3 هنا ، stdio.h هو ملف رأس ( ملف رأس الدخلات والمخرجات القياسية) و#include هى أمر للصق الكود من ملف الرأس عند الضرورة . عندما يواجه المترجم الدالة printf() ولا يجد ملف الرأس stdio.h فإن المترجم يظهر خطأ .
-4العبارة return 0; يشير إلى نهاية البرنامج . يمكنك تجاهل هذه العبارة ولكن استخدامها يكون من قبيل ممارسة البرمجة بشكل جيد .
المدخلات والمخرجات للأعداد الصحيحة بلغة السى :
الكود: |
#include<stdio.h> int main() { int c=5; printf("Number=%d",c); return 0; } |
المخراجات :
Number=5 |
داخل علامتى التنصيص للدالةprintf يوجد سلسلة تنسيق التحويل بالصيغة"%d" ( للعدد الصحيح) . إذا تطابقت سلسة تنسيق التحويل مع البالرامتر الباقى وهو "c" فى هذه الحالة ، عندئذ يتم عرض قيمة "c" .
الكود: |
#include<stdio.h> int main() { int c; printf("Enter a number\n"); scanf("%d",&c); printf("Number=%d",c); return 0; } |
المخراجات
Enter a number 4 Number=4 |
تستخدم الدالة scanf() لأخذ المدخلات من المستخدم . فى هذا البرنامج ، يتم سؤال المستخدم لإدخال قيمة ويتم تخزين القيمة فى المتغير "c" . لاحظ الحرف '&' قبل "c" . التسلسل &c تدل على عنوان المتغير c ويتم تخزين القيمة فى هذا العنوان .
المدخلات والمخرجات للأعداد الحقيقية :
الكود: |
#include <stdio.h> int main(){ float a; printf("Enter value: "); scanf("%f",&a); printf("Value=%f",a); //%f is used for floats instead of %d return 0; } |
المخراجات
Enter value: 23.45 Value=23.450000 |
تستخدم سلسلة تنسيق التحويل"%f" من أجل الأعداد الحقيقية لأخذ المدخلات ولعرض قيمة عدد حقيقى لمتغير .
مدخلات ومخرجات الحروف وكود أسكى :
الكود: |
#include <stdio.h> int main(){ char var1; printf("Enter character: "); scanf("%c",&var1); printf("You entered %c.",var1); return 0; } |
المخراجات
Enter character: g You entered g |
تستخدم سلسلة تحويل التنسيق"%c" فى حالة الحروف .
كود أسكى ASCII :
عندما يتم كتابة حرف فى البرنامج أعلاه ، فإنه لا يتم تسجيل الحرف نفسه ولكن يتم تخزين قيمة عددية (قيمة أسكى) . وعندما نعرض هذه القيمة باستخدام التنسيق "%c" ، يتم عرض هذا الحرف .
الكود: |
#include <stdio.h> int main(){ char var1; printf("Enter character: "); scanf("%c",&var1); printf("You entered %c.\n",var1); /* \n prints the next line(performs work of enter). */ printf("ASCII value of %d",var1); return 0; } |
المخراجات
Enter character: g 103 |
عندما يتم إدخال الحرف 'g' يتم تخزين قيمة أسكى له وهى 103 بدلا من 'g' .
يمكنك عرض حرف إذا كنت تعرف قيمة كود اسكى له كما يلى :
الكود: |
#include <stdio.h> int main(){ int var1=69; printf("Character of ASCII value 69: %c",var1); return 0; } |
الخراجات
Character of ASCII value 69: E |
قيمة أسكى للحرف 'A' هى 65 وللحرف 'B' هى 66 وهكذا حتى حرف 'Z' فهى 99 . بالمثل قيمة أسكى للحرف 'a' هى 97 وللحرف 'b' هى 98 وهكذا حتى حرف 'z' فهى 122 .
المزيد حول المدخلات والمخرجات للعدد الحقيقة وللعدد الصحيح :
الاختلاف فى المخرجات للأعداد الصحيحة والأعداد الحقيقية :
يمكن عرض الأعاداد الصحيحة والأعداد الحقيقية بأشكال مختلفة فى لغة السى كما يلى :
الكود: |
#include<stdio.h> int main(){ printf("Case 1:%6d\n",9876); /* Prints the number right justified within 6 columns */ printf("Case 2:%3d\n",9876); /* Prints the number to be right justified to 3 columns but, there are 4 digits so number is not right justified */ printf("Case 3:%.2f\n",987.6543); /* Prints the number rounded to two decimal places */ printf("Case 4:%.f\n",987.6543); /* Prints the number rounded to 0 decimal place, i.e, rounded to integer */ printf("Case 5:%e\n",987.6543); /* Prints the number in exponential notation(scientific notation) */ return 0; } |
المخراجات
Case 1: 9876 Case 2:9876 Case 3:987.65 Case 4:988 Case 5:9.876543e+002 |
الاختلاف فى المدخلات للأعداد الصحيحة والاعداد الحقيقية :
الكود: |
#include <stdio.h> int main(){ int a,b; float c,d; printf("Enter two intgers: "); /*Two integers can be taken from user at once as below*/ scanf("%d%d",&a,&b); printf("Enter intger and floating point numbers: "); /*Integer and floating point number can be taken at once from user as below*/ scanf("%d%f",&a,&c); return 0; } |
بالمثل يمكن أخذ أى عدد من المدخلات دفعة واحدة من المستخدم