المشاركات

عرض المشاركات من مارس, ٢٠١٣

فئات رقمية غاية في الطول في ++C

صورة
فئات رقمية غاية في الطول قد تثور مواقف تتطلب استخدام أرقام تتجاوز مدي النوع unsigned long والذي هو النوع ذو المدي الأكبر في السي ++ ( حتي 4,264,967,295, أي حوالي عشرة أرقام) . وسوف نبين لك في برنامجنا التالي طريقة لحل مشكلة كهذه فهو يتضمن فئة يمكنها أن تحوي أعدادا يصل طولها إلي مائتي رقم . وبإمكانك الوصول إلي أكثر من ذلك , بمجرد تغيير ثابت واحد هل تريد إلي ألف رقم ؟ ليس هناك مشكلة . وحيث إن البرنامج لا يحتاج للبرامج الرسومية أو أيه دوال خاصة بالدوس , فإنه بإمكان مستخدمي بورلاند سي++ أن يستخدموا EasyWin . الأعداد علي صورة عبارات نصية الفئة verylong تخزن الأعداد علي في عبارة نصية ] لا تنس أن الأرقم هي أيضا محارف[ وهو ما يفسر سعتها العالية . وتحوي الفئة مصفوفة vlstr من النوع char ] مصفوفة عبارة نصية [ ومتغير عدد صحيح vlen يحوي طول العبارة النصية , وهو إجراء ليس ضروريا إلا لإراحتنا من استدعاء الدالة strlen() في كل مرة نريد فيها استعمال هذه القيمة . وتخزن ال أرقام في ترتيب عكسي , بمعني أن الأحاد في العنصر 0 من المصفوفة , والعشرات في العنصر 1 , وهكذا هذا الأسلوب ييسر كثيرا عمليات ا

برنامج الألة الحاسبة في ++C

صورة
برنامج الألة الحاسبة بعد أن عرفت كيف ننشئ برنامجا ذا ملفات متعددة , نقدم لك برنامجا طموحا مبنيا علي هذا الأسلوب , يخرج لك حاسبة إلكترونية تقوم بالعمليات الحسابية الأربع . والوضع العملي أن يكون تشغيل الحاسبة عن طريق الفأرة , ولكن لغة السي ++ لا تتضمن دوال مكتبية لتشغيل الفأرة , وكتابة برنامج لتشغيل الفأرة سوف يجعل العمل معقدا بقدر كبير .   استخدام الحاسبة نقوم في برنامجنا بإظهار حالة الضغط علي ضواغط الحاسبة , كما تجدها في البرامج التجارية , وسوف نحقق ذلك بحيلة تعتمد علي تغيير ألوان حواف الضواغط . وسوف نستخدم ألوانا مختلفة لتحسين تصميم البرنامج , فضواغط الأرقام باللون الأسود , وضواغط المعاملات باللون الأزرق . وسوف تكون علامة = و + علي نفس الضاغط , كما سيميز الضاغط Clr باللون الأحمر . وسوف نستخدم التأثير الصوتي والبصري عند الضغط علي الضواغط لإظهار حالة الضرب عليها . ملفات البرنامج يتكون البرنامج من ثلاثة ملفات , المفروض أن الملفين الأولين سوف نشتريها جاهزين , وأن الملف الثالث هو ما سنكتبه بأنفسنا . الملف الأول هو الملف التصديري calc.h ويحتوي علي إعلانات الفئات , والملف الث

الأدلة التلقائية في ++C

صورة
الأدلة التلقائية يجب أن تكون مدركا أن لكل مشروع أدلته التنفيذية الخاصة به في المسارين lib, include . وفي بورلاند سي++ يمكنك رؤية هذه الأدلة باختيار الأمر Options/Project . ثم النقر علي Directories , وفي تيربو سي++ بالأمر Options/Directories . وحين تبدأ مشروعا , قد يحدث لبيئة البرمجة بلبلة بين الأدلة التي ترغب استخدامها . فإذا ظهرت لك من المترجم unable to open file XXXX.h أو من الرابط رسالة unable to open file XXXX.lip فإن أدلتك التلقائية قد تكون في وضع غير صحيح , وعليك أن تكتب لها المسار الصحيح . والأمثلة المعطاة في هذه المقالات تعتبر أن الأدلة التلقائية التي تتخذ تلقائيا كخيار مبدئي بالنسبة لدليل الملفات التضمينية وبالنسبة لدليل الملفات المكتبية هي بالنسبة لبورلاند سي++ في المسار \bc4\include , و \bc45\lip وبالنسبة للتربو سي++ في المسار \tc\inc. و \tc\lib علي الترتيب , وهي مسارات يتخذها كلا النظامين كخيارات مبدئية , ومن ثم فالمفروض ألا تكون هناك مشكلة , علي أنه كما ستري في المقالات التالية , يمكن أن تكون الأمور أعقد من ذلك .

الغرض من تعدد الملفات في البرنامج في ++C

صورة
رأينا قبل ذلك كيف يجمع برنامج السي++ المختلفة , مثل تعاريف الفئات والدوال المنتمية والدالة الأصلية . علي أن كافة هذه البرامج كانت من ملف واحد . وسوف نتناول في هذا المقال تنظيم البرامج من وجهة نظر أخري , الملفات المتعددة . وبالإضافة إلي ذلك , سنعرض في هذا المقال لبعض برامج طموحة , ليس بهدف فهمها وحسب , بل لتأخذ فكرة عن كيفية العلاقات بين عناصر البرامج الكبيرة . كما تنبين هذه البرامج تطبيق الفئات في مواقف أكثر واقعية من التي عرضنا لها للأن . الغرض من تعدد الملفات في البرنامج هناك عدة أسباب لتعدد الملفات في البرامج , من ذلك استخدام الملفات المكتبية , تنظيم العمل بيم مبرمجي البرنامج , وتنظيم البرنامج تنظيما منطقيا . كيف تنشئ برنامجا متعدد الملفات تصور أنك اشتريت برنامجا جاهزا , وليكن theirs.obj (يتم التعامل مع الملفات .lib بنفس الطريقة) , هذا البرنامج يأني في الغالب بملف تصديري وليكن theirs.h , وأنك تريد دمج هذين العنصرين مع برنامجك mine.cpp في ملف تنفيذي . الملفات التصديرية تضمين الملف التصديري أمر سهل , فهو يتم بالأمر : #include ''theirs.h'' وتخبر عل

ملخص التدفقات والملفات في ++C

صورة
  عرضنا في المقالات السابقة بإيجاز التدرج الهرمي لفئات التدفقات , وبينا كيف يمكن التعامل مع أخطاء الإدخال والإخراج , ثم بينا كيف يمكن فتح ملف والتعامل معه بأكثر من فئات مختلفة , وعلي وجه الخصوص الفئات ofstream للإخراج , ifstream للإدخال و fstream لهما معا وتستخدم الدوال المنتمية لهذه الفئات أو للفئة الأساسية لها لإجراء العديد من الوظائف المتعلقة بالملفات من ذلك الدوال <<, put(), write() للإخراج و >>, get(), read() للإدخال . وتعمل الدالتان read(), write() في النمط الثنائي بحيث يمكن تخزين كافة الكائنات علي القرص بصرف النظر عن ما هيه البيانات التي تتضمنها فيمكن تخزين كائن وحيد أو مصفوفة من كائنات أو أي هيكل للبيانات لعدة كائنات , ويمكن إجراء عمليات الإدخال والإخراج بدوال منتمية علي مستوي الكائنات , أو علي مستوي الفئات الأساسية ذاتها باستخدام دوال استاتيكية . وبعد كل عملية علي ملف يجب إجراء اختبار حدوث للخطأ ويأخذ كائن الملف ذاته قيمة صفرية حين حدوث ذلك . وفي نفس الوقت توجد دوال للكشف عن أخطاء محددة . كما بينا كيفية زيادة تحميل مؤثر الاستخلاص >> ومؤثر الإيلاج &l

معاملات سطر الأوامر في ++C

صورة
معاملات سطر الأوامر ما لم تكن مستخدما للويندوز بصفة دائمة , فأنت علي دراية بمعاملات سطر الأوامر , والتي بها تشغل البرامج من محث الدوس . فهي تستخدم أساس لإدخال اسم ملفات البيانات للتطبيقات . فمثلا يمكنك فتح ملف من برنامج علي النمط التالي : c> wordprc afile.doc هنا يعتبر afile.doc معاملا لسطر الأوامر . كيف نجعل برامج السي++ تشغل من سطر الأوامر ؟ إليك البرنامج التالي الذي يتمتع بهذه الميزة . comline.cpp   // comline.cpp // demonstrates command-line arguments #include <iostream.h> #include <conio.h>   void main( int argc, char * argv[] ) { cout << "\nargc = " << argc;   for ( int j=0; j<argc; j++) cout << "\nArgument " << j << " = " << argv[j]; getche(); } وإليك مثال للحوار مع البرنامج من سطر الأوامر : c>comline uno dos tres arge = 4 Argument 0 = c:\pp\chapter4\comline.exe Argument 1 = uno Argument2 = dos Argument3 = tres لقراءة معاملا