0 اختبار البيقات
2 انوع تتقط
إدا كان المتغير * من النوع الصحيح بحيث لا يتجاوز
فقد يكون من الانسب تخصيص بايت واحدة لهدا المتغير ؛ فهي كافيه لتخزين
اي عدد * في النطاق المدكور؛ ودلك لان اكبر رقم يمكن تمتيله بالإشارة قي
بايت واحدة هو
اي 127 في النظام العتري .
1 . المتغير الدي يعبر عن احد الاختيارات في القائمة الرئيسية.
2 . المتغير الدي يعبر عن رقم صفحة في تقرير صغير.
3 . المتغير الدي يرمز لعدد الطلبة في قصل دراسي صغير .
ولكن قد يلاحظ الدارس اذ _لم تتم قي جميع هده الامتلة الاستفادة من الاعداد
الحفيقه ؛ يمكننا حل هده المشكله هي لغه سي باستخدام معدل النوع:
أساسيات و تطبيقات لغة سي 0.١) 8
(اي بدون إشارة ) . اي باستطاعتنا تعديل النوع 0088# ( او اي نوع اخر )
بواسطه معدل النوع 1115181160 على النحو التالي :
بهده الطريقة يصبح النطاق للمتغير * هو
وهو يحتوي على عدد من الأرقام يساوى
اي عدد الارقام التي يمكن تمتيلها في 8 خانات تنائية ( بايت واحدة ). والسبب
في دلك ان خانة الإشارة اضيفت إلى العدد واصبح لدينا 8 خانات تنائية ( بايت
واحدة ) بدلا من 7 خانات تنائية في حالة وجود خانة للإشارة .
__ : مادا يطبع البرنامج التالي ؟ ومادا يحدث إدا تم تغير الشرط 127 > *«
بالششرط 7->»
بن" 60 "اميم
الشكل ( 7.2.1 ) النوع تق
)0 اختبار البيقات
يطبع البرنامج الارقام من 127- إلى 126 بزيادة 1 في كل مرة. وهو في داخل
النطاق المسموح به للمتغير * من النوع 6087 .
لاحظ ان عدم تحديد الإشارة 518060 او 0115:8060 يعنى في لغة سي انه من
النوع الاول اي 8108080 ٠
إدا تم تغرير الشرط
بالشرط
فمعنى دلك ان الخروج من الحلقه يتطلب وصول * إلى القيمه 128 وهدا لن
يتحقق لان الحد الاقصى للنوع 01187 هو 127 مما يؤدى إلى حلقة لانهائية .
لاحظ ان جملة التعيين
يقبلها مصر .ف لغة سي حتى لو كانت # من النوع 0087 ؛ ولا يصدر رسالة
خطا 1110855086 1101© كما نتوقع ٠ ١ يعتبرها
اي ان إضاق 1 إلى اكبر قيمة لها تاتير البداية من اول قيمة في النطاق
المحدد .
أساسيات و تطبيقات لغة سي )0 8
تقد 001518060 اي ب دون إشارة ودلك لطباعه الاعداد من 0 إلى 254 .
يبين الشكل ( 7.2.2 ) البرنامج المطلوب ؛ وفيه نلاحظ ما يلي :
1 . عدم تجاوز * النطاق المسموح به للنوع 1087© 011518080 ؛ حيث تتوقف
دورة :0] عندما تصبح قيمة 1# 255 .
النوع 1187 سنحصل على الرمز المقابل لهدا العدد في جدول اسكى .
بل" 60 "التمصام
الشكل ( 7.2.2 ) النوع تقداء 1111518060
فمتلا إدا كان المتغير * من النوع 010188 فإن جملة التعيين
0 اختبار البيائات
تكافئ الجملة
(2.3.) : اكتب برنامجا لطباعة جميع الرموز في جدول اسكى بمعدل
0 رموز في كل سطر بحيت يطبع الرمز إلى جانب .رفمه في الجدول .
"٠ ها الاسم
الشكل ( 7.2.3 ) برنامج جدول اسك
لاحظ ان الرموز ال قابلة للطباعة في جدول اس كى تبدا من الرقم 32 ؛ وان
3 معدلات التوع )5101 و 1078
أساسيات و تطبيقات لغة سي )0 8
يستخدم معذل النوع ]51101 _لتعديل النوع الصحيح ليصبح ذا سعة 2 بايت ( اي
16 )© اي انه يكاهئ في معظم الحاسبات النوع ]117 حيت الحد
الاعلى لهدا النوع هو العدد
والحد الادنى هو 32768 - .
إدا كانت هده السعه لا تكفى لتخزين العدد (متلا في تعداد السكان) يمكننا زيادة
سعة الكلمة إلى 4 بايت ( اي 32 بت ) باستخدام المعدل 10:08 . اي ان العدد
1 . عند قراءة أو طباعة عدد من النوع الصحيح الطويل 104 1008 نستخدم
النضيد " 10 96" وليس " 960" .
2 . عند قراءة أو طباعة عدد من النوع الصحيح غير السالب 1106 11105180060
تستخدم النضيد " تن96 " .
البرنامج التالي يوضح طريفه إعلان وطباعه متغير صحيح من النوع
الطويل 1008 ومتغير من النوع غير السالب .
0 اختبار البيقات
:80 ألا
الشكل ( 7.3.1 ) طباعة متغير من النوع 1008 والنوع 1111518060
4 النوع المضاعف ع0011101
سبق وان درسنا النوع 0084 ؛ وهو من النوع المستخدم عادة في تمتيل الاعداد
الكسرية حيث نقسم الكلمة دات السعة 4 بايت (32 بت) إلى جزءين : الجزء
الكسرى والاس . ولكن هدا التقسيم قد يؤدي إلى حيز ٠ ير كاف لتمتيل كل
الاعداد في الجزء الكسري.
للحصول على دفه اكتر من النوع 11088 يمكن للمبرمج بلغة سي استخدام النوع
المضاعف 00001 الدي يوقر سعة 8 بايت .
وطبقا لمرشد توربو سي فإن نطاق العدد من النوع 000016 إلى
8 وهو رقم صغير جدا يكاد يكون صفرا .
أساسيات و تطبيقات لغة سي 0 8
10 بايت ؛ وهدا النوع لا يحتاجه إلا بعض علماء الفلك او الدرة وغيرها
من التخصصات الدقيقة .
1 . لاحظ أن استخدام النوع 000018 يعطى نتائج أكثر دقة من النوع 11084
ولكن على حساب سرعة التنفيذء
2 . عند قراءة أو طباعة عدد من النوع 0001018 استخدم النضيد
3 . عند قراءة أو طباعة عدد من النوع 0001516 1008 استخدم النضيد
ا برنامج بالشكل ( 7.4.1 ) يبين الفرق في دقه النوعين 11081 و
ندر
زربا 96 9618 ها التمصط
00 اختبار البيقات
الشكل ( 7.4.1 ) مقارنة بين النوعين 11081 و 000516
ند تنقيد هدا البرنامج نحصل على
حيث نلاحظ ان العدد الواقع على اليسار لا يوجد به خطا ؛ اي انه هو نفس
العدد المدخل ؛ اما العدد الاآخر قفيه خطا واضح ؛ حيث هناك فرق بين العدد
الاصلي والمطبوع .
؛ وكما نعلم قإن النوع 0001018 دو سعة اكبر من النوع 110816
5 التحويل من نوع إلى اخر
فإن دلك يؤدى إلى عملية تحويل من النوع ]11081 إلى النوع 000016 وهى
عملية لا ينتج عنها فقدان لاي اعداد لانها تمت من النوع الصغير (4 بايت) إلى
النوع الاكبر (8 بايت) . ولكن إدا كانت العملية عكس دلك » اي