البرمجة بلغة السى – 5 - المدخلات والمخرجات

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

البرمجة بلغة السى – 5 - المدخلات والمخرجات

مُساهمة من طرف Admin في الأربعاء يناير 29, 2014 6:31 pm

البرمجة بلغة السى – 5 -  المدخلات والمخرجات :

المواصفات القياسية 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;
}


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

Admin
Admin

عدد المساهمات : 985
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى