منتديات المبرمج العراقي

موقع عراقي يختص بالبرمجة ومشاريعها واكوادها
 
الرئيسيةس .و .جبحـثالأعضاءالمجموعاتالتسجيلدخول

شاطر | 
 

 الدرس الثامن البرمجة بلغة سي

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


المساهمات : 24
تاريخ التسجيل : 04/07/2008

مُساهمةموضوع: الدرس الثامن البرمجة بلغة سي   الأربعاء يوليو 09, 2008 6:46 pm

طرق مختلفة لإدخال الحرفيات:

ذكرنا من قبل أنه لا يوصى باستخدام الدالة scanf لإدخال الحرفيات من لوحة المفاتيح .والآن سنستعرض البدائل المختلفة التي تتيحها اللغة لإدخال الحرفيات.

الدالة gets :
يعتبر اسم الدالة اختصارا للعبارة " get string " وهي تقوم بقراءة الحرفي المدخل من لوحة المفاتيح ، وتضيف إليه الرمز الصفري ( NULL ) ثم تقوم بتخصيصه للمتغير المطلوب و الذي يستخدم كدليل للدالة. وصيغة الدالة كالآتي:
gets(a);
حيث " a " مصفوفة الرموز.

والمثال التالي يوضح استخدام هذه الدالة.

CODE

#include <stdio.h>
main()
{
char employee_name[20];
gets(employee_name);
printf(“ Employee: %s\n”,employee_name);
}




وعندما يبدأ البرنامج سوف ينتظر منك إدخال الحرفي المطلوب وهو اسم الموظف " employee name " ثم يخصصه لمصفوفة الرموز المكونة من عشرين عنصرا. وفي النهاية يطبع البرنامج الاسم على الشاشة كتأكيد لتمام الاستلام و الحفظ.

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

الدالة fgets :

تستخدم هذه الدالة لقراءة حرفي من ملف أو جهاز للدخل ( input device ). ويتم تعريف الملف ( أو جهاز الإدخال ) ضمن صيغة الدالة نفسها كالتالي:

CODE
fgets( a, n, stdin );


حيث " a " مصفوفة رموز
و " n " الحد الأقصى للرموز المدخلة.
و " stdin" اسم جهاز الدخل القياسي ( لوحة المفاتيح )

ويمكن بالطبع استبدال جهاز الدخل القياسي stdin باجهزة أخرى حسب الموقف و لكننا في الوقت الحالي سوف نكتفي بلوحة المفاتيح كجهاز للدخل .

عند استخدام هذه الدالة في إدخال الحرفيات فإنها تضيف إلى مؤخرة الحرفي كلا من :
1- علامة السطر الجديد ( \n ).
2- الرمز الصفري ( NULL ).

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

CODE

#include <stdio.h>
main()
{
char employee_name[20+2];
fgets(employee_name,22,stdin);
printf(“ Employee: %s\n”,employee_name);
}




طرق مختلفة لطباعة الحرفيات:

سنتناول الآن بعضا من دوال الخرج التي تصلح لطباعة الحرفيات بطريقة مبسطة.

الدالة puts:
اسم هذه الدالة إختصار للعبارة " put string " وهي الدالة المقابلة لدالة الدخل gets وصيغة هذه الدالة كالآتي:

CODE
puts ( a);


حيث a ثابت حرفي ، أو مصفوفة رموز.

والمثال التالي يوضح استخدام هذه الدالة لطباعة رسالة لتنبيه المستخدم قبل استخدام الدالة gets لاستقبال البيان

CODE

#include <stdio.h>
main()
{
char employee_name[20+1];
puts(“Enter employee_name: ”);
gets(employee_name);
puts(employee_name);
}




وعند تنفيذ البرنامج نلاحظ أن الاسم المدخل قد جاء على سطر مستقل بعد رسالة التنبيه . وذلك لأن الدالة puts عندما تطبع حرفيا على الشاشة تطبع في مؤخرته علامة السطر الجديد " \n"

الدالة fputs:

هذه الدالة هي المناظرة للدالة fgets فهي تستخدم لإرسال الخرج إلى ملف أو جهاز الخرج المذكور اسمه ضمن بارامترات الدالة.

وصيغة الدالة كالآتي:

CODE
fputs( a, stdout );


حيث a مصفوفة رموز أو ثابت حرفي.
و " stdout " اسم جهاز الخرج القياسي وهو جهاز الشاشة.

ومن الطبيعي استبدال جهاز الشاشة كما يتطلب التطبيق.

والدالة fputs تختلف عن puts في أنها لا تطبع علامة السطر الجديد في نهاية الحرفي.

الفصل الرابع : المؤثرات

إن لغة C – كأي لغة أخرى – تتعامل مع التعبيرات، وتتكون التعبيرات من الثوابت و المتغيرات المرتبطة ببعضها البعض بواسطة المؤثرات.

والمؤثرات تنقسم إلى عدة أنواع هي:
1- المؤثرات الحسابية ( Arithmetic Operators )
2- المؤثرات العلاقية ( Relational Operators )
3- المؤثرات المنطقية ( Logical Operators )

المؤثرات الحسابية ( Arithmetic Operators ) :
تتيح لغة C استخدام العديد من المؤثرات الحسابية، منها المؤثرات الأساسية والتي تقوم بالعمليات الحسابية الأساسية وهي الموضحة أدناه

+ ( الجمع )
- ( الطرح )
* ( الضرب )
/ ( القسمة )
وبالإضافة لهذه المؤثرات توجد مؤثرات خاصة بلغة C وهي الموضحة أدناه

% ( باقي القسمة )
-- ( النقصان )
++( الزيادة )

وسنتناول بشيء من التفصيل استخدام هذه المؤثرات الخاصة.

مؤثر باقي القسمة
الصورة العامة لاستخدام هذا المؤثر هي : x % y
ويكون الناتج هو باقي قسمة " x " على " y " ، والشكل التالي يوضح استخدام المؤثر والناتج

CODE
7%3


ويكون الناتج لهذه العملية هو "1 " وهو باقي القسمة للعددين 3/7

مؤثرات الزيادة والنقصان (Decrement & Increment) :
من مزايا لغة ال C انها تستعمل الأداتين الحسابيتين ++ و – لزيادة القيم بمقدار 1أو انقاصها بمقدار 1 والمثال التالي يوضح طريقة الاستعمال :

CODE

X++;
++X;



ومعناه اضافة قيمة 1 الى X ويمكن كتابته بصورة مكافئة على النحو التالي :

CODE
X=X+1;


وبالطريقة نفسها يمكن انقاص 1 من قيمة X على النحو التالي :

CODE

--X;
X--;



وهو يكافيء الصورة :

CODE
X=X-1;


لكن هناك فرقا في سرعة التنفيذ , فالتعبير ++X اسرع من التعبير X=X+1
وهذه هي الفائدة من جراء استخدام مثل هذه الأدوات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://iq-prog.rigala.net
 
الدرس الثامن البرمجة بلغة سي
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات المبرمج العراقي :: لغات البرمجة :: منتدى البرمجة العام-
انتقل الى: