Introduction to C# مقدمح نهثزمجح تانس شارب ممدمة للبرمجة بالسي شارب

الحجم: px
بدء العرض من الصّفحة:

Download "Introduction to C# مقدمح نهثزمجح تانس شارب ممدمة للبرمجة بالسي شارب"

النسخ

1 ممدمة للبرمجة بالسي شارب

2

3 المحتوى : - عن الكتاب ممدمة إطار العمل... - بن ة البرنامج ف الس شارب اإلدخال واإلخراج أنواع الب انات المتؽ رات تحو ل انواع الب انات التعل مات... - المعامالت الر اض ة والمنطم ة... - الج مل الشرط ة ( if ) switch - if/else.else حلمات التكرار ( do.while ) For / foreach / While / المصفوفات ( Arrays ) النصوص ( Strings ) 9 - ممدمة ف البرمجة كائن ة التوجه ( OOP )... - التؽل ؾ ( Encapsulation ) static members -

4 - الدوال ( Functions ) Methods or... - الدالة ذات ة اإلستدعاء ( function ) Recursion ( object, var, dynamic( Classes -... ) set, get - الخصائص (

5 عن الكتاب هذا الكتاب م ع د للمبتدئ ن لك ساعدهم على فهم أساس ات لؽة الس شارب بطر مة مبسط ة وسهلة وال شترط أن كون الماريء له أي معرفة مسبمة بالبرمجة وأهم خطوة بجانب المراءة ه التطب ك العمل المستمر لتحصل على أكبر لدر من الفهم واإلست عاب والتحص ل. عن اللغة لؽة الس شارب لؽة بس طة جدا وسهلة وحد ثة ولها أؼراض كث رة فه ط و ر ت بواسطة شركة ما كروسوفت ( Microsoft ) بم ادة أندر س ه لسبرج اللؽة ت مك نن من عمل تطب مات للو ب والهاتؾ وسطح المكتب وتعمل شركة ما كروسوفت على تطو رها دائما وه واحدة من أشهر لؽات البرمجة وأكثرهم إستخداما. بدأوا ف تطو ر اللؽة عام 999 وأطلموا عل ها لؽة كوول أي : COOL ----> C Object Oriented Language ثم ؼ روا االسم لس شارب وأعلنوا عنها عام. ولؽة س شارب ( #C ) ه تطو ر وإمتداد للؽة ++C و C وه تعمل بالبرمجة كائن ة التوجه بشكل كل. 7

6 ممدمة إن س شارب إحدى لؽات البرمجة المصممة للعمل على البن ة التحت ة المشتركة للؽات البرمجة تسمى ( Common Language Infrastructure ) ( CLI ) معنى هذا المصطلح أنها ت ت ح للمبرمج إمكان ة إستخدامها إلنتاج مكتبات تتوافك مع المواصفات والخصائص الشائعة للبن ة التحت ة أي انه حتوي على الكود التنف ذي الذي ت ح له استخدام شتى لؽات البرمجة عال ة المستوى عل منصات عمل مختلفة. التسلسل الهرمي للبيانات -Bits ه اصؽر وحدة ل اس ف الكمب وتر وه تؤخذ ل مت ن فمط إما 0 أو 1. ت عب ر األصفار واآلحاد عن إشارات كهربائ ة وه ما عمل بها الكمب وتر. 2

7 - Characters وه تتضمن الحروؾ وتساوي با ت ح ث البا ت ساوي 2 بت ثم تتحول الحروؾ إلى أصفار وآحاد ( لؽة اآللة ) لك فمها الكمب وتر و تم ذلن ب : ASCII (American Standard Code for Information Interchange) فكل حرؾ من ( A إلى ) Z وكل رلم من ( 0 إلى ) 9 وكل رمز ف الكمب وتر مثل & ^ $ له عدد عشري ناظره ثم تحول إلى أصفار وآحاد ف النها ة لك فهمه الكمب وتر. 9

8 - بت = ( \ ) - با ت = 2 بت - ك لو با ت = با ت - م جا با ت = ك لو با ت - ج جا با ت = م جا با ت - ت را با ت = ج جا با ت 7- ب تا با ت = ت را با ت 2- إكسا با ت = ب تا با ت 9- ز تا با ت = إكسا با ت - وتا با ت = ز تا با ت ( Fields حمول ) - تتكون من حروؾ او أرلام فمثال ت عب رعن اسم الشخص أو عمره. ( Records سجل ) - حتوي على مجموعة من الحمول معا. ( Files ملفات ) - تتكون من مجموعة من السجالت. ( Database لواعد الب انات ) - عبارة عن مجموعة من الب انات ولد تكون ب انات ضخمة لكن سهل الوصول إل ها والتعامل معها بسرعة وتتكون من حمول وسجالت وهذه الب انات ت خ زن ف جداول بس طة لها اسم وخصائص. ( Big Data ب انات ضخمة ) - كم هائل من الب انات الت ت نت ج ف العالم وم ا.

9 إطار العمل ) The.Net Framework ( ال ( دوت نت ).Net ه إطار عمل أو منصة لتنف ذ التطب مات وتحتوي على مكتبات توفر العد د من االمكان ات الت تستخدم لبناء تطب مات كب رة بالس شارب سواء تطب مات للو ب أو لسطح المكتب أو الهاتؾ سواء ( android windows ios ) phone وذلن من خالل xamarin وه عبارة عن منصة لتطو ر تطب مات الهواتؾ المحمولة ح ث عمل التطب ك الذي أ نش ء بواسطتها على كل أنظمة تشؽ ل الهواتؾ ال.Net ص م مت لتكون منصة عمل لمختلؾ التطب مات تستط ع إستخدامها ف بناء تطب مات من خالل اللؽات اآلت ة : C#, C++, Visual Basic, Python and JavaScript وه تحتوي على كل المكتبات المبن ة ف هذه اللؽات وبها كل الموارد الت تمكنن من إنشاء تطب ك من خاللها. محتو ات إطار عمل ( ).Net : (Common Language Runtime) CLR - ه عبارة عن آلة إفتراض ة مسئولة عن إدارة الكود مع الذاكرة المإلتة ( RAM ) والمعالج ( processor ) ت حو ل الكود إلى لؽة اآللة بعدها هذا الكود ستط ع العمل على أي لؽة برمجة اخرى وهو د ر الذاكرة أ ضا و عالج بها االخطاء و حتوي على " جامع النفا ات ". (Garbage Collector) GC - جمع الب انات المهملة واالماكن الؽ ر مستخدمة ف الذاكرة و موم بحذفها وتنم ة الذاكرة ف جعلها تعمل بكفاءة أكثر.

10 ن رحلة الكود البرمج داخل ال.Net : أوال عالج الكود ف تحول إلى لؽة وس طة ) MSIL Microsoft Intermediate Language ( ألن الس شارب من اللؽات عال ة المستوى فتحتاج إلى لؽة وس طة لبل أن تتحول إلى لؽة اآللة. مالحظة : مكونات تطب مات اللؽة الوس طة و ضعت ف البرنامج التنف ذي ( الملؾ الذي ف ذه الكمب وتر ف نها ة المهام (. ثان ا عندما ن ف ذ البرنامج أ ضا كون بداخل CLR مر على معالج اخر عرؾ ب ( JIT ) just-in-time وهذا و عمل على ترجمة اللؽة الوس طة ف الملؾ التنف ذي إلى لؽة اآللة )1 0(., مالحظة : أي أمر ؤخده الكمب وتر تحول إلى اللؽة الت فهمها الكمب وتر و ستط ع التعامل معها وهو ال فهم ؼ رها وه )1 0(, أي ش ء تحول إلى األصفار واآلحاد.

11 C# Source Code C# Compiler MSIL (.exe or.dll) CLR / GC / JIT Operating System وتوجد أ ضا أداة داخل إطار عمل ال (.Net ) تسمى : CTS (Common Type System)

12 وه جزء من ال CLR وه عبارة عن آداة تستط ع تشؽ ل اكثر من لؽة برمجة معا بمكتبات مختلفة. وتحتفظ باالساس ات بداخلها وعندما تعمل أى لؽة تعود هذه اآلداة لتلن االساس ات الخاصة بهذه اللؽة لك تعمل على إطار العمل ح ث أن كل لؽة برمجة كون لها لواعد خاصة بها ف الكتابة و كون لكل لؽة العد د من المكتبات الت تحتوي على تعر ؾ لكل شئ خاص باللؽة. إن لم تستطع فهم هذه المعلومات فال بؤس ستفهمها ف ما بعد فمحتوى الكتاب ؼ ر معتمد عل ها لكن تعمد ت لولها لك تعرؾ ك ؾ عمل البرنامج الذي تكتب عل ه الكود وماذا حدث مع الكود الذي تكتبه وما حدث وراء الشاشة وك ؾ فهمه الكمب وتر و ظهر على شكل برنامج له واجهه و ستط ع المستخدم العادي التعامل معه سنبدأ ف بناء ه كل أول برنامج ف لؽة الس شارب. إذا أ ن كت ب الكود مكننا كتابة الكود على أي محرر نصوص و كون إمتداد الملؾ الذي نكتب به الكود ).cs ( أو على ب ئة تطو ر متكاملة ) Environment IDE ( Integrated Development وهذه الب ئة ( studio ) visual ه المعتمدة من شركة ما كروسوفت ف التطو ر. مكنن أن ت حم ل أي إصدار منه. بعد تحم ل البرنامج وتثب ته على جهازن... اوال نفتح برنامج visual studio من لائمة Start

13 ثم نضؽط على File بعدها ندخل إلى New ثم نختار project بعدها نختار لؽة #C ثم Console Application

14 س فتح أمامن using System; اسم البرنامج + namespace فمثال إذا اسم ت البرنامج First_project س كون كالتال : namespace First_project Class Program static void Main(string[] agrs) Console.WriteLine("Hello World");

15 بعد اإلنتهاء من كتابة الكود سنضؽط على كلمة Start لك نموم بمعالجة للكود و تنف ذه. أو مكننا الضؽط على ) ctrl+f5 ( مالحظة : بعض إصدارات برنامج visual studio تفتح الشاشة السوداء )Console( وتغلك بسرعة لبل رؤية نتيجة الكود يمكنن أن تثبت الشاشة عن اإلغالق بكتابة ( ; ) Console.ReadKey( ) أو ( ; ) Console.ReadLine( ) وت كت ب هذه الجملة ف آخر سطر ف الكود ف دالة ال ) Main(... namespace First_project Class Program static void Main(string[] agrs) Console.WriteLine("Hello World"); Console.ReadKey( ); لك نفهم هذا البرنامج جب أن نحلله أوال. ما معن هذه الكلمات... ) using, namespace, class, Main ) 7

16 د اتفمنا ف البدا ة على أن لؽة الس شارب ( #C ) وتعمل بشكل كل بالبرمجة كائن ة التوجه. إنما ه مبن ة على اللؽت ن ++C و C إذا ما معنى البرمجة كائن ة التوجه وماهو تمن ات البرمجة إختالؾ الس شارب عن الس وما ه لنتعرؾ على تمن ات البرمجة اوال : - البرمجة الخطية ( Programming ) Linear وه كانت عبارة عن أن الكود كتب ف صفحة واحدة وبعض االجزاء ف الكود لابلة للتكرار بدون شئ جعلنا نستؽن عن هذا التكرار ف جزء مع ن من الكود فمثال أنن تكتب بعض االسطر من الكود لتنف ذ عمل ة مع نة ثم ت كمل الكود وبعدها تمابلن مشكلة تحتاج إلى نفس العمل ة السابمة لكن ف جزء مختلؾ من البرنامج ح نها ال تستط ع إال أن تع د كتابة هذا الجزء مرة أخرى وأ ضا عمل ة البحث عن االخطاء كانت صعبة جدا وتؤخذ الكث ر من الولت كود حتوي على آالؾ االسطر فلم كن من السهل التعامل مع الكود ف عمل ات التعد ل وكان الكود ؼ ر مرتب و ج د ت فكرة البرمجة الخط ة لحل المشاكل المتعلمة بالر اض ات ولتسه ل حلها. - البرمجة الهيكلية ) Programming ( Structure ظهر بعض التطو ر ف هذه الولت واخترعوا الدوال أو الوظائؾ ( Functions ) وه ت م كنن من كتابة )عمل ة مع نة ) عدد من األسطر مرة واحدة وتستدع هم ف كل مره احتجت إل هم دون الحاجة إلى إعادة كتابة هذه االسطر) العمل ة ( فمط نكتب اسم الدالة لكن أ ضا و ج بعض التمص ر ف ها ح ث صعب فصل الب انات عن العمل ات وال توجد حما ة للب انات من حدوث األخطاء والتعد ل بها نتج عنه أخطاء ف أجزاء أخرى من الكود ومن اللؽات الت تعمل بالبرمجة اله كل ة لؽة C. 2

17 - البرمجة كائنية التوجه ) Programming ( Object Oriented وأخ را ظهرت تمن ة جد دة ف كتابة الكود ت م كن ن من تنظ م الكود وأختصرت جدا ف حجم الكود وأصبح مرتبا وسهل عمل ات البحث عن األخطاء وساعد المطور ن على العمل بؤر ح ة ووفرت الكث ر من الولت والجهد أ ضا وأصبح كل ش ء منفصال عن اآلخر ح ث تتم عمل ة التعد ل والتؽ ر ف الكود بدون حدوث أخطاء مترتبة على هذا التؽ ر وأ ض فت الكث ر من التمن ات الت تحافظ على الب انات وتؽل فها وإخفاء الب انات والتحكم الكامل بها ومن اللؽات الت تعمل بالبرمجة كائن ة التوجه )البرمجة الش ئ ة( لؽة ++C و #C و Java و Python ومعظم لؽات البرمجة الحد ثة. Namespace لنتخ ل أننا كتبنا مجموعة من األسطر البرمج ة ف دالة ( Function ( وأنشؤنا أكثر من دالة إذا تحتاج إلى ش ء د ر هذه الدوال معا اسمه.class ال تشؽل تفك رن بمعنى كلمة class سنفهمه ف ما بعد كل ما أر دن أن تعرفه عن ال class أنه مكن أن حتوي على أكثر من دالة و مكن إنشاء أكثر من class ف نفس المشروع إذا نحتاج إلى شئ ل جمع كل هذه ال classes مع بعضها سنضعهم بداخل Namespace ف كون الكود مرتب أكثر. إذا فال ( namespace (ه عبارة عن حاو ة لمجموعة من ال classes و مكن أن حتوي المشروع على أكثر من.namespace ولنستط ع رإ ة وإستخدام ال classes الت بداخل ال namespace جب أن نستدع ال namespace بإستخدام كلمة. using 9

18 Main تسمى الدالة األساس ة الت بدأ منها البرنامج ف تنف ذ الكود فمثال إذا كتبت مئات العمل ات واإلجراءات خارج الدالة االساس ة فلن تم تنف ذهم أوال بل بدأ البرنامج ف تنف ذ ما بداخل الدالة األساس ة. static void Main(string[ ] agrs) Console.WriteLine(" C# ") ; سنفهم معنى كلمة string[ ] args ف الفصل الخاص بالدوال مكن اإلستؽناء عنها ف دالة ال Main نستط ع كتابة ألواس الدالة بدون كتابتها. تكون بالشكل التال : static void Main( ) Console.WriteLine(" C# ") ;

19 اإلدخال واإلخراج ) Input and Output ( عمل ات اإلدخال واإلخراج ه الت ت مك ن المستخدم من التعامل مع البرنامج أو التطب ك على سب ل المثال إذا كنت من مستخدم مولع الف س بون فإنن أوال ت دخ ل البر د اإللكترون وكلمة المرور فهذه ت ع د عمل ة إدخال لن كم ستخدم للمولع والب انات الت تظهر ف ما بعد فهذه عمل ة إخراج. using System ; namespace First_project Class Program static void Main(string[ ] agrs) Console.ReadLine( ); كلمة Console عبارة عن class بداخل (System) Namespace ) -ReadLine( عبارة عن دالة ت ستخدم لعمل ات اإلدخال وتستمبل نصوص فمط.

20 و جب ان نضع فاصلة منموطة ف نها ة كل جملة ف البرنامج ( ; ) وإال س حدث خطؤ. أنواع األخطاء ف الكود : خطؤ ف طر مة كتابة الكود ( error ) Syntax وذلن كون خطؤ ف لواعد كتابة الكود. خطؤ منطم ( error ) Logic وف هذه الحالة كون الكود مكتوب بطر مة صح حة كماعدة ولكنه ؼ ر منطم مثل لسمة واحد على صفر. خطؤ أثناء التشؽ ل ( error ) Runtime هذا الخطؤ حدث أثناء تشؽ ل البرنامج مثل وجود فائض ف الب انات الم دخ ل ة نس ان الفاصلة المنموطة عد خطؤ ف طر مة الكتابة أي ( error (. Syntax using System ; namespace First_project Class Program static void Main(string[ ] agrs) Console.WriteLine(" C# ") ; ) WriteLine( - ه دالة لطباعة المخرجات - Line ت كتب لك نه السطر الحال و بدأ ف سطر جد د.

21 و مكن أن نكتب فمط ) Write( متالصمة بها. لكن األسطر الت تل ها ف عمل ة الطباعة ستكون و وجد طر متان للطباعة : ) Placeholder ) -1 وتكون كالتال : Console.WriteLine(" Hello World,0- ", 5, 20 ) ; وف هذه الحالة س طبع + Hello World أول م دخ ل للدالة بعد الفاصلة وه الم مة ( 5 ) وإذا أردنا طباعة ثان م دخل سنكتب -1, وح نها لن عرض أول م دخل الم مة 20 وس عرض ح ث أن أول ترل م ( index ) بدأ بالم مة صفر - 0,. و مكنن أن تطبع أي ش ء بالشكل الذي تر ده فمثال : Console.WriteLine(" My Name is,0- and my age is,1-", " Ali ", 50 ) ; ف هذه الحالة س طبع My Name is Ali and my age is 50 مثال : Console.WriteLine(" x =,2, y = 0 and z =,1- ", 10, 20, 30 ) ; س طبع x = 30, y = 10 and z = 20

22 ) الدمج Concatinatoin( -2 Console.WriteLine(" Hello World " ); لكن هذه الطر مة ثابتة وماهو مكتوب أوال س عرض أوال بعكس الطر مة السابمة انت من تحكم ف ما س ظهر أوال وس عرض الكل. س كون الناتج... Hello World 520 س عرضها بهذا الشكل ولن جمع الرلم ن فهذه األداة )+( بعد النص ف الطباعة ل س أداة جمع إنما ه أداة للدمج ب ن النصوص فهو تعامل مع األرلام الت بعد النص على أنها نص ول ست رلم فمنطم ا ال مكن إضافة رلم على نص لكن إذا أتى الرلمان لبل جملة الطباعة فس جمع الرلم ن أوال و موم بالعمل ة الحساب ة بطر مة عاد ة جدا. Console.WriteLine( "Hello World" ) ; 25Hello World س طبع : \' وعندما ننته من الكود ونر د تشؽ ل البرنامج نضؽط.Ctrl+F5 توجد بعض العالمات تسمى " Sequence " Escape الت لد تساعدن ف عمل ة الطباعة لتخرج النص بشكل منسك أو إنذار عند عمل ة ما خطؤ. لطباعة عالمة تنص ص فرد ة "\ لطباعة عالمة تنص ص زوج ة لطباعة عالمة \ \\ لعمل إنذار \a للنزول إلى سطر جد د \n لعمل ( tab مسافات فارؼة ) \t

23 مثال : Console.WriteLine(" \' Hello " ) ; Console.WriteLine(" \" Hello " ) ; Console.WriteLine(" \\ Hello " ) ; Console.WriteLine(" \a Hello " ) ; Console.WriteLine(" \n Hello " ) ; Console.WriteLine(" \t Hello " ) ;

24 ) أنواع البيانات Data Types ( الب انات الت ت خزن ف الذاكرة جب أن كون لها نوع حت تعرؾ عل ها مترجم اللؽة فمثال تكون نصوص أو حرؾ أو عدد صح ح أو عدد عشري و جب أن نحدد نوعها أوال وإال لن تعرؾ عل ها المترجم وس حدث خطؤ وجد العد د من االنواع ولكن بالتؤك د لن تسخدم كل ش ء فمط ما تحتاج إل ه ف برنامجن... نوع البيانات النوع الموافق في منصة الدوت نث الحجم الوصف أو false ق مح منطق ح صح أو خطأ true System.Boolean bool رقم صح ح موجة أوسانة مساحته 1 تت رقم صح ح موجة مساحته 1 تت رقم صح ح سانة أو موجة مساحته 82 تت رقم صح ح موجة مساحته 82 تت من 821 ان انى انى انى System.Sbyte System.Byte System.Int16 System.UInt16 sbyte byte short ushort

25 رقم صح ح سانة أو موجة مساحته 82 تت 278,17,1872,1 انى 278,17,1872,1 System.Int32 int 0 انى 72,,7,2172,2, رقم صح ح موجة مساحته 82 تت رقم صح ح موجة أوسانة مساحته,2 تت, , انى, , System.UInt32 System.Int64 uint long رقم صح ح موجة مساحته,2 تت قثم حزف مساحته 82 تت قثم رقم كسزي مساحته 82 تت قثم رقم كسزي مساحته,2 تت 0 انى,817,,271,, , U+0000 انى U+ffff 0 انى e+16 E+38 82,02128 انى E+38 System.UInt64 System.Char System.Single System.Double ulong char float double قثم رقم سانة أو موجة مساحته 821 تت E ,12,888,12282 انى E ,12,888,12282 مق د تحسة انذاكزج قثم أي نوع من األنواع انساتقح مثم سهسهح نص ح من جدول ان ونكود System.Decima l System.String System.Object decimal string object 7

26 إذا مما تتكون الب انات الت ت خزن ف الذاكرة تتكون من ( نوع الب انات + المتؽ ر الذي حتوي على الب انات + الم مة ) Data type + variable + value 2

27 المتغيرات ) Variables ( المتؽ ر هو عبارة عن اسم لمكان تخز ن الب انات ف الذاكرة والذاكرة عبارة عن خال ا وكل خل ة ت عادل بت وت ح دد المساحة الت تؤخذها الب انات ف الذاكرة من خالل نوعها وتتؽ ر ل مة المتؽ ر بإستمرار كلما أدخلنا له ل مة جد دة كما مكننا تسم ة المتؽ ر بؤي اسم نر ده لكن ال نستط ع تسم ة متؽ ر ن بنفس األسم و جب أن تكون الم مة الت ست خز ن تتناسب مع نوع المتؽ ر. تتم عمل ة تعر ؾ المتؽ ر بهذا الشكل : الم مة = اسم المتؽ ر + نوع الب انات الت تخزن ف المتؽ ر Data type Variable_Name = value ; Variable_Name D a t a ون سم هذا المكان ف الذاكرة لك نستط ع الوصول إلى الب انات مرة أخرى بسهولة فهو بمثابة صندوق توضع به هذه الب انات. 9

28 using System; namespace First_program class Program static void Main( ) int num = 5; string name = "123Mahmoud"; float num2 = 34.5f; char c = 'a'; double num3 = 34.5; ف هذا المثال عرف نا متؽ ر من النوع ( int ) ووضعنا به الم مة 5 ومتؽ ر من النوع ( string ) ووضعنا به نص داخل عالمت ن تنص ص و جب أن وضع النص أو الكلمة ب ن عالمت ن تنص ص حتى إذا كانت الم مة عبارة عن أرلام لكنها بداخل عالمت ن تنص ص فإنه تعامل معها على أنها نص ول ست أرلام. ومتؽ ر من النوع ( float ) رلم حتوي على عالمة عشر ة ونكتب ف آخره ( f ) لك تعرؾ المترجم على أنه float ألن الم مة االفتراض ة لألعداد الكسر ة ه.double ثم عرفنا متؽ ر من النوع ( char ) ؤخذ حرؾ و وضع ب ن عالمة تنص ص فرد ة. جب أن نعلم أن لؽة الس شارب حس اسة من ناح ة الحروؾ أي أن a ال تساوي A ف جب أن ننتبه عند الكتابة. : Int خطؤ : int صح

29 فمثال إذا كان : int a=7; int A =7; فإنهما ف هذه الحالة متؽ ران مختلفان و جب مراعاة الدلة ف كتابة نوع المتؽ ر والتعامل معه بشكل صح ح وإال س حدث خطؤ ف البرنامج ولن تعرؾ على نوع المتؽ ر. using System; namespace First_program class Program static void Main( ) int num1=5 ; int num2=10 ; int sum ; sum = num1 + num2 ; Console.WriteLine("sum of two numbers = " +sum); وإذا كنت تر د تعر ؾ أكثر من متؽ ر من نفس النوع فمن الممكن أن نعرف ه بهذه الطر مة... int num1=5, num2=10, sum ;

30 مثال : static void Main( ) int x = 10 ; x = 5 ; x = 20 ; أدخلنا ثالث ل م للمتؽ ر تكون ل مة المتؽ ر الجد دة ه آخر ل مة دخلت له. إذا تكون ل مة المتؽ ر x تساوي. مالحظة : ال جوز تعر ؾ المتؽ ر أكثر من مرة ف نفس المكان من الكود. فمثال : static void Main( ) int x =1 ; int x =5 ; خطأ ألن هذا المتؽ ر م عرؾ م سبما. تسمية المتغير جب أن كون اسم معبر عن نوع الب انات الت ست خزن فمثال إذا كان اسم او ع مر شخص. string Name; int Age;

31 وال جوز أن بدأ المتؽ ر بؤي من الرموز اآلت ة :! # $ % ^ & - = + ) (? لكن ممكن أن بدأ ب _ صح ح int _name ; مكننا أن نسم المتؽ ر بؤي اسم نر ده لكن هنان بعض الكلمات المحجوزة ف اللؽة الت ال نستط ع تسم ة المتؽ ر بنفس اسمها... abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit

32 in in (generic int interface modifier) internal is lock long namespace new null object operator out out (generic modifier) override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using using

33 static virtual void volatile while add alias ascending async await descending dynamic from get global group into join let nameof orderby partial (type) partial (method) remove select set value var when (filter condition) where (generic type constraint) where (query clause) yield

34 فمثال ال نستط ع تعر ؾ متؽ ر هكذا int void هذا ؼ ر صح ح وس حدث خطؤ جب االبتعاد عن هذه الكلمات ف تسم ة المتؽ رات فه كلمات محجوزة ف اللؽة ولها استخدامات مع نة. كل متؽ ر نعرف ه كون له نطاق ومجال رى ف ه ف الكود فإما أن كون : ( Local محل ) : و كون ذلن ف نطاق محدد ونحن نحدد مدى رإ ة مترجم اللؽة له ف بال الكود من خالل لوس ن المجموعة ( Global شامل أو عام ) : و كون مرئ ف كل الكود داخل ال class أي كون ف بدا ة ال.class مالحظة : عندما تعط ل مة إبتدائ ة للمتؽ ر فإنه ستخدمها فمط ف حالة أنن لم ت دخل له ل مة أخرى. مثال : 1 2 Global 3 Local

35 ف هذه الصورة كون المتؽ ر x الذي سمى Test عام أي مرئ ف كل الكود الذي ف هذا ال class فإذا ك ت ب حرؾ x ف أي مكان ف الصورة تحت اسم ال class س ظهر لن المتؽ ر x لكن بشرط أن كون داخل مجال ال class أي أنه ال مع ب ن خارج أول لوس وآخر لوس لل class كما ش ر السهم ( 1 ) ف الصورة. وال جوز إعادة تعر ؾ متؽ ر آخر بنفس أسم المتؽ ر x ألنه م عرؾ م سبما ح ث أنه متؽ ر عام داخل ال.class أما المتؽ ر y فإنه ألل شمول ة من x ح ث أنه ال تعرؾ عل ه خارج لوس ن المجموعة للدالة رى بؤي مكان داخل لوس ن المجموعة الخاص ن بالدالة كما ش ر السهم ( 2 (. و جوز تعر ؾ متؽ ر آخر بنفس اسمه خارج ألواس الدالة الخاصة به. المتؽ ر z هو األلل شمول ة ف هم ح ث أنه ال ت ع رؾ عل ه خارج الموس ن المح ط ن به كما ش ر السهم ( 3 (. كل لوس مجموعة هو عبارة عن مرحلة ومستوى كلما صعد المتؽ ر أعلى خارج األلواس كلما زادت شمول ته ومعرفته ف أجزاء أخرى ف الكود. ) Constant الثابت ( الفرق ب ن الثابت والمتؽ ر أن الثابت ل مته ثابته لن تتؽ ر طوال البرنامج أما المتؽ ر ف مكن تؽ ر ل مته إذا حاولنا تؽ ر الثابت س حدث خطؤ ف البرنامج. و كون بالشكل اآلت : const + data type + name + value ; const string name="mahmoud" ; 7

36 const int number = 1 ; و مكن أن نستخدمه ف الم م الر اض ة والف ز ائ ة الثابتة. تمار ن : أحسب مساحة دائرة نصؾ لطرها using System; namespace Second_program class Program static void Main() const float pi = 3.14f ; int radius = 4 ; float area = pi * (radius * radius); Console.WriteLine(area); 2

37 تحويل أنواع المتغيرات ) Conversions ( ) -1 تحويل ضمني ( implicit وه أن تؤخذ متؽ ر ما لتضعه ف متؽ ر أكبر منه ف الحجم أو ساو ه ونفس نوع الب انات بدون أن حدث أي فمدان أو إضاعة لجزء من الب انات الت بداخله. مثال : مساحة أكبر ( byte ) 8 عدد صح ح long x; مساحة أصؽر ( byte ) 4 عدد صح ح int y; x = y ; ف هذه الحالة وضعنا ل مة المتؽ ر y داخل المتؽ ر. x ح ث أن حجم المتؽ ر ( x ) بت وحجم المتؽ ر ( y ) بت ف مكن للمتؽ ر ذو الحجم األكبر أن حتوي على المتؽ ر ذو الحجم األلل بدون أي حدوث عمل ة فمد للب انات. أما إذا حاولت فعل العكس ف الحالة الطب ع ة فس حدث خطؤ و حدث فمد للب انات. 9

38 إذا حاولت وضع الصندوق ف الشكل ( 2 ) ف الصندوق ف الشكل ( 1 ) لن حدث أي خطؤ ألن الصندوق ف الشكل ( 1 ) أكبر من الصندوق اآلخر لكن ف حالة عكس هذه العمل ة س حدث خطؤ ألن الصندوق ف الشكل ( 2 ) أصؽر ف الحجم. 2 1 ) Explicit or Casting 2- تحويل صريح ( وه عكس الحالة السابمة وتحدث عندما وجد إحتمال فمدان ف الب انات أثناء عمل ة تمر ر الب انات إلى المتؽ رات الجد دة و مكننا وضع ب انات المتؽ رات ذي االحجام المختلفة واالنواع المختلفة داخل بعضها بشرط تؽ ر نوع المتؽ رالض ؾ إلى نفس نوع المتؽ ر الم ض ؾ. وف حالة األعداد مكننا وضع الم م الكسر ة float أو double int أو long بشرط تؽ ر نوعها. بداخل متؽ رات نوعها مثال : long x; int y; y = ( int ) x;

39 مثال : int x = 10 ; float y = 3.0f ; x = ( int ) y ; أو مكننا إستخدام هذه الطر مة : x = Convert.ToInt32( y ); وف هذه الحالة فإن المتؽ ر الم ض ؾ ستط ع إستمبال المتؽ ر الض ؾ. الفرق ب ن : Convert.ToInt16 أي أنها تحول المتؽ ر إلى النوع short ح ث أن النوع short حجمه بت أي با ت Convert.ToInt32 تحول المتؽ ر إلى النوع int ح ث أن النوع int حجمه بت أي با ت Convert.ToInt64 تحول المتؽ ر إلى النوع long ح ث أن النوع long حجمه 64 بت أي 2 با ت تذكر أن : إذا جاء حرؾ u لبل هذه األنواع من الب انات ) short, int, long, float, double ( معنى ذلن أن هذه األنواع تستط ع أخذ ل مة موجبة فمط وحرؾ u إختصار ل.unsigned

40 توجد بعض الدوال لتحو ل النصوص... مثل : decimal ToDecimal(String) float ToSingle(String) double ToDouble(String) short ToInt16(String) int ToInt32(String) long ToInt64(String) ushort ToUInt16(String) uint ToUInt32(String) ulong ToUInt64(String)

41 وتوجد أ ضا الدالة ---> ) Parse( لتحو ل أي ش ء من النوع ( string ) فمثال إذا أردنا إدخال ل مة لمتؽ ر نوعه int من خالل المستخدم : using System; namespace First_program class Program static void Main( ) int num; num = int.parse(console.readline( )); هذا الكود معناه أنه وجد متؽ ر من النوع ( int ) وس ؤخد ل مته من المستخدم بواسطة الدالة ) ReadLine( لكن هذه الدالة ال تمبل إال نصوص لذا سنجعلها تمبل أعداد صح حة من خالل دالة ).Parse( وآخرا سنضع كل هذا داخل المتؽ ر الذي نر د إدخال الم مة له كما ف المثال السابك. أو num = Convert.ToInt32(Console.ReadLine( ) ) ;

42 د التعليمات ) Comments ( التعل مات ه عبارة عن شرح موجز لجزء مع ن من الكود البرمج ف جعل الكود سهل المراءة والفهم و تجاهل المترجم التعل مات وال تعامل معها نهائ ا فه مجرد مالحظات أو تنو ه كتبه المبرمج لنفسه أو لمن عمل بعده إذا و ج ف ها خطؤ نحوي أو منطم فال هم فلن حدث أي خطؤ. أنواع التعل مات : تعل ك لسطر فردي ( // ) using System; namespace First_program class Program static void Main( ) int num; // this is the first variable مثال :

43 ) تعل ك متعدد األسطر ( */.. /* أي أنه مكن أن نكتب مالحظات ف أكثر من سطر ف كون هذا الجزء من الكود ؼ ر مرئ بالنسبة للمترجم. مثال : using System; namespace First_program class Program static void Main() int num; /* this is the first variable this is the first variable this is the first variable this is the first variable */ س تجاهله المترجم تماما. أ ضا ال جب أن ننشؽل بالتعل مات كث را ت كتب التعل مات ف االجزاء المهمة الت تحتاج إلى توض ح فمط.

44 المعامالت الرياضية والمنطمية ) Arithmetic and Logic operators ( المعامالت الرياضية الجمع ( + ) الطرح ( - ) الضرب ( * ) المسمة ) / ( بال المسمة ( % ) ) ++ ( الز ادة للمتؽ ر بممدار ) -- النمصان للمتؽ ر بممدار ( مثال : بفرض أن... A = 5 and B = 2 A + B = 7 A B = 3 A * B = 10 A / B = 2.5

45 A % B = 1 A++ = 6 A-- = 4 مكن أن نضع عالمت ن الجمع بعد المتؽ ر أو لبله. لكن انتبه...! ++A ال تساوي A++ ألنه عندما نضعهم لبل المتؽ ر فإن الز ادة ف ممدار المتؽ ر تحدث أوال ثم تحدث العمل ة الت تل ها على المتؽ ر أما إذا وضعنا العالمت ن بعد المتؽ ر فإن العمل ة ستحدث أوال ثم بعد ذلن تحدث الز ادة ف الم مة. using System; namespace First_program class Program static void Main() int num1 = 10; int num2 = 8; int sum; sum=(num1++) + ( ++num2); Console.WriteLine(sum); //result=19 7 مثال :

46 Console.WriteLine(num1); //result =11 Console.WriteLine(num2); //result =9 س طبع 9 فمط لماذا أول متؽ ر لم حدث له تؽ ر ولم تزد ل مته بعد ألنه موم بالعمل ة على المتؽ ر أوال ثم الز ادة ثان ا فمام بعمل ة الجمع وبعدها زادت ل مته بممدار أما المتؽ ر الثان فزادت ل مته أوال ثم لام بعمل ة الجمع وإذا لمنا بطباعة المتؽ ر ن بعد العمل ة ستجدهم لد زادا بممدار والطرح كذلن أ ضا. مثال : using System; namespace First_program class Program static void Main() int A=10; int B=8; int sum; 2

47 د sum= ( A++ ) + ( ++B ) + ( --A ) + ( B-- ) +( B++ ) + ( A ) - ( B ) ; // ( 10 ) + ( 9 ) + ( 10 ) + ( 9 ) + ( 8 ) + ( 10 ) - ( 9 ) الناتج = 7 // ; ) sum Console.WriteLine( إذا و ج متؽ ران نوعهما string بعضهما. وب نهما عالمة الجمع فإنها ستدمج الن ص ن مع مثال : string x = " Hello " ; string y = " World " ; Console.WriteLine( x + y ) ; س طبع : Hello World معامالت الممارنة : ساوي ( == ) ال ساوي (!= ) أكبر من ( > ) ألل من ) < ( أكبر من أو ساوي ) =< ( ألل من أو ساوي ) => ( 9

48 مثال : بإفتراض أن... A = 10, C = 10 and B = 5 A == C A > B A!= B B < A A >= C B <= A مالحظة : عالمة = ل ست عالمة ساوي إنما تسمى تع ن أو تخص ص ( assignment (. فإذا لولنا أن : A = 5 أو A = B معنى هذا أن ل مة الجانب األ من للعالمة )=( تنتمل إلى الجانب األ سر. الم مة 5 تنتمل إلى المتؽ ر A والمتؽ ر B وضع بداخل المتؽ ر A وتصبح ل مة المتؽ ر A ول مة المتؽ ر B ال تتؤثر وتظل كما ه. نفس ل مة المتؽ ر B

49 مثال : using System; namespace First_program class Program static void Main( ) int num1 = 10; int num2 = 8; num1 = num2; Console.WriteLine( num1 ); الناتج = 2 // Console.WriteLine( num2 ); الناتج = 2 //

50 المعامالت المنطمية : جب أن تكون الم مت ن صح حت ن جب أن تكون إحدى الم مت ن صح حة Logical AND ( && ) : Logical OR ( ) )! ( NOT : Logical عكس الم مة فإذا كانت صح حة ف األصل تنف ها األداة وتصبح خطؤ والعكس. وسنفهم المعنى أكثر عندما نصل إلى " الجمل الشرط ة ". المعامالت الثنائ ة الت تتعامل مع البت ( Bit ) & ^ أي أنها تتعامل مع الب انات على شكل النظام الثنائ ( System (. Binary مالحظة : أي حرؾ أو رلم تم تحو له داخل الكمب وتر إلى النظام الثنائ أي إلى أصفار وآحاد ) ( فكما ذكرت فهذه تسمى لؽة اآللة والكمب وتر ال فهم ؼ رها. تم تحو ل األرلام العشر ة إلى النظام الثنائ بهذه الطر مة : أ س صفر إلى أ س ما ال نها ة لذا سم بالنظام الثنائ =

51 و تم جمع كل الم م الت ت كو ن الم مة ال معطاة والم مة الت نؤخذها نضع مكانها 1 والت لم نستخدمها نضع مكانها 0. ال شترط تكرار مع ن لألساس فمط ما تحتاج إل ه إلخراج الم مة بالنظام الثنائ أو مكنن أن تمسم الم مة الم عطاة على العدد وبال المسمة كو ن الم مة بالنظام الثنائ. مثال : حو ل الم مة 9 إلى النظام الثنائ ثم نبحث عن األرلام الت ت كو ن الرلم 9. فتكون ( 16,2,1 ) فنضع 1 تحت كل ل مة لد أخذناها و 0 تحت كل ل مة لم نستخدمها ف تكو ن الرلم العشري. أو نمسم الم مة 9 على ونخرج بال المسمة وتكون بهذا الشكل : الم مة األساس بال المسمة 9 9

52 10011 <--- فتكون الم مة )9 ( بالنظام الثنائ ه مثال : حو ل الم مة إلى النظام الثنائ. 0 2 أ س نبحث عن األرلام الت ت كو ن الرلم. تحت كل ل مة لد أخذناها و 0 تحت كل ل مة لم نستخدمها ف فتكون ( 8,4,1 ) فنضع 1 تكو ن الرلم العشري فتكون الم مة ) ( بالنظام الثنائ ه ---> شرح هذه الجزئ ة كان فمط لتفهم ك ف ة عمل هذه المعامالت )" & ^ "( مع األرلام. مثال : - ف حالة ( & ) عند جمع 1 و 0 بإستخدام & فإن الناتج كون 0 و كون الناتج 1 ف حالة واحدة... إذا كان الجمع ب ن 1 و 1. A = 5 and B = 20 A & B = & = 00100

53 إذا = 4 B A & - ف حالة ( ) عند جمع 1 و 0 بإستخدام فإن الناتج كون 1 و كون الناتج 0 ف حالة واحدة... إذا كان الجمع ب ن 0 و 0. A B = = إذا = 21 B A ف حالة ( ^ ) عند جمع 1 و 0 بإستخدام ^ فإن الناتج كون 1 و كون الناتج 0 ف حالة أن الم متان متشابهتان 1 و 1 أو 0 و 0 A ^ B = ^ = إذا = 17 B A ^ A B A & B A B A ^ B

54 معامالت النمل أو اإلسناد ( Assigment (: A = 3 and B = 2 = += -= *= /= %= &= ^= = مثال : تعن أن المتؽ ر A ست جمع ل مته على المتؽ ر B ثم س وضع ناتج الجمع A += B بداخل A. إنما ه إختصار لهذا النمط : A = A + B A -= B A = A- B المتؽ ر الثان س ط رح من المتؽ ر األول ثم ست وضع ل مة الطرح ف الجانب األ سر. ( A=A*B ) A*=B حاصل ضرب الم مت ن وضع ف الجانب األ سر. ( A=A/B ) A/=B حاصل لسمة الم مت ن وضع ف الجانب األ سر. ( A=A%B ) A%=B حاصل بال لسمة الم مت ن وضع ف الجانب األ سر.

55 ( A=A&B ) A&=B ناتج العمل ة وضع ف الجانب األ سر. ( A=A^B ) A^=B ناتج العمل ة وضع ف الجانب األ سر. ( A=A B ) A =B ناتج العمل ة وضع ف الجانب األ سر. أولويات العمليات الحسابية : ( ) ن ف ذ ما بداخل األلواس أوال. % / * ت ح سب من الشمال إلى ال م ن وأ هم ؤت أوال فتحدث عمل ته أوال. - ت ح سب من الشمال إلى ال م ن وأ هم ؤت أوال فتحدث عمل ته أوال. + =< > => < ت ح سب من الشمال إلى ال م ن وأ هم ؤت أوال فتحدث عمل ته أوال. =! == ت ح سب من الشمال إلى ال م ن وأ هم ؤت أوال فتحدث عمل ته أوال. = الم مة الت بالجانب األ من تنتمل للجانب األ سر. مثال : ( 6 / ) * 3 % 7 1 الناتج : 2 4 / * 3-5 % 5-1 * ( 3-1 ) الناتج : 8 7

56 توجد أ ضا بعض العوامل الت نستخدمها ف الكود بإستمرار مثل: النمطة ( دوت ) < (. ) تستخدم للوصول إلى الدوال والمتؽ رات وال classes عندما نمول... System.Console.WriteLine( ); System ه عبارة عن namespace و للوصول إلى ما بداخلها من classes نكتب نمطة (. ) Console ه عبارة عن class و للوصول إلى ما بداخله من دوال ومتؽ رات نكتب نمطة (. ) وكذلن دالة ) WriteLine( و ).ReadLine( ] [ ت ستخدم مع المصفوفات وللوصول إلى فهرس المصفوفة. ( ) ت ستخدم مع الدوال أي دالة جب أن تحتوي على هذ ن الموسان أثناء اإلنشاء واإلستدعاء وأ ضا نستخدمها عند تحو ل أنواع الب انات. تمار ن : أكتب برنامج ل بد ل ل مت ن لمتؽ ر ن مع بعضهما : مثال لتبس ط الفكرة : إذا كان معن كوب ماء وكوب آخر من الشاي واردت أن تبدل الماء بالشاي والعكس ستؤت بكوب ثالث فارغ لك حتوي على احد النوع ن إلى أن تبدل الكوب ن اآلخر ن. using System; namespace First_program class Program 2

57 static void Main( ) int num1=10; int num2=15; int temp; temp = num1; num1 = num2; num2 = temp; Console.WriteLine(num1); //num1=15 Console.WriteLine(num2); //num2 =10 تمار ن : أكتب برنامج لحساب المتوسط الحساب لخمسة أرلام دخلها المستخدم. using System; namespace Third_program class Program static void Main( ) double n1, n2, n3, n4, n5, average ; Console.WriteLine(" enter five numbers "); n1 = double.parse(console.readline( ) ) ; 9

58 n2 = double.parse(console.readline( ) ) ; n3 = double.parse(console.readline( ) ) ; n4 = double.parse(console.readline( ) ) ; n5 = double.parse(console.readline( ) ) ; average = ( n1 + n2 + n3 + n4 + n5 ) /5 ; Console.WriteLine( average ) ;

59 الج مل الشرطية ) Conditional Statements ( if ه عبارة عن لرارات لائمة على شروط فإذا تحمك الشرط نفذ الكود الذي بداخل جملة التحكم ( if.) مثال: إذا كانت درجتن أكبر من % أنت ناجح. إذا كان تمد رن أكبر من %2 ف كون امت از. وهكذا... ) الشرط ( if code if ( grade>=85 ) Console.WriteLine(" Excellent ") ; مثال : نكتب if ثم نفتح لوس ن لكتابة الشرط بداخلهما ونكتب بداخلها الكود المراد تنف ذه. وه تنفذ سطر فردي تحتها فمط ف حالة عدم وضع لوس ن مجموعة.

60 د أما إذا أردنا كتابة أكثر من أمر وأكثر من سطر نكتب الكود بداخل. if ( your_name=="mahmoud") Console.WriteLine("Hello Mahmoud"); your_name="mahmoud"+"soliman" ; مكننا إجراء وتنف ذ أي كود نر ده طالما هذا الشرط صح ح. ف المثال السابك كلمة grade ه عبارة عن متؽ ر ثم الشرط => ومعنى الكود أنه إذا كانت درجتن أكبر من أو تساوي 2 س ن ف ذ الكود الذي بداخل جملة if وف هذه الحالة س طبع " Excellent " ف ما عدا ذلن لن نفذها. ثم نكتب الكود بداخل هذ ن الموسان و جب كتابة الشرط بداخل هذ ن الموسان ( ) ونستط ع كتابة أكثر من شرط بداخلها فمثال إذا كنا نر د فحص ب انات شخص كاملة مثل ( اسمه عمره جنسه رلم تل فونه ) نحدد إذا و ج خطؤ ف أحد هذه الشروط كمل تنف ذ الكود أو ال. وذلن بواسطة : ( &&,, ^,! ) المعامالت المنطم ة ( && ) وتعن ( AND ) تتحمك من الجانب األ سر واأل من إذا و جد خطؤ ف احدهما فلن تم تنف ذ أي منها و كون ناتجهما خطؤ ولتعط ناتجا صح حا جب أن كون الجانبان صح ح ن.

61 المعامالت المنطم ة ( ) وتعن ( OR ) تتحمك من الجانب األ سر واأل من ولن تعط خطؤ إال إذا كان الجانبان شرطهما خطؤ إذا كان هنان جانب خطؤ وآخر صح ح فستتجاهل الخطؤ وتعط ناتج صح ح ألنه وجد على األلل أحدهما صح ح. المعامالت المنطم ة ( ^ ) وتعن ( XOR ) أي أنه لك تم تنف ذ الكود الذي بداخل if جب أن كون الجانبان مختلف ن أي أن أحدهما صح ح واآلخر خطؤ إذا كان ناتج الشرط ف الجانب ن خطؤ أو كان ناتج الشرط ف الجانب ن صح ح فلن تم تنف ذ الكود أ ضا. جب أن كونا مختلف ن. A B A & B A B A ^ B جانب أ من && جانب أ سر مثال : if ( name == "Mahmoud" && age == 30 gender == "Male" phone == " " ) عندما وجد أكثر من شرط فإنه مس م كل شرط ن معا وبعد اإلنتهاء من الشرط ن كون ناتجهما م دخ ل للشرط الذي ل ه. على سب ل المثال نفرض أن name ل مته صح حة و age ل مته أ ضا صح حة

62 إذا فناتج الشرط كون صح حا أما إذا كانت أحدهما خطؤ ف كون ناتج الشرط خطؤ ثم هذا الناتج كون م دخل للشرط الذي بعده أي كون سار ال ( ) صح حا و سارها أ ا كن ف كون ناتج الشرط صح ح لكل هما ألن ( ) تحتاج جانب واحد صح ح على األلل ف كون الناتج النهائ صح حا لهذا الشرط تبمى آخر فحص وهو ال phone وناتج الشرط الذي على ساره صح ح وبما أن أداة الشرط ( ) ف كون الناتج النهائ لجملة if صح ح ف تم تنف ذ ما بداخلها. 1 && ( 0 ) ( 1 ) && ( 1 ) إذا كانت جملة الشرط عبارة عن متؽ ر من النوع ( bool ) وكتبنا الجملة بدون وضع أي عالمات تحدد الشرط وكتبنا المتؽ ر الذي حمل الم مة فمط فستظل هذه الم مة ثابتة فلو كانت true فإن if دائما ست نف ذ أما إذا كانت false فلن تم تنف ذ ما بداخل if أبدا.

63 مثال : bool variable=false; if( variable ) Console.WriteLine(" C# "); جملة الشرط تلمائ ا تكون بهذا الشكل true( )variable == عندما كون المتؽ ر من النوع ( bool ) لو لم نكتب ل مة true أو false ف الشرط. وإذا أردنا النف ف جملة الشرط نضع عالمة تعجب لبل المتؽ ر المراد نف ل مته.)! ( bool variable = false ; if( variable ) Console.WriteLine(" Hello ") ; ف هذه الحالة لن ن فذ الكود الذي بداخل الموس ن ألن ناتج الشرط true حملها المتؽ ر ف االصل.false والم مة الت أما إذا أردت أن تم تنف ذ الكود ف حالة أن المتؽ ر حمل الم مة false ف جب أن تكون جملة الشرط هكذا... if(! variable ) أو if( variable == false )

64 إذا كتبنا true) if( //code ف هذه الحالة س نفذ الكود الذي بداخل if ألننا حددنا أن الشرط صح ح ف كل الحاالت. else ت ن فذ هذه الجملة عندما كون الشرط الذي ف جملة if خطؤ لكن إن كان الشرط صح حا فلن ت نفذ جملة.else int num=5; if( num == 2 ) Console.WriteLine("this is true"); else Console.WriteLine("this is false"); مثال : ف هذه الحالة الشرط خطؤ إذا س نفذ جملة else إذا أردنا كتابة أكثر من سطر داخلها ف جب وضع لوس ن.

65 ) ج مل شرط Nested if متداخلة ( مكننا كتابة أكثر من شرط بداخل بعضهم البعض ف مكننا كتابة أكثر من if كتابة if بداخل جملة else بداخل if أو int number = 5 ; if ( number == 2 ) الشرط خطؤ فلن ن فذ وس نفذ ما بداخل // else Console.WriteLine("this is true"); else if ( number > 1 ) number += 3 ; if ( number < 10 ) number += 5 ; else number -= 10 ; Console.WriteLine(number); س طبع // مثال: 7

66 معنى هذا الكود أنه فحص ل مة المتؽ ر أوال فإذا كانت س طبع this is true إذا كانت ؼ ر ذلن فإنه دخل إلى else ف جد بداخلها جملة شرط أخرى و فحص الم مة الت بداخل المتؽ ر هل الم مة أكبر من إذا كانت كذلن ف دخل إلى if وتز د ل مة المتؽ ر بممدار ثم فحص المتؽ ر مرة أخرى هل ل مته ألل من إذا كانت ألل ف نفذ ما بداخلها وتز د ل مة المتؽ ر بممدار ولو لم تكن ل مته ألل من فلن نفذ جملة if هذه و نزل إلى جملة else وتنمص ل مة المتؽ ر بممدار وبعد ذلن طبع ل مة المتؽ ر ف أول جملة else الت بداخلها كل ج مل الشرط هذه. 2

67 if..else if مكننا إختبار أكثر من شرط معا من خالل else if using System; namespace First_program class Program static void Main( ) Console.WriteLine("enter your grade"); int grade = int.parse(console.readline( )); if ( grade == 50 ) Console.WriteLine(" your grade=50"); else if ( grade == 60 ) Console.WriteLine("your grade=60"); else if ( grade == 70 ) Console.WriteLine("your grade=70"); else if ( grade == 80 ) Console.WriteLine("your grade=80"); else if ( grade == 90 ) Console.WriteLine("your grade=90"); else 9

68 Console.WriteLine("you didn't success if your grade less than 50!"); س فحص أول متؽ ر دخله المستخدم فإذا تحمك أول شرط س نفذه ولن نفذ أي ش ء آخر وإذا لم تحمك س تجه إلى الشرط الذي ل ه ثم الذي ل ه إال أن تحمك الشرط إذا كانت كل الشروط وكل االحتماالت خطؤ س تجه إلى else و نفذ ما بداخلها. تمار ن : اكتب برنامج فحص الرلم الذي دخله المستخدم و عرض نوع الرلم إذا كان عددا زوج ا أم فرد ا. using System; namespace First_program class Program static void Main( ) int number = int.parse(console.readline( )); if( number%2 == 0 ) Console.WriteLine("this number is Even"); 7

69 else Console.WriteLine("this number is Odd"); Inline Condition وجد نوع آخر من الجمل الشرط ة وتكتب ف سطر واحد وتعمل عمل : if ( الشرط ) خطؤ : صح ح? ت مثل if ت مثل else مثال : int x =10 ; ( x > 5 && x <20 )? " true" : " false " ; أطبع true ما عدا ذلن هذا الكود معناه أن ف حالة أن x أكبر من اطبع.false وألل من و مكننا إستمبال الم مة الناتجة من هذه العمل ة ف متؽ ر من نفس نوع الب انات الخارجة ف هذا الشرط تكون النواتج من النوع string ف مكننا إستمبالها ف متؽ ر نوعه string ف مكن أن تكون بهذا الشكل : 7

70 string str = ( x > 5 && x < 20 )? " True " : " False " ; Console.WriteLine( str ); الناتج : True أ ا كان الناتج true أو false س خزن بداخل المتؽ ر.str مكننا كتابة أي جملة نر د تنف ذها ال شترط جملة طباعة. مثال : int num = 20 ; num = ( num > 10 && num < 35 )? num +5 : num -1 ; Console.WriteLine( num ); الناتج : 25 7

71 switch ه جملة شرط ة ت ستخدم للتؤكد من الم دخالت ما إذا كانت صح حة أم خاطئة مثل if لكن هنان بعض الفروق البس طة ب نهما : If تستط ع التعامل مع أكثر من عمل ة بداخل الشرط الواحد. Switch ال تستط ع التعامل إال مع عمل ة واحدة بداخل الشرط ال نستط ع استخدام == > أو < أو & % بداخلها فه محددة. تكون سهلة ف عمل ة المراءة والفهم للكود أكثر من if أسرع من if ف حالة إستخدام االرلام المحددة النها تتوجه مباشرة إلى الشرط الصح ح وتنفذه. تكون صعبة ف عمل ات المراءة وفهم الكود ف حالة الشروط الكث رة جدا وعند إستخدام كم كب ر من االرلام للفحص عنها فضل إستخدام switch فضل إستخدامها ف حالة العمل ات البس طة والت ال تحتوي على أش اء محددة فه شمول ة أكثر على كل ه الشائعة ف اإلستخدام للج مل الشرط ة. وتكون ص ؽتها بهذا الشكل... switch( variable) : ل مة case statement; تستخدم لتولؾ الفحص عندما تحمك break; الشرط : ل مة case 7

72 الجملة المراد تنف ذها إذا كان statement; الشرط صح ح break; default: تن فذ هذه الجملة ف حالة عدم وجود شرط صح ح ت شبه else ف جملة if statement; الجملة المراد تنف ذها إذا كان الشرط صح ح break; int x = 10 ; switch( x ) case 5: Console.WriteLine(" this is number 5 "); break; case 3: Console.WriteLine(" this is number 3 "); break; case 10: Console.WriteLine(" this is number 10 "); break; case 2: Console.WriteLine(" this is number 2 "); break; default: مثال : 7

73 مكننا اإلستؽناء عن كلمة break ف بعض الحاالت. Console.WriteLine(" false "); break; إذا كنا نر د الكشؾ عن أكثر من ل مة ف نفس الحالة مثال نفذ. عند الم مة كذا أو كذا... مثال: أكتب برنامج للكشؾ عن تمد ر الطلبة دخله المستخدم و طبع له التمد ر الكل. int grade=int.parse(console.readline()); switch(grade) case 50: Console.WriteLine("Accepted"); break; case 65: Console.WriteLine("Good"); break; case 76: Console.WriteLine("Very Good"); break; ال جب كتابة أي كود ف هذه الحالة //:85 case case 95: Console.WriteLine("Excellent"); break; default: Console.WriteLine("Didn't pass"); 7

74 break; معنى الكود أن : ف حالة إذا كان التمد ر س طبع ممبول وإذا كان 2 أو 9 س طبع امت از هذه الكود ؼ ر منطم و فض ل أن كت ب ب.if كان هذا للتوض ح فمط. لكن ف جملة ال default جب عل نا كتابة.break إذ لم ت كتب ف آخر جملة س حدث خطؤ ف الكود. ألن عند عدم كتباتها فهذا معناه أنه ف هذه الحالة أو الت تل ها "إذا كان الشرط صح ح" نفذ. ف حدث خطؤ ألنه تولع وجود حالة بعدها كشؾ عنها فك ؾ نفذ وال توجد حالة بعدها! إذا فال جوز تجاهلها و جب كتابتها ف آخر جملة. 7

75 حلمات التكرار ) Loop Statements ( ه عبارة عن تكرار جزء مع ن من الكود لعدد مع ن من المرات وه مهمة جدا النها توفر الولت والمجهود تنف ذ هذه الجملة عتمد على شرط وطالما الشرط تحمك فه ت ن ف ذ وتنته ثم تبدأ مرة أخرى إلى أن تصل إلى نها ة الشرط و تم إستخدامها عن طر ك بعض الج مل الت تستخدم ف عمل ة التكرار. إحدى أشكال الحلمات ه : while وتكون جملة التكرار بالشكل التال : ) شرط ( while الكود المراد تكراره ومعنى الكود أنه طالما أن هذا الشرط تحمك نف ذ. مثال : 77

76 using System; namespace First_program class Program static void Main( ) int i = 1; while( i < 10 ) Console.WriteLine( i ); لكن إذا كتبناها بدون عمل ة الز اده فستظل تعمل بدون تولؾ ألن الشرط دائما صح ح طالما الم مة لن تتؽ ر وستكون حلمة ال نهائ ة. ف جب أن نزود ل مة المتؽ ر بالممدار الذي نر ده فمثال إذا لولنا ++i س ز د بممدار 2=+i س ز د بممدار 3=+i س ز د بممدار وهكذا... لنكتبه بصورة صح حة : using System; namespace First_program class Program 72

77 static void Main( ) int i = 1; while( i < 10 ) Console.Write( i ) ; i++; س طبع : ثم س تولؾ عمل الحلمة ألنها وصلت لنها ة الشرط ح ث أن الشرط لن تحمك ألن ل ست ألل من عندها س تولؾ الشرط وتتولؾ حلمة التكرار. مكننا وضع الشرط الذي نر ده وبالز ادة الت نر د وكتابة أي كود بداخل جملة التكرار وس تم تنف ذه طالما أن الشرط صح ح. إذا تتكون جملة التكرار من : ل مة إبتدائ ة للمتؽ ر + while ( الشرط ) + ممدار الز ادة ( العداد (. تمار ن : أكتب برنامج طبع حروؾ الهجاء من Z : A using System; namespace First_program 79

78 class Program static void Main( ) char alphapet = 'A'; while( alphapet<= 'Z' ) Console.WriteLine(alphapet); alphapet++; أو مكننا كتابتها بهذا الشكل : using System; namespace First_program class Program static void Main( ) char alphapet = 65; while(alphapet<= 90) Console.WriteLine(alphapet); alphapet++; 2

79 هذا ف حالة إذا أردنا حروؾ الهجاء ف حالة الحروؾ الكب رة أما إذا أردناها ف حالة الحروؾ الصؽ رة سنبدأ ب 97 ونضع الشرط ألل من أو ساوي. س كون الناتج : a b.. z do.while وجملة التكرار هذه تختلؾ عن السابمة ف أنها تنفذ الكود الذي بداخلها أوال بعد ذلن تفحص الشرط وتتؤكد ما إذا كان صح حا أم خطؤ حتى إذا كان الشرط ؼ ر صح ح فإنها تنفذ الكود مرة واحدة فمط على األلل. وتكون بالشكل التال : using System; namespace First_program class Program static void Main( ) int i = 1; do 2

80 Console.WriteLine( i ); i++; while( i < 10 ) ; إذا تتكون جملة التكرار هذه من : ل مة إبتدائ ة للمتؽ ر + do + ممدار الز ادة ( العداد ) + while ( الشرط.) تمار ن : أكتب برنامج ؤخذ األرلام والرموز والحروؾ و طبع الرلم العشري الممابل لها ف ال.ascii using System ; namespace ConsoleApplication1 class Program static void Main( ) char check ; do Console.Write( " enter character : " ) ; check = char.parse( Console.ReadLine( ) ) ; int decim = check ; Console.WriteLine( decim ) ; while ( true ) ; 2

81 for ه شكل من أشكال حلمات التكرار وه الشائعة ف اإلستخدام. وتكون بهذا الشكل : ممدار الز ادة أو العداد ; الشرط ; ل مة إبتدائ ة للعداد ) for ( وت كتب الجملة ف سطر واحد بخالؾ الجمل السابمة الت كانت كتب كل جزء منها ف مكان مختلؾ ف الكود. ت ستخدم ف الج مل الت نعرؾ عدد مرات تكرارها ف فضل إستخدامها. والفرق ب نها وب ن while while تستخدم عندما ال نعرؾ عدد مرات التكرار. مثال: using System; namespace First_program class Program static void Main( ) bool question=true; int choice; while(question==true) مكننا اإلستؽناء عن ( ==true ) // النها تلمائ ا تكون true ف الشرط إذا لم نؽ رها ب false 2

82 choice=int.parse(console.readline()); switch(choice) case 1: statement; break; case 2: statement; break; case 3: statement; break; default: question=false; break; مثال على for لتوض ح الفرق ب نهما using System; namespace First_program class Program static void Main( ) for( int number=1 ; number<=10 ; number++ ) 2

83 Console.WriteLine(number); أكتب برنامج لجمع االرلام من إلى using System; namespace First_program class Program static void Main( ) int sum = 0; for( int number=1 ; number<=100 ; number++ ) sum += number; Console.WriteLine( sum ); س طبع و مكننا إستخدام بداخلها جملة تكرار أخرى وتكون حلمات متداخلة و مكننا إستخدام بداخلها جملة if إذا أحتجنا إل ها. 2

84 مكننا أ ضا كتابة جملة for بهذا الشكل بشرط أن نكتب الم مة اإلبتدائ ة والشرط والعداد بداخلها و مكنا كتابة الم مة اإلبتدائ ة فولها وإذا لم نكتب ش ء وتركناها هكذا فستكون حلمة ال نهائ ة ال تتولؾ. for( ; ; ) مثال: أكتب برنامج بحث عن رلم دخله المستخدم من ب ن االرلام من إلى إذا وجده طبع هذا الرلم. using System; namespace First_program class Program static void Main( ) int search = int.parse(console.readline( )); for( int i = 1 ; i<= 1000 ; i++ ) if ( i == search ) Console.WriteLine("the number is "+i); 2

85 توجد بعض الكلمات الت تستخدم بداخل جملة التكرار مثل : : break تستخدم إل ماؾ حلمة التكرار. : continue تستخدم لتخط بعض الخطوات وتجاهلها وعدم تكرارها. using System; namespace First_program class Program static void Main( ) for( int i = 1 ; i<=10 ; i++ ) if( i == 4 ) break; Console.WriteLine( i ); مثال : عندما تكون ل مة المتؽ ر ب س خرج من حلمة التكرار ولن كمل وس طبع فمط... 27

86 أما إذا كتبنا.. using System; namespace First_program class Program static void Main( ) for( int i = 1 ; i<=10 ; i++ ) if( i==4 ) continue; Console.Write( i ); هنا س تجاهل هذه الخطوه وس تخطاها و طبع : إذا كلمة break تكرار. ت كتب مع switch وت كتب أ ضا مع if لكن جب أن تكون بداخل حلمة 22

87 ( حلمات تكرار م تداخلة ) Nested for ت كت ب for بداخل for سنفهم معناها وك ف ة عملها بمثال. مثال : أطبع جدول الضرب من إلى using System; namespace First_program class Program static void Main( ) for( int i = 1 ; i<=12 ; i++ ) for( int j = 1; j<=12 ; j++ ) Console.WriteLine( i * j ); ف هذا الكود س دخل بداخل أول for عند ل مة = 1 i بعدها س جد for أخرى بداخلها أ ضا ف ظل نفذ الكود الذي بداخل for الداخل ة إلى أن تنته أي كون الشرط خطؤ ثم 29

88 صعد إلى for األولى زود ل مة i بممدار وطالما أن الشرط صح ح فإنه س ظل كرر هذه العمل ة إلى أن كون شرط for األولى خطؤ. ف المثال السابك : عندما تكون ل مة 1=i س دخل إلى for الثان ة وتكون ل مة 1=j ف طبع ناتج ضرب i, j ثم زود ل مة j بممدار فتكون و ضرب i*j وهكذا إلى أن تكون ل مة 12=j ف طبع ناتج الضرب ألننا تضمنا ف الشرط ( ألل من أو ساوي ) وبعدها تز د ل مة 13=j ف كون الشرط ف هذه الحالة خطؤ ألن ل ست ألل من أو تساوي. فتتولؾ هذه الحلمة و صعد إلى for األولى وتز د ل مة ثم دخل نفذ عمل ة تكرار أخرى و ظل كرر إلى أن تكون ل مة = 13 i ح نها س كون الشرط خطؤ وس تولؾ. 1*1, 1*2, 1*3, 1*4, 1*5, 1*6, 1*7, 1*8, 1*9, 1*10, 1*11, 1*12 2*1, 2*2, 2*3, 2*4, 2*5, 2*6, 2*7, 2*8, 2*9, 2*10, 2*11, 2*12 وهكذا... أي أن كل عمل ة واحدة ألول for تعادلها عمل ة ل for الت بداخلها ف هذا الكود. 9

89 أطبع هذا الشكل : * ** *** **** ***** ****** سنستخدم nested for لطباعة هذا الشكل. for الخارج ة تعبر عن عدد الصفوؾ و for الت بداخلها تعبر عن عدد األعمدة ف هذا المثال وجد أعمدة و صفوؾ ال شترط أن كون عدد األعمدة ساوي عدد الصفوؾ. نالحظ أن الشكل بدأ بعمود واحد ثم ز د بممدار )" * "( ف كل صؾ جد د. using System; namespace First_program class Program static void Main( ) for( int i = 1 ; i<=6 ; i++ ) for( int j = 1 ; j<= i ; j++ ) Console.Write( "*" ); Console.WriteLine( ); 9

90 ف ذلن المثال حددنا له الشرط ف جملة التكرار الثان ة أال تتكرر إال إذا كان عدد األعمدة ألل من أو ساوي عدد الصفوؾ فمثال الصؾ األول طبع نجمة واحدة والصؾ الثان طبع نجمت ن وف الصؾ الثالث طبع ثالث نجوم وهكذا إلى أن تتولؾ حلمة التكرار الخارج ة. أثناء الطباعه نجعل األعمدة ت طبع بجانب بعضها حتى خرج ل هذا الشكل أي أننا ال نطبع ف دالة ) WriteLine( بل نطبع داخل الحلمة الخاصة باألعمدة ب ) Write( فمط وعندما نه الشرط ف الحلمة الخاصة باألعمدة خرج منها ف جد دالة ) WriteLine( ك نزل إلى صؾ جد د ألن هذا الصؾ لد أنتهى. مثال آخر : أطبع هذا الشكل. ****** ***** **** *** ** * نالحظ أن عدد األعمدة مكتمل ثم نمص بممدار مع كل صؾ جد د. مكننا كتابة الكود بؤكثر من طر مة فمثال مكننا كتابته بهذا الشكل... using System; namespace First_program class Program static void Main( ) for( int i = 1 ; i<=6 ; i++ ) 9

91 for( int j=i; j<= 6 ; j++ ) Console.Write( "*" ); Console.WriteLine( ); أو بتلن الطر مة... using System; namespace First_program class Program static void Main( ) for( int i = 1 ; i<= 6 ; i++ ) for( int j = 6 ; j>= i ; j - - ) Console.Write( "*" ); Console.WriteLine( ); 9

92 مثال : أطبع هذا الشكل... * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ف هذا الشكل نحتاج إلى طباعة مسافات على الجانب األ سر أوال ونالحظ أن هذه المسافات تمل بممدار مع كل صؾ جد د إذا سنطبع مسافات وأعمدة وصفوؾ سنحتاج إلى for للصفوؾ بداخلها حلمت ن تكرار أحدهما للمسافات واألخرى لألعمدة. using System; namespace First_program class Program static void Main( ) for( int i = 1 ; i<=8 ; i++ ) for( int k = 1 ; k<=8 i ; k++ ) Console.Write( " " ); for( int j = 1 ; j<=i ; j++ ) 9

93 Console.Write( "*" ); Console.WriteLine( ); مثال : أطبع هذا الشكل... * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * هو نفس المثال السابك لكننا سنضاعؾ عدد النجوم فمط. using System; namespace First_program class Program 9

94 static void Main( ) for( int i = 1 ; i<=8 ; i++ ) for( int k = 1 ; k<=8 - i ; k++ ) Console.Write( " " ); for( int j = 1; j<= i*2-1 ; j++ ) Console.Write( "*" ); Console.WriteLine( ); /* لك نزل إلى سطر جد د مع نها ة كل صؾ لد أكتملت دورته */ 9

95 مثال : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * أطبع هذا الشكل... using System; namespace First_program class Program static void Main( ) for( int i = 1 ; i<=12 ; i++ ) for( int k = 1 ; k < =12 - i ; k++ ) Console.Write( " " ); 97

96 for( int j = 1; j < = i*2-1 ; j++ ) Console.Write( "*" ); Console.WriteLine( ); for( int i = 8 ; i<=12 ; i++ ) for( int k = 1 ; k < =12 - i ; k++ ) Console.Write( " " ); for( int j = 1 ; j< = i*2-1 ; j++ ) Console.Write( "*" ); Console.WriteLine( ); ف هذا المثال أردنا طباعة مثلث متساوي السال ن لذا ضاعفنا األعمدة فجعلنا حلمة التكرار الخاصة باألعمدة تدور إلى ضعؾ عدد الصفوؾ. ثم أنمصنا منها ل كون رأس المثلث نجمة واحدة ول ست. ثم بدأنا من منتصؾ الصفوؾ بعدما أنته نا من المثلث متساوي السال ن لتتكون الشجرة. هذه األمثلة فمط لتجعلن متمكن من إستخدام حلمات التكرار بداخل بعضها. 92

97 foreach تستخدم أ ضا للتكرار لكن هذه الجملة تستخدم ف حالة وجود مجموعة من الب انات المرتبطة معا وم خزنة معا بداخل م ج م ع من الب انات مثل المصفوفة " Array ". 99 و كون تعر فها بهذا الشكل : ( المصفوفة أو مجموعة الب انات + الكلمة المحجوزة + in نوع الب انات ) foreach foreach( DataType variable in data ) code ; using System; namespace First_program class Program static void Main( ) int[ ]arr = new int[ 5 ] 1, 2, 3, 4, 5 ; foreach( int i in arr ) Console.WriteLine( i ); مثال: هذا مجرد مثال للتوض ح فمط وسؤشرح المصفوفات الحما.

98 المصفوفات ) Arrays ( )المصفوفة االحاد ة أو الفرد ة ) المصفوفة عبارة عن مجموعة من المتؽ رات وتكون من نفس نوع الب انات وتكون متتال ة ف الذاكرة أي أنها تحجز خال ا متتال ة ف الذاكرة المإلتة RAM( ) و كون عنوان هذه الخال ا متتابع ف الذاكرة و كون لها حجم ثابت أي أننا جب أن نحدد عدد العناصر الت سنحتاج استخدامها فائدة المصفوفة أنها تمكننا من التعامل مع أكثر من عنصر ف نفس الولت ون ع د ل ونؽ ر من ل مته وتحدث عل ه أي عمل ة بطر مة سهلة جدا وبس طة مكننا أن نؽ ر ل مة آالؾ الب انات ف سطر واحد وذلن بإستخدام المصفوفة. تعر ؾ المصفوفة كون بالشكل التال : ; [ حجم المصفوفة ] + نوع الب انات + new = اسم المصفوفة [ ] نوع الب انات. Data Type + [ ] + Array_Name =new DataType [ size ]; جب أن نحدد حجم المصفوفة أثناء التعر ؾ وكل عنصر هو عبارة عن متؽ ر بداخل المصفوفة. أ ض فت كلمة new بداخل الس شارب وه تعبر عن أن المصفوفة د نام ك ة أي جوز تؽ ر حجمها فعند تؽ ر حجمها تؤخذ نسخة من المصفوفة المد مة وتنش ء

99 مصفوفة جد دة بنفس الحجم الذي حددته ح ث أن المصفوفة سابما كانت حجمها ثابت ؼ ر لابل للتعد ل أما حال ا جوز تؽ ر حجمها متى أردنا. لك نش ر إلى عنصر مع ن بداخل المصفوفة نكتب اسم المصفوفة وموضع العنصر بداخل المصفوفة نكتب موضع العنصر بداخل لوس ن ] ]. و بدأ ترل م المصفوفة من صفر ح ث كون أول عنصر ف المصفوفة ترل مه صفر. مثال : int [ ] arr = new int *10+; و مكن أن تؤخذ حجم المصفوفة من المستخدم بالطر مة العاد ة. int size = int.parse(console.readline( ) ) ; int [ ] arr = new int[ size ]; معن هذه الجملة أننا أنشؤنا مصفوفة بداخلها عشرة عناصر )متؽ رات( من النوع )int( و مكننا إجراء أي عمل ة عل هم جمع أو طرح أو لسمة أو ضرب أو أي عمل ة مكننا أن نعط لعناصر المصفوفة ل م إبتدائ ة بهذه الطر مة... int * + arr = new int *10+, 1, 4, 12, 65, 14, 16 - ; أو بهذه الطر مة مباشرة.. int [ ] arr=, 1, 4, 12, 65, 14, 16 - ; س ضع هذه الم م ف أول خال ا من المصفوفة أما س ضع لها ل مة إفتراض ة صفر. بال العناصرمن المصفوفة

100 arr*0+ arr*1+ arr*2] arr*3+ arr*4+ arr*5+ arr*6+ arr*7+ arr*8+ arr* دائما ما كون موضع آخر عنصر ف المصفوفة = حجم المصفوفة - مثال : إذا أردنا إجراء عمل ة جمع على العنصر الخامس ف المصفوفة ونض ؾ على ل مة العنصر الم مة إذا س كون العنصر رلم ألن المصفوفة تبدأ بصفر. فتحدث العمل ة بالشكل التال... arr* 4 + += 20 ; و مكننا أ ضا إضافة عنصر بداخل المصفوفة إلى عنصر آخر بداخلها أو نسخ ل مة عنصر إلى عنصر آخر

101 مثال: arr*2+ = arr*1+; معنى هذه الجملة أن ل مة العنصر الثان ف المصفوفة ن س وأصبحت ل مة العنصر الثالث بنفس ل مة العنصر الثان. خت ف العنصر الثالث arr*5+ += arr*2+; ف هذه الجملة أ ض فت ل مة العنصر الثالث إلى ل مة العنصر السادس و وضع ناتج الجمع بداخل العنصر السادس. arr*3+ /= arr*4+; ف هذه الجملة ل س م ل مة العنصر الرابع على العنصر الخامس ووضع ناتج المسمة بداخل العنصر الرابع. int sum = arr*2++arr*4+; ج معت.sum ل مة العنصر الخامس مع ل مة العنصر الثالث وو ضع ناتج الجمع بداخل المتؽ ر arr*0+ موضع العنصر االول ف المصفوفة. arr*1+ موضع العنصر الثان ف المصفوفة. arr*2+ موضع العنصر الثالث ف المصفوفة. وهكذا... نستط ع تؽ ر حجم المصفوفة بهذه الطر مة... نفترض أننا أنشؤنا مصفوفة بهذه الطر مة ونر د تؽ ر مساحتها : int [ ] numbers = new int * 10 +;

102 حدث التعد ل بهذا الشكل : Array.Resize( ref numbers, 20 ) ; كلمة Array ه عبارة عن class حتوي بداخله على دالة تستط ع إعادة تع ن حجم المصفوفة فتنسخ محتوى المصفوفة المد مة وت دخله ف المصفوفة الجد دة ح ث تنش ء مصفوفة جد دة بالحجم الجد د. ه دالة التعد ل وإعادة تع ن حجم المصفوفة وه دالة جاهزة ف اللؽة. : Resize : ref ه اختصار ل reference ومعناها أن هذه التؽ ر س حدث فعل ا ف هذا المكان بداخل الذاكرة ( RAM.) نمرر لهذه الدالة اسم المصفوفة والحجم الجد د. و تم التعامل مع العناصر داخل المصفوفة من خالل حلمات التكرار for أو foreach أو.while مثال : أنش ء مصفوفة مكونة من أرلام و ضع ل م أول ة بداخلها ثم اطبع هذه الم م. using System ; namespace First_program class Program static void Main( ) int [ ] num=new int[ 10 ] 11,2, 3, 4, 5, 12, 14, 16, 17, 9 ; for( int counter = 0 ; counter<num.length ; counter++ )

103 Console.WriteLine( num[ counter ] ); : length ه خاص ة ت رجع أو تحسب لنا حجم المصفوفة كان من الممكن أن نكتب المساحة بشكل مباشر لكن من المفضل أن نكتب الجملة بهذا الشكل حتى إذا تؽ رت المساحة فلن نضطر إلى تؽ رها ف كل الشروط المتعلمة بهذه المصفوفة فهذه الخاص ة تحسبها تلمائ ا. وسنعرؾ ماه الخصائص ف ما بعد. أو مكننا إستخدام foreach فه أبسط ف الكتابة من for وتؤت بنفس النت جة. foreach ( int count in num) Console.WriteLine( count ) ; أنشؤنا عداد لك دور على عناصر المصفوفة ثم طبع محتوى المصفوفة. مثال : أنش ء مصفوفة مكونة من 15 عنصر وأجعل المستخدم دخل ل م لهذه العناصر ثم أضؾ الم مة 5 إلى ل مة العنصر العاشر وأطبع كل ل م العناصر. using System; namespace First_program class Program static void Main( )

104 int [ ] num = new int*15+; for( int counter = 0 ; counter<num.length ; counter++ ) num[counter]=int.parse(console.readline)); for( int counter = 0 ; counter<num.length ; counter++ ) if ( num*counter+==10 ) num*counter++=5; for( int counter = 0 ; counter<num.length ; counter++ ) Console.WriteLine( num[counter] ); مالحظة ال جوز أن تبدأ العداد بصفر وأن تجعله ز د بممدار ثم تكتب ف الشرط ألل من أو ساوي ( ل مة حجم المصفوفة ( النن إذا كتبت أو ساوي فؤنت تمول أن المصفوفة تحتوي على عدد العناصر الموجودة + وف هذه الحالة س حدث خطؤ ألنن إذا بدأت مصفوفة مكونة من عناصر بصفر وانته ت بالم مة س كون عدد العناصر ول س وس حدث خطؤ اثناء ولت التشؽ ل جب أن تبدأ بصفر وتنته ب 9 ) خطؤ ( num.length x counter < =

105 تمار ن : ادخل عناصر ف مصفوفة ثم اعكس هذه المصفوفة أي أن تجعل العنصر األخ ر كون ف ممدمة المصفوفة والعنصر األول نتمل إلى آخرها. using System; namespace First_program class Program static void Main( ) int * + arr=new int*10+; for( int counter = 0 ; counter<arr.length ; counter++ ) arr[counter]=int.parse(console.readline)); for( int counter = 0 ; counter<arr.length/2 ; counter++ ) int temp; temp = arr[counter]; arr[counter] = arr[arr.length-1-counter]; arr[arr.length-1-counter] = temp; 7

106 فكرة البرنامج أننا سنجري عمل ة تبد ل ب ن كل عنصر ن متمابل ن وسنظل ن جر ي هذه العمل ة إلى أن نصل إلى منتصؾ المصفوفة أي أنه ستحدث عمل ة التبد ل 5 مرات ول س 10 ألننا لو أجر نا عمل ة التبد ل 10 مرات سترجع المصفوفة إلى ما كانت عل ه ف السابك مع مع 9 مع 2 مع 7 مع لو جعلنا ال for تدور إل ما بعد منتصؾ المصفوفة فإنها ستبدلهم مرة أخرى. لكن ماذا لو كان طول المصفوفة عددا فرد ا مثل 11 لن إثر ذلن ف ش ء ألن النوع int ال مبل إال أعداد صح حة فخارج المسمة س كون عدد صح ح وس تجاهل االعداد العشر ة فناتج لسمة 12 على 2 ساوي 5 وس كون ف منتصؾ المصفوفة رلم على م نه 5 أرلام وعلى ساره 5 أرلام سنبدل ال م ن بال سار والمنتصؾ لن تؤثر ألنه ف كل الحاالت س ظل ف المنتصؾ. 2

107 مثال : إذا أردت أن تبدل الثالثة أرلام الت على م ن الصفر بالثالثة الت على ساره هل س تؤثر مكان الصفر الجواب ال الفردي. نفس الفكرة لن تؤثر مكان العنصر الذي ف منتصؾ المصفوفة ذات الحجم وأنشؤنا متؽ ر ل حمل الم مة مإلتا حتى تتم عمل ة التبد ل ووضعنا به أول عنصر ثم وضعنا آخر عنصر ف مكان أول عنصر بعدها وضعنا الم مة الت بداخل المتؽ ر المإلت ف مكان آخر عنصر وهكذا. مثال : انش ء مصفوفة و أدخل بها عناصر ثم رتب العناصر تصاعد ا. using System; namespace First_program class Program static void Main( ) int [ ] arr = new int[ 10 ] ; for( int i= 0 ; i<arr.length ; i++ ) arr[i]=int.parse(console.readline)); for( int i = 0 ; i <arr.length-1 ; i++) for( int j = i ; j <arr.length ; j++) 9

108 if( arr[ i ] > arr[ j ] ) int temp; temp = arr[ i ] ; arr[ i ] = arr[ j ] ; arr[ j ] = temp ; فكرة هذا البرنامج أننا نمارن كل عنصر بالذي ل ه فإذا كان ما ل ه ألل منه فإنه س ب دل الم مت ن ببعضهما. وكما عرفنا تتم عمل ة التبد ل ب ن ل مت ن عن طر ك وجود متؽ ر ثالث حمل ل مة أحدهما حتى تتم عمل ة التبد ل. تمار ن : أكتب كود جعل المستخدم بدل ب ن ل مت ن من المصفوفة مكونة من عناصر. خالل فهرس هذه الم م ف المصفوفة using System ; namespace ConsoleApplication class Program

109 static void Main ( ) int [ ] arr = new int * 10 +, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 - ; int index1 = int.prase( Console.ReadLine( ) ); int index2 = int.parse( Console.ReadLine( ) ); int temp ; for ( int i = 0 ; i < 10 ; i++ ) for ( int j = i ; j < 10 ; j++ ) if ( i == index1 && j == index2 ) temp = arr * index1 + ; arr * index1 + = arr * index2 + ; arr * index2 + = temp ;

110 المصفوفة ثنائية االبعاد ه شكل من أشكال المصفوفات و كون لها رلم الصؾ والعمود. ب عد ن و تم التخز ن بها عن طر ك إستخدام جب أن تحدد عدد األعمدة والصفوؾ الت بها فمساحتها تساوي عدد الصفوؾ ف عدد األعمدة. مثال : عمود 2 عمود 1 عمود 0 صؾ 0 صؾ 1 صؾ هذه المصفوفة تحتوي على صفوؾ و صفر. وتتم عمل ة تعر ؾ المصفوفة بهذا الشكل: أعمدة وأ ضا بدأ ترل م الصؾ أو العمود من DataType + [, ] + name = new DataType [ rows, cols ]; int *, + arr = new int * 5, 4 + ; معنى هذا الكود أننا أنشؤنا مصفوفة ثنائ ة اسمها arr وبها صفوؾ و أعمدة.

111 فمثال إذا أردنا تخز ن ل مة ف مكان محدد ف المصفوفة فإننا نحدد مكان الصؾ والعمود. مثال : ف حالة تخز ن الم مة بداخل هذه المصفوفة نحدد بؤي صؾ و بؤي عمود وبتالل الصؾ مع العمود نضع الم مة تماما كالرسم الب ان للمحور ن ( س ص (. لنحدد مثال الصؾ الثالث والعمود الثان. فتكتب بهذا الشكل : arr[ 2, 1 ] = 100 ; عمود عمود 0 عمود 3 عمود صؾ 0 صؾ صؾ 100 صؾ 3 صؾ 4 تتم عمل ة اإلدخال لهذه المصفوفة بتلن الطر مة : سنفرض أن مساحة المصفوفة ه صفوؾ و أعمدة الطالب. وسنحفظ بداخلها أسماء

112 using System; namespace First_program class Program static void Main( ) string [, ] arr = new string [ 4, 3 ] ; for( int i = 0 ; i<4 ; i++ ) for( int j = 0 ; j<3 ; j++ ) arr[ i, j ]= Console.ReadLine( ); ف عمل ة تعر ؾ المصفوفة جب أن نحدد لها عدد الصفوؾ ل متهما من المستخدم. واألعمدة أو أن نؤخذ using System; namespace First_program class Program static void Main( ) int row = int.parse( Console.ReadLine( ) ) ; int col = int.parse( Console.ReadLine( ) ) ; مثال :

113 string [, ] arr=new string[ row, col ]; for( int i = 0 ; i< row ; i++ ) for( int j =0 ; j< col ; j++ ) arr[ i, j ] = Console.ReadLine( ); تمار ن : أنش ء مصفوفة * لتخز ن مرتبات موظف ن ثم أطبع أعلى مرتب وألل مرتب. using System; namespace First_program class Program static void Main( ) int row=3; int col=3; int max_value = 0 ; int mini_value ; int [, ] arr = new int[ row, col ]; for( int i = 0 ; i< row ; i++ ) for( int j = 0 ; j< col ; j++ )

114 arr[ i, j ]=int.parse(console.readline()); mini_value = arr[ 0, 0 ]; فرضا أن أول ل مة ف المصفوفة ه ألل ل مة // for( int i = 0 ; i< row ; i++ ) for( int j = 0 ; j< col ; j++ ) if ( arr[ i, j ] > max_value) max_value = arr[ i, j ] ; if ( arr[ i, j ] < mini_value) mini_value = arr[ i, j ] ; Console.WriteLine("the maximum salary="+max_value); Console.WriteLine("the minimum salary="+mini_value);

115 تمار ن : أنش ء مصفوفت ن مساحتهما * الضرب ف مصفوفة جد دة. ثم أضرب المصفوفت ن ف بعضهما وخزن ناتج مالحظة : عند ضرب مصفوفت ن فإن كل صؾ ف المصفوفة األولى ( المصفوفة الثان ة (.) ) ضرب ف كل أعمدة مصفوفة مصفوفة X فت ضر ب المصفوفتان بهذه الطر مة : 1*10+2*13+3*16 1*11+2*14+3*17 1*12+2*15+3*18 4*10+5*13+6*16 4*11+5*14+6*17 4*12+5*15+6*18 7*10+8*13+9*16 7*11+8*14+9*17 7*12+8*15+9*18 7

116 using System; namespace ConsoleApplication1 class Program static void Main( ) int multi = 1, temp = 0 ; int [, ]arr = new int[ 3, 3 ] ; int [, +arr2 = new int[ 3, 3 ] ; int [, +arr3 = new int[ 3, 3 ] ; Console.WriteLine(" Enter values of array "); for( int i = 0 ; i<3 ; i++ ) for( int j = 0 ; j<3 ; j++ ) Console.Write(" [ " + i + ", " + j + " ] = "); arr[ i, j ] = int.parse(console.readline( )); Console.WriteLine(" Enter values of array "); for( int i = 0 ; i<3 ; i++ ) for( int j = 0 ; j<3 ; j++ ) Console.Write(" [ " + i + ", " + j + " ] = "); arr2* i, j ] = int.parse(console.readline( )); for( int k = 0 ; k<3 ; k++ ) for( int i = 0 ; i<3 ; i++ ) for( int j = 0 ; j<3 ; j++ ) 2

117 multi = arr[ k, j ] * arr2* j, i ]; temp += multi; arr3* k, i ] = temp; temp = 0 ; Console.WriteLine(" multiplication Result of array1 and array2 : "); for( int i = 0 ; i<3 ; i++) for( int j = 0 ; j<3 ; j++ ) Console.Write( arr3* i, j ] + "\t" ); Console.WriteLine( ); تمار ن : أكتب برنامج بإستخدام المصفوفات لتنف ذ لعبة X. O X X O X-O X O X O X O 9

118 using System; namespace ConsoleApplication7 class Program static void Main(string[] args) const char player1 = 'x', player2 = 'o', empty = ' '; char*,+ game = new char*3, 3+; char winner = ' '; int pos1; int pos2; bool choice = true ; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) if (choice == true) Console.WriteLine(" X Playing "); Console.WriteLine(" enter your positions "); pos1 = int.parse(console.readline()); pos2 = int.parse(console.readline()); if (pos1 > 2 pos2 > 2) Console.WriteLine("\t \t wrong position"); j--; else if (game*pos1, pos2+ == 'o' game*pos1, pos2+ =='x')

119 Console.WriteLine("\t \t wrong position"); j--; else game*pos1, pos2+ = 'x'; Console.WriteLine(); choice = false ; else Console.WriteLine(" O Playing "); Console.WriteLine(" enter your positions "); pos1 = int.parse(console.readline()); pos2 = int.parse(console.readline()); if (pos1 > 2 pos2 > 2) Console.WriteLine("\t \t wrong position"); j--; else if (game*pos1, pos2+ == 'x' game*pos1, pos2+ =='o') Console.WriteLine("\t \t wrong position"); j--; else game*pos1, pos2+ = 'o'; Console.WriteLine( );

120 choice = true ; for (int a = 0; a < 3; a++) for (int b = 0; b < 3; b++) switch (game[a, b]) case player1: Console.Write("X"); break; case player2: Console.Write("O"); break; case empty: Console.Write(" "); break; if (b < 2) Console.Write(" "); if (a < 2) Console.WriteLine(); Console.WriteLine(" "); Console.WriteLine(); Console.WriteLine(); for(int k=0;k<3;k++)

121 for(int g=0;g<1;g++) if (game[k, g]=='x' && game[k, g+1+ == 'x' && game[k, g+2+ == 'x') Console.WriteLine("\t \t X Wins "); winner = player1; break; else if (game[g, k] == 'x' && game*g+1, k]== 'x' && game*g+2, k] == 'x') Console.WriteLine("\t \t X Wins "); winner = player1; break; else if(game*0,0+=='x' && game*1,1+=='x' && game*2,2+=='x') Console.WriteLine("\t \t X Wins "); winner = player1; break; else if(game*2,0+=='x' && game*1,1+=='x' && game*0,2+=='x') Console.WriteLine("\t \t X Wins "); winner = player1; break;

122 if (winner == player1 winner == player2) break; for(int k=0;k<3;k++) for(int g=0;g<1;g++) if(game*k,g+=='o' && game*k,g+1+=='o' && game*k,g+2+=='o') Console.WriteLine("\t \t O Wins "); winner = player1; break; else if(game[g,k]=='o' && game*g+1,k+=='o' && game*g+2,k+=='o') Console.WriteLine("\t \t O Wins "); winner = player1; break; else if(game*0,0+=='o' && game*1,1+=='o' && game*2,2+=='o') Console.WriteLine("\t \t O Wins "); winner = player1; break; else if(game*2,0+=='o' && game*1,1+=='o'

123 && game*0,2+=='o') Console.WriteLine("\t \t O Wins "); winner = player1; break; if (winner == player1 winner == player2) break; if (winner == player1 winner == player2) break; if (winner == player1 winner == player2) break; if (winner!= player1 && winner!= player2) Console.WriteLine("\t \t Draw "); Console.WriteLine(); Console.WriteLine(); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) switch (game[i, j]) case player1: Console.Write("X"); break; case player2:

124 Console.Write("o"); break; case empty: Console.Write(" "); break; if (j < 2) Console.Write(" "); if (i < 2) Console.WriteLine( ); Console.WriteLine("------"); Console.WriteLine( ); مكن تنف ذ اللعبة بشكل أبسط من هذا لكن لم نتطرق لهذه األجزاء إلى اآلن لذا فهذا كان مجرد تطب ك على المصفوفات فكل ما همنا هو إتمانها أكثر ومعرفة ك ف ة عملها.

125 النصوص ) Strings ( النصوص ه عبارة عن متسلسلة أو مصفوفة من الحروؾ ف مكنن فعل ما تشاء ف النص من حذؾ أو إضافة أو إلتصاص. ف مكنن تعر ؾ النص بهذه الطر مة : string var_name = " value "; الم مة أو النص جب أن وضع ب ن عالمت ن تنص ص وبداخلها مكنن أن تكتب أي ش ء حتى إذا كانت أرلام أو أو مسافة خال ة أو نص مدمج مع رلم فإنه س تعامل معها على أنها نص ألنها و ض ع ت ب ن عالمت ن تنص ص. مثل : string name = "123 mahmoud"; Console.WriteLine( name ); الناتج : 123 mahmoud و مكنن أن تض ؾ أي ل مة من النوع string أو char على ل مة المتؽ ر الذي كون من النوع string string name1 = "mahmoud", name2="soliman", name3; name3 = name1 + name2; أو مكننا أن نض ؾ النص أو الحرؾ الجد د على المد م بطر مة مباشرة. 7

126 مثال : string name ="Mahmoud"; name +=" Soliman"; Console.WriteLine( name ); الناتج : Mahmoud Soliman و مكنن أن تؤخذ الم م من المستخدم بالطر مة العاد ة. أول حرؾ ف النص ؤخذ الترل م ( index ) 0 عبارة عن مصفوفة من الحروؾ. مثال : string x = "Hello"; كما ف المصفوفة ألنه كما للت هو H e l l o Console.WriteLine(" the result,0-,1- ", x * 1 +, x * 4 + ); الناتج : e o - لمعرفة عدد حروؾ نص مع ن نستخدم الخاص ة ( Length (. Console.WriteLine( x.length ); الناتج : 5 2

127 مثال : أبحث عن الحرؾ m ف نص دخله المستخدم. static void Main( ) string search = Console.ReadLine( ); bool check = false; for (int i = 0; i < search.length; i++) if ( search[ i ] == 'm' ) check = true; if (check == true) Console.WriteLine("exist "); else Console.WriteLine("not exist"); ف هذا الكود عرفنا متؽ ر نوعه string ثم أخذنا ل مته من المستخدم وعرفنا متؽ ر نوعه bool ؤخذ الم مة true أو flase ولد مررت له ل مة إبتدائ ة false أي أن الحرؾ الذي نبحث عنه ؼ ر موجود إال أن نجده ثم أنشؤنا حلمة بإستخدام for وعداد بدأ من الم مة صفر إلى ألل من الم مة search.length والت ت مثل حجم النص أو عدد حروفه. من الممكن أن تسؤل نفسن لماذا ال نكتب عدد حروؾ النص بشكل مباشر! ببساطة ألنه ف بعض البرامج ال نعرؾ عدد حروؾ النص ألنها تؤت من الم ستخدم فال مكن التولع بحجم النص و فضل دائما إستخدام هذه الخاص ة ف حالة المصفوفات. وبداخل الحلمة for نستخدم شرط أنه إذا و ج د الحرؾ الذي نبحث عنه نجعل ل مة المتؽ ر check = true ولو لم جده فتظل ل مته ب false كما كانت وهذه فائدة أن تمرر ل مة إبتدائ ة ب.false 9

128 وبعد أن تنته الحلمة نستخدم شرط آخر لنتؤكد هل تؽ رت ل مة check أي هل الحرؾ الذي نبحث عنه موجود أم ال. مثال : استمبل نص من المستخدم ثم أعكس هذا النص. Hello > olleh static void Main( ) string str = Console.ReadLine( ); string str2 = string.empty; ; char[ ] x = new char[ str.length ]; for (int i = 0; i < str.length; i++) x[ i ] = str[ str.length i ]; str2 += x* i +; Console.WriteLine( str2 ); أخذنا الم مة من المستخدم ثم أنشؤنا مصفوفة نوعها char أي من النوع حرؾ و كون حجمها نفس حجم النص ولذلن أستخدمنا الخاص ة str.length لك ترجع لنا حجم النص ثم أنشؤنا حلمة وجعلنا كل حرؾ من نها ة النص خز ن ف بدا ة المصفوفة. وأنشؤنا متؽ ر آخر نوعه string لك ن ع د ف ه تخز ن الحروؾ الت تؤت من المصفوفة. مالحظة : string.empty هذه لتفر ػ المتؽ ر من أي ل م موجودة بهذا المكان م سبما.

129 النص H e l l o المصفوفة x o أو مكننا اإلستؽناء عن المصفوفة الت من النوع char لكن تعمد ت كتابتها بهذه الطر مة لتعرؾ طر مة التعامل مع النص والمصفوفة الت من النوع char وأنهما متماثالن. static void Main( ) string str = Console.ReadLine( ); string str2 = string.empty; ; for (int i = 0; i < str.length; i++) str2 += str* str.length i ]; Console.WriteLine( str2 ); تمار ن : أمامن مصفوفة مكونة من + 0 * 1, 4, 5, 8, 8, 9, 9, متجاور ن. أطبع أكبر عدد مكون من رلم ن ف هذا المثال كون الناتج 99 static void Main( ) int* + arr =, 1, 4, 5, 8, 8, 9, 9, 0 -; int max = arr*0+;

130 string res = string.empty; int num = 0; for (int i = 0; i < arr.length - 1; i++) res = arr* i +.ToString( ) + arr* i ToString( ); num = Convert.ToInt32( res ); if (num > max) max = num; Console.WriteLine(max); ف هذا الكود عر فنا المتؽ ر max نوعه int لك حمل أكبر ل مة موجودة ثم عر فنا المتؽ ر res ونوعه string لك حمل كل عنصر ن متجاور ن ألننا سنضطر إلى دمج كل عنصر ن متجاور ن وال مكن الدمج إال ف النصوص لذا سنستمبل كل متؽ ر والذي ل ه ثم سنحولهم إلى نصوص من خالل الدالة ) ToString( وبذلن تحول الرلم ن إلى نص ثم ندمجهم ونخزنهم ف المتؽ ر res بعد ذلن ن حو ل النص المكون من الرلم ن المدمج ن إلى أعداد صح حة مرة أخرى لك نستط ع ممارنتهم بؤالعداد األخرى ألنه ال مكن ممارنة نص بعدد صح ح. توجد الكث ر من الخصائص والدوال الجاهزة الخاصة بالنصوص. Length string.concat( ) Contain( ) EndsWith( ) StrartsWith( ) ToUpper( ) خاص ة تحسب عدد حروؾ النص لدمج أكثر من نص مع بعضهم للبحث عن ممطع مع ن داخل النص وت ع د true أو false للتؤكد من نها ة النص هل نته بممطع أو حرؾ مع ن انت تحدده أم ال فه تع د true أو false للتؤكد من بدا ة النص هل بدأ بممطع أو حرؾ مع ن أنت تحدده أم ال وتع د true أو false لتحو ل النص إلى حالة الحروؾ الكب رة ( capital )

131 ToLower( ) Substring( ) Replace( ) لتحو ل النص إلى حالة الحروؾ الصؽ رة ( small ) لمطع حرؾ أو أكثر من النص إلستبدال حرؾ أو ممطع ف النص بم مة جد دة و وجد الكث ر من الدوال األخرى الخاصة بالنصوص. مثال : string x = "C# is a programming language" ; string y = " and it's a high level language"; Console.WriteLine( x.length ); > 28 Console.WriteLine( string.concat( x, y ) ); C# is a programming language and it's a high level language Console.WriteLine(x.EndsWith("uage")); > true Console.WriteLine(x.StratsWith("is")); > false Console.WriteLine(x.ToUpper()); C# IS A PROGRAMMING LANGUEAGE Console.WriteLine(x.ToLower()); c# is a programming language Console.WriteLine( x.substring( 6, 13 ) ); ف هذه الدالة نحدد بدا ة ونها ة الممطع الذي نر ده من النص. a programming أو مكننا تحد د البدا ة فمط وتكون نمطة النها ة ه نها ة النص. Console.WriteLine( x.substring( 6 ) ); a programming language Console.WriteLine(x.Replace("pro","PRO")); C# is a PROgramming language

132 مثال : أكتب برنامج حو ل النص إلى النظام الثنائ ( System (. Binary using System; namespace Test class Program static void Main( ) string str = "Mahmoud soliman"; string result ; int bin = 0; Console.WriteLine( str ); for (int i = 0; i < str.length; i++) result = string.empty; bin = str[ i ]; Console.Write(str[ i ] + " = " + bin + " ---> "); while ( bin!= 0 ) result = ( bin % 2 ).ToString( ) + result; bin /= 2; Console.WriteLine(result + " "); ف هذه العمل ة المتؽ ر bin ؤخذ الم مة العدد ة للحرؾ المحدد من النص. عمل ة تحو ل الرلم إلى النظام الثنائ من خالل أخذ بالي المسمة له على 2 ثم لسمته على 2 كل حرؾ كون له ل مة عدد ة صح حة مناظرة له كما ذكرت ف ممدمة الكتاب والنص هو عبارة عن مجموعة من الحروؾ حتى المسافة الفارؼة ت عد حرفا فإننا نؤخذ الم مة العدد ة لكل حرؾ ونحولها إلى النظام الثنائ ونطبع ل مة أول حرؾ بالنظام الثنائ ثم نفرغ المتؽ ر الذي نجمع ف ه الم م الت تكون بالنظام الثنائ ل كون م ه ؤ إلستمبال ل مة الحرؾ الذي ل ه.

133 البرمجة كائنية التوجه ) Object Oriented Programming ( ( OOP ) البرمجة كائن ة التوجه ه عبارة عن طر مة لكتابة الكود لكنها جعلت الكود أسهل وأختصرت ف ه كث را ووفرت من الولت والمجهود بشكل كب ر جدا فه تتعامل مع كل ش ء على أنه كائن وهذا الكائن له صفات ووظائؾ فمثال اإلنسان هو كائن له صفات تم زه ووظائؾ موم بها. ) فمثال من صفاته ( لون البشرة : لون الع ن : الطول : ) ومن أفعاله ( ؤكل : مش : نام : وهكذا... إذا فكل كائن من نفس النوع متلن نفس اسم الصفات واألفعال لكن بتفاص ل مختلفة أي تختلؾ ب انات هذه الصفات واألفعال ألن لكل كائن صفاته وأفعاله الخاصة به. فالبرمجة كائن ة التوجه لامت على هذا األساس فمثال إذا كنت تر د إنشاء حساب على مولع الف س بون عند إدخال ب اناتن هل كتب لن مصمم المولع كود برمج خاص بصفحتن عند إنشائن لحساب على المولع بالطبع ال عندما تنش ء حسابا لن فإنن تؤخد نسخة من المولع األصل لكن الب انات مجردة أي بدون ب انات وتمألها أنت بب اناتن الخاصة

134 ف ذلن الولت أنت أخذت كائن ( نسخة ) من المولع وأدخلت ف ه ب اناتن أنت وشكل المولع ووظائفه متشابهه تماما عند كل الناس والب انات المجردة أ ضا متشابهه عند كل الناس فمثال هو طلب منن تحد د الجنس والعمر وهكذا وأنت تدخل ب اناتن هذه ه الب انات المجردة أي أنها ال تزال ال تحتوي على ل م وأي شخص جد د ر د إنشاء حساب فإنه س ؤخذ نفس النسخة من المولع و مألها بب اناته الخاصة. هذه مجرد أمثلة تشبيهية فمط. وهذه ه الطر مة الت بن ت عل ها لؽة الس شارب كما لولنا ف ممدمة الكتاب. إذا أ ن كتب الكود الذي ؤخذ منه الكائن نسخة من الب انات الت بداخله كتب بداخل class وال class هو البن ة التحت ة للبرمجة كائن ة التوجه. وتكمن لوة ال class ف عمل ة تسمى عمل ة تؽل ؾ الب انات أي حدد من ستط ع الوصول إلى الب انات والتعامل معها. وسنتحدث عن كل ش ء خص البرمجة كائن ة التوجه وال.class لكن أوال سنتحدث عن طرق الوصول للب انات أو التؽل ؾ.

135 التغليف ) Encapsulation ( توجد أنواع لتؽل ؾ الب انات ف لؽة الس شارب أو تسمى طرق الوصول للب انات. لبل البدا ة ف شرح هذه األنواع سؤ ذك ركم أن المشروع أو البرنامج هو عبارة عن مجموعة من namespaces وال namespaces عبارة عن مجموعة من ال.classes مكننا إنشاء أكثر من namespace ف المشروع و مكننا إنشاء أكثر من class نفس ال namespace و كون بداخل كل class الخصائص والدوال )الصفات والوظائؾ ) الخاصة به. بداخل ف هذه الحالة نحتاج إلى حما ة بعض الب انات الت تكون بداخل ال class مثال من ستط ع رإ تها والتعامل معها بداخل المشروع فمن الممكن أن تكون بعض الب انات ل class مرئ ة ف class آخر وبعض الب انات ؼ ر مرئ ة وال مكن التعامل معها إال بداخل ال class الذي ك ت بت بداخله فمط المبرمج حدد من ستط ع رإ ة الب انات بداخل المشروع سواء class ف نفس ال namespace أو class ف namespace أخرى بداخل المشروع. 7

136 أول طر مة للتؽل ؾ ه : public - 1 الب انات الت تكون من هذا النوع فإنها ستكون مرئ ة ف كل المشروع و ستط ع أي class داخل namespace أو أي namespace أخرى رإ تها والتعامل معها. طر مة تعر ؾ الدوال أو الخصائص تكون بهذا الشكل : طر مة الوصول + نوع الب انات + األسم مثال : public int variable; using System; namespace First_program class Program static void Main( ) Program2 pro = new Program2( ); pro.x = 10; class Program2 public int x; 2

137 كل ما عل ن معرفته ف هذا الكود أننا استطعنا إسناد ل مة للمتؽ ر X ف ال class اآلخر Program وأستطعنا رإ ته والتعامل معه. و تم الوصول إلى محتوى ال class من خالل كائن أو نسخة object( (من هذا ال class ثم النمطة ).( )dot( النوع الثان وهو : private 2 هذا النوع جعل إستخدام الب انات الت من نفس نوعه تمتصر على ال class المكتوبة بداخله فمط أي أنه حر م إستخدام الب انات الت من نوعه إلى أي class آخر حتى لو class ف نفس الnamespace و مكننا التعامل مع الب انات الت من هذا النوع بداخل ال class الذي ك تبت به فمط ولو حاولنا تنف ذ الكود السابك على النوع private فإن المترجم س خرج لن خطؤ أنه ال مكن الوصول لهذا المتؽ ر بسبب الحما ة الت متلكها. 9

138 النوع الثالث : protected 3 وهذا النوع معناه أنه ال مكننا رإ ة الب انات وال التعامل معها ف أي class آخر إال إذا و رث ال class الذي ك ت بت بداخله الب انات الت من هذا النوع. وسنفهم مفهوم الوراثة الحما. using System; namespace First_program class Program : Prog static void Main( ) Program p = new Program( ) ; p.x = 10 ; class Prog protected int x ; النمطتان تعن أن ال " Program " class لد ورث ال " prog " class و مكنه التعامل مع الب انات الت بداخله كؤنها ك ت بت بداخله لكن ل س كل الب انات فمط المسموح به مثل public و protected إلى اآلن وعندما نصل إلى الوراثة سنفهم كل ش ء عنها.

139 هذه الخطوة >-- ); Program( Program p=new تعن أننا أخذنا نسخة ( كائن ) من هذا ال )Program( class p >----- كائن ( object ) Program >----- class

140 النوع الرابع : internal 4 وه تعن أننا للبرنامج ال assemply نستط ع رإ ة الب انات الت من هذا النوع ف كل ال assemply مكن أن تحتوي على أكثر من namespace exe أو ال DLL ملؾ ال >---assemply النوع الخامس : protected internal 5 نستط ع رإ ة الب انات والتعامل معها ف كل ال assemply لكن جب أن كون ال class الذي ك ت ب ت بداخله موروث لل class الذي سنستخدمها ف ه. protected internal int x;

141 ) Static ( المتؽ رات والدوال الت بداخل ال class و كون نوعها static مكن التعامل معها إال من خالل اسم ال class نفسه. تكون ثابتة أي أنه ال نستخدم static عندما نر د التعامل مع الدالة أو الحمل خارج ال class بدون الحاجة إلى أخذ نسخة منه ( object ) فمثال الدالة ) WriteLine( ه دالة static داخل Console وال Console هو ال class الخاص بدوال اإلدخال واإلخراج. فعند إستدعاء هذه الدوال نستخدم اسم ال class مباشرة بدون أن نؤخذ منه نسخة. والدالة الرئ س ة جب أن تكون من النوع static وأي دالة نر د إستدعائها مباشرة ف دالة من النوع static جب أن تكون.static بإختصار أي نوع static ال نستط ع التعامل معه مباشرة إال من خالل نوع static آخر لكن مكن التعامل مع المتؽ رات الت من نوع static من خالل الدوال حتى لو لم تكن الدالة static لكن العكس خطؤ أي أننا ال نستط ع إستخدام متؽ ر ل س static مع دالة نوعها.static using System; namespace First_program class Program int x; static void Main( ) x = 10; مثال :

142 خطؤ ألن الدالة من النوع static وطالما الدالة static جب أن كون المتؽ ر static أ ضا using System; namespace First_program class Program static int x; static void Main( ) x = 10; ف هذه الحالة جوز إسناد ل مة للمتؽ ر والتعامل معه بشكل طب ع ألن نوعه static والدالة نوعها.static using System; namespace First_program class Program static int x; void name( ) x = 4;

143 جوز إسناد ل مة للمتؽ ر الذي من النوع static من خالل الدالة ف الحالة العاد ة // static void Main( ) مثال : using System; namespace First_program class A public static int x ; class B public static void variables() A.x = 5 ;

144 ال( الدوال ) Methods or Functions ( تحدثنا ف ممدمة الكتاب عن الدوال أو الوظائؾ وما عملها لبل وجود فكرة الدوال كنا إذا أردنا إستخدام جزء مع ن من الكود الذي كتبناه مرة أخرى فكان جب كتابته ثان ة كلما أحتجنا إل ه فكان ؤخد ولت ومجهود فلما ال نكتب جزء مع ن من الكود مرة واحدة ونستخدمه متى أحتجنا إل ه! إذا ما الكود الذي كتب بداخل الدالة! نكتب الكود الذي نر د إستخدامه أكثر من مرة أي كود نر د تنف ذه. والدوال ت ستخدم إلعطاء ل م لخواص ال class والتعامل معها. و ج د ت فكرة الدوال لبل وجود البرمجة كائن ة التوجه والدوال عامل رئ س ف البرمجة فال مكن اإلستؽناء عنها. أي دالة كون لها ل مة عائدة ل ما ك ت ب بداخلها ما عدا نوع واحد من الدوال ( void ع د ل مة معنى ل مة عائدة أن الدالة كلها كون لها ل مة واحدة مكن إستخدامها وإدخالها ف عمل ات أخرى سنفهم معنى الم م العائدة بمثال. أوال سنعرؾ طر مة تعر ؾ الدالة. مكننا تسم ة الدالة بؤي اسم نر ده. ( ) + اسم الدالة + الم مة العائدة من الدالة + طر مة الوصول Access_Modifier + Return_Type + Name_of_function + ( )

145 نكتب الكود داخل الموس ن هنا. // طر مة الوصول تعن صالح ات إستخدام الدالة أ ن نستخدمها ومن ستط ع إستخدامها. لد تكون : public, private, protected, internal, protected internal. اسم الدالة : توجد طرق لكتابة أسماء أعضاء ال class سواء كان متؽ ر أو دالة ه مجرد طرق متعارؾ عل ها مكننا التؽاض عن هذه الطرق وكتابتها بالشكل الذي نر د لكن فضل كتابتها بهذه الطرق. أول طر مة : Pascal case - 1 كون أول حرؾ من االسم حرؾ كب ر ( Capital ) وإذا كانت الكلمة مكونة من ممطع ن ف كون أول حرؾ من الممطع األول كب ر وأول حرؾ من الممطع الثان كب ر مثل : UserName أو User_Name 7

146 ثان طر مة : Camel case 2 وف هذه الحالة كون أول حرؾ من الممطع األول صؽ ر و أول حرؾ من الممطع الثان كب ر مثل : username password وهكذا... ثالث طر مة : 2 UpperCase 3 هذه الحالة تكون كل حروؾ االسم كب رة وتستخدم مع االسماء الت تمتلن حروؾ لل لة مثل حرف ن أو ثالث ومع الثوابت. مثال : const string NAME = "mahmoud" ; int GPA; وهكذا... جب أن كون اسم الدالة متصل وال تفصله مسافة فمثال ال نستط ع تسم ة دالة أو متؽ ر بهذا الشكل user name النه توجد مسافة تفصل االسم وهذا ال جوز وف حالة األسماء الت تتكون من أكثر من ممطع مثل... First Name نستخدم ( _ ) فتكون.First_Name أنته نا من تسم ة الدالة.

147 نوع الدالة كون : int, float, double, long, short, string, char, bool هذه األنواع تعن أن نوع الدالة كون من نفس نوع الم مة العائدة منها فمثال إذا كانت الدالة int إذا جب أن تع د ل مة صح حة ولو كانت string جب أن تع د نص أو كلمة float جب أن تع د ل مة كسر ة. bool تع د true أو false وهكذا... سنفهم معنى الم مة العائدة للدالة لكن مإلتا حاول أن تتعلم ك ف ة بناء ه كل الدالة وماذا كت ب بداخلها وك ؾ ت ست خد م. بعد كتابة الدالة واإلنتهاء منها ك ؾ نستخدمها وكم مرة نستخدمها عن طر ك إستدعاءها بإسمها فمط ونستدع ها بعدد المرات الت نر د نستط ع إستدعاءها وإستخدامها مال ن المرات بدون إعادة كتابة الكود المكتوب بداخلها. اتفمنا أن الدالة كون لها ل مة واحدة عائدة ما عدا نوع واحد فما هو هذا النوع هو void أي ال ترجع أي ش ء وال كون لها ل مة نستط ع إستخدامها ف عمل ات أخرى أي عندما ننته من تنف ذ الدالة ال نر د منها أي ش ء آخر. 9 مالحظة : سنستخدم ال class الرئ س وسنكتب بداخله الدوال الت نر دها. سن ط ب ك عل ه "مإلتا". و كون بداخله الدالة الرئ س ة الت بدأ تنف ذ الكود منها. مكننا كتابة الدالة الجد دة فوق الدالة الرئ س ة ( Main ) أو تحتها ال وجد فرق. " ت كت ب الدوال بداخل " class using System; namespace AnyThing class Program مثال :

148 سنكتب كل الدوال هنا static void Main( ) هذا هو الشكل الذي سنعمل عل ه. مثال: أكتب دالة تطبع.Hello World لبل البدء ف كتابة الكود جب أن نحلل السإال أوال بعدها نكتب الخوارزم ات لهذه المسؤلة " الخوارزم ات أي نحدد خطوات الحل خطوة بخطوة ونحل المسؤلة بطر مة جبر ة " إذا سرنا على هذا النمط فلن نواجه أي صعوبة ف كتابة أي كود. لنحلل هذه المسؤلة... نر د إنشاء دالة تطبع Hello World هل نحتاج ل مة لهذه الدالة ف ما بعد هل سنجري عل ها أي عمل ة جمع أو طرح أو لسمة أو سنؤخذ ل متها ندخلها ف دالة أو متؽ ر آخر إذا كان الجواب ال... فلن نحتاج أن كون لها ل مة عائدة وستكون نوع الدالة.void ونسم ها باالسم الذي نر د لكن فضل أن كون اسم معبر عن الوظ فة الت تموم بها الدالة مثال إذا كانت دالة طباعة.. نسم ها مثال print أو show أو view أي اسم نر ده فلن حدث هذا فارق ف أي ش ء. مالحظة : طر مة الوصول لن تصنع فارق هنا ألننا لن نستخدم الدالة ف class خارج إنما سنستخدمها بداخل ال class المكتوبة بداخله فلن فرق ما إذا كانت public أو private أو protected الكل س ان ف هذا الولت. اتفمنا أن هذا لمجرد التطب ك مإلتا فمط وبعدما ننته من تعلم كتابة الدوال والتعامل معها سنتعلم ك ؾ نستخدمها ف أكثر من class آخر.

149 using System; namespace ConsoleApplication1 class Program public void print() Console.WriteLine("Hello World") ; إذا أنته نا من كتابة الكود الخاص بالدالة ك ؾ سننفذها وأ ن عندما تفتح visual studio فؤنت تجد class الكود منها مكتوبة بداخله. مكتوب والدالة الرئ س ة الت بدأ تنف ذ فنستدع الدالة الت أنشؤناها بواسطة كتابة اسمها ف الدالة الرئ س ة وبما أن الدالة الرئ س ة نوعها static ف جب أن تكون الدالة الت سنكتبها نوعها static أ ضا حتى تستط ع الدالة الرئ س ة رإ تها مكننا إستدعائها بطر مة أخرى عن طر ك إنشاء كائن من هذا ال class لكن عندما نصل إلى شرح ال class وك ف ة التعامل معه وطر مة إنشاءه سنتعلم كل ش ء خص الدوال وكل طرق التعامل معها بداخل ال.class حال ا أي دالة نوعها static جب أن كون ما سنستدع ه بداخلها سواء دالة أخرى أو متؽ ر من نفس نوعها.. أي.static وس تم تعر فها بهذا الشكل : طر مة الوصول + static + الم مة العائدة من الدالة + اسم الدالة ( ) الكود Access_Modifier + static + Return_Type + Name_of_function + ( ) The code

150 مثال : using System; namespace ConsoleApplication1 class Program public static void print() Console.WriteLine("Hello World"); static void Main( ) print ( ) ; عند كتابة اسم الدالة ون شؽ ل البرنامج س ذهب إلى المكان الذي كتبنا ف ه كود الدالة و تم تنف ذ ما بداخلها. س طبع Hello World ف عمل ة إنشاء الدالة إذا كنا سنستخدم متؽ رات ف هذه الدالة ف مكن أن نمرر هذه المتؽ رات للدالة أثناء التعر ؾ وتسمى ف هذا الولت )Parameters( ال وجد حد مع ن لعدد مدخالت دالة " parameters " فمط ما سنستخدمه وما نحتاج إل ه وهذه المدخالت عند إستدعاء الدالة سنضطر إلى تمر رل مها إلى الدالة حتى تحدث العمل ة الت نر دها من الدالة وإعطاء مد خل للدالة هو أمر إخت اري لكن هنان بعض الدوال فض ل تمر ر م دخالت لها إلجراء عمل ات عل ها وتم ز كل دالة عن األخرى. فمثال عند تسج ل الدخول لحساب ف س بون فإنن تدخل البر د االلكترون وكلمة المرور فهذه الب انات الت تدخلها تكون م دخل لدالة تفحص كلمة المرور والبر د االلكترون الخاص ن بن الم سجل ن على لواعد الب انات.

151 و تم تعر ؾ الم دخل بالطر مة العاد ة النه متؽ ر عادي. Access_Modifier + static + Return_Type + Name_of_function + ( parameter1,parameter2, ) مثال : انش ء دالة لجمع رلم ن ثم اطبع ناتج الجمع. using System; namespace ConsoleApplication1 class Program public static void Print_Sum( int num1, int num2 ) int sum = num1 + num2 ; Console.WriteLine( sum ) ; static void Main( ) int number1, number2 ; number1 = int.parse(console.readline() ) ; number2 = int.parse(console.readline() ) ; print( number1, number2 ) ;

152 ف هذا الكود أنشؤنا الدالة وأنشؤنا لها م دخل ن وتمت عمل ة الجمع بداخل الدالة ثم أستدع نا دالة جمع الرلم ن ف الدالة الرئ س ة لكن الدالة الت أنشؤناها تؤخذ م دخل ن لذا سنضطر إلى تعر ؾ متؽ ر ن وتمر رهما إل ها ولد أخذنا ل م المتؽ رات من المستخدم عند تشؽ ل البرنامج وعندما صل المترجم إلى السطر الذي استدع نا به الدالة ذهب إلى هذه الدالة أ ا كان مولعها ف الكود و نفذ ما بداخلها. الدالة الت من النوع void ال نستط ع عمل أي عمل ات عل ها فال مكن أن ندخلها ف أي عمل ة أخرى وال نستط ع إجراء عمل ة طباعة عل ها بإستخدام دالة Console.WriteLine( ) وال نستط ع فعل ذلن : int temp = print( number1, number2 ) +2; ال نستط ع تمر رها إلى متؽ ر أو فعل أي ش ء ف ها ألنها ل س لها ل مة عائدة. ماذا إذا أردنا أن نستخدم ل مة ناتج الجمع ونسندها إلى متؽ ر آخر لنحلل المسؤلة... ناتج جمع رلم ن من النوع int عدد صح ح أ ضا. ماذا س كون نوع ناتج الجمع إذا س كون نوع الم مة العائدة من هذه الدالة int ف كون نوع الدالة.int و جب ف هذه الحالة أن نستخدم الكلمة المحجوزة ف اللؽة return ف نها ة الكود نكتب الم مة العائدة من هذه الدالة وكل دالة كون لها ل مة واحدة فمط عائدة. using System; namespace ConsoleApplication1 الم مة + return مثال :

153 class Program public static int Print_Sum( int num1, int num2 ) int sum = num1 + num2 ; return sum ; static void Main( ) int number1,number2 ; number1 = int.parse(console.readline( )) ; number2 = int.parse(console.readline( )) ; int temp = print( number1, number2 ) ; Console.WriteLine( temp ) ; ف هذا الكود أنشؤنا الدالة وأصبح نوعها int أي الم مة العائدة منها int الدالة كاملة ف ذلن الولت ه عبارة عن ل مة واحدة مكن أن نفعل بها أي ش ء وأستدع ناها ف الدالة الرئ س ة ومررنا لها الم دخالت الت عرفناها وأخذنا ل مهم من المستخدم بعد ذلن مررنا الدالة كاملة إلى متؽ ر إذا هذا المتؽ ر حال ا حمل ل مة الدالة. ثم أضفنا إلى ل مة الدالة فمثال إذا أدخل المستخدم و س كون ناتج الدالة وس ض ؾ عل ها ثم س ضع الم مة الجد دة ف المتؽ ر.temp ماذا لو كانت العمل ة الت ستتم ف الدالة ه لسمة ول ست جمع إذا ف وجد إحتمال أن كون ناتج المسمة عدد كسري ف جب أن نؽ ر نوع الدالة لنفس نوع الم مة العائدة منها. أي كون نوعها float أو.double

154 مالحظة : م دخالت الدالة أثناء اإلنشاء تسمى " Parameters " أما إثناء إستدعاء الدالة وتمر ر ل م لها فت سمى الم دخالت " Arguments ". مثال : أكتب دالة تؤخذ رلم ن ثم تع د الرلم األكبر ف هما. using System; namespace ConsoleApplication1 class Program public static int Max_Value( int num1, int num2 ) if ( num1 > num2 ) return num1; else if ( num2 > num1 ) return num2 ; else return 0 ; static void Main( ) int number1, number2; number1 = int.parse(console.readline( )); number2 = int.parse(console.readline( )); Console.WriteLine(Max_Value( number1, number2 ) ;

155 تمار ن : أكتب دالة تؤخذ من المستخدم األس واألساس وتخرج الناتج. مثال االساس واألس = األساس واألس = 2 using System; namespace ConsoleApplication1 class Program public static void Power( int Base_num, int power_num ) int result = 1; for ( int i = power_num ; i > 0 ; i-- ) result *= Base_num ; Console.WriteLine( result ); static void Main( ) int Base = int.parse(console.readline( ) ); int Power = int.parse(console.readline( ) ); 7

156 Power ( Base,Power ) ; // ( 2,6 ) الناتج : 64 وتوجد دالة جاهزة بداخل اللؽة تسمى pow داخل class سمى Math Math.Pow ( 2, 6 ) ; س خرج لن نفس النت جة لكن جب أن تعتمد على نفسن ف مرحلة التعلم وتتعلم ك ؾ تنشئ دوال بنفسن. تمار ن : أكتب دالة تؤخذ رلم من المستخدم وتع د الجذر الترب ع لهذا الرلم إن و جد. using System; namespace ConsoleApplication1 class Program public static void SQRT( int num ) 2

157 for ( int i = num ; i > 0 ; i-- ) if ( i * i == num ) Console.WriteLine ( i ); Console.WriteLine ( result ); static void Main( ) int number=int.parse ( Console.ReadLine ( ) ); SQRT ( number ); // ( 25 ) الناتج : 5 تمار ن : أكتب دالة تؤخذ من المستخدم مصفوفة ورلم مع ن ثم ترجع عدد مرات ف تلن المصفوفة. تكرار هذا الرلم using System; namespace ConsoleApplication1 class Program public static int count_item( int [ ]arr, int num ) 9

158 int count = 0; for ( int i = 0 ; i < arr.length ; i++ ) if ( num == arr [ i ] ) count++; return count; static void Main( ) int [ ] x = 1, 2, 3, 4, 5, 6, 7, 8, 1, 4, 7, 9, 4, 5 int num = int.parse ( Console.ReadLine( ) ); Console.WriteLine ( " item " + num + " repeated " + count ( x, num ) + " times " ); تمار ن : أكتب دالة لتنف ذ العمل ات الحساب ة تؤخذ الم مة األولى والعمل ة الت تتم سواء ضرب أو جمع أو لسمة ثم تؤخذ الم مة الثان ة وتع د ناتج العمل ة الت ستتم وتحدد من ل بل الم ستخدم. using System; namespace ConsoleApplication1 class Program

159 static float Math_Operation(float operand1, char operation, float operand2) float result = 0.0f; switch ( operation ) case '+': result = operand1 + operand2; break; case '-': result = operand1 - operand2; break; case '/': result = operand1 / operand2; break; case '*': result = operand1 * operand2; break; case '%': result = operand1 % operand2; break; return result; static void Main( ) while ( true ) Console.WriteLine("Enter operand1 : operation : operand2 :");

160 float op1 = float.parse(console.readline( )); char op = char.parse(console.readline( )); float op2 = float.parse(console.readline( )); Console.WriteLine(Math_Operation(op1, op, op2)); الدوال الت تع د ل م مكن تمر ر الم مة العائدة منها إلى دالة أخرى. مثال : using System; namespace ConsoleApplication6 class Program static int a(int x, int y) if (x > y) return x; else return y; static int b(int x, int y) return x + y; static int c(int x, int y) return x - y; static int d(int x, int y) return x * y;

161 static void sum(int a,int b,int c) Console.WriteLine(a + b + c); static void Main( ) sum(a(7, b(3, c(5, d(2,4) ) ) ), 5, 2); الناتج : ف هذا الكود أنشؤنا دوال كل دالة لها وظ فة مختلفة عن األخرى فالدالة "a" تؤخذ ل مت ن ثم تع د الم مة األكبر ف هما والدالة "b" تؤخذ ل مت ن ثم تع د ناتج جمعهما والدالة "c" تؤخذ ل مت ن وتع د ناتج طرحهما والدالة "d" تؤخذ ل مت ن وتع د ناتج ضربهما والدالة "sum" تؤخذ ثالث ل م وتطبع ناتج جمعهم. وف دالة ال Main أستدع نا الدالة sum وه تؤخذ ثالث ل م كما ذكرت ثم مررنا لها الدالة a وبعد ذلن مررنا للدالة a الم مة 7 والم مة األخرى كانت عبارة عن الدالة b ومررنا للدالة b الم مة والم مة األخرى كانت عبارة عن الدالة c ومررنا لها الم مة والم مة األخرى كانت عبارة عن الدالة d ومررنا للدالة d الم مت ن و. عند تنف ذ هذا الكود فإن الدوال الداخل ة ه الت ت نف ذ أوال وبما أن هذه الدوال ذات ل مة عائدة فإن كل دالة ت ع د ل مة واحدة فمط. وتكون هذه الم مة ه الم دخل اآلخر للدالة الت تسبمها. ف هذا المثال الدالة d تؤخذ الم مت ن و ووتع د ناتج ضربهما أي 2 إذا تكون الم متان اللتان ممرناهما للدالة c هما و 2 ثم تع د الدالة c ناتج طرحهما فتع د الم مة - وبذلن تكون الم م الممررة إلى الدالة b ه و - ثم تع د الدالة b ناتج جمعهما فتع د الم مة صفر وبذلن تكون الم م الممررة للدالة a ه صفر و 7 وتع د الدالة a الم مة األكبر ف هما فتع د الم مة 7 ( 7, 5,2) وبذلن تكون الم م الت م ر رت للدالة sum ه : وتطبع ناتج جمعهم ف كون

162 ref عندما نمرر ل م للدالة فإننا نؤخذ ن سخة من هذه الم م و حدث التؽ ر ف ها أما الم م األساس ة ف ذاكرة الكمب وتر لم حدث بها أي تؽ ر ولم تتؤثر. فمثال إذا أردنا تنف ذ عمل ة تبد ل ب ن ل مت متؽ ر ن عن طر ك دالة فإنه س بدل الم م لكن س بدلها ف الن سخة فمط ول س ف المتؽ رات األصل ة. using System; namespace ConsoleApplication1 class Program public static void Swap( int num1, int num2 ) int temp=num1; num1=num2; num2=temp; static void Main( ) int number1 = 10, number2 = 20; Swap ( number1, number2 ) ; Console.WriteLine("number1 = " + number1); Console.WriteLine("number2 = "+number2);

163 الناتج : number1 = 10; number2 = 20; لن حدث أي تبد ل فعل ف الم م ألننا ؼ ر نا ف الن سخ فمط. لكن ماذا لو أردت إحداث تؽ ر فعل ف المتؽ رات األصل ة ف الذاكرة ( ref نستخدم الكلمة المحجوزة ( using System; namespace ConsoleApplication1 class Program public static void Swap( ref int num1,ref int num2 ) int temp = num1; num1 = num2; num2 = temp; static void Main( ) int number1 = 10, number2 = 20; Swap ( ref number1, ref number2 ) ; Console.WriteLine("number1 = " + number1); Console.WriteLine("number2 = "+number2);

164 الناتج : number1 = 20; number2 = 10; using System; namespace ConsoleApplication1 class Program public static void Swap( ref int num1,ref int num2 ) num1 = 40 ; num2 = 30 ; static void Main( ) int number1=10,number2=20; Swap ( ref number1, ref number2 ) ; Console.WriteLine("number1 = " + number1); Console.WriteLine("number2 = "+number2); الناتج : number1 = 40; number2 = 30;

165 الم م الجد دة لن تإثر ف المتؽ رات ألننا مررنا للمتؽ رات ل م و ضعت ف المتؽ رات األصل ة ال الن سخ. مرجع ة ف الدالة والم م تمار ن : using System; namespace ConsoleApplication1 class Program public static int Swap( ref int num1 ) num1 = num1*num1 ; return num1; static void Main( ) int number1 = 10; Swap ( ref number1 ) ; Console.WriteLine("number1 = " + number1); الناتج : number1 = 100 7

166 out إذا أنشؤنا دالة تؤخذ م دخل ن ووأردنا إستدعاء هذه الدالة ف دالة أخرى أو أي مكان ف الكود ومررنا متؽ رات للدالة ف االستدعاء لكننا لم نعط ل م لهذه المتؽ رات ونر د أن نؤت بالم م من الدالة نفسها ف الحالة العاد ة هذا ال جوز و جب أن نعط ل م للمتؽ رات الت سنمررها كم دخالت للدالة حت إذا أدخلنا لهذه المتؽ رات ل م بتدائ ة ف الدالة. إلستخدام الم م الت أستخدمناها ف الدالة جب أن نحدد له أنه س ؤت بم م لم دخالت الدالة من الدالة نفسها. 2

167 مثال : using System; namespace ConsoleApplication1 class Program public static void fun_name( out int num1,out int num2 ) num1 = 200 ; num2 = 100 ; static void Main( ) int number1, number2; fun_name( out number1, out number2 ) ; Console.WriteLine("number1 = " + number1); Console.WriteLine("number2 = "+number2); الناتج : number1 = 200 number2 = 100 حتى لو أدخلنا ل م ل number1, number2 الت تؤت من الدالة. فإنه س تجاهلها و ستخدم الم م الخارج ة 9

168 using System; namespace ConsoleApplication1 class Program public static void fun_name( out int num1,out int num2 ) num1 = 200 ; num2 = 100 ; static void Main( ) int number1 = 60, number2 = 30 ; fun_name ( out number1, out number2 ) ; Console.WriteLine("number1 = " + number1); Console.WriteLine("number2 = "+number2); الناتج : number1 = 200 number2 = 100 ref تتطلب أن تدخل ل م للمتؽ رات الت ستمررها للدالة لحظة اإلستدعاء. 7

169 الخط الذي تحت المتؽ ر ن لحظة إسنادهما للدالة عن أنه جب أن نعط لهما ل م ولت تعر فهما. مثال : أكتب دالة لتنف ذ عمل ة المضروب لرلم دخله المستخدم. مثال لمضروب ال : = * * * 7

170 using System; namespace ConsoleApplication1 class Program public static void factorial ( int num ) int fact=1; if( num<=0 ) Console.WriteLine( 0 ); else for(int i=1 ; i<=num ; i++) fact *= i ; Console.WriteLine(fact); static void Main( ) int number = int.parse( Console.ReadLine( )); factorial(number) ; 7

171 params تستخدم كلمة params عندما ال نعلم عدد م دخالت ( parameters ) الدالة وعدد الم دخالت ف هذه الدالة عبر عن حجم المصفوفة. مثال : using System; namespace ConsoleApplication1 class Program public static int Max_Value_in_array ( params int [ ] arr ) int max=arr*0+ ; for( int i =0 ; i < arr.length ; i++) if ( arr [ i ] > max ) max = arr[ i ]; return max ; static void Main( ) Console.WriteLine ( Max_Value_in_array ( 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5 ) ); الناتج : 2 عدد م دخالت الدالة كون ؼ ر محدود أي مكننا تمر ر العدد الذي نر ده لكن مع كل م دخل نض فه ز د حجم المصفوفة بممدار فمثال حجم المصفوفة ف هذا الكود س كون وس طبع الم مة األكبر ف هذه المصفوفة. 7

172 الدالة ذاتية اإلستدعاء ) Recursion function ( وجد نوع من الدوال سمى الدالة العائدة أي الت ت ستدعى بداخل نفسها إذا أ ستدعت دالة بداخل نفسها فإنها تظل تستدع نفسها إلى أن تولفها بشرط لذا ف جب تحد د شرط لها لك تتولؾ. سننفذ نفس برنامج المضروب بها بدون إستخدام loop using System; namespace ConsoleApplication1 class Program public static int factorial ( int num ) if( num<=0 ) return 0 ; لتولؾ الدالة عند هذا الرلم // ) num==1 else if ( return 1 ; else return ( num * factorial(num-1)); static void Main( ) 7

173 int number = int.parse( Console.ReadLine ( ) ); Console.WriteLine ( factorial ( number ) ) ; الناتج : جب أن كون نوع الدالة أي نوع ؼ ر void فال مكن أن كون void ألن طر مة عمل هذا النوع من الدوال هو أنها تستدع نفسها مرة أخرى بداخل نفسها فإذا كان نوعها void فإننا لن نستط ع عمل أي عمل ة عل ها فنحن هنا نحتاج إلى أن نضرب الرلم ف ل مة الدالة ونطرح من الرلم إلى أن صل الرلم الم دخل إلى. فإذا أدخل المستخدم صفر أو ل مة ألل من الصفر بالسالب فإنها سترجع صفر وإذا أدخل فإن الدالة سترجع وإذا أدخل رلم فإنها ستضرب الرلم ؾ ل مة الدالة نالص وتستدع نفسها مرة أخرى ف كون الرلم ثم ثم وتتولؾ وتع د ناتج ضرب هذه الم م مع بعضها فتكون ل مة الدالة كلها تساوي * * * أي. مثال : أحسب مجموع األرلام من رلم دخله المستخدم إلى رلم أكبر حدده المستخدم أ ضا بدون إستخدام.loop مثال من إلى using System; namespace ConsoleApplication1 7

174 class Program public static int sum ( int start, int end) لتولؾ الدالة عند هذا الرلم // ) start>end if( return 0 ; else return ( start + sum(start+1, end)); static void Main( ) int start = int.parse( Console.ReadLine( )); int end = int.parse( Console.ReadLine( )); Console.WriteLine ( sum ( start, end ) ) ; 7 مثال : أنش ء دالة تؤخذ مصفوفة كم دخل وتخرج أكبر ل مة بهذه المصفوفة بدون إستخدام حلمات تكرار. using System; namespace ConsoleApplication19 class Program static int max = int.minvalue; static void fun(int[ ] arr, int low)

175 if (low < arr.length) if (arr[low] > max) max = arr[low]; fun(arr, ++low); else Console.WriteLine(max); static void Main(string[ ] args) int[ ] x = -123,-565,-3555,-293,234,987,265; fun(x, 0); الناتج : 987 ف هذا المثال عرفنا متؽ ر سمى max ووضعنا به ل مة إبتدائ ة وهذه الم مة تؤت من خالل ( int.minvalue ) وتكون هذه الم مة ه أصؽر ل مة مكن أن حملها متؽ ر من النوع int مكنن وضع ل مة إبتدائ ة صفر لكن بإفتراض أن األعداد المتواجدة ف المصفوفة كلها سالبة فف هذه الحالة لن كون هنان رلم سالب أكبر من الصفر و كون الناتج صفر وهذه النت جة خاطئة ثم أنشؤنا دالة void وكان من الممكن أن تكون int ثم ت ع د ل مة ال max من خالل كلمة return وهذه الدالة تؤخذ مصفوفة نوعها int وتؤخذ أ ضا أصؽر index ف المصفوفة الت سنعمل عل ها ودائما ما كون الصفر ونكتب الشرط الذي نر د أن تتولؾ الدالة عنده متى تتولؾ الدالة! عندما نصل إلى آخر index ف المصفوفة أي أن المتؽ ر الذي سمى low عندما صل إلى آخر index فإنها تتولؾ بعد هذه العمل ة. فمثال إذا كان حجم المصفوفة 7 فتكون آخر ل مة 77

176 صل إل ها المتؽ ر low ه 6 ثم بعد ذلن نتحمك من الم م الموجودة بالمصفوفة ما إذا كانت أكبرمن ل مة ال max أم ال وأي ل مة أكبر من الم مة الحال ة لل max إذا ستكون ل مة ال max ه هذه الم مة الجد دة ثم نستدع الدالة داخل نفسها لكن نجعل المتؽ ر low ز د بممدار 1 حتى نتمل إلى ال index الذي ل ه وهكذا إلى أن كون الشرط الخارج خطؤ وبذلن تتولؾ الدالة عن إستدعاء نفسها و تم تنف ذ ما بداخل else وتطبع آخر ل مة وصل إل ها المتؽ ر.max مثال : أنش ء دالة تؤخذ مصفوفة كم دخل وتخرج أكبر ل مة بهذه المصفوفة. using System; namespace ConsoleApplication1 class Program public static int Max_Value_in_array ( int [ ] arr ) int max=arr*0+ ; for(int i = 0 ; i < arr.length ; i++) arr[i]=int.parse(console.readline( )); for( int i =0 ; i < arr.length ; i++) if ( arr [ i ] > max ) max = arr[ i ]; return max ; static void Main( ) int * +x=new int*10+ ; Console.WriteLine ( Max_Value_in_array ( x ) ) ; 72

177 مكن للدالة أن تؤخذ مصفوفة و تم التعامل معها بطر مة عاد ة جدا. تم إدخال المصفوفة ك ( Parameter ) م دخل للدالة ف هذه الحالة نحن ال نعلم حجم المصفوفة لذا توجد خاص ة إل جاد حجم المصفوفة.Length فنستخدمها وح نما ننش ء المصفوفة ف دالة ال Main ونمررها للدالة جب أن نحدد الحجم وح نها هذه الخاص ة ستحسب حجم المصفوفة ف الدالة بعدها ت مرر اسم المصفوفة الت أنشؤتها ف دالة الMain كم دخل للدالة ن مر ر اسم المصفوفة فمط. تمار ن : أنش ء دالة تؤخذ مصفوفت ن وتنسخ أحدهما ف األخرى. using System; namespace ConsoleApplication1 class Program public static void Copy_array ( int [ ] arr,int * + arr2) for(int i = 0 ; i < arr.length ; i++) arr2 * i + = arr * i + ; static void Main( ) int [ ]x = new int*10+, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 - ; int * +y=new int* 10 +; Copy_array ( x, y ) ; 79

178 ) Object, Var, Dynamic ( وجد ثالثة أنواع من الب انات مكنهم إستمبال أي ب انات من أي نوع سواء كانت الب انات رلم صح ح أو كسر أو نص أو حرؾ أو أي نوع آخر لكن وجد فرق ب ن الثالثة أنواع. أول نوع هو : object كل أنواع الب انات ه عبارة عن ( object ) ف مكنه أن ؤخذ ب انات من أي نوع. وهو ال class الرئ س لكل أنواع الب انات و كون ف لاعدة هرم أنواع الب انات. لكن ( object ) ال فهم معنى الب انات الت بداخله فال مكنه بداخله مع متؽ ر آخر. إجراء أي عمل ة على ما مثال : object x = " aaa " ; string y = x خطؤ ال مكن ألي نوع ب انات آخر من األنواع المعروفة أن حمل ل مة متؽ ر من النوع object ألن نوعه عتبر ؼ ر معلوم هو فمط حمل ب انات بداخله لكن ال علم نوعها. فال مكنه التعامل إال مع object مثله. لكن ماذا لو أردنا تخز ن الم مة الت تؤت من متؽ ر نوعه object جب ف ذلن الولت أن نحولها لنفس النوع الذي ستخزن ف ه فمثال لو أردنا تنف ذ نفس العمل ة السابمة سنضطر إلى تحو ل ال x إلى نفس نوع ال y. 2

179 object x = " aaa " ; string y = ( string ) x ; لكن مكننا فعل العكس بدون تحو ل. string y = " aaa " ; object x = y ; ألننا أتفمنا أن ال object مكنه أن حمل أي نوع آخر. و مبل أن نؽ ر نوع الب انات الت بداخله بدون أن حدث خطؤ. فمثال : object x = " aa "; x = 4; Console.WriteLine( x ) ; الناتج : 4 مكن أن كون الم مة العائدة من دالة من النوع object تحد دا. إذا كنا ال نعرؾ النوع الراجع و مكن للمد خل أ ضا أن كون من النوع.object ف حالة أننا ال نعرؾ الم مة الت س دخلها للدالة هل ه نص أم حرؾ أم رلم. using System; namespace ConsoleApplication1 class Program 2

180 public static object fun ( params object [ ] arr ) return arr*3+ ; static void Main( ) Console.WriteLine ( fun ( 3, 4, "aa", 's', true, 8, 1, 3.44, 3, 4, 5 ) ); الناتج : S المصفوفة نوعها object لذا مكنها أن تحتوي على أي نوع بداخلها والدالة تع د ل مة من نفس نوع المصفوفة وبما أن المصفوفة نوعها object فالم مة العائدة منها إذا ستكون من النوع. object أكتب دالة لطباعة هذه المصفوفة الت أدخلنا ف ها الب انات سابما. using System; namespace ConsoleApplication1 class Program public static void fun ( params object [ ] arr ) foreach( object i in arr ) Console.WriteLine ( i ) ; static void Main( ) 2

181 fun ( 3, 4, "aa", 's', true, 8, 1, 3.44, 3, 4, 5 ) ; is ه كلمة محجوزة للتؤكد من نوع الب انات. مثال : object x =10 ; objext y = " aa " ; if ( x is int ) Console.WriteLine(" Yes "); ف هذا المثال س نفذ جملة الطباعة الت بداخل if ألن الشرط صح ح. أما إذا لولنا : نوع if ( x is string ) Console.WriteLine(" Yes "); فلن نفذ ألن المتؽ ر x عدد صح ح ول س نصا إذا فالكلمة المحجوزة is تتؤكد من الب انات هل هو متطابك أم ال. 2

182 object var ه مثل لكن وجد بعض اإلختالفات ب نهم. فمثال عند تعر ؾ متؽ ر نوعه var ال مكن تؽ ر الم مة الت بداخله لنوع آخر. مثال : var x = 3 ; خطؤ ; " aaa x = " هو مبل نوع واحد فمط فعندما مررنا له الم مة فهو تعامل مع المتؽ رعلى أنه int و جب أن نمرر له ل مة أثناء تعر ؾ المتؽ ر. فال جوز أن نعرؾ المتؽ ر من النوع var بدون تمر ر ل مة له ف مرحلة التعر ؾ. var x ; خطؤ مكنه أن ؤخذ أي ل مة. لكنه تم ز عن أن object ف أنه عندما ن عر ؾ متؽ ر من نوعه فإنه عرؾ نوع الم مة الت بداخله و مكننا أن ندخلها ف متؽ ر آخر من نفس نوعها. var x = " aaa " ; string y = x ; مثال : و مكننا إجراء أي عمل ة عل ه طالما أننا نستخدمه مع متؽ رات من نفس نوعه. لكن إذا أدخلناه ف متؽ ر من نوع آخر ف جب أن نحول نوعه أوال لنفس النوع الجد د. مثال : var x = 3.4f ; int y = ( int ) x; 2

183 مالحظة : الم م الكسر ة كون نوعها تلمائ ا double إذا أردناها أن تكون float فإننا نكتب حرؾ f بجانب الم مة. ال ستخدم لتعر ؾ الدوال أو حتى المصفوفات بداخل الدوال. فهو ستخدم لتعر ؾ المتؽ رات فمط 2 dynamic هو عبارة عن نوع ب انات ستط ع أن خزن أي شئ بداخله وتستط ع أن تؽ ر ل مته ألي نوع تر ده وأن تدخله ف أي عمل ة تر دها. هذا النوع ال تعرؾ على ما بداخله إال ولت التشؽ ل. dynamic c =" ttt " ; string s = c + " aaa " ; c = 6 ; int n = c-3 ; Console.WriteLine( s +" "+ n ); الناتج : tttaaa 3 حتى إذا و جد خطؤ فإنه ال تعرؾ عل ه إال عند التشؽ ل ألنه ترجم ما بداخله ف ولت التشؽ ل فمط. مثال : dynamic x = ' a ' ; string y = x ; لن ظهر الخطؤ ف الكود لكنه س ظهره عند تشؽ ل البرنامج. مكننا أن نستخدمه ف تعر ؾ دالة أو مصفوفة بدون مشكلة.

184 تمار ن : أكتب دالة لتسج ل عمل ة دخول إلى نظام أو مولع له بر د إلكترون وكلمة سر بإفتراض أن البر د اإللكترون الم سجل على لاعدة الب انات هو Mahmoud@gmail.com وكلمة السر ه mahmoud12345 using System; namespace ConsoleApplication1 class Program public static void Login ( string _ , string _Password ) if ( _ == " Mahmoud@gmail.com " && _Password ==" mahmoud12345 ") Console.WriteLine(" welcome "); else Console.WriteLine( " invalid data "); static void Main( ) string E_Mail = Console.ReadLine ( ); string password= Console.ReadLine ( ); Login ( E_Mail, password ); 2

185 ) Classes ( ذكرت مسبما نبذة عن البرمجة كائن ة التوجه وعن ماه ة ال class سنتعلم ك ؾ ن نش ء ال.class عندما ن نش ء class فإننا ن نش ء نوع من الب انات التى نستط ع أخذ عدد ؼ ر محدود من النسخ من هذا النوع الواحد ولد شرحت مثال لمولع الف س بون فمثال صفحتن الشخص ة تكون عبارة عن class به كل ب اناتن الشخص ة وعند تسج ل الدخول كون class به دوال لتنف ذ عمل ة الدخول كل شخص كون له ب اناته الخاصة أي أن كل شخص لد أخذ نسخة من هذا ال class ومألها بب اناته الخاصة. إذا كنت تر د إنشاء برنامج أو مولع و وجد عل ه مستخدمون وكل مستخدم له ب انات بؤنواع مختلفة مثل العمر واالسم وتار خ الم الد... ك ؾ ستربط كل هذه الب انات بمستخدم واحد! هذه التمن ة جعلت البرمجة عامة سهلة ومرنة. توجد لاعدة ف البرمجة الكائن ة تمول أن كل ش ء هو عبارة عن كائن. طر مة التعر ؾ : نكتب كلمة class ثم اسم ال class مكن أن نسم ه بؤي اسم نر ده لكن فض ل أن كون اسم عب ر عما موم به هذا ال class class Name 27

186 و كتب بداخل namespace طر مة الوصول ألي class تكون internal تلمائ ا و مكنن تؽ ره إلى public والب انات الت تكون بداخل ال class تكون private تلمائ ا ما لم نؽ رها إلى نوع آخر. إذا ماذا نكتب بداخل ال class نكتب بداخله كل الدوال الت نحتاجها لتنف ذ عمل ة مع نة والمتؽ رات الت سنستخدمها المتؽ رات الت بداخل ال class ؼالبا ما تكون private ونستخدمها من خالل الدوال و كون نوع الدالة.public الطر مة الم تعارؾ عل ها أن كتب أول حرؾ من اسم ال class بحرؾ كب ر مثل class Login مثال : using System; namespace ConsoleApplication1 class First class Program static void Main( ) 22

187 مكننا إنشاإه عن طر ك كتابته مباشرة كما فعلت لكن فضل أن كون كل class ف صفحة مستملة لك كون شكل الكود منظم وسهل ف المراءة والتعد ل. نذهب إلى اسم المشروع على الف جوال ستود و ثم نضؽط ضؽطة م ن بالمإشر فتظهر لائمة بها كلمة Add ونضؽط على class ونسم ه ونضؽط enter هكذا نكون لد أنشؤنا.class ) ( 29

188 ) ( لك نؤخذ نسخة من هذا ال class بكل الب انات الت بداخله " المسموح الوصول إل ها فمط " نكتب اسم ال class ثم اسم المتؽ ر لكن ف هذه الحالة سمى كائن ( object ) ول س متؽ ر. using System; namespace ConsoleApplication1 class First public int age ; string name ; 9

189 class Program كائن ) Object ( نسخة من ال class static void Main( ) First obj = new First ( ); Class تستخدم الكلمة المحجوزة new لخلك كائن جد د واسم ال class تبعه لوس ن سمى ( constructor " م ش د " ) سنعرؾ ماهو الم ش د الحما كل ما عل ن معرفته مإلتا أن هذه طر مة تعر ؾ ال class وأخذ نسخة منه أو إنشاء كائن جد د منه. عندما ن نش ء كائن )object( من class هذا ال class المسموح له رإ تها. فإنه ف ذلن الولت حتوي على كل خواص نستط ع الوصول إلى كل خصائص ال class من خالل "اسم الكائن )object( متبوعا بنمطة " (. ) - بعدها مكننا أن نمرر له الم مة. 9

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

المحاضرة الثانية المحاضرة الثان ة أنواع الب انات)المتغ رات و الثوابت( محتو ات المحاضرة أنواع الب انات اإلعالن عن المتغ رات الثوابت إسناد الق م إلى المتغ رات واجهة برنامج Visual Studio 2010 2 أنواع الب انات كلمات لغة ال

المزيد من المعلومات

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

الأول في السي شارب((c#للمبتدائين شباب التنميه والبداع : امحد ياسني شلش ذ د الدرس األول: فتح فيوجل ستوديو وشرحه 2012 1 -هذا هوه البرنامج نقوم بفتحه نسخه 2012 فيوجل استوديو new )نضغط علي - 2 اي مشروع جديد( project المتبنأ هذه لغه فيوجل

المزيد من المعلومات

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

مختبر البرمجة والتحليل العددي قسم علوم الجو جمل التحكم والشرط والتكرار المرحلة الثانية PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :- جمل التحكم والشرط والتكرار PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :- تقسم جمل الشرط الى نوعين وهي :- -1 جملة اذا الشرطية ) statement ( if -2 جملة التوزيع ) case ( switch -1 جملة اذا

المزيد من المعلومات

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

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

المزيد من المعلومات

Microsoft Word - C#2

Microsoft Word - C#2 الفصل الا ول مفاهيم البرمجة بواسطة الا هداف معنى البرمجة بواسطة األھداف... 5 معنى الفصيلة 5...Class ما ھي دوال البناء و دوال الھدم...6 Construction & destruction ما ھي خاصية التوريث 7...inheritance ما

المزيد من المعلومات

Microsoft Word - Access VBA

Microsoft Word - Access VBA الفصل الا ول (البداية) تصميم قاعدة بيانات بسيطة...4 الا وامر الا ساسية المتوفرة فى المعالجات...12 الفصل الثانى (برمجة ا كسيس (VBA برمجة أآسيس...18 VBA مقارنة بين VB وVBA...18 الدخول إلى صفحات آتابة برامج

المزيد من المعلومات

Microsoft Word - Excel VBA

Microsoft Word - Excel VBA الفصل الا ول (البداية) قواعد البرمجة...4 مقارنة بين VB و...4 VBA ضبط بيي ة Excel للبرمجة...5 الماآرو فى برنامج...8 Excel أنواع الماآرو... 9 تنفيذ الماآرو... 11 شروط اسماء المتغيرات...18 الكاي ناتObjects...18

المزيد من المعلومات

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

مكثف الثالثة الوحدة البوابات املنطقية 1 هاتف : مدارس األكاد م ة العرب ة الحد ثة إعداد المعلم أحمد الصالح مكثف الثالثة الوحدة البوابات املنطقية هاتف : 798226 النظ ري الج زء و الثاني األ ول للد رسين وضح ان قصىد ت ا يهي : انرعثير انعالئقي ج هح خثريح ذكى قي رها إيا صىاب )( و إيا خطأ )( ان عايم ان طقي راتط يسرخذو

المزيد من المعلومات

Microsoft Word - SolutionOOPFinal2011.doc

Microsoft Word - SolutionOOPFinal2011.doc صفحة 1 من 5 : : A : : 2010/ : : :. : (20/60) (2) ( 20) (10/20) : محاآاة الواقع على أنه مجموعة من الا شياء و أ ن آل شيء مكون من صفات و سلوك هو... التغليف التجرید البرمجة الشيي ية إخفاء طریقة تطبيق السلوك

المزيد من المعلومات

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

) NSB-AppStudio برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( ) برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( NSB-AppStudio الدرس األول ) 1 ( الدرس ) NSB-AppStudio ) 1 ( أهداف الدرس : بعد انتهاء هذا الدرس ستكون الطالبة قادرة على أن : )1 توضح مميزات برنامج ( NSB-AppStudio ) 2( تعدد لغات البرمجة المستخدمة في برنامج ( NSB-AppStudio ) 3( تذكر خطوات كتابة

المزيد من المعلومات

Microsoft Word - new.doc

Microsoft Word - new.doc الدرس الاول فى الماتلاب عنوان الدرس : ما هو الماتلاب الماتلاب هو لغة ذات مستوى عالى للحسابات والبرمجة و تمتاز بوجود برنامج يسهل عملية التعامل مع هذه اللغة. ويشمل البرنامج على: الحسابات الرياضية عمل الالجوريثمات

المزيد من المعلومات

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

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

المزيد من المعلومات

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

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

المزيد من المعلومات

الشريحة 1

الشريحة 1 القيادة 1 القيادة -الم ادة - تعر فات الم ادة -الفرق ب ن الم ادة واإلدارة - عناصر الم ادة اإلدار ة - نظر ات الم ادة اإلدار ة 2 القيادة تنطوي الم ادة على عاللة تبادل ة ب ن من بدأ بالفعل وب ن من نجزه وهذه

المزيد من المعلومات

Microsoft Word - Oracle1

Microsoft Word - Oracle1 360 Hòî b þa@âbè½ai Oracle Developer îôèm@æë í@áüèm pbíìn a@ ŠèÏ تعرف على ا وراكل تعرف على أوراكل... 4 مالمح ومزايا مجموعة التطوير 5...Oracle Developer Suite 10g أدوات تطوير التطبيقات...6 Oracle Developer

المزيد من المعلومات

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

برمجة متقدمة -1- برمجة متقدمة -1- السنة الثانية قسم برمجيات م. تغريد حرفوش 08 تشرين األول 1 18 اللكمة املفتاحية Base تستخدم هذه الكلمة المفتاحية لتحديد باني االب الذي سيتم استدعاؤه في الصف االبن ضمنيا الباني في الصف االبن

المزيد من المعلومات

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

ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long i ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long is the Average Chord of a Circle?/ 2009-2010 Second

المزيد من المعلومات

How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i

How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i بسم االله الرحمن الرحيم How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i آيف تربط الا وراآل 9i مع الديفيلوبر 6i الا س م التخص ص المو ه ل العم ل البل د اله اتف البري د الص فحة يوسف

المزيد من المعلومات

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

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

المزيد من المعلومات

إرشادات TRUST لمجموعات االدخار واالقتراض T: الحم مة R: االحترام U: الوحدة S: االستدامة T: التحول الهدف: مساعدة المجموعات المحل ة على االدخار من موارده

إرشادات TRUST لمجموعات االدخار واالقتراض T: الحم مة R: االحترام U: الوحدة S: االستدامة T: التحول الهدف: مساعدة المجموعات المحل ة على االدخار من موارده إرشادات TRUST لمجموعات االدخار واالقتراض T: الحم مة R: االحترام U: الوحدة S: االستدامة T: التحول الهدف: مساعدة المجموعات المحل ة على االدخار من مواردهم الخاصة حتى كون بممدورهم: أ( مواجهة أزمة تتسبب ف استهالن

المزيد من المعلومات

جامعة حضرموت

جامعة حضرموت جاهعة حضرهوت التسجيل االلكتروني لمرحلة التنسيق بالجامعة عبر الموقع www.hu-registration.com الصفحة الرئيسية زر الدخول على النظام ف حالة التسج ل سابقا ولد ك اسم مستخدم وكلمة مرور زر تسج ل متقدم جد د اذا

المزيد من المعلومات

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

الحل المفضل لموضوع الر اض ات شعبة تقن ر اض بكالور ا 2015 الحل المفص ل للموضوع األو ل التمر ن األو ل: 1 كتابة و على الشكل األس. إعداد: مصطفاي عبد العز الحل المفص ل للمضع األ ل التمر ن األ ل: كتابة على الشكل األس k ' cos s cos s e e ب( تع ن ق م العدد الطب ع بح ث كن العدد حق ق ا e e e arg حق ق معناه k منه k عل ه k ' k ح ث e ج( عدد مركب ح ث حساب ط لة العدد

المزيد من المعلومات

الدرس : 1 مبادئ ف المنطق مكونات المقرر الرسم عناصر التوج هات التربو ة العبارات العمل ات على العبارات المكممات االستدالالت الر اض ة: االستدالل بالخلف ا

الدرس : 1 مبادئ ف المنطق مكونات المقرر الرسم عناصر التوج هات التربو ة العبارات العمل ات على العبارات المكممات االستدالالت الر اض ة: االستدالل بالخلف ا الدرس : 1 مبادئ ف المنطق مكونات المقرر الرسم عناصر التوج هات التربو ة العبارات العمل ات على العبارات المكممات االستدالالت الر اض ة: االستدالل بالخلف االستدالل بفصل الحاالت االستدالل بالتكافؤ نبغ تقر ب

المزيد من المعلومات

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

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

المزيد من المعلومات

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

أساسيات البرمجة بلغة الجافا أساسيات البرمجة بلغة الجافا كتاب أساسيات البرمجة بلغة الجافا يتكون الكتاب من سبعة فصول تشرح الجوانب االساسية في لغة الجافا في الفصل االول من الكتاب نشرح مميزات لغة الجافا والمتغيرات في الفصل الثاني نوضح

المزيد من المعلومات

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

اردوينو – الدرس الثامن – تغيير درجة الالوان لـ RGB LED اردوينو الدرس الثامن تغيير درجة الالوان ل RGB LED في هذا الدرس ستقوم بتطبيق ماتعلمته بالدرس السابع والرابع وذلك لاستخدام الازرار في تغيير درجة الالوان في RGB Led القطع المطلوبة لاتمام هذا الدرس عليك توفير

المزيد من المعلومات

Principles of C++ (Precedence)

Principles of C++ (Precedence) C++ Programming Week 1 Introduction to C++ HS Engineers اإلحسان ي ح ط من قدر من يت ل قونه. )1( Modulus Operator Division Operator كيفية ( / % ) التعامل مع في حال قسمة رقم صحيح على رقم صحيح آخر ينتج رقم

المزيد من المعلومات

1

1 1 " ق ل إ ن ص ال ت ي و ن س ك ي و م ح ي اي و م م ات ي ل ل ه ر ب ال ع ال م ني ال ش ر يك ل ه و ب ذ ل ك أ م ر ت و أ ن ا أ و ال م س ل م ني " 2 إهدإء إلى والدى ر حم ة إلله عليهما.. و إلى إخوتى الدين لا يدخ رون

المزيد من المعلومات

الفصل الثاني

الفصل الثاني 1 برنامج MINTAB 17 105 احص إعداد أ- ريم المبطي 2 الفصل الثاني ( اختبارات الفروض وفترات الثقة ) لمعالم مجتمع واحد أوال : اختبار المتوسط : لدينا حالتين : نستخدم اختبار Z عندما : N كبيرة و معلومة أو مجهولة

المزيد من المعلومات

المكونات

المكونات لغات البرمجه Programming Languages 2016/2017 الب ارمج او البرمجيات: هو عبارة عن مجموعة من األوامر والتعليمات مرتبة بتسلسل معين ويقوم الحاسوب بتنفيذها لتحقيق الهدف من البرنامج. المقدمة ىناك العديد من لغات

المزيد من المعلومات

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

مدرسة هارون الرشيد الثانوية للبنين المهارات العملية / تكنولوجيا المعلومات ( الثاني عشر) إعداد/ أ. خالد الح املهارات العملية / تكنولوجيا املعلومات )Appinventor )بزنامج :on line من خالل االنترنت مباشرة App inventor خطوات تشعيل برنامج الدخول إلى حساب ج م ل.Gmail ثم رابط الموقع App inventor عبر متصفح االنترنت http://appinventor.mit.edu/explore/

المزيد من المعلومات

جامعة العقيد الحاج لخضر - باتنة - 1 كلية العلوم االقتصادية والتجارية وعلوم التسيير قسم التعليم األساسي مادة II دروس وتطبيقات الرياضيات لطلبة السنة األ

جامعة العقيد الحاج لخضر - باتنة - 1 كلية العلوم االقتصادية والتجارية وعلوم التسيير قسم التعليم األساسي مادة II دروس وتطبيقات الرياضيات لطلبة السنة األ جامعة العقيد الحاج لخضر - باتنة - 1 كلية العلوم االقتصادية والتجارية وعلوم التسيير قسم التعليم األساسي مادة II دروس وتطبيقات الرياضيات لطلبة السنة األولى الثاني السداسي إعداد أساتذة المادة الفهرس العام

المزيد من المعلومات

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

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

المزيد من المعلومات

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

دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالم دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالمات )70( عالمة مالحظة: عدد األسئلة خمسة أسئلة وعلى الطالب

المزيد من المعلومات

استنادا الى احكام البند )ثالثا ( من المادة )08( من الدستور واحكام البند )2( من المادة )4( من امر سلطة االئتالؾ المؤقته )المنحلة( رقم )65( لسنة 2884 )ق

استنادا الى احكام البند )ثالثا ( من المادة )08( من الدستور واحكام البند )2( من المادة )4( من امر سلطة االئتالؾ المؤقته )المنحلة( رقم )65( لسنة 2884 )ق استنادا الى احكام البند )ثالثا ( من المادة )08( من الدستور واحكام البند )2( من المادة )4( من امر سلطة االئتالؾ المؤقته )المنحلة( رقم )65( لسنة 2884 )قانون البنك المركزي ) والبند ثان ا من المادة )9( من

المزيد من المعلومات

( IP Address ) العنوان الشبكي

( IP Address ) العنوان الشبكي اسم المقرر شبكات وامن المعلومات عنونة وتقس م الشبكات Network Addressing and Subnetting المحتو ات مقدمة العنوان الشبكى ) Address ( IP تقس مات العنوان الشبكى parts( )IP Network and Host قناع الشبكة Subnet

المزيد من المعلومات

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

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

المزيد من المعلومات

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

اجيبي علي الاسئلة التالية بالكامل: أساليب توزيع السكان وكثافتهم أوال: التوزيع السكاني Population Distribution التوزيع السكاني هو عبارة عن توزيع البشر األعداد المطلقة على الرقعة المساحية. إن التوزيع الجغ ارفي للسكان هو الجغ ارفية. انعكاس

المزيد من المعلومات

الموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين

الموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين الموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين االحادي كنا نقارن بين ثالث مجاميع في متغير واحد مثال

المزيد من المعلومات

قررت وزارة التعليم تدري س هذا الكتاب وطبعه على نفقتها الريا ضيات لل صف االأول االبتدائي الف صل الدرا سي الثاين كتاب التمارين قام بالت أاليف والمراجعة

قررت وزارة التعليم تدري س هذا الكتاب وطبعه على نفقتها الريا ضيات لل صف االأول االبتدائي الف صل الدرا سي الثاين كتاب التمارين قام بالت أاليف والمراجعة قررت وزارة التعليم تدري س هذا الكتاب وطبعه على نفقتها الريا ضيات لل صف االأول االبتدائي الف صل الدرا سي الثاين كتاب التمارين قام بالت أاليف والمراجعة فريق من المتخ ص صين طبعة 9 0 ه 08 09 م ح وزارة التعليم

المزيد من المعلومات

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

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

المزيد من المعلومات

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

عرض تقديمي في PowerPoint Dr./ Ahmed Mohamed Rabie Sayed 1 2 Symbol Sprayer Tool -23 تستخدم األداة Symbol Sprayer Tool إلنشاء مجموعة من الرموز Symbols التصميم. لتنشيط األداة يتم الضغط على مفتاح Shift+S من لوحة المفاتيح. صفحة داخل

المزيد من المعلومات

الصفة المشبَّهة باسم الفاعل

الصفة المشبَّهة باسم الفاعل الصفة المشب هة باسم الفاعل ه اسم صاغ من الفعل الالزم للداللة على معنى اسم الفاعل وتشابه اسم الفاعل ف المعنى وتفترق عنه ف أن ها تدل على ثابتة. صفة وأوزانها متعددة ثالثة منها مختصة بباب) وأربعة ف ع ل ( مختصة

المزيد من المعلومات

برمجة NXT والخوارزميات تتبع الخط سلسلة دروس الروبوت التعل م قسم برمجة NXT والخوارزم ات تتبع الخط )حساس الضوء واأللوان( 1

برمجة NXT والخوارزميات تتبع الخط سلسلة دروس الروبوت التعل م قسم برمجة NXT والخوارزم ات تتبع الخط )حساس الضوء واأللوان(   1 سلسلة دروس الروبوت التعل م قسم برمجة NXT والخوارزم ات )حساس الضوء واأللوان( www.talents.edu.sa 1 اإلصدار 1,1 سبتمبر 2111 شركة المواهب الوطن ة للتدر ب والتعل م 2111 بعض الحقوق محفوظة. باستثناء المواضع الت

المزيد من المعلومات

PowerPoint Presentation

PowerPoint Presentation مشروع التسويق ولوجيستيات االعمال الزراعية المتقدمة التحليل المالي كيبف تحدد سعر التكلفة والسعر النهائي الى أي مدى يعكس السعر الجودة 50 قرش للكيلو جنيه للكيلو هل التكاليف هي المكون الوحيد للسعر 3 مالذي

المزيد من المعلومات

محاضرات C++

محاضرات C++ محاضرات C++ لألستاذ/ بسام الھاملي إعداد الطالب: ھشام يحيى دالل اإلھداء اللھم إني أردت بھذا العمل وجھك الكريم فتقبل مني اللھم من استفاد من ھذا الكتاب بمعلومة فاكتب لي بھ ا ح سنة وإن تضاعف لي فإنك أنت الحليم

المزيد من المعلومات

ص)أ( المملكة العرب ة السعود ة وزارة التعل م اإلدارة العامة للتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول انفترة انثانثت العام

ص)أ( المملكة العرب ة السعود ة وزارة التعل م اإلدارة العامة للتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول انفترة انثانثت العام ص)أ( المملكة العرب ة السعود ة وزارة التعل م اإلدارة العامة للتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول انفترة انثانثت العام الدراس - 8 المعلمة المرحلة الصف المادة وفاء المالكي

المزيد من المعلومات

طبيعة بحته و أرصاد جوية

طبيعة بحته و أرصاد جوية طبيعة بحته و أرصاد جوية 3 206-2007 الضوء محاضرة 3 قوانين األنعكاس واألنكسار المرايا العدسات التلسكوب الفلكي قوانين األنعكاس و األنكسار عند سقوط شعاع ضوئي علي سطح فاصل بين وسطين ينعكس جزء منة و ينكسر جزء

المزيد من المعلومات

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

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

المزيد من المعلومات

Banner – Hold Information SOAHOLD

Banner – Hold Information SOAHOLD 1 Financial Aid System Documentation - eservice E-serviceخطوات التقديم لنظام المساعدات عبر ال 2 خطوات التقديم لنظام المساعدات Steps to apply for financial aid 1 Login to the portal http://my.uaeu.ac.ae

المزيد من المعلومات

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

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

المزيد من المعلومات

صفوت مصطفي حميد ضهير مدرسة الدوحة الثانوية ب أي خطأ طباعي أو إثناء التحويل من صيغة آلخري يرجي إبالغي به والخطأ مني ومن الشيطان أما توفيقي فمن هللا عرف

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

المزيد من المعلومات

وزارة التربية االدارة العامة لمنطمة مبارن الكبير التعليمية التوجيه الفني للتربية البدنية / بنات

وزارة التربية االدارة العامة لمنطمة مبارن الكبير التعليمية التوجيه الفني للتربية البدنية / بنات وزارة التربية االدارة العامة لمنطمة مبارن الكبير التعليمية التوجيه الفني للتربية البدنية / بنات اليوم : االربعاء التايخ : 7112/1/11 المكان : مدرسة الصالحية المتوسطة بنات في تمام الساعة التاسعة صباحا وبحضور

المزيد من المعلومات

قسم تكنولوجيا الحاسوب والمهن الصناعية

قسم تكنولوجيا الحاسوب والمهن الصناعية تكنىلىجيا قسم الحاسىب والمهن الصناعية تطبيقات برمجية الكترونية مقدمة عن برنامج LabView م.محمد األسمر الفصل الثاني 2012 م مقدمة فى LabVIEW الهدف : التعرف على بيئة.LabVIEW المحتويات : Virtual 1( ما هى Instruments

المزيد من المعلومات

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

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

المزيد من المعلومات

نسخه إلكرتونيه جمانيه بقمل : معاويه نورإدلين 2013

نسخه إلكرتونيه جمانيه بقمل : معاويه نورإدلين 2013 نسخه إلكرتونيه جمانيه بقمل : معاويه نورإدلين 2013 الفهرس إسم الموضوع ان قذي اإل ذاء انعبيم انشرطي عبيم انزيبد ان قصب ع ايم انتععي انحسبثي انتركيج switch حهق انتكرار for حهق انتكرار do.. while حهق انتكرار

المزيد من المعلومات

دليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati بمساعدة : علي السباعي Ali Sibai

دليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati بمساعدة : علي السباعي Ali Sibai دليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati Twitter:@mohdmaskati بمساعدة : علي السباعي Ali Sibai Twitter:@alisibai المقدمة : العديد منكم يتعرض إلى حالة من الصدمة

المزيد من المعلومات

مكونات الحاسب الآلي

مكونات الحاسب الآلي تطبيقات محاسبية بالحاسوب 465 حسب مقدمة في التطور التقني ألجهزة الحاسب اآللي والبرامج التطبيقية Company LOGO أ.هناء المغامس المحتويات : 1. مقدمة الحاسب اآللي. مكونات الحاسب اآللي )المادية و البرمجية(..2

المزيد من المعلومات

correction des exercices pendule pesant Ter

correction des exercices pendule pesant Ter تصحيح تمارين النواس الوازن تمرين نطبق العلاقة الا ساسية للديناميك على المجموعة S جرد القوى المطبقة على المجموعة : S S وزن المجموعة : P S تا ثير المحور على المجموعة : R M F && بما أن المجموعة قابلة للدوران

المزيد من المعلومات

المشروحات االضافية والشروط العامة للتداول باألسواق المالية العالمية. ممدمة تمدم هذه الوث مة مشروحات إضاف ة والشروط العامة للتداول باألسواق المال ة الع

المشروحات االضافية والشروط العامة للتداول باألسواق المالية العالمية. ممدمة تمدم هذه الوث مة مشروحات إضاف ة والشروط العامة للتداول باألسواق المال ة الع المشروحات االضافية والشروط العامة للتداول باألسواق المالية العالمية. ممدمة تمدم هذه الوث مة مشروحات إضاف ة والشروط العامة للتداول باألسواق المال ة العالم ة مع اإلتفال ة ب ن شركة اإلعتماد المال اإلستثماري

المزيد من المعلومات

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

عرض تقديمي في PowerPoint Dr./ Ahmed Mohamed Rabie Sayed 1 2 صندوق االدوات صندوق االدوات Tools Box يحتوى اظهار وإخفاء Tools Box من قائمة على االدوات Window الرئيسية الالزمة النشاء واختيار.Tools وتعديل التصميم. ويمكن 3 Move Tool

المزيد من المعلومات

WHAT’S NEW

WHAT’S NEW الجديد في انجز تطبيق إصدارات X.4 المحتويات المحتويات... 1 المواصفات الجديدة بالنظام... 3.1.1.1 عدد المهام التي يجب إنجازها... 3 انشاء مهمة... 3.1.2 2. تعديل تكليف المهمة... 3 تاريخ حالات المهمة... 4.2.1.2.2.3

المزيد من المعلومات

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

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

المزيد من المعلومات

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

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

المزيد من المعلومات

Determinants

Determinants قسم الهندسة الزراعية د/ خالد ف ارن طاهر الباجورى استاذ الهندسة الز ارعية المساعد khaledelbagoury@yahoo.com Mobil: 01222430907 المقدمة ماهي المصفوفة جمع الضرب الكمي للمصفوفات ضرب منقول المصفوفة محدد المصفوفة

المزيد من المعلومات

المحاضرة الثانية عشر مقاييس التشتت درسنا في المحاضرة السابقة مقاييس النزعة المركزية أو المتوسطات هي مقاييس رقمية تحدد موقع أو مركز التوزيع أو البيانات

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

المزيد من المعلومات

المدة : 5 دقي. النش ط : ال راءة. المست ى : قس التحضير.. 9 عن ان الدرس : أربط بين الص الحرف ( (. رق ال حدة : الك ءا ال عدي : يتعرف ع الص ) ( المسم ع ث

المدة : 5 دقي. النش ط : ال راءة. المست ى : قس التحضير.. 9 عن ان الدرس : أربط بين الص الحرف ( (. رق ال حدة : الك ءا ال عدي : يتعرف ع الص ) ( المسم ع ث . 9 أربط بين الص الحرف ( (. الك ءا ال عدي : يتعرف ع الص ) ( المسم ع ث يربطه ب لص ) ( المكت [ الحرف ] يميزه من خال تسمي مجم ع م شر الك ءة : يتعرف ع الص ) ( المسم ع ث يربطه ب لص ) ( المكت [ الحرف ] يميزه

المزيد من المعلومات

ص)أ( المملكة العرب ة السعود ة وزارة الترب ة والتعل م اإلدارة العامة للترب ة والتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول ان

ص)أ( المملكة العرب ة السعود ة وزارة الترب ة والتعل م اإلدارة العامة للترب ة والتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول ان ص)أ( المملكة العرب ة السعود ة وزارة الترب ة والتعل م اإلدارة العامة للترب ة والتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول انفترة انثانثت العام الدراس - 1 18 ه االسم المرحلة الصف

المزيد من المعلومات

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

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

المزيد من المعلومات

إيناس السيد محمد الشعراوى أستاذ مساعد قسم الحاسب كلية التربية - الجبيل المعلومات الشخصية الجنسية : مصرية تاريخ الميالد / 11 / م القسم علوم الحاس

إيناس السيد محمد الشعراوى أستاذ مساعد قسم الحاسب كلية التربية - الجبيل المعلومات الشخصية الجنسية : مصرية تاريخ الميالد / 11 / م القسم علوم الحاس إيناس السيد محمد الشعراوى أستاذ مساعد قسم الحاسب كلية التربية - الجبيل المعلومات الشخصية الجنسية : مصرية تاريخ الميالد 3 984/ / م القسم علوم الحاسب اآللى البريد الجامعي الرسمي eeelsharawy@iau.edu.sa الهاتف

المزيد من المعلومات

Slide 1

Slide 1 تصميم السيرة الذاتية كصفحات الويب د. احمد عادل اسماعيل عمادة المركز الجامعي لخدمة المجتمع و التعليم المستمر. WWW.Dr-Ahmed.Info Info@Dr-Ahmed.Info -------------- المرجع: www.support.office.com اهداف المحاضرة

المزيد من المعلومات

الشريحة 1

الشريحة 1 2 األشكال الثالثية األبعاد 4 الف ص ل السادس 5 6 ن 2 : املئ الجدول بالرقم المناسب عدد أضالع القاعدة 4 ن 3 8 عدد أحرف المجس م 6 كانت إذا قاعدة الهرم مثلثة الشكل ذ فكم عدد أضالعها كم حرف ا كانت إذا للهرم

المزيد من المعلومات

جاهعة الوسيلة هركز الشبكات و أنظوة اإلعالم و االتصال والتعلين الوتلفز و التعلين عن بعد مودل Moodle التعل م نظام استخدام "دل ل االلكترون للطلبة" نظام ا

جاهعة الوسيلة هركز الشبكات و أنظوة اإلعالم و االتصال والتعلين الوتلفز و التعلين عن بعد مودل Moodle التعل م نظام استخدام دل ل االلكترون للطلبة نظام ا مودل Moodle التعل م نظام استخدام "دل ل االلكترون للطلبة" نظام التعليم االلكتروني مودل: هدف نظام التعل م االلكترون إل جاد ب ئة تفاعل ة تم من خاللها التواصل ب ن االساتذة ه وطلبتم وب ن الطلبة ف ما ب نهم من

المزيد من المعلومات

1 درس :

1 درس : 1 درس : ثانية االمام البخاري التأهيلية المستى: الجدع المشترك العلمي المكن : الهندسة المرجع: في رحاب الرياضيات المادة: الرياضيات الجدادة: رقم 2 71 فبراير االسبع: من الدرس الى 32 فبراير 3172 المستقيم في

المزيد من المعلومات

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

الصف السادس االبتدائي الفصل الدراسي االول بسم هللا الرحمن الرحيم الصفحة محتويات الفصل الدراسي األول الموضو بسم هللا الرحمن الرحيم الصفحة 2 3 4 5 6 7 9 11 11 13 14 16 16 17 11 19 22 محتويات الفصل الدراسي األول الموضوع اختيار دولة محددة تغيير نمط عرض التاريخ لالرقام تغيير نمط عرض التاريخ )هجري - ميالدي( تغيير

المزيد من المعلومات

Slide 1

Slide 1 Correlation and Regression اإلرتباط واإلنحدار Correlation اإلرتباط - Describes the relationship between two (X & Y) variables يوضح العالقة بين متغيرين )Y, X( - One variable is called independent (X) and

المزيد من المعلومات

( اختبارات الفروق لعينتين مستقلتين Samples) 2) Independent مان- ويتني( U (Mann-Whitney ب( نحتاج الى ھذا القانون الغراض المقارنة بين مجموعتين او عينتين

( اختبارات الفروق لعينتين مستقلتين Samples) 2) Independent مان- ويتني( U (Mann-Whitney ب( نحتاج الى ھذا القانون الغراض المقارنة بين مجموعتين او عينتين ( اختارات الفروق لعينتين مستقلتين Samples) 2) Independent مان ويتني( U (MannWhitney ( نحتاج الى ھذا القانون الغراض المقارنة ين مجموعتين او عينتين مستقلتين مثال المقارنة ين عينة للذكور م ع عينة لالناث او

المزيد من المعلومات

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

الفرق بين البرمجة الإجرائية و البرمجة المسيرة بالأحداث : طرق كتابة HTML محرر النصوص Text Editor مثل Notepad محرر بطريقة واجهة المستخدم الرسومية GUI Editor وهو محرر يكتب كود بلغة Dream تلقائيا باستخدام القوائم الموجودة فيه مثل برنامج Weaver 8.0 HTML 2 انواع محررات

المزيد من المعلومات

PowerPoint Presentation

PowerPoint Presentation عرض لنظام المعماري الاستراتيجي لمتابعة الأداء وتنفيذ الاستراتيجيات 1999 مقدمة تاسست عام في مصر شركة مساهمة خاصة من عام 2002 المقر الرئيسي بالقاهرة 35 موظف شركاء استراتيجيين في الشرق الأوسط خبرات دولية

المزيد من المعلومات

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

اختر عنوان مناسب 1 كيفية الوصول الى البريد االلكتروني في الكلية 2 3 الهدف من المحاضرة.Webmail كيفية الدخول الى حساب البريد االلكتروني في الخادم الجديد باستخدام كيفية استعراض الرسائل االلكترونية في السيرفر القديم..Microsoft

المزيد من المعلومات

Microsoft Word - Suites_Numériques_1_sm.doc

Microsoft Word - Suites_Numériques_1_sm.doc الا ستاذ الا لى علم رياضية المتتاليات العددية - I عمميات 4 ; 8 ; ; 6 ; ; ; أمثلة تمهيدية مثال أتمم بشكل منطقي ما يلي نقترح تخصيص رمز لكل من هذه الا عداد لهذا نضع u 4 ; u 8 ; u ; u 6 ; 4 5 فيكن لدينا I

المزيد من المعلومات

شرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصل

شرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصل شرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصلب على شكل موج ات آهرومغناطيسية و اننا نعلم باننا نستطيع

المزيد من المعلومات

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

عرض تقديمي في PowerPoint بسم هللا الرحمن الرح م الضغط الجوي : إن الضغط الجوي هو ذلك الثقل الذي مارسه الغالف الغازي على سطح الكرة األرض ة. و هو وزن عمود من الهواء مساحة مقطعه وحدة المساحات بارتفاع عادل سمك الغالف الجوي أجهزة ق

المزيد من المعلومات

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

التصمیم والبرمجة غرضیة التوجھ الدكتورساميخیمي ISSN: X Books & Refrences التصمیم والبرمجة غرضیة التوجھ الدكتورساميخیمي Books & Refrences التصميم والبرمجة غرضية التوجه الدكتور سامي خيمي من منشورات الجامعة االفتراضية السورية الجمهورية العربية السورية 2018 هذا الكتاب منشور تحت

المزيد من المعلومات

أ متطلبات التأش رة قص رة المدة عز زنا العم ل برجاء التأكد من النقاط التال ة: - تم تقد م الطلب للحصول على التأش رة ف مكتب ف إف إس جلوبال مكتب تأش رات م

أ متطلبات التأش رة قص رة المدة عز زنا العم ل برجاء التأكد من النقاط التال ة: - تم تقد م الطلب للحصول على التأش رة ف مكتب ف إف إس جلوبال مكتب تأش رات م أ متطلبات التأش رة قص رة المدة عز زنا العم ل برجاء التأكد من النقاط التال ة: - تم تقد م الطلب للحصول على التأش رة ف مكتب ف إف إس جلوبال مكتب تأش رات مالطا من الساعة 03:80 صباحا وحتى 03:80 مساءا من األحد

المزيد من المعلومات

نظرية الملاحظة

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

المزيد من المعلومات

كيفية استخدام موقع 4shared لرفع الملفات وتنظيمها على النترنت للمبتدئين. والمتقدمين في الحاسب. كتاب ل ابراهيم شاهين

كيفية استخدام موقع 4shared   لرفع الملفات وتنظيمها على النترنت للمبتدئين. والمتقدمين في الحاسب. كتاب ل ابراهيم شاهين كيفية استخدام موقع 4shared www.4shared.com لرفع الملفات وتنظيمها على النترنت للمبتدئين. والمتقدمين في الحاسب. كتاب ل ابراهيم شاهين بسم ال الرحمن الرحيم مقدمة بسيطة موقع 4shared.com هو موقع لرفع الملفات

المزيد من المعلومات

Allomani Warehouse User Guide

Allomani Warehouse User Guide المخزن warehouse.allomani.com دليل المستخدم اللوماني للخدمات البرمجية www.allomani.com / 11 اكتوبر / 2010 1 P a g e المحتويات اضافة و اعداد موقعك في المخزن... 3 اعداد بيانات ال...FTP 3 اعدادات بيانات حقوق

المزيد من المعلومات

Our Landing Page

Our Landing Page نظام البرمجة SIMATIC S7 PLC وفقا للمستوى المتقد م ف الا صدار S7-300/400 الصفحة 1 من 6 يقد م هذه الدورة التدريبية مدر ب من شركة الهندسية (مجموعة دي و) متخصص ف إصدارات سيمنز. لمحة عامة الهدف الري يس لهذه

المزيد من المعلومات

دبلوم متوسط برمجة تطبيقات الهواتف الذكية

دبلوم متوسط برمجة تطبيقات الهواتف الذكية دبلوم متوسط برمجة تطبيقات الهواتف الذكية الهواتف الذكية عدد مرات تنزيل التطبيقات توقع ارتفاع عدد مرات تنزيل التطبيقات 178B 2017 258B 2020 66% 54% عدد مستخدمي 3,8B االجهزة الذكية 4/2018 استخدام التطبيقات

المزيد من المعلومات

Full Mark الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين

Full Mark الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين 0798016746 http://www.youtube.com/uer/moonkaled http://khaledalwahh.wordpre.com/

المزيد من المعلومات

60 ) ( ) ( ) منطمة العاصمة التعل م ة اختبار تجر ب للصف السادس مدرسة عبد العز ز حس ن الفصل الدراس الثان للعام 8 االسم أوال كفا ة المراءة والمشاهدة / 9

60 ) ( ) ( ) منطمة العاصمة التعل م ة اختبار تجر ب للصف السادس مدرسة عبد العز ز حس ن الفصل الدراس الثان للعام 8 االسم أوال كفا ة المراءة والمشاهدة / 9 60 منطمة العاصمة التعل م ة اختبار تجر ب للصف السادس مدرسة عبد العز ز حس ن الفصل الدراس الثان للعام 8 االسم أوال كفا ة المراءة والمشاهدة / 9 م / الصف / : المع ار: مول هللا تعالى : }و اص ب ر ن ف س ن م ع

المزيد من المعلومات

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

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

المزيد من المعلومات

Microsoft Word - Sample Weights.doc

Microsoft Word - Sample Weights.doc ورشة العمل الا قليمية حول تصميم العينات الدوحة ١٥-١٧ ا يار/ مايو ٢٠٠٧ ترجيح العينات ا عداد خميس رد اد مستشار العينات ١ المحاضرة الثامنة ترجيح العينات مقدمة ان عملية ترجيح العينة تعنى عملية اعادة وضع العينة

المزيد من المعلومات