المدخلات والمخرجات

بسم الله الرحمن الرحيم    
 المدخلات والمخرجات :
رسم تخطيطي للمدخلات والمخراجات


المواصفات القياسية ANSI بها تعريف للعديد من دوال الدخل والخرج للغة السى . الدوالprinf() و scanf() هى الأكثر استخداما لعرض المخرجات وأخذ المدخلات على الترتيب .
مثال :    


الكود:
#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;
}



بالمثل يمكن أخذ أى عدد من المدخلات دفعة واحدة من المستخدم