سي بلس بلس
و ها هو ملف البرنامج :
هذه المساحة بالقدم المربع سجلت حوالي 12 بوصة LP ( و التي تحتوي علي نصف قطر 0.5 قدم ) في وقت ما هذه ستكون كمية مهمه لاصحاب مصانع الكروم 1 .
• النوعين Double و Long double
النوع الاكبر من Floating point هو Double و Long double .
وهم يشبهون النوع Float باستثناء انهم يحتاجون مساحة تخزين اكبر ويزودوا بحدود اوسع من القيم و دقه اكثر .
النوع Double يحتاج 8Bytes من المساحة التخزينية ويستعمل ارقام في حدود من 1.7*10^-308 الي 1.7*10^308 بدقة 10 رقم احادي .
النوع Long double هو تابع للمعالج لكن كثيرا ما يكون مثل ال Double . النوع Double كما سنري في الشكل رقم (7) .
الله عليك الله ابدعت والله يا باشا
ازد يا سيدى ازد اشحينا
مكن بس اطلب طلب انا موافق و مبسوط بالشرح العربى بس يا ريت المسميات تكون انجليزى
يعنى بلاش كائن و فئة و دالة
make them
object class function
علشان دول اساس الكود يا ريييتتتتتتتتتت
لا اله الا الله .......................................... محمد رسول الله
• ثوابت النوع Floating point
الرقم 3.14159f في برنامج Circarea هو مثال لثابت من النوع Floating point . اشارات نقط الكسور العشرية التي تكون ثابت من النوع Floating point . و التي لا تكون عدد صحيح Integer .
و ال F خصصت النوع ليكون Float و بالاولي عن Double و Long double .
الرقم كتب بالترقيم العشري الطبيعي او العادي .
لن تحتاج ان تلحق بحرف في ثوابت النوع Double انه تقصير. في النوع Long double استخدم الحرف L . يمكنك ايضا كتابة الثوابت من النوع Floating point باستخدام الترقيم الاسي .
الترقيم الاسي هي طريقة لكتابة الارقام الكبيرة بدون نقل او نسخ الكثير من الاصفار.
كمثال :
1,000,000,000يمكن ان يكتب هكذا في الترقيم الاسي : 1.0E9
بالمثل :
1234.56
سيكتب 1.23456E3( هذه نفس الطريقة مثل 1.23456times10^3 )
الرقم الذي يتبع E يسمي الاس .
انه يشير الي كم عدد الاماكن التي يجب ان يتحرك فيها نقطة الكسر العشري لتغيير الرقم الي ترقيم كسري اعتيادي الاس يمكن ان يكون موجب اوسالب .
الرقم الاسي 6.35239E-5 مساوي ل 0.0000635239 في الترقيم الكسري العشري . وهو نفسه مثل 6.35239times10^-5 .
جذاك الله كل خير اخي
و شكرا علي هذه الملاحظه
مساء الخير
انا قررت اني اشترك معكم
شكلكم ناس مجتهده
انا قريت تقريباً كل الموضع
بس اذا ممكن تضعون الايميل اللي بتجيني منه الاسئله حتى ما يصلني على الجنك ميل
شكراً
عندي سوال جاي عرض
انا اشتغل عليه في المدرسه بس ما نستخدم الملف iostream
نستخدم stdio.h
ونستخدم بدل cinوcout
printfوscanf
ايش الفرق ؟؟؟
وابي اعرف بعد انتو تشتغلو على c++ 6.0 ???
thanx
اختي العزيزة اهلا ومرحبا بيكي معنا
اولا انا باشتغل بال Visual c++ v6
ثانيا جميع الدوال و الاوامر التي تتكلمين عنها نحن سنستخدمها ايضا
و هي موجوده و لكن نرجو منك الصبر و لا تسبقين الموضوع
و جذاك الله كل خير
• ثابت النعت او الوصف
بجانب شرح المتغيرات من النوع Float . المثال Circarea ايضا يقدم ثوابت النعت و التي استخدمت في الشفرة التالية:
Const Float PI=3.14159F; //Type const float
الكلمه المحجوزة Const ( للثوابت ) تسبق نوع بيانات المتغير . انها تخصص قيمة المتغير التي لن تتغير في اثناء البرنامج .
اي محاوله لتغيير قيمة المتغير المعرفة بالنعت ستؤدي الي ظهور رسالة خطأ من المعالج . ثوابت النعت بالتاكيد التي برنامجك لن يهمل تغيير متغيراتها التي قصدت ان تكون ثابته.
كذلك مثل قيمة المتغير PI في برنامج Circarea .انها ستذكر اي شخص يقرأ البيانات أن المتغير ليس المقصود للتغيير .
تعديل الثوابت يمكن ان يسمح لاي كيان بجانب المتغيرات البسيطة . سنتعلم الكثير عن ذلك بمرور الوقت .
تم تعديل هذه المشاركة بواسطة البارودي في 9 ديسمبر 2004 في 05:53
• الموجه #define
مع ان البناء او التركيب لم يوصي به في ال C++ . الثوابت يمكن ايضا ان تخصص بواسطة عملية ما قبل التوجيه #define .
الموجه يقوم بالمساواة بين التعريف و جملةالنص كمثال السطر:
#define PI 3.14159
الظاهره في بداية برنامجك مخصصة ان المعرف PI سيستبدل بالنص 3.14159 في كل مكان في البرنامج . التركيبة مالوفة في لغة ال C .
و مع ذلك لايمكنك تخصيص نوع البيانات الثابته باستخدام #define .
و التي يمكنها ان ترشدك الي عيوب البرنامج : لذلك ايضا في ال C
#define ستحل محل الكلمه المحجوزه Const مستخدمه بواسطة المتغيرات البسيطه . و مع ذلك ربما تقابل هذه التركيبه في برنامجك القديم.
• النوع Bool
لكي ننجز يجب ان نذكر المتغير من النوع Bool هنا . مع انها ليست مهمه حتي نناقش معامل العلاقات في الفصل التالي .
نحن راينا ان المتغيرات من النوع Int يمكن ان تحتوي علي بليون نوع من القيم المسموح بها . و ايضا النوع Char يمكن ان يحتوي علي 256.
المتغيرات من النوع Bool يمكن ان يحتوي فقط علي قيمتين مسموح بهما: True و False .
انا في رايي النوع Bool يطلب فقط واحد Bit ( ليس Byte ) من الذاكره.
لكن بمزاولة المعالجه كثيرا ما تخزنها مثل Byte لان ال Byte يمكن ان يكون سريع الدخول او الاقتراب . بينما ال Bit المفرده يجب ان تستخرج من ال Byte . والتي تطلب وقت اضافي .
و كما سنري النوع Bool كثيرا ما غالبا يستخدم ليحتوي علي نتيجه المقارنه.
Is alpha less than beta?
لو كان كذلك فان قيمة ال Bool ستعطي القيمه True .
لو لم يكن كذلك فان قيمة ال Bool ستعطي القيمه False .
النوع Bool حصل علي هذا الاسم من George Bool عالم الرياضيات الانجليزي في القرن ال 19 . الذي استنبط تصور استخدام المعاملات المنطقية بالقيمتين True و False .
علي هذا النمط كذلك False / True هذه القيم كثيرا ما تسمي القيم Boolean .
تم تعديل هذه المشاركة بواسطة البارودي في 9 ديسمبر 2004 في 06:04
اخي البارودي... شكرا لك على كل هذا.
ولكن هل يوجد عندك الكتاب(الكتروني)
انا ضفتك على ايميلي majnona_@hotmail.com
اذا كان عندك الكتاب الكتروني ارجوا ان تضعه هنا او ترسله لي
وشكرا
للاسف الكتاب عندي لكن مش اليكتروني
اسف لذلك
لكن ممكن تبحثي عنه باستخدام اي برنامج مشاركة ملفات مثلا E-donky
فهو برنامج جيد يقدر يبحثلك علي كل الذي تريده
• المشغل SetW
سنذكر المشغلات التي المعاملات تستخدمها مع معامل الادخال ( << ) لتغير – او لتشغل – طرق عرض البيانات .
نحن سابقا راينا المشغل EndL . الان سنلقي نظرة علي واحد اخر SetW . و الذي يغير عرض حقول المخرجات .
يمكنك ان تفكر في كل القيم المعروضه عن طريق Cout مثل التي تشغل الحقول : وهو صندوق تخيلي له عرض . اقل الحقول هو فقط عرض او وسع كاف ليحوي القيم .
ها هوالعدد الصحيح 567 سيشغل حقل من ثلاثة حروف .
و الجملة " Pajamas " ستشغل حقل من سبعة حروف .
ومع ذلك في الحالات المؤكده ربما لن ترشدك للحلول الجيده .
ها هو مثال . برنامج ال Width1 يطبع اسماء ثلاث مدن في عمود واحد وعدد سكانهم في عمود اخر .
#include<iostream.h>
int main()
{
long pop1=2425785,pop2=47,pop3=9761;
cout<<"location\t"<<"pop."<<endl
<<"portcity\t"<<pop1<<endl
<<"hightown\t"<<pop2<<endl
<<"lowville\t"<<pop3<<endl;
return 0;
}تم تعديل هذه المشاركة بواسطة البارودي في 9 ديسمبر 2004 في 23:10
تم تعديل هذه المشاركة بواسطة البارودي في 9 ديسمبر 2004 في 23:12
وهذا ملف مرفق بالبرنامج:
ولسوء الحظ . هذا التنسيق يجعل ذلك اصعب لمقارنة الارقام . سيكون من الافضل لو تم المحازاة من ناحية اليمين . ايضا سنقوم بادراج مسافات في اسماء المدن لنفصلهم عن الارقام . هذا مزعج .
هذا هو التغيير في البرنامج Width2 و الذي استخدم المشغل SetW ليستبعد هذه الاخطاء عن طريق تخصيص عرض الحقول للاسماء و الارقام :
#include<iostream.h>
#include<iomanip.h>
int main()
{
long pop1=2425785,pop2=47,pop3=9761;
cout<<setw(8)<<"location"<<setw(12)<<"pop."<<endl
<<setw(8)<<"portcity"<<setw(12)<<pop1<<endl
<<setw(8)<<"hightown"<<setw(12)<<pop2<<endl
<<setw(8)<<"lowville"<<setw(12)<<pop3<<endl;
return 0;
}وها هو ملف مرفق بالبرنامج:
المشغل SetW يسبب او يجعل الارقام ( او الحروف ) تتبع هذا المشغل في جدول لكي تكون مطبوعه بداخل عرض العدد n للحروف بالحقول .
حيث n هي شرط لل SetW(n) . هذه القيمه تؤيد جهة اليمين بداخل الحقل . الشكل رقم 8 يعرض ذلك.
النوع Long استخدم لعدد السكان الذي اوقف احتمال زيادة الاخطاء في النظام الذي استخدم 2Bytes من النوع Integer .
لذلك تكون اكبر قيمه صحيحه هي 32767 .
تم تعديل هذه المشاركة بواسطة البارودي في 9 ديسمبر 2004 في 23:22
• سلسلة او حزمة معامل الادخال
لاحظ ذلك انه فقط شفرة Cout واحدة في Width1 و Width2 ومع ذلك هي كتبت في خطوط وسطور متعددة . بفعل ذلك نحن نأخذ فائدة حقيقية بان المعالج يتجاهل المساحات البيضاء وان معامل الادخال يمكن ان يكون في سلسله او تتابع . انه نفس التاثير لو استخدمت اربع شفرات منفصلين يبدأون كلهم ب Cout .
• التعريفات المتعدده
نحن اخذنا الحروف الاولي من المتغيرات Pop1 و Pop2 و Pop3 لتخصيص قيم في نفس الوقت التي تعرف فيه . انها طريقه مشابهه للطريقة التي اخذنا فيها الحروف الاولي Char للمتغير Char في مثال Charvars .
هنا ومع ذلك نحن عرفنا و اخذنا الحروف الاولي لكل المتغيرات الثلاثة في سطر واحد باستخدام نفس الكلمة المحجوزة Long و عزلنا اسماء المتغيرات بفصلة .
هذه مسافة امنه عندما ارقام المتغيرات يكونوا كلهم من نفس النوع .
تم تعديل هذه المشاركة بواسطة البارودي في 9 ديسمبر 2004 في 23:34
• المف الرئيسي IOmanip
الاعلان عن المشغلات ( ما عدا EndL ) لايكون عادتا في الملف الرئيسي IOstream ولكن في ملف رئيسي منفصل يسمي IOmanip . عندما نستخدم هذه المشغلات فيجب عليك ان تضع الملف الرئيسي في البرنامج عن طريق
#include<iomanip.h>
كما فعلنا في المثال Width2 .
هذا الموضوع مغلق.
