الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماذا تعني هذه العبارات وما الغرض منها ؟

مغلق
بدأه user.08 في 11 ديسمبر 2007 · 3 رد · 929 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

الاخوة المحترمين

ماذا تعني هذه العبارات في لغة

c++

اعتقد انها مثل أمر

echo

الموجود في لغة

php

cout

--------------------------------------------------

بداية برنامج في لغة

c++

int main()

--------------------------------------------------

ارجاع القيمة صفر

return 0;

--------------------------------------------------

هل هي دالة محجوظة في اللغة مثلا ؟

p.process();

--------------------------------------------------

اعتقد انها دالة رياضية مثل

cos sin ..

لكن ما فائدتها ؟

fabs

--------------------------------------------------

نهاية الاجراء تستعمل مع

if و else

endl

--------------------------------------------------

لم اتوصل الى فهم هذا السطر ؟

static double PI

--------------------------------------------------

كذلك هذا

void process

--------------------------------------------------

نفس الشيء

using namespace std

--------------------------------------------------

ماحاولاتي لفهمها موجودة بالللون الاحمر

:unsure:

وشكرا

#2

اهلا user إن شاء الله رايحة احاول اساعدك بخصوص الاشياء هدي. على الاقل شايفة اساسياتي جيدة بلغة C++ وبالله التوفيق.

اوكي, بالنسبة لـ cout دي فهي عبارة عن كائن Object موجود و معرّف مسبقاً داخل الملف الخاص بالإدخال و الإخراج iostream. هذا الكائن مسؤول عن طباعة (إخراج) القيم على الشاشة. iostream يعتبر من الملفات الموجودة بالمكتبة العامة لهذه اللغة و كل المكتبة العامة لها ما حيّز اسمي أو فضاء اسمي namespace يدعى بـ std. عشان نكون قادرين من استخدام أي شيء كائن او إجراء او معامل داخل المكتبة العامة لازم نسبق هذا الشيء باسم الحيّز هذا مثل

std::cout << "Hello There" << std::endl

لاحظ إننا اضطرينا نكتب كامل المسار للكائن cout المعامل endl المسؤول عن زراعة سطر فارغ جديد في الشاشة.

أوكي, عشان ما نستخدم ونتعب من كتابة كامل المسار هذا بكل مرة نحتاج شيء من داخل الحيّز الاسمي std هناك طريقة تقنية في لغة c++ تسمح لنا باستخدام الحيّز الاسمي بأول البرنامج عشان ما نضطر لكتابته كل مرة قبل الاشياء المعرّفة بداخله. مثلاُ نكتب السطر التالي بالسطور الاولى للبرنامج:

using namespace std;

الآن مراح نضطر لكتابة std:: قبل الكائن cout او اي شيء مرتبط بهذا الحيّز الإسمي ونكتفي بكتابتها كالتالي:

cout << "Hello There" << endl;

خلاص البرنامج راح يعرف شو تقصد من الكلمة cout و endl

اوكي, الآن انتهينا من استفهامك بخصوص std, cout, endl, using namespace std;

-------------------------------------

بخصوص main() بدون ما تهتم للكلمة int فهي الاجراء الرئيسي لأي برنامج في العالم مكتوب بلغة C++. يعني اعتبرها مسلّمة ثابتة بأن كل برنامج مكتوب بلغة C++ لازم يحتوي على الأكثر إجراء واحد فقط اسمه main() لأن نقطة انطلاق البرنامج والمحطة الأخيرة اللي ينتهي عندها البرنامج. والهيكل العام تبعته كالتالي:

 
int main()
{
//the main program goes here...
return 0;
}

الإجراءات بصفة عامة في لغة C++ تتكون من الرأس و الجسد مثلا الرأس في الإجراء main هو السطر التالي:

int main()

طبعاً الاقواس الفارغة ضرورية كتابتها حتى لو كانت فارغة. الآن نرجع للكمة int وهي مفتاح كلمة موجودة و معرفة في لغة C++ وهي عبارة عن تحديد نوع بيانات العدد الصحيح integer. و موجودة في هذا المثال عشان تخبر البرنامج بأن الإجراء main() سيقوم باسترجاع أي قيمة عدد صحيح وهذا يتم بواسطة الامر return 0 اللي تخبر البرنامج باسترجاع العدد الصحيح صفر عند أنتهاء الإجراء main(), يعني عند انتهاء البرنامج بالكامل

الآن عرفنا جزء من استفاهمك و هو ماهي main() و int و return 0;

بخصوص الفاصلة المنقوطة ";" فهي تستعمل وواجب كتابتها لإنهاء أي تصريح statement في هذه لغة C++. طبعاً, التصريح هو أي سطر يأثر على عمل وسير البرنامج.

-------------------------

أما بالنسبة للسطر:

p.process();

عبارة عن نداء للإجراء process() التابع للكائن p

---------------------------

أما بخصوص السطر:

static double PI

عبارة عن إعلان(تعريف) متغير اسمه PI و له نوع البيانات double عدد حقيقي يعني. الميزة هنا الكلمة static اللي موجودة ببداية التعريف وهي عبارة عن معيّن specifier يجعل المتغير المحلي local variable مستقر و محافظ على قيمته حتى لو خرج البرنامج عن النطاق الخاص بيه.

ماني عارفة شو معلوماتك عن النطاقات او المجالات Scope في اللغة هذي؟

وبعدينه لازم تعطي قيمة استهلالية لأي متغير محلي معيّن بواسطة static يعني كالتالي:

static double x = 0;

أو اي قيمة بتحب.

-------------------------

نستخدم كلمة void عند تعريف الإجراء لأنه يخبر البرنامج بأن الإجراء هذا لا يقوم باسترجاع أي قيمة مثلاً:

 

void prompt()
{
cout << "Please press Q to exit:";
}

كدا أكدنا على البرنامج ان الإجراء prompt() لن يقوم باسترجاع أي قيمة, يعني لو كتبنا مثلا return 10+2 أو اي قيمة راح يصدر البرنامج خطأ عند تصريف البرنامج.

---------------------------

عموماً انا كنت متوقعة انك على دراية لو ببعض الشي عن البرمجة بصفة عامة او عن لغة C++ بصفة خاصة لكن لو كنت غير كدا!! ممممم ماني عارفة؟؟

مع تمنياتي لكم بالتوفيق

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#3

اختي الفاضلة

شكرا من الاعماق

فهمت بعض الامور

الصراحة انني مبرمج php وهناك تشابه كبير بين اللغتين من ناحية syntax لكن بعض المصطلحات لم يسبق لي السماع بها

شكرا جزيلا

لدي استفسارات اخرى هل يمكنني طرحها ؟

#4

العفو, اتفضل لو عندك اي استفهام بخصوص لغة C++ انا مستعدة اجاوبك لو بعرف الاجابة. لكن مو بالسرعة كثير لأني ممكن ما اكون موجودة على الويب طيلة يوم او اكثر.

يا اخ انا عندي لك اقتراح قبل ما تسأل, انا كنت حاسة اصلا ان فيه اشياء مراح تفهم عليها من الكلام اللي بالأعلىو اوكي شو رايك تشوف أي كتاب او دروس خصوصية متعلقة على الاقل بالاساسيات المتعلقة بهذه اللغة؟ و لو كان بعدينه اتعرضت لغموض انا رايحة اساعدك بحول الله في توضيح هذا الغموض. لأني انا ماني عارفة انت شو عندك عن لغة C++. و لا تعمل مقارنة بين اللغتين هذي ابداً. يعني مي معقولة تكون شفت شيفرة بمكان وجت تسأل عن مكونات هذي الشيفرة؟ يعني مي معقولة اشوف السطر التالي و اللي هو عبارة عن حقيقة Fact في لغة Prolog:

father(Ahmed,Raghad)

و اجلس اعمل تخمينات و اقول لحالي يشبه نداء الإجراءات بلغة C++ و شو أحمد و رغد هذي؟ يمكن تمرير لاقتراحات للإجراء!!! لا المفروض انا اطبق برنامج بسيط بلغة Prolog و اعمل جهدي ادرس ماهية و آلية اللغة هذي و بش ممكن نستخدمها وفين؟

اتمنى لك التوفيق و الجميع

تم تعديل هذه المشاركة بواسطة رغـــــــــد في 13 ديسمبر 2007 في 10:46

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

هذا الموضوع مغلق.

مواضيع مشابهة