اذهب إلى المحتوى

لوحة المتصدرين

  1. Kamal Omran

    Kamal Omran

    الأعضاء


    • نقاط

      1

    • المساهمات

      1


  2. أسامة كمال النبريص

    • نقاط

      1

    • المساهمات

      184


  3. Yomna Raouf

    Yomna Raouf

    الأعضاء


    • نقاط

      1

    • المساهمات

      2193


  4. Walid Mohamed2

    Walid Mohamed2

    الأعضاء


    • نقاط

      1

    • المساهمات

      202


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 11/22/20 in أجوبة

  1. ممكن من خلال هالرسمه تطلعون لي وصف Item class. describe the Item class وشكرا اتمنى القى جواب لن حاولت احلها بس مافهمت اش المطلوب بالضبط 🤦🏻‍♀️
    1 نقطة
  2. السلام عليكم ورحمة الله نصيحتي هي أن تقرأي كتاب " كيف يتعلم المبرمج بشكل صحيح" للمؤلف :وجدي عصام عبد الرحيم الكتيب يتألف من 33 صفحة ، لكن غني بالنصائح والمعلومات المفيدة لبدأ تعلم البرمجة . بالتوفيق إن شاء الله
    1 نقطة
  3. مرحباً @هبة حمدان سبب عدم تغير القيمة الإفتراضية للإسم وهو أن نمط الوراثة في هذه الحالة protected أي أن الدوال و المتغيرات في الكلاس الأب المُعرفة على أنها public ستُصبح protected في الكلاس الإبن و بالتالي فإن الدالة setName ستُصبح محمية أي أنه لا يُمكنك إستخدامها في الدالة الرئيسية main بإمكانك تمرير الإسم من خلال بناء الكلاس Customer بهذا الشكل: class Customer{ protected: string name; public: Customer(string name = "Unknown"){ this->name = name; } string getName(){ return name; } void setName(string name = "Unknown"){ this->name = name; } }; و بالتالي عند إنشاء كائن من الصنف Customer يمكننا تحديد الإسم له، أيضا سنقوم بتوريث البناء للكلاس Invoice و تكون الطريقة كما هي موضحة أدناه: class Invoice : protected Customer{ private: float Total = 0; public: TV TVs[2]; Invoice(string name) : Customer(name){ for(int i=0;i<2;i++){ Total += TVs[i].price; } } } و في الدالة الرئيسية main يُمكننا عمل التالي: int main() { Invoice* x[2]; for(int i=0; i<2;i++){ x[i] = new Invoice("Invoice " + to_string(i)); // قمنا بتحديد الإسم هنا x[i]->Print(); x[i]->getMin(); cout<<"********************************"<<endl; } return 0; } بخصوص هذا الجزء إعادة التحميل أو overloading تسمح لنا بتعريف دوال تحمل نفس الإسم لكن بمُعاملات مُختلفة لِنقم بإعادة تحميل الدالة Print بهذا الشكل: void Print(string file) { ofstream f; f.open (file); f << "The Name is : " << name << endl; f << "Total is : " << Total << endl; f << "TVs: " << endl; for(int i=0;i<2;i++){ f << "TVs[" << i << "] = (Number = " << TVs[i].getNo() << ", Price = " << TVs[i].getPrice() << ")" << endl; } f.close(); } و هنا قمنا بإنشاء ملف بإسم قيمة المُعامل المُمرر و قمنا بملئه بجميع المتغيرات المحلية و الموروثة و في الأخير قمنا بإغلاق الملف. ليُصبح الكود بالكامل بهذا الشكل: #include <iostream> #include <fstream> using namespace std; /*---------------------------------------------------*/ class Customer{ protected: string name; public: Customer(string name = "Unknown"){ this->name = name; } string getName(){ return name; } void setName(string name = "Unknown"){ this->name = name; } }; /*---------------------------------------------------*/ class TV{ private: int no; public: float price; TV(){ cout << "The TV Number is : " << endl; cin >> no; cout << "The TV Price is : " << endl; cin >> price; } float getPrice(){ return price; } int getNo(){ return no; } void setPrice(float p){ price = p; } }; /*---------------------------------------------------*/ class Invoice : protected Customer{ private: float Total = 0; public: TV TVs[2]; void ReadPrice(){ for(int i=0;i<2;i++){ cout << "TVs[" << i << "] = (Number = " << TVs[i].getNo() << ", Price = " << TVs[i].getPrice() << ")" << endl; } }; int getTotal(){ return Total; } Invoice(string name) : Customer(name){ for(int i=0;i<2;i++){ Total += TVs[i].price; } } void Print(){ cout << "The Name is : " << name << endl; cout << "Total is : " << Total << endl; cout << "TVs: " << endl; this->ReadPrice(); } void Print(string file) { ofstream f; f.open (file); f << "The Name is : " << name << endl; f << "Total is : " << Total << endl; f << "TVs: " << endl; for(int i=0;i<2;i++){ f << "TVs[" << i << "] = (Number = " << TVs[i].getNo() << ", Price = " << TVs[i].getPrice() << ")" << endl; } f.close(); } int getMin(){ float min; min = TVs[0].price; for(int i=0 ;i < 2; i++){ if (TVs[i].price < min) min = TVs[i].price; } cout<<"The minimum :" << min <<endl; return min; } }; /*---------------------------------------------------*/ int main() { Invoice* x[2]; //customer y; for(int i=0; i<2;i++){ x[i] = new Invoice("Invoice " + to_string(i)); string filename = "output" + to_string(i) + ".txt"; x[i]->Print(filename); x[i]->getMin(); cout<<"********************************"<<endl; } return 0; } بإمكانك تجربة المثال من خلال هذا الرابط: هنا بالتوفيق.
    1 نقطة
  4. أظن أن قراءة كتاب خاص بالبرمجة شيء قديم وأمر ممل نسبيا, ففي مجال البرمجة هنالك لكل لغة برمجة موقع خاص بها لشرحها بكل تفاصيلها وهذا سيكون كمرجع لكي في حال نسيتي شيئا ما بعد أن تقومي بتعلم ما تريدين تعلمه وهو ايضا جيد للتعلم في حال قرأتي منه حيث أن مثلا الكود المشروح يمكنكي تطبيقه وتجربته والتعديل عليه في نفس الوقت. صحيح أن الكتب هي المصدر الأساسي للتعلم ولكن هنالك ما هو أسهل من ذلك في هذا الوقت حيث توجد وكما ذكرت أعلاه المواقع المخصصة للغة معينة أو الوثيقة الرسمية للغة البرمجة, الدورات ,المقالات ومجموعات مواقع التواصل الاجتماعي حيث ان هنالك العديد من الصفحات والمجموعات تقدم بعض المعلومات الجميلة والقيمة. وأنا أنصحك بدورة التي بعنوان CS50 المقدمة من جامعة هارفرد فهي تشرح العديد من الأمور اللازم تعلمها في مجال البرمجة ولكن هذه الدورة باللغة الانجليزية ولكن هنالك من قام بشرحها باللغة العربية. وبما أنكِ ذكرتِ أنكِ تعلمتي واجهات الويب يجب عليكي تطبيق بعض المشاريع في هذا المجال ثم يمكنك بعد ذلك الانتقال إلى تطوير الويب حتى تكتمل خبرتك في مجال الويب والتي تحتوي على البرمجة التي تبحثين عنها.
    1 نقطة
  5. بعد أن قمتي بأخذ دورة تطوير واجهات المستخدم يمكنك أن تبدأي في القراءة عن html و css و JavaScript أيضًا يمكنك أن تبدأي بالقراءة عن مواضيع مثل UI/UX أي واجهة المستخدم و تجربة المستخدم و مواضيع متعلقة بالتصميم. لا أنصح باستخدام الكتب في لتعلم البرمجة في الحقيقة فهي في معظم الأحيان تكون قديمة و محتواها غير مواكب للتحديثات من الأفضل قراءة المقالات.و يوجد العديد من المصادر التي يمكنك القراءة منها مثل "دروس و مقالات" الخاصة بأكاديمية حسوب إذا كنت تحبين القراءة باللغة العربية أو من مدونات مثل css tricks و hackernoon و غيرها إذا كنت تحبين القراءة باللغة الإنجليزية. أيضًا يوجد بعض الكتب الجيدة إذا كنت تفضلين قراءة الكتب مثل Eloquent javascript أيضًا يوجد مجموعة من الكتب الجيدة في أكاديمية حسوب متعلقة بأكثر من لغة يمكنك أن تبدأي بالقراءة منها فأغلب هذه الكتب حديثة و مفيدة.
    1 نقطة
  6. هذا التشتت طبيعي في بداية تعلم لغة Javascript وأيضاً عامل أنها أول لغة برمجة تتعلمها فهذا عامل أيضاً قد يؤدي إلى التشتت وعدم فهم كتابة الكود جيداً وفي البداية الأهم تعلم الأساسيات وهذا ما تفعله الأن أكمل تعلمك للأساسيات ولكن تعلمك للأساسيات ليس معنى ذلك أنك تستطيع التفاعل مع صفحات الويب بصورة كاملة ولكن يجب تعلم تقنياتان لكي تستطيع التعامل مع صفحات الويب وهم Javascript Dom و Javascript Bom . Javascript Dom : مقصود بكلمة DOM هو Document Object Model ويقصد بها أوامر javascript المتعلقة بتصميم صفحات الويب ومن خلالها سوف تستطيع تربط الأوامر التي تعلمتها من قبل الأساسيات مع رموز html وإنشاء صفحات تفاعلية . Javascript Bom : المقصود بكلمة BOM هو Browser Object Model والمقصود هنا أوامر javascript التي تتعامل مع المتصفح نفسه والتي تتيح لك توفير معلومات سوف تستفيد منها في التصميم مثل معرفة حجم صفحة المتصفح وأشياء سوف تساعدك في التصميم أيضاً . الأن يمكنك التركيز والتطبيق جيداً على فهم الأساسيات الأن تتسأل ماذا سوف أفعل بها غداً بعد تعلمك لتقنيات bom و dom سوف تحتاج كتابة هذه الأساسيات كثيراً ثم عليك مشاهدة فيديوهات وقراءة مقالات عن التطبيق العملي . من بعد ذلك يمكنك الدخول إلى تعلم Ecma6 : وهي تعتبر إصدار حديث لكتابة أكواد javascript بطريقة احترافية ومن مميزاتها تحسين الكود وتقليل الأخطاء البرمجية في الكتابة وإنشاء العديد من الأوامر بصورة أبسط من طريقة كتابة javascript القديمة . ويمكن أيضاً بعد ذلك تعلم إحدى إطارارت العمل التالية vuejs ,angular, react وهم عبارة عن إطارات عمل برمجية مبنية على javascript هي أداة تتوفر على عدة مكونات تساعد على وضع أساس للبرمجيات من خلال وظائف جاهزة.
    1 نقطة
×
×
  • أضف...