برمجة غرضية ال توجه oop:(object oriented programing) البنية األساسية ألي برنامج غرضي التوجه هي ال class بنية ال classعلى الشكل: Class name class {// b

ملفّات مشابهة
Microsoft Word - SolutionOOPFinal2011.doc

برمجة متقدمة -1-

التاريخ: االمتحان النهائي لمساق برمجة متقدمة תכנות מתקדם موعد أ الزمن: ساعتان فقط الخميس 2017/7/27 )10 عالمات( السؤال األول for او )while الالزمة لما

المحاضرة الثانية

الأول في السي شارب((c#للمبتدائين

Microsoft Word - C#2

ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long i

التصمیم والبرمجة غرضیة التوجھ الدكتورساميخیمي ISSN: X Books & Refrences

Microsoft Word - Excel VBA

Microsoft Word - new.doc

) NSB-AppStudio برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( ) برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( NSB-AppStudio الدرس األول ) 1 ( الدرس

ورقة عمل الدرس الثاني تطبيقي اخلاص على هاتفي... برنامج App Inventor اعداد املعلمة : اماني ممدوح املصري مدرسة امحد شوقي الثانوية للبنات اختار اإلجابة ا

السالم عليكم و رحمة هللا شرح ربط قاعدة بيانات Access بال.. C# مذا ستستفيد من هذا الموضوع!! -معرفة طريقة صنع قاعدة بيانات بالAccess -ربط قاعدة البيانات

أساسيات البرمجة بلغة الجافا

Microsoft Word - Access VBA

دليل المستخدم لبوابة اتحاد المالك التفاعلية

1 New system technology Mahmoud said Object-Oriented Programming in C ++ Cookbook 1

قاي مة أسعار المجم ع الرياضي Sports Complex Price List

Principles of C++ (Precedence)

السالم عليكم ورحمة هللا وبركاتة كتاب تعلم برمجة االلعاب بأستخدام محرك االلعاب Unity 3D الكتاب مقدم من االستاذ : عماد عارف التوي موقع : Home OF Games ا

تصحيح مادة الرياضيات شعبة الرياضيات التمرين األول : و أي ان تكون النقط بما أن و و و α β α β α β و منه الشعاعان و غير مرتبطان خطيا إذن النقط من نفس الم

دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالم

The Global Language of Business دليل ارشادي الستخدام صفحة خدمات الشركات األعضاء Members Area 1

حقيبة الدورة التدريبية التخزين السحابي Google Drive حقيبة المتدربة إعداد املدربة : عزة علي آل كباس Twitter 1438 ه

برنامج المساعدات المادية الذكي خطوات التقديم للمساعدة المادية...2 خطوات رفع المستندات المرفوضة...10 خطوات التاكد من حالة الطلب

بسم هللا الرحمن الرحيم االسئلة المتوقعه لمادة الحاسوب م 3 شتوية 2016 االستاذ نور الدين بني عطا االسئلة المتوقعه على مادة الحفظ سؤال 1 : وضح

مختبر البرمجة والتحليل العددي قسم علوم الجو جمل التحكم والشرط والتكرار المرحلة الثانية PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :-

اردوينو – الدرس الثامن – تغيير درجة الالوان لـ RGB LED

March 5, 2016 "مقدمة إلى البرمجة الكينونية" oop Chapter 11: "struct" إعداد وتلخيص:- محمد المشرقي **تطلب من )معتز فرعون غرايبة && محمد مارس القرعان( عب

الشريحة 1

SP-1101W/SP-2101W eciug niitallatini kciuq 1.0v /

مدرسة هارون الرشيد الثانوية للبنين المهارات العملية / تكنولوجيا المعلومات ( الثاني عشر) إعداد/ أ. خالد الح

1 درس :

Our Landing Page

Slide 1

الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات المستوردة( البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات

الحل المفضل لموضوع الر اض ات شعبة تقن ر اض بكالور ا 2015 الحل المفص ل للموضوع األو ل التمر ن األو ل: 1 كتابة و على الشكل األس. إعداد: مصطفاي عبد العز

قوانين اإلستعارة هذه هي قوانين اإلستعارة التي تسري في المكتبات الشعبية في كل من بيورهولم, نوردمالينغ, روبيرت فورش, اوميو, فيندلن و فيينسس. بطاقة المكت

وزارة الرتبية الوطنية امتحان بكالوراي التعليم الثانوي الشعبة: تقين رايضي اختبار يف مادة: الرايضيات اجلمهورية اجلزائرية الدميقراطية الشعبية الديوان الو

Microsoft Word - Suites_Numériques_1_sm.doc

بسم اهلل الرمحن الرحيم الوحدة الثانية الفيجول بيسك Microsoft VISUAL BASIC احلمد اهلل الذي أكرمين و منحين الفرصة لتوفري لكم هذا امللخص املنقى للوحدة ال

عرض تقديمي في PowerPoint

محاضرات C++

الدوال في اكسل الدوال: هي صيغ معرفة مسبقا تقوم بإجراء عمليات حسابية بإستخدم قيم محددة ووسائط مسماة في ترتيب بنية معينة بناء الدالة: إغالق. يبدأ بناء ا

استمارة تحويل طالب يتعلم في الصف العادي لجنة التنسيب إلى )التقرير التربوي( استمارة لتركيز المعلومات حول العالج المسبق الذي حصل علية الطالب\ة الذي يتعل

اختر عنوان مناسب

Microsoft Word - Grade 9 T3 ADEC Exam revision questions

بسم هللا الرحمن الرحيم المادة: مقدمة في بحوث العمليات )100 بحث ) الفصل الدراسي األول للعام الدراسي 1439/1438 ه االختبار الفصلي الثاني اسم الطالب: الرق

الرسالة األسبوعية/ الصف السادس 2018 / 9 - األحد 16 أولياء األمور الكرام : إليكم الرسالة األسبوعية وما سيتم إنجازه هذا األسبوع: األسبوع الماضي : تم اال

المستوى : 3 ع ت ثانوية محفوظ سعد الفرض االول في للثالثي االول في مادة الرياضيات g(x) = x 3 3x 4 دالة معرفة على R ب g 1/ ادرس تغيرات الدالة g 2/ بين ان

السلطة الوطنيـة الفلسطينية

عربي Sign-Code Website Guide فيما يلي دلي ا ل لطلب اسم مستخدم جديد لConnect Sell من خ لل موقع.Sign-Code يسمح لك الموقع بالدخول اإلداري على اسم المستخد

الفهرس: كيفية ضبط الموبايل/التابلت: خدمة االنترنت معرفة مسبقا على الجهاز. في حالة عدم تعريف خدمة االنترنت مسبقا على الجهاز يمكنك ضبطه يدويا ادخل على D


FS Future Series دليل البدء السريع الرجاء قراءة التعليمات التالية من أجل تثبيت وتنشيط 3D. Visualizer برنامج

تنصيب و إعداد تقانة التستجابة الذكية (SRT) التخزين المؤقت باتستخدام أقراص الحالة الصلبة SRT Intel Smart Response Technology Installation Guide (SSD Ca

الصف السادس االبتدائي الفصل الدراسي االول بسم هللا الرحمن الرحيم الصفحة محتويات الفصل الدراسي األول الموضو

دائرة التسجيل والقبول فتح باب تقديم طلبات االلتحاق للفصل األول 2018/2017 " درجة البكالوريوس" من العام الدراسي جامعة بيرزيت تعلن 2018/2017 يعادلها ابتد

علم الأنسجة

الوحدة التاسعة

Application-1st page

المستوى : 3 ع ت ثانوية محفوظ سعد الفرض االول في للثالثي االول في مادة الرياضيات g(x) = x 3 3x 4 دالة معرفة على R ب g 1/ ادرس تغيرات الدالة g 2/ بين ان

8 مادة إثرائية وفقا للمنهاج الجديد األساسي الثامن للصف الفصل الدراسي األول إعداد املعلم/ة: أ. مريم مطر أ. جواد أبو سلمية حقوق الطبع حمفوظة لدى املكتبة

Microsoft Word - intégral 2sc exp.doc

الفصل الثاني

جمعية زمزم للخدمات الصحية التطوعية بإشراف وزارة الشؤون االجتماعية تصريح رقم )411( نظام إدارة الجودة Quality Management System إجراءات الئحة تقنية املع

عرض تقديمي في PowerPoint

المحاضرة الرابعة التكامل المحدد Integral( (Definite درسنا في المحاضرة السابقة التكامل غير المحدد التكامل المحدد لها. ألصناف عدة من التوابع وسندرس في ه

الرقابة الداخلية والرقابة الخارجية

دائرة اللغة العربية المادة المطلوبة المتحان اإلعادة للعام الدراسي : الصف: الثامن المهارة )الفهم واالستيعاب + التحليل األدبي( النحو المادة ال

مكثف الثالثة الوحدة البوابات املنطقية 1 هاتف : مدارس األكاد م ة العرب ة الحد ثة إعداد المعلم أحمد الصالح

الفرق بين البرمجة الإجرائية و البرمجة المسيرة بالأحداث :

اجيبي علي الاسئلة التالية بالكامل:

10) série d'exercices chute libre d'un corps solide

Personal Salaries and Wages رموز الغرض من التحويالت المالية Payment Purpose Codes الغرض من التحويل تسد د فوات ر ومشتر ات فوات ر الخدمات تغذ ة البطاقات

Special thanks to : magician Mu_Nizar Mohammad_807

وزارة الترب ة بنك األسئلة لمادة علم النفس و الح اة التوج ه الفن العام لالجتماع ات الصف الحادي عشر أدب 0211 / 0212 األولى الدراس ة الفترة *************

النشرة األسبوعية للواجبات المدرسية الصف: االول أ ب ج د ه و النشرة رقم : 6 اليوم والتاريخ المادة الواجبات اختبار بالدرس الثالث حرف الباء من صفحة 23 إلى

م ارجعة عامة في مادة التكنولوجيا لمصف السادس األساسي الفصل الد ارسي لمعام األول م. السؤال األول :: ضع عالمة ) ( أو عالمة ) ( لما أت : ( ) تس

PowerPoint Presentation

المملكة العربية السعودية م ق س ..../1998

عرض تقديمي في PowerPoint

DNA الكروموسومات أوال : يف اخلاليا حقيقة النواة متى تتكون : أثناء االنقسام الخلوي )عند انقسام الخلية(. كيف تتكون : يلتف ال DNA في نوى الخاليا حقيقة ال

الوحدة األولى المالمح البشرية للوطن العربي عنوان الدرس : سكان الوطن العربي أوال :أكمل الجدول التالي: 392 مليون نسمة %5.3 %39.9 %60.1 عدد سكان الوطن ال

كيفية تفعيل خدمة IIS ونشر موقع ويب على الشبكة احمللي السالم عليكم اصدقائي الكرام في هذا الكتاب سنتناول ما هي خدمة المعلومات وكيفية التفعيل ونشر الموقع

عرض تقديمي في PowerPoint

باسم الله الرحمان الرح م تقد م أخوكم إبراه م عدو موظف ببلد ة أكل م بركان المغرب لست مبرمجا بل متعلما من الدروس والكتب الت تعرض على مواقع األنترنت تمن

جامعة حضرموت

خلاصة الموقع


Banner – Hold Information SOAHOLD

تحليلية الجداء السلمي وتطبيقاته

منح مقد مة من مبادرة ألبرت أينشتاين األكاديمية األلمانية لالجئين إلى النازحين السوريين في لبنان يعرف باسم "دافي (DAFI) العام األكاديمي الجامعي 4102/41

Al Kamal American Private School-ALR martha TEL: FAX: Weekly Plan Al Kamal American Private School Week (05) From12/05/2019 to 16/

متطلبات النظام متطلبات جهاز الكمبيوتر الشخصي معالج Pentium 1 Intel غيغا هرتز أو أسرع نظام التشغيل Windows 2000 أوXP Windows مع Service Pack 2 أو Vista

النسخ:

برمجة غرضية ال توجه oop:(object oriented programing) البنية األساسية ألي برنامج غرضي التوجه هي ال class بنية ال classعلى الشكل: Class name class // begin class أعضاء بيانية أعضاء دالية //end class هذا الشكل العام للكالس حيث تمثل األعضاء البيانية member) (data البطاقة الشخصية للكائن الذي سيتم إنشائه مثال األعضاء البيانية للشخص هي بطاقته الشخصية تحوي االسم واسم االب والميالد ومكان الوالدة وال وجود لشخص دون بطاقة شخصية كذلك الكائن دون األعضاء البيانية ليس كائن تكتب االعضاء البيانية داخل الكالس على هذا الشكل اسم الكالس class بدية الكالس data member: نهاية الكالس نمط المعطيات محدد الوصول اسم البيان األعضاء الدالية) member ) intimacy تمثل صلة الوصل بين الكائن المنشئ و بين األعضاء البيانية ألن األعضاء البيانية في أغلب األحيان يكون محدد الوصول لها private وال يمكن الوصول له إال من أعضاء الصف نفسه أي األعضاء الدالية تستطيع الوصول للبيانات حيث تكون األعضاء الدالية ذات محدد وصول public أي يمكن الوصول لها من خارج الكالس. حيث لدينا محددات الوصول االتية:

المحدد خواصه محمي protracted عام public خاص private ال يمكن الوصول لبياناته اال من داخل الصف نفسه. يمكن الصول لبياناته من داخل وخارج الصف. سنتناوله في درس الوراثة. تكتب االعضاء الدالية داخل الكالس على هذا الشكل اسم الكالس class بدية الكالس اسم البيان نمط المعطيات محدد الوصول : member data begin end )(اسم الدالة نمط االعادة محدد الوصول : member intimacy begin end نهاية الكالس حيث نمط االعادة اما يكون void ال يعيد قيمة واما نمط معطيات int-string-double-bool حيث تقوم بإرجاع قيمة. مثال سوف نبني كالس للوقت حيث يتألف من الساعات والدقائق Class time hours; Private int عضو بياني minutes; Private int عضو بياني m) Public set (int h,int عضو دالي بداية للعضو الدالي This.houers=h; This.minutes=m; نهاية للعضو الدالي Public void print() console.writeline(hours+":"+minutes); استدعاء الكالس للتصريح عن كائن نستدعي اسم الكالس ثم اسم الكائن إلنشاء الكائن اسمه نسنده لكالس جديد وممكن دمج الخطوتين ب: //end class وأعضائه ضمن main Static void Main(string[]args) x.set(2,13); x.print(); //end main time x; X=new time (); time x=new time();

1-first name 2-last name 3-salary ** ملف البرنامج يحوي على االقل كالس وحيد هو كالس ال ** main بناء كالس employee يحوي بيانات موظف 1- األعضاء البيانية: 2 -األعضاء الدالة: 1-initإسناد قيم الوسطاء لألعضاء البيانة 2-Printطباعة األعضاء البيانية 3-fullدالة name تعود باالسم الكامل للموظف 4-Salaryاعادة قيمة وقراءة قيمة من لوحة المفاتيح ولها ثلث خواص: تبدأ بحرف كبير وتملك نفس اسم العضو البياني وال تملك أقواس الدالة() وممكن تطبيق دالة مثلها لكل عضو بياني كما هنا : namespace ConsoleApplication1 class employee private string firstname; private string lastname; private int salary; public void init(string firstname, string lastname, int salary) this.firstname = firstname; this.lastname = lastname; this.salary = salary; //end init public void print() Console.WriteLine(firstname + lastname + ":" + salary); //end print public string fullname() return firstname + lastname; //end fullname public int Salary get return this.salary; set this.salary=value; //end salary public string Firstname get return this.firstname; set this.firstname =value; //end firstname public string Lastname get return this.lastname;

set this.lastname=value; //end lastname //end class employee class Program static void Main(string[] args) employee x = new employee(); x. init("khaled", " abozaib", 20000); طباعة االسم مع الراتب x.print();// - طباعة االسم//;(() Console.WriteLine(x.fullname - طباعة القيمة الثابتة Console.WriteLine(x.Salary);// string thes = Console.ReadLine(); x.salary = Convert.ToInt32(thes); x.print(); Console.WriteLine("input firstname"); x.firstname=console.readline(); Console.WriteLine("input lastname"); x.lastname=console.readline(); تنفيذ//;() x.print print Console.ReadLine(); المشيدات Constructors المشيد :هو عضو دالي خاص يملك نفس اسم الصف وال يملك نمط إعادة وال حتى من النوع على حجز مساحة ذاكرة من أجل إنشاء الكائن وتمهيده عند القيم االبتدائية: مثال: void Class employee )1( األعضاء البيانية: 1 - name age -2 count -3 يعمل حيث age( name && تمثل أعضاء بيانية مثيلة( أما ( count هي عضو بياني لكن ليس لها تأثر بالكائنات المنشئة لكنها تمثل عدد الكائنات المنشة حيث.)static member متعلق بالفئة وليس بالكائن فهو عضو بياني ساكن count )2(- األعضاء الدالية: 1- مشيدات ولها ثالثة أنواع: a- مشيد افتراضي )ال يملك وسطاء(وظيفته إعطاء قيم ابتدائية للكائن. مشيد يملك وسطاء)بنفس عدد األعضاء البينية المثيلة(وظيفته إسناد قيم لألعضاء البيانية من داخل دالة ال.main c- مبدأ النسخ ووسيطه كائن حيث ينسخ معلومات كائن )أعضائه بيانية ) ويعطيها لكائن اخر.

namespace ConsoleApplication1 class employee private string name; private int age; public static int count = 0; مشيد إفتراضي//() employee public 2- :Count دالة تعود بعدد الكائنات المنشئة. 3- :Name دالة تقرأ اسم من لوحة المفاتيح وتعود باالسم. count++; Console.WriteLine("count="+count); مشيد وسطاء age)// public employee(string name, int this.name = name; this.age = age; مشيد النسخ z)// public employee(employee this.name = z.name; this.age = z.age; public int Count get return this.count; public string Name get return this.name; set this.name = value; public void print() Console.WriteLine("name:"+name+"/age:"+age); //end class enployee class Program static void Main(string[] args) employee a = new employee(); employee a1 = new employee("khaled",19); a1.print(); Console.WriteLine("enter name"); string c = Console.ReadLine(); Console.WriteLine("enter age"); int c1 = Int32.Parse(Console.ReadLine()); employee a2 = new employee(c, c1); a2.print(); - استدعاء مشيد النسخ employee(a2);// employee a3 = new

a3.print(); Console.ReadLine(); سؤال : - اكتب صف لفئة كتاب يحوي على األعضاء البيانية التالية : 1- اسم الكتاب 3- سعره 5- عدد الموجود منه -2 رقمه -4 اسم المؤلف -6 count ويحوي على الدوال األتية : 1- مشيد افتراضي ومشيد الوسطاء. -2 خصائص get && set 3- دالة للبحث عن كتاب بحسب اسمه. 4- دالة لبيع كتاب عن طريق رقم الكتاب وتعيد هذه الدالة كمية الكتب المتبقية. الحل: namespace ConsoleApplication1 class book الكتاب رقم//; bookid private int الكتاب إسم//; bookname private string المؤلف//; publishername private string السعر//; price private int الكمية//; amount private int النوع من الكتب عدد//; 0 = num public static int public book() num++; Console.WriteLine("count=" + num++); public book(int bookid, string bookname, string publishername, int price, int amount) this.bookid = bookid; this.bookname = bookname; this.publishername = publishername; this.price = price; this.amount = amount; Console.WriteLine("count=" + num++); //end b public void print() Console.WriteLine(bookid + " " + bookname + " "+ publishername + " " + price + " " + amount); //end print public string Bookname get return this.bookname;

set this.bookname = value; public int Bookid get return this.bookid; set this.bookid = value; public int Price get return this.price; set this.price = value; public string Publishername get return this.publishername; set this.publishername = value; public int Amount get return this.amount; set this.amount = value; public static int Num get return num; public void search(string search, book[] b, int n) for (int i = 0; i < n; i++) if (b[i].bookname == search) b[i].print(); else Console.WriteLine("no book"); //end for //end search public int sell(book[] s,int bookid1,int n) int bo = 0; for (int i = 0; i < n; i++) if (s[i].bookid==bookid1) bo = (s[i].amount - 1); s[i].amount = bo; s[i].print(); //end if else Console.WriteLine("noo book"); //end for return bo;

//end sell //end class book class Program static void Main(string[] args) book z = new book(); Console.WriteLine("enter book count"); int n = Int32.Parse(Console.ReadLine()); book[] e1 = new book[n]; for (int i = 0; i < n; i++) Console.WriteLine("enter bookid :"+(i+1)); int a = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter bookname :"+(i+1)); string b = Console.ReadLine(); Console.WriteLine("enter publisher :" + (i + 1)); string c = Console.ReadLine(); Console.WriteLine("enter price :" + (i + 1)); int d = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter amount :" + (i + 1)); int e = Int32.Parse(Console.ReadLine()); e1[i]=new book (a,b,c,d,e); e1[i].print(); Console.WriteLine("enter name book"); string name1 = Console.ReadLine(); book b2 = new book(); b2.search(name1, e1, n); Console.WriteLine("enter book id"); int l = Int32.Parse( Console.ReadLine()); z.sell(e1, l, n); Console.ReadLine(); ولكن هنالك إخالف بالئحة وسطاء Ex Ad(int x,int y) التحميل الزائد Over load 1- اما اعادة تحميل الدوال. 2- أو اعادة تحميل العوامل operator للدوال : تعني وجود أكثر م دالة في نفس الصف تحمل نفس االسم الدالة )اما بعدد الوسطاء أو نوعها(

Ad(int x1,int y1) Ad(string x3,int y3) Ex2: Employee Employee (string name,int age) Employee(employee) بوضع كلمة static بعد محدد الوصول واضافة كلمة ( (الستعداء الدالة باستخدام الرمز مثل دالة الجمع نستدعيها ب)+(وكل ذلك بعد اسم يتم التحميل الزائد في الدوال وذلك رمز+ operator الدالة. مثال: namespace ConsoleApplication1 class complex private int image; private int real; public complex() real = 0; image = 0; public complex(int real, int image) this.real = real; this.image = image; public int Real get return this.real; set this.real = value; public int Image get return this.image; set this.image = value; public static complex operator +(complex i, complex j) complex e = new complex(); e.image = i.image + j.image; e.real = i.real + j.real; return e; public static complex operator *(complex i1, complex j1) return new complex((i1.real * j1.real) - (i1.image * j1.image),

(i1.real * j1.image) + (j1.real * i1.image)); public void print() Console.WriteLine(real + "+i" + image); //end class class Program static void Main(string[] args) complex c0=new complex (); Console.WriteLine("enter real"); int x1=int32.parse(console.readline()); Console.WriteLine("enter image"); int y1=int32.parse(console.readline()); complex c1=new complex (x1,y1); c1.print(); Console.WriteLine("enter real"); int x2=int32.parse(console.readline()); Console.WriteLine("enter image"); int y2=int32.parse(console.readline()); complex c2=new complex (x2,y2); c2.print(); c0=c1+c2; Console.WriteLine("c1+c2="); c0.print(); c0 = c1 * c2; Console.WriteLine("c1*c2="); c0.print(); Console.ReadLine(); سؤال: اكتب كالس لجمع وقسمة وضرب ومقارنة كسرين وقلب كسر مع تحميل زائد و مشيدات بنوعيها مع الطباعة. الحل: namespace ConsoleApplication1 class fraction private double numerator; private double denominator; public fraction() numerator = 0; denominator = 0; public fraction(double numerator, double denominator) this.numerator = numerator; this.denominator = denominator;

public double Numerator get return this.numerator; set this.numerator = value; public double Denominator get return this.denominator; set this.denominator = value; public static fraction operator +(fraction i, fraction j) fraction sum = new fraction(); if (i.denominator == j.denominator) sum.numerator = i.numerator + j.numerator; sum.denominator = i.denominator; else sum.numerator = ((i.numerator * j.denominator) + (j.numerator * i.denominator)); sum.denominator = (i.denominator * j.denominator); return sum; public static fraction operator *(fraction i1, fraction j1) return new fraction(i1.numerator * j1.numerator, i1.denominator * j1.denominator); public fraction turned(fraction i2) return new fraction(i2.denominator, i2.numerator); j3) public void print() Console.WriteLine(numerator + "/" + denominator); public static fraction operator ^(fraction i3, fraction double w=((i3.numerator) / (i3.denominator));console.writeline(w); double e = ((j3.numerator) /( j3.denominator)); Console.WriteLine(e); if (w > e) Console.WriteLine(i3.numerator + "/" + i3.denominator + ">" + j3.numerator + "/" + j3.denominator); else if (w < e)

Console.WriteLine(i3.numerator + "/" + i3.denominator + "<" + j3.numerator + "/" + j3.denominator); else Console.WriteLine(i3.numerator + "/" + i3.denominator + "=" + j3.numerator + "/" + j3.denominator); return j3 ; //end class class Program static void Main(string[] args) fraction c = new fraction(); Console.WriteLine("enter numerator"); double x = double.parse(console.readline()); Console.WriteLine("enter denominator"); double y=double.parse(console.readline()); fraction a = new fraction(x, y); a.print(); Console.WriteLine("enternumerator"); double x1 = double.parse(console.readline()); Console.WriteLine("enter denominator"); double y1 = double.parse(console.readline()); fraction b = new fraction(x1, y1); b.print(); c = a + b; Console.WriteLine("sum="); c.print(); c = a * b; Console.WriteLine("a*b="); c.print(); c = c.turned(c); Console.WriteLine("turned"); c.print(); c = a ^ b; Console.ReadLine(); namespace ConsoleApplication1 سؤال: اكتب كالس إلحداثيات نقطة point 1- بيانات) x,y (. 2- مشيدات و طباعة و get&&set الحل:

class point private int x; private int y; public point() x = 0; y = 0; public point(int x, int y) this.x = x; this.y = y; public int X get return this.x; set this.x = value; public int Y get return this.y; set this.y = value; public void printe() Console.WriteLine("(" + x + "," + y + ")" ); //end point class circle :point public int r; public circle() this. r = 0; //constroctor public circle( int x, int y,int r):base(x,y) "r=" + r); this.r = r; public int R getreturn this.r; setthis.r=value; public void print() Console.WriteLine("(" +base.x + "," + base.y + ")" +

public double mohet() return 2*3.14*r; public double t() return 3.14*2*r; public double s() return 3.14*r*r; //end class class Program static void Main(string[] args) point bu = new point(3,2); bu.printe(); circle m = new circle(); Console.WriteLine("enter x"); int a = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter y"); int b = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter r"); int c = Int32.Parse(Console.ReadLine()); circle s = new circle(a, b,c); s.print(); Console.WriteLine("mhet="+s.mohet()); Console.WriteLine("s=" + s.s()); Console.ReadLine(); الوراثة Inheritance الوراثة في #c : تعني وجود صف أب base class نشتق منه الصف االبن حيث يرث االبن من األب األعضاء البيانية التي تملك محدد الوصول public أو. protected : Protected )وصول محمي ) أي دوال الصف نفسه ودوال الصف االبن )أي الصف المشتق( تستطيع الوصول إلى البيانات ويرث األعضاء الدالية. مثال : بناء الشجرة الهرمية ل point ونشتق منها صف الدائرة circle حيث ال point له إحداثيات y( )x &&. وال circle له إحداثيات )x&&y&&r( حيث r هي نصف القطر. حيث ترث الدائرة إحداثيات األب وتبني لنفسها نصف القطر. مثال : وراثة دائرة ل point وبناء كالس الدائرة مع خصائص get&&set وحساب مساحة الدائرة ومحيطها:

namespace ConsoleApplication1 class point private int x; private int y; public point() x = 0; y = 0; public point(int x, int y) this.x = x; this.y = y; خصائص public int X//get&&set get return this.x; set this.x = value; خصائص public int Y//get&&set get return this.y; set this.y = value; public void printe() Console.WriteLine("(" + x + "," + y + ")" ); //end point class circle :point public int r; public circle() this. r = 0; //constroctor public circle( int x, int y,int r):base(x,y) this.r = r; خصائص public int R//get&&set getreturn this.r; setthis.r=value; public void print()

Console.WriteLine("(" +base.x + "," + base.y + ")" + الدائرة احداثيات طباعة //;(r "=r" + المحيط//() mohet public double return 2*3.14*r; المساحة//() s public double return 3.14*r*r; class Program static void Main(string[] args) point bu = new point(3,2); bu.printe(); circle m = new circle(); Console.WriteLine("enter x"); int a = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter y"); int b = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter r"); int c = Int32.Parse(Console.ReadLine()); circle s = new circle(a, b,c); s.print(); Console.WriteLine("mhet="+s.mohet()); Console.WriteLine("s=" + s.s()); Console.ReadLine(); ------------------------------- وظيفة ---------------------------- - بناء الشجرة الوراثية لصف employee أب أعضاءه البيانية االسم والعمر وله وريثان - 1- موظف براتب شهري.)يرث من األب االسم والعمر ويبقى الراتب( - 2- موظف براتب يومي..)يرث من األب االسم والعمر ويبقى الراتب( الحل : namespace ConsoleApplication1 class employee private string n; private int a; private int count = 0; public employee() a = 0; count++; Console.WriteLine("count=" + count); public employee(string n, int a)

this.n = n; this.a = a; public string N get return this.n; set this.n = value; public int A get return this.a; set this.a = value; public void printe() Console.WriteLine("(" + n + "," + a + ")"); //end employee شهري براتب موظف// employee class mensal : public int s; public mensal() this.s = 0; //constroctor public mensal(string n, int a, int s) : base(n, a) this.s = s; public int S get return this.s; set this.s = value; public void print1() Console.WriteLine("name:" + base.n + "-age:" + base.a + "," + "salare=" + s); يومي براتب موظف// employee class day : public int d; public day() this.d = 0; //constroctor public day(string n, int a, int d)

: base(n, a) this.d = d; public int S get return this.d; set this.d = value; public void print2() Console.WriteLine("name:" + base.n + "-age:" + base.a + "," + "salare day=" + d); class Program static void Main(string[] args) employee x = new employee(); mensal c1 = new mensal(); Console.WriteLine("enter count mensal"); int n = Int32.Parse(Console.ReadLine()); mensal[] m = new mensal[n]; for (int i = 0; i < n; i++) Console.WriteLine("enter name"); string r = Console.ReadLine(); Console.WriteLine("age"); int z = Int32.Parse(Console.ReadLine()); Console.WriteLine("salary"); int e = Int32.Parse(Console.ReadLine()); m[i] = new mensal(r, z, e); m[i].print1(); Console.WriteLine("enter count salary day"); int u = Int32.Parse(Console.ReadLine()); day[] m2 = new day[u]; for (int i = 0; i < u; i++) Console.WriteLine("enter name"); string r1 = Console.ReadLine(); Console.WriteLine("age"); int z1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("salary day"); int e1 = Int32.Parse(Console.ReadLine()); m2[i] = new day(r1, z1, e1); m2[i].print2(); Console.ReadLine(); مفهوم : over ride

أي أن الصف االبن يمكنه كتابة دالة لها نفس اسم دالة ونفس نمط االعادة ومحدد الوصول أكبر أو موجودة في كالس االب - من أجل اجبار كالس االبن على كتابة الدالة بنفس االسم نضع قبل دالة االب التي سوف نأخذ اسمها كلمة محجوزة virtual ووضع قبل نمط إعادة دالة االبن التي سوف تملك نفس االسم كلمة محجوزة over ride وداخل هذه الدالة يمكننا استدعاء دالة األب واضافة الدالة الجيدة هذا ما يسمى بride. over - مثال: namespace ConsoleApplication1 class point private int x; private int y; public point() x = 0; y = 0; public point(int x, int y) this.x = x; this.y = y; public int X get return this.x; set this.x = value; public int Y get return this.y; set this.y = value; public virtual void print() Console.WriteLine("(" + x + "," + y + ")"); //end point class circle : point public int r; public circle() this.r = 0; //constroctor public circle(int x, int y, int r) : base(x, y) نفسه

this.r = r; public int R get return this.r; set this.r = value; public override void print() base.print(); Console.WriteLine("r=" + r); public double mohet() return 2 * 3.14 * r; public double s() return 3.14 * r * r; r) //end class circle class cylinder: circle االرتفاع//; rise private int public cylinder() this.rise=0; public cylinder (int x,int y, int r,int rise):base(x, y, this.rise = rise; public int Rise get return this.rise; set this.rise = value; public override void print() base.print(); Console.WriteLine( "rise ="+ rise); public double volume() الحجم// rise; return 3.14 * r * r * //end lass cylinder class Program static void Main(string[] args) إحداثيات//;( point" Console.WriteLine("enter coordinate النقطة Console.WriteLine("enter x"); int r1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter y"); int r2 = Int32.Parse(Console.ReadLine()); point q1 = new point(r1, r2);

الدائرة االسطوانة q1.print(); إحداثيات//;(" circle Console.WriteLine("enter coordinate Console.WriteLine("enter x"); int r3 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter y"); int r4 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter r"); int r5 = Int32.Parse(Console.ReadLine()); circle q2 = new circle(r3, r4, r5); q2.print(); Console.WriteLine("mohet="+q2.mohet()); Console.WriteLine("s="+q2.s()); أحداثيات cylinder");// Console.WriteLine("enter coordinate Console.WriteLine("enter x"); int r6 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter y"); int r7 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter r"); int r8 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter rise"); int r9 = Int32.Parse(Console.ReadLine()); cylinder q3 = new cylinder(r6, r7, r8, r9); q3.print(); Console.WriteLine("volume=" + q3.volume()); Console.ReadLine(); في هذا المثال : جعلنا دالة الطباعة بنفس االسم لألب و لألبناء واستعينا دالة الطباعة الخاصة باألب في االبناء. وظيفة: اكتب كالس ال employee يحوي األعضاء البيانية: 1- اسم الموظف. 2- رقمه التأميني. وله الدوال: - خصائص get&&set ل االسم والرقم التاميني - دالة طباعة القيم - دالة getname تعود باسم الصف الذي منه الكائن. - مشيدات. وله إبنان 1(- األول براتب شهري وله األعضاء البيانية 1- الراتب الشهري مع خصائص. get&&set الدوال: مشيدات + طباعة + دالة getname تعود باسم الصف الذي منه الكائن. 2(- الثاني براتب يومي حسب عدد ساعات العمل:

البيانات: 1- عدد ساعات العمل. 2- أجرة الساعة. دوال: -1 مشيدات. -2 خصائص. get&&set 3- دالة earning تعود باألجر الكامل. أخيرا استدعي كل ماسبق في دالة ال. main الحل: namespace ConsoleApplication1 class employee االسم//; n private string التأمين رقم//; s private int public employee() this.s = 0; public employee(string n, int s) this.n = n; this.s =s; public string N get return this.n; set this.n = value; public int S get return this.s; set this.s = value; public virtual void print() Console.WriteLine(" name:" + n +"/"+ "scurity:" + s ); public virtual void Getname() Console.WriteLine("employee"); //end employee class salarideemployee : employee راتب شهري q;// public int public salarideemployee() this.q = 0;

//constroctor يومي راتب//( q public salarideemployee(string n, int s, int : base(n, s) this.q = q; public int Q get return this.q; set this.q = value; public override void print() base.print(); Console.WriteLine( " salarideemployee=" + q ); public override void Getname() Console.WriteLine("salarideemployee"); يومي راتب// employee class dailyemployee : ساعات العمل hours;// private int أجرة الساعة wage;// private int public dailyemployee() this.hours = 0; this.wage = 0; //constroctor public dailyemployee(string n, int s, int hours, int wage) : base(n, s) this.hours = hours; this.wage = wage; public int Hours get return this.hours; set this.hours = value; public int Wage get return this.wage; set this.wage = value; public override void print()

base.print(); Console.WriteLine ("hours="+hours+"wage="+wage+")"); العمل راتب ساعات العمل//() earning public int return( this.wage * this.hours); public override void Getname() Console.WriteLine("salarideemployee"); class Program static void Main(string[] args) employee x = new employee(); Console.WriteLine("enter name"); string n1 = Console.ReadLine(); Console.WriteLine("enter security"); int a1 = Int32.Parse(Console.ReadLine()); employee c1 = new employee(n1,a1); c1.print(); c1.getname(); salarideemployee c2 = new salarideemployee(); عدد salarideemployee");// Console.WriteLine("enter count الموظفين براتب شهري int n = Int32.Parse(Console.ReadLine()); salarideemployee[] m = new salarideemployee[n]; for (int i = 0; i < n; i++) Console.WriteLine("enter name"); string r = Console.ReadLine(); Console.WriteLine("security"); int z = Int32.Parse(Console.ReadLine()); Console.WriteLine("salary"); int e = Int32.Parse(Console.ReadLine()); m[i] = new salarideemployee(r, z, e); m[i].print(); m[i].getname(); يومي راتب//;(" dailyemployee Console.WriteLine("enter count int u = Int32.Parse(Console.ReadLine()); dailyemployee[] m2 = new dailyemployee[u]; for (int i = 0; i < u; i++) Console.WriteLine("enter name"); string r1 = Console.ReadLine(); Console.WriteLine("security"); int z1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("hours"); int e1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("wage"); int e4 = Int32.Parse(Console.ReadLine());

m2[i] = new dailyemployee(r1, z1, e1, e4); m2[i].print(); Console.WriteLine(" earning="+m2[i].earning()); m2[i].getname(); Console.ReadLine(); مثال: لدينا متجر لبيع االلكترونيات 1- الب توب اسم الالب توب-رقمه-سعر-سرعة المعالج 2 -موبايالت رقم الموبايل-اسمه-سعره-نوع الشاشة )لمس ام عادي( مشيدات get&&set طباعة مقارنة سعر جهازين من النوعين انشاء الحل: مصفوفة الب توبات وموبايالت وتطبيق الدوال. namespace ConsoleApplication1 المشتركة البيانات على الحاوي االب كالس// A class الجهاز رقم//; id private int الجهاز اسم//; n private string الجهاز سعر//; price private int public A() this.id = 0; this.price = 0; public A(int id,string n, int price) this.id = id; this.price = price; this.n = n; public int Id get return this.id; set this.id = value;

public string N get return this.n; set this.n = value; public int Price get return this.price; set this.price = value; public virtual void print() Console.Write("id="+id+"/name:"+n+"/parce="+price); public virtual void getname() Console.WriteLine("class electronic"); //end class A توب B:A// class كالس الالب المعالج سرعة//; cpu private float public B() this.cpu = 0; public B(int id, string n, int price, float cpu) : base(id, n, price) this.cpu = cpu; public float Cpu get return this.cpu; set this.cpu = value; public override void print() base.print(); Console.WriteLine("cpu speed="+cpu); public override void getname()

Console.WriteLine("labtop"); public void f(b r, B t) if (r.price > t.price) Console.WriteLine(r.N + ">" + t.n); else if (r.price < t.price) Console.WriteLine(r.N + "<" + t.n); else Console.WriteLine(r.N + "=" + t.n); //end class B الموبايل كالس// A class C : الشاشة نوع screen;// private string public C() public C(int id,string n,int price, string screen):base(id,n,price) this.screen = screen; public string Screen get return this.screen; set this.screen = value; public override void print() base.print(); Console.WriteLine("screen:" + screen); public override void getname() Console.WriteLine("mobile"); public void ff(c r1, C t1) if (r1.price > t1.price) Console.WriteLine(r1.N+">"+t1.N); else if (r1.price < t1.price) Console.WriteLine(r1.N + "<" + t1.n); else Console.WriteLine(r1.N + "=" + t1.n);

//end class cclass Program static void Main(string[] args) A e1 = new A(); Console.WriteLine("enter count labtop"); int z = Int32.Parse(Console.ReadLine()); B[] e2 = new B[z]; for (int i = 0; i < z; i++) Console.WriteLine("enter id labtop"); int z1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter name labtop"); string z2 = (Console.ReadLine()); Console.WriteLine("enter price labtop"); int z3 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter cpu speed labtop"); float z4 = float.parse(console.readline()); e2[i]=new B(z1,z2,z3,z4); for (int i = 0; i < z; i++) e2[i].print(); e2[0].f(e2[1], e2[2]); Console.WriteLine("enter count mobile"); int u = Int32.Parse(Console.ReadLine()); C[] e3 = new C[u]; for (int i = 0; i <u; i++) Console.WriteLine("enter id mobile"); int w1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter name mobile"); string w2 = (Console.ReadLine()); Console.WriteLine("enter price mobile"); int w3 = Int32.Parse(Console.ReadLine()); Console.WriteLine("enter screen mobile"); string w4 = Console.ReadLine(); e3[i]=new C(w1,w2,w3,w4); for (int i = 0; i < u; i++) e3[i].print(); e3[0].ff(e3[1],e3[2]); Console.ReadLine();

الصف المجرد والدالة المجردة: - الصف المجرد : هو الصف الذي يحوي دالة مجردة واحدة على األقل ويتم تعريفه بإضافة كلمة abstrac قبل كلمة. class - الدالة المجردة :هي دالة تكون مشتركة باالسم فقط بين األبناء ويتم تعريفها باألب بوضع كلمة abstrac بعد محدد الوصول حيث أن الدالة المجردة ال يمكن تعريفها بالصف األب)ألنها تختلف في ألية عملها في األبناء)مجردة(( ولكن يمكن التصريح عنها في األبناء. مالحظة 1 : ال يمكن بناء غرض من الصف المجرد ولكن يمكن التصريح عنه. مالحظة 2 :أي صف في #c هو ابن للصف. object مثال :اكتب صف أب)شكل هندسي( مجرد يحوي الدالة المجردة getname التي وظيفتها باألبناء أن تعود باسم الصف االبن ويحوي على دالة getarea تعود بالمساحة ودالة جمع مساحتي شكلين من الصفوف األبناء,وله إبن وحفيد دائرة:األعضاء البيانية x,y,r اسطوانة: x,y,r,h مع خصائص get&&set وكتابة دالة ل Main namespace ConsoleApplication1 abstract class shape :Object public abstract string getname(); public virtual double getarea() return 0.0; public double sum(shape x,shape y) return x.getarea() + y.getarea(); class circle : shape private int x ; private int y ; private double r; public circle() this.x = 0; this.y = 0; this.r = 0; public circle(int x, int y, double r)

this.x = x; this.y = y; this.r = r; public int X get return this.x; set this.x = value; public int Y get return this.y; set this.y = value; public double R get return this.r; set this.r = value; public override string getname() return "circle"; public override double getarea() return Math.PI * r * r ; public virtual string tostring() return "("+x+","+y+","+r+")"; //end class circle class cylinder : circle private double h; public cylinder() this.h = 1; public cylinder(int x, int y, double r, double h) : base(x, y, r) this.h = h; public double H

get return this.h; set this.h = value; public override string getname() return "cylinder"; public override double getarea() return 2 * base.getarea() + 2 * Math.PI * (base.r) * h; public override string tostring() return base.tostring() + "h="+h; //end class cylinder class Program static void Main(string[] args) circle c = new circle(2,3,5.4); cylinder c1 = new cylinder(5,2,3.2,4.5); shape []c3=new shape[3]; c3[0] = c; c3[1] = c1; c3[2] = new cylinder(2,4,6.5,5.4); for (int i = 0; i < 3; i++) Console.WriteLine(c3[i].getname()); Console.WriteLine(c1.getarea()); Console.WriteLine(c.getname()); Console.ReadLine(); مثال:لدينا شركة الرسال الطرود والحواالت يتطلب ارسال الطرود اسم المرسل و اسم المستلم ووزن الطرد والحواالت اسم المرسل و اسم الستلم و قيمة الحوالة. ويجب حساب كلفة النقل )بالنسبة للطرود 05 ليرة لكل 1 كغ والحواالت %1 من قيمة المبلغ إذا كان أق من مليون و %2 إذا كان أكثر من مليون.

إكتب لصفوف المناسبة مستخدما مفهوم الوراثة والتجريد. الحل: namespace ConsoleApplication1 abstract class packet المرسل// set; private string name1 get; المستلم// set; private string name2 get; public string Name1 get return this.name1; set this.name1 = value; public string Name2 get return this.name2; set this.name2 = value; public packet() public packet(string name1, string name2) this.name1 = name1; this.name2 = name2; public abstract double payment(); public override string ToString() Console.WriteLine("name1:" + name1 + "/name2:" + name2); return "ww"; ///end class طرد// packet class porcel : private int weight; public int Weight get return this.weight; set this.weight = value; public porcel() this.weight = 0; public porcel(string name1, string name2, int weight) : base(name1, name2)

this.weight = weight; public override string ToString() base.tostring(); return " weight= " + weight; public override double payment() Console.Write("payment="); return 50 * weight; //end class مالية حوالة// packet class assignment : private int mony; public int Mony get return this.mony; set this.mony = value; public assignment(string name1, string name2, int mony) : base(name1, name2) this.mony = mony; public override string ToString() base.tostring(); return "mony" + mony; public override double payment() if (mony > 100000) Console.Write("payment="); return 0.02*mony; else Console.Write("payment="); return 0.01 *mony;

//end class class Program static void Main(string[] args) porcel a = new porcel("ahmed","ali", 2);// Console.WriteLine(a.ToString());// Console.WriteLine(a.payment());// porcel zz = new porcel("khaled","mohamad",3);// Console.WriteLine(zz.payment());// Console.WriteLine("enter count porcel");// int n = Int32.Parse(Console.ReadLine());// porcel[] a1 = new porcel[n]; for (int i = 0; i < n; i++) Console.WriteLine("enter name1:" + (i + 1));// string z1 = Console.ReadLine();// Console.WriteLine("enter name2:");// string z2 = Console.ReadLine();// Console.WriteLine("enter wigh:");// int z3 = Int32.Parse(Console.ReadLine());// a1[i] = new porcel(z1, z2, z3); a1[0].tostring();// Console.WriteLine( a1[0].payment());// Console.WriteLine("enter count assignment"); int n1 = Int32.Parse(Console.ReadLine()); assignment[] a2 = new assignment[n1]; for (int i = 0; i < n1; i++) Console.WriteLine("enter name1:" + (i + 1));// string s1 = Console.ReadLine();// Console.WriteLine("enter name2:");// string s2 = Console.ReadLine();// Console.WriteLine("enter amount:");// int s3 = Int32.Parse(Console.ReadLine());// a2[i] = new assignment(s1, s2, s3); a2[0].tostring();// Console.WriteLine(a2[0].payment());// Console.ReadLine();