You are on page 1of 82

‫برمجة الشبكات‬

‫‪C#‬‬

‫د‪ .‬أيمن شعبوني‬


‫‪ayman.chaabouni@ieee.org‬‬

‫‪1‬‬
‫ما هي برمجة الشبكات ؟‬

‫برمجة الشبكات‪:‬‬
‫▪برمجة البروتوكوالت الخاصة بالشبكات‬

‫▪برمجة التطبيقات المتعلقة بالشبكات‬

‫‪2‬‬
‫تعريف بشبكات الكمبيوتر‬

‫• من المعروف أن الشبكة هي جميع أجهزة االتصاالت ووسائط‬


‫النقل التي تربط بينها وبين برامج التشغيل والبرمجيات الالزمة‬
‫لفتح قنوات اتصال بين أجهزة الكمبيوتر لتقديم خدمات متعددة‪.‬‬

‫• الشبكة هي مجموعة من األجهزة متصلة مع بعضها عبر وسيلة‬


‫اتصال معينة‬

‫‪3‬‬
‫شبكة المساحة المحلية)‪(LAN‬‬

‫▪هي جميع المكونات المادية والبرمجيات الالزمة لبناء شبكة الكمبيوتر التي تستخدم‬
‫لتقديم الخدمات داخل المبنى الواحد‪.‬‬
‫▪ تستخدم هذه الشبكات في الشركات الصغيرة‪ ،‬المدارس‪ ،‬المنازل و غيرها‪...‬‬

‫▪مميزات الشبكة المحلية‪:‬‬

‫▪محدودة المكان فهي مخصصة لغرض محدد مثل معمل المدرسة أو الجامعة أو‬
‫شركة‪.‬‬
‫▪سرعة اإلرسال لقصر المسافة بين األجهزة ‪.‬‬
‫يستخدمها عدد محدد من المستخدمين‪.‬‬
‫‪4‬‬ ‫▪‬
‫الشبكات الواسعة ‪WAN‬‬

‫▪هي عبارة عن األجهزة والمعدات وخطوط االتصاالت التي تربط عدة أجزاء متباعدة‬
‫من شبكة واحدة‪ ,‬وعادة ما تكون بين المدن‪.‬‬
‫▪تستخدم هذه الشبكات في الجهات الحكومية والمؤسسات والشركات الكبيرة التي لديها‬
‫فروع متباعدة‪.‬‬

‫▪مميزات الشبكة الواسعة‪:‬‬

‫▪تمتد بين المدن‪.‬‬


‫▪ محدودة سرعة اإلرسال لطول المسافات بين الوحدات المختلفة ‪.‬‬
‫▪ يستخدمها عدد كبير من المستخدمين ‪.‬‬
‫▪ تدار هذه الشبكة من هيئة عامة أو جهة حكومية ‪.‬‬
‫‪5‬‬
‫محور التعامل مع الشبكة‬

‫‪ .1‬الخادم (‪: )Server‬‬


‫الخادم هو أهم أجهزة الشبكة وهو الذي يوفر مصادر الشبكة ويتحكم بها‪.‬‬

‫‪ .2‬العميل (‪: )Client‬‬


‫العميل هو عبارة عن جهاز حاسب آلي مربوط بالشبكة ‪ ,‬ولكن ليس له أي صالحيات في‬
‫التحكم‪.‬‬

‫‪ .3‬مصادر الشبكة (‪:)Resource‬‬


‫هي جميع المكونات المادية (الطابعات) أو البرمجية‬
‫( الملفات) التي يمكن أن يتشارك بها مستخدم شبكة الحاسب‪.‬‬

‫‪6‬‬
‫أنواع الشبكات حسب المكونات‬

‫‪ .1‬شبكة النظير ‪: Peer To Peer Network‬‬

‫كل جهاز في هذه الشبكة يستطيع االستفادة‬


‫من موارد الجهاز اآلخر سواء المكونات المادية‬
‫أو البرمجية ‪ ,‬غالبا تستخدم هذه الشبكات في‬
‫الشركات لنقل الملفات أو المستندات من جهاز إلى‬
‫آخر‪.‬‬

‫‪7‬‬
‫أنواع الشبكات حسب المكونات‬

‫‪ .2‬شبكة الخادم و العميل‬


‫‪Server/Client Network‬‬
‫في هذا النوع من الشبكات يكون هناك جهاز‬
‫واحد يسمى الخادم هو المتحكم في الشبكة‬
‫والمسئول عن الحماية والمهام اإلدارية و‬
‫منح خواص المشاركة المادية أو‬
‫البرمجية للمستخدمين‪.‬‬

‫‪8‬‬
‫بروتوكوالت الشبكة ‪OSI Model -‬‬

‫• ‪ OSI‬هي اختصار لـ ‪Open System Interconnect‬‬


‫هي الطريقة التي بها تستطيع أن تفهم كيفية نقل البيانات عبر الشبكات‬
‫• يتكون نموذج ‪ OSI‬من سبع طبقات‬
‫• يؤمن هذا التقسيم للطبقات إمكانية االتصال بين أجهزة بأنظمة تشغيل مختلفة مثل ‪Linux‬‬
‫مم تتكون ‪OSI‬‬
OSI ‫طبقات‬

Physical Layer (1
Data Link Layer (2
Network Layer (3
Transport layer (4
Session Layer (5
Presentation Layer (6
Application Layer (7
‫‪Physical Layer - 1‬‬

‫• هي الطبقة أو الجزء الذي يهتم بتسجيل بيانات االتصال الخاص بالـ ‪ Hardware‬مثل‬
‫نوع البطاقة وعد الـ ‪ Pins‬وغير ذلك‬
‫• تحوي أيضا ً معلومات التشبيك المختلفة أي طبولوجيا الشبكات وتتمثل في‬
‫‪(Star, Ring, Mesh, and Bus) Topologies‬‬
‫• األجهزة التي تعمل على هذه الطبقة‬
‫‪NIC , Transceivers , Repeaters – Hubs‬‬
‫‪Data Link Layer - 2‬‬

‫• تقوم بتحويل البيانات واستالمها من ‪ Physical Layer‬وتحويلها إلى (بنية منطقية)‬


‫• تحوي اسم الكمبيوتر والبيانات المرسلة وأيضا ً تنتظر كود ‪ACK‬‬
‫• وتتكون هذه الطبقة من قسمين هامين هما ‪:‬‬
‫– ‪LLC Logical Link Control‬‬
‫– ‪MAC Media Access Control‬‬
‫• األجهزة التي تعمل في هذه الطبقة‬
‫‪Bridge , Switch , NIC‬‬
‫‪Network Layer - 3‬‬

‫في هذه الطبقة يتم تحويل األسماء المنطقية لألجهزة إلى عناوين فيزيائية‬ ‫•‬
‫أيضا ً هناك خدمة تدعى ‪ Quality Of Service‬تعمل على هذه الطبقة وهي مسؤولة‬ ‫•‬
‫عن عدم حدوث تأخير في بعض الخدمات على الشبكة مثل الصوت والفيديو‬
‫أيضا ً مهام التوجيه ‪ Routing‬تتم في هذه الطبقة‬ ‫•‬
‫األجهزة التي تعمل على هذه الطبقة‬ ‫•‬
‫‪Routers , Layer 3 Switches‬‬
‫‪Transport layer - 4‬‬

‫• مسؤولة عن التأكد من نقل البيانات دون حدوث أخطاء‬


‫• تقسم الرسائل الكبيرة إلى عدة رسائل صغيرة وأيضا ً العكس تحول األجزاء الصغيرة من‬
‫الرسالة إلى رسالة طويلة مرة أخرى‬
‫• مسؤولة عن التحقق من وصول البيانات بشكل صحيح عن طريق ما يسمى ‪ ACK‬أي‬
‫التحقق من الوصول أو إشعار االستالم‬
‫‪Session Layer - 5‬‬

‫• يتم فيها يتم االتصال المباشر ما بين الجهازين حيث يتم التأكد من رقم الجهاز وعنوانه‬
‫وهل تم إرسال المعلومات أم ال؟‬
‫• وأيضا ً كلمات السر وتأمين البيانات يتم هنا في هذه الطبقة وأي عملية يتم فيها التأكد من‬
‫المعلومات تتم هنا أيضا ً‬
‫‪Presentation Layer - 6‬‬

‫• كما هو واضح من المعنى تقديم الـ ‪ Data‬وتهيئتها للتبادل‬


‫• حيث يتم تشفير البيانات أو حتى ضغط للبيانات‬
‫‪Application Layer - 7‬‬

‫• هي أعلى طبقة وهي ال تعني الـ ‪ Applications‬كبرنامج‬


‫الـ ‪ Word‬والـ ‪ Access‬بقدر ما تعني الـ ‪ Application‬المسؤول عن تنفيذ األمر‬
‫المتعلق بالشبكة الذي يطلبه برنامج‬
‫مثل الـ ‪Word‬‬
‫• مثالً عندما تقوم بفتح برنامج عبر الشبكة فأنه يستخدم بعض األدوات التي ال تراها‬
‫تسمى ‪ Tools‬وهي المقصودة في المعنى‬
‫• وتتضمن أيضا ً الطباعة والرسائل وال تقتصر على ذلك بل تتعداه‬
‫البوتوكوالت‬
‫ر‬

‫• البروتوكوالت هي أساليب التخاطب أو تقنيات التخاطب ما بين األجهزة على الشبكة أو‬
‫بين الشبكات المختلفة‬
‫• تنقسم البروتوكوالت إلى قسمين ‪:‬‬
‫– بروتوكوالت االتصال ‪ Connection Oriented :‬وهي بروتوكوالت تقوم بإجراء االتصال‬
‫المباشر بين أجهزة الشبكة ‪ .‬و من أشهرها بروتوكول ‪TCP‬‬
‫– بروتوكوالت عديمة االتصال ‪ Connectionless :‬وهي بروتوكوالت ال تسمح باالتصال المباشر‬
‫مع الكمبيوتر ‪ .‬ويعد بروتوكول ‪ IP‬هو أشهر تلك البروتوكوالت ‪.‬‬
‫‪TCP/IP‬‬

‫• هو اختصار ‪Transfer Control Protocol/Internet Protocol‬‬


‫• حقيقة هو ليس برتوكول في حد ذاته أكثر منه مجموعة من األدوات وهو األكثر‬
‫استخداما في اإلنترنت ويستخدم للربط والتخاطب ما بين األجهزة عبر الشبكة المحلية‬
‫وأيضا ً عبر اإلنترنت وهو البروتوكول األكثر استخداما ً وشيوعا ً‬
‫‪Transmission Control Protocol TCP‬‬
‫• هو الجزء المسؤول عن نقل البيانات والربط ويقسم هذا الجزء البيانات إلى أجزاء‬
‫صغيرة للتعامل معها تسمى هذه األجزاء ‪ Datagram‬الذي يحوي على معلومات عن‬
‫المكان الذي سوف ترسل له البيانات وعنوان المرسل وأيضا ً رقم ميز للـ ‪datagram‬‬
‫هذه البيانات تسمى الـ ‪Header‬‬
‫• كما تحتوي على ما يسمى ‪ Checksum‬للتأكد من وصول البيانات إلى النقطة المرسل‬
‫إليها البيانات والشكل التالي يوضح أهم مكونات ‪ datagram‬في الـ ‪TCP‬‬
‫‪Internet Protocol IP‬‬

‫• هو المسؤول عن نقل البيانات من نقطة إلى نقطة أخرى على الشبكة وهو ال يحمل أو‬
‫يحوي أي نوع من البرمجيات الخاصة باالتصال لكنه يعتمد كليا ً على الـ ‪ TCP‬ولكنه‬
‫فقط يقوم بعمليتي ‪ Route‬توجيه أو نقل للمعلومات و ‪( Packaging‬تشطير الرزم‬
‫وإعادة الرزم)‬
‫• ودائما يكون الـ ‪ Header‬الخاص بـ ‪ IP‬متصالً بالـ ‪ Header‬الخاص بـ ‪TCP‬‬
‫• من دون الـ ‪ Header‬الخاص بـ ‪ IP‬لن تتم معرفة وجهة الـ ‪ DataGram‬أو لن يتم‬
‫عمل توجيه لها‬
‫• فالتوجيه ‪ Routing‬يقوم بفحص العنوان الموجود على الرزمة الـ ‪ Packet‬ويعطيه‬
‫تصريح تجول في أرجاء الشبكة‬
‫وهذا التصريح له مدة محددة ‪ TIME TO LIVE‬فإذا انتهت هذه الفترة الزمنية فقدت‬
‫تلك الرزمة ولم تعد تسبب ازدحام داخل الشبكة‬
‫• وعمليه الـ تشطير الرزم وإعادة الرزم ‪Packaging‬‬
‫تستخدم في التوليف بين بعض أنواع الشبكات المختلفة مثل شبكة الـ ‪Token Ring‬‬
‫و ‪Ethernet‬‬
‫بسبب ما لشبكة الـ ‪ Token Ring‬من سعة في نقل اإلشارات لذلك وجب تشطيرها ثم‬
‫إعادة تجميعها مره أخرى‬
‫عنوان الشبكة ‪IP‬‬

‫• الرقم المميز لكل جهاز على الشبكة وإذا استخدمت بروتوكول ‪ TCP/IP‬فهذا يحتم‬
‫عليك أن يكون هناك رقم مميز لكل جهاز على الشبكة‪.‬‬
‫• هناك نوعان أو إصداران من الـ ‪ IP‬هما ‪ IPv4‬و ‪IPv6‬‬
‫امثلة لبعض بروتوكوالت الشبكة‬

SNMP •
FTP •
TFTP •
SMTP •
POP •
IMAP •
Telnet •
ICMP •
HTTP •
ARP •
NTP •
UDP •
‫‪1 – SNMP‬‬
‫‪Simple Network Management Protocol‬‬

‫• ويستخدم هذا البروتوكول من قبل مديري الشبكة لمعرفة‬


‫معلومات إضافية عن الشبكة وأيضا ً األجهزة الموجودة‬
‫على الشبكة كالمبدالت ‪ Switches‬ومرشدات المسار‬
‫‪ Routers‬وأية أجهزة أخرى‬
‫‪2 – FTP‬‬
‫‪File Transfer Protocol‬‬

‫• هو أداة مهمة جدا ً لنقل الملفات عبر الشبكة وما بين األجهزة التي تدعم هذه التقنية والتي‬
‫تسمى ‪FTP Servers‬‬
‫وبالتأكيد إذا كنت تتعامل مع مواقع اإلنترنت فقد سمعت بهذا البروتوكول‬
3 – TFTP
Trivial File Transfer Protocol

‫ لألجهزة التي ال يوجد بها‬Boot Image ‫ تستخدم لنقل الـ‬FTP ‫• نسخة مصغرة من‬
Boot Disk
Routers ‫وأيضا ً من وإلى الـ‬
‫‪4 – SMTP‬‬
‫‪Simple Mail Transfer Protocol‬‬

‫• المسؤل عن نقل الرسائل اإلليكترونية عبر الشبكة ومن جهاز إلى جهاز آخر وهو‬
‫المسؤل عن اإلرسال الخاص بالـ ‪Emails‬‬
‫‪9 – HTTP‬‬
‫‪Hypertext Transfer Protocol‬‬

‫• وهو وسيلة التخاطب ما بين األجهزة والـ ‪Web Servers‬‬


‫والمستخدم في فتح المواقع على الـ ‪Internet Browser‬‬
‫‪PORTS and Sockets‬‬

‫في شبكات ‪ TCP/IP‬تنتقل المعلومات من الـ ‪ Port‬في الكمبيوتر‬ ‫•‬


‫المرسل للمعلومة إلى الـ ‪ Port‬في الكمبيوتر المستقبل للمعلومة حسب‬
‫رقم الـ ‪( Port‬المنفذ) والبرنامج الذي يستخدمه هذا المنفذ‬
‫كل برنامج له منفذ معين يعمل عليه في االتصال‬ ‫•‬
‫كل منفذ عبارة عن رقم ‪ 16bit‬وبالتالي تأخذ قيما ً من صفر حتى‬ ‫•‬
‫‪65535‬‬
‫هذه المنافذ تقسم إلى ‪ TCP Ports‬و ‪ UDP Ports‬حسب‬ ‫•‬
‫البروتوكول الذي يعمل عليه المنفذ‬
‫جميع المخدمات التي تتصل على خدمة ‪ Telnet‬تستخدم الـ ‪Port‬‬ ‫•‬
‫‪ 23‬وهو ‪TCP Port‬‬
‫جميع مخدمات الوب تعمل على المنفذ ‪80‬‬ ‫•‬
‫• المداخل ‪SOCKETS‬‬
‫هي عبارة عن تطبيقات جزئية مسؤولة عن السماح بالدخول إلى معظم‬
‫األنظمة من خالل بروتوكول ‪ ،TCP/IP‬الذي ال يستخدم فقط للدخول‬
‫إلى االنترنيت‪ ،‬وإنما يستخدم أيضا ً على نطاق واسع لبناء الشبكات‬
‫الخاصة‪.‬‬
‫وقد تكون هذه الشبكات الخاصة مرتبطة باالنترنيت‪ ،‬وقد ال تكون‬
‫مرتبطة بأي شبكة أخرى‬
‫ونسمي الشبكة الخاصة التي تستخدم بروتوكول ‪TCP/IP‬وبرمجيات‬
‫االنترنيت‪ ،‬بشبكات انترانيت‬
‫التعرف عىل بيئة دوت نت‬
‫التعرف على بيئة دوت نت‬

‫بيئة دوت نت‬


‫هى بيئة لتطوير تطبيقات تستطيع ربط نظم ومعلومات و اجهزه و مستخدمين فى‬
‫إطار موحد و مخصص‬

‫‪36‬‬
‫التعرف على بيئة دوت نت‬

‫إطار عمل الدوت نيت‪Dot Net FrameWork :‬‬

‫يعتبر إطار العمل قلب بيئة الدوت نت وهو إطار برمجي من مايكروسوفت لتشغيل‬
‫البرامج‪ ،‬يمكن تثبيته على أجهزة الكمبيوتر التي تعمل بأنظمة تشغيل مايكروسوفت‬
‫ويندوز‪.‬‬

‫إطار العمل يحتوى على مكونين رئيسيين‪:‬‬

‫اختصارا ‪CLR.‬‬
‫ً‬ ‫‪.1‬بيئة التنفيذ المشتركة ‪Common Language Runtime‬وتُدعى‬

‫اختصارا‬
‫ً‬ ‫‪.2‬مكتبة أصناف إطار العمل ‪Framework Class Library‬وتُدعى‬
‫‪FCL.‬‬

‫‪37‬‬
‫التعرف على بيئة دوت نت‬

‫بيئة التنفيذ المشتركة ‪CLR‬‬

‫• هي البيئة التي تنفّذ البرامج المكتوبة بلغات دوت نت‪ ،‬وتش ّكل حاضنةً لهذه البرامج‬
‫من خالل عزلها عن العتاد الصلب ‪hardware‬للجهاز التي تعمل عليه‪.‬‬

‫• تتوفّر ‪CLR‬بشكل افتراض ّ‬


‫ي على معظم أنظمة تشغيل ويندوز (مع االختالف‬
‫باإلصدارات) مثل ‪Windows XP‬و ‪Windows 7‬و ‪Windows 8‬و‬
‫‪Windows 10‬و ‪Windows Phone‬و ( ‪Windows Server‬بمعظم‬
‫إصداراته)‪.‬‬

‫‪38‬‬
‫التعرف على بيئة دوت نت‬

‫مكتبة أصناف إطار العمل ‪FCL‬‬

‫• تحتوي هذه المكتبة الضخمة على آالف األصناف ‪classes‬التي تسمح لنا بإنجاز‬
‫ي مه ّمة تخطر ببالنا‪ .‬فمن التعامل مع النصوص والتعابير النظاميّة ‪regular‬‬
‫أ ّ‬
‫‪expressions‬إلى التعامل مع االتصاالت الشبكيّة ‪network‬‬
‫‪communications‬والتعامل مع بروتوكوالت االنترنت الشهيرة مثل ‪HTTP‬‬
‫و ‪FTP‬وغيرها‪ ،‬والوصول إلى قواعد البيانات والتعامل معها‪.‬‬

‫‪39‬‬
‫التعرف على بيئة دوت نت‬

‫اللغة الوسطية لميكروسوفت ‪MSIL‬‬


‫لغة ‪ MSIL‬وكما تعرف أيضا باالختصار ‪ ، IL‬وهي اختصار لـ ‪Microsoft‬‬
‫‪ ،Intermediate Language‬وهذه اللغة باختصار هي لغة الدوت نت‬
‫األساسية ‪ ،‬لكنها ليست مقدمة لك كمبرمج بشكل مباشر لكنها تقدم لك بشكل غير‬
‫مباشر عبر احدى اللغات في الدوت نت مثل ‪ Visual Basic .net‬و ‪C#‬‬
‫وغيرها فهذه اللغات ما هي اال واجهات برمجية لهذه اللغة األساسية ‪ ،‬وكل البرامج‬
‫والتطبيقات التي تكتبها بأي لغة في الدوت نت يتم ترجمتها إلى هذه اللغة ومن ثم يتم‬
‫ترجمتها الى لغة اآللة ‪ Machine Language‬التي يفهمها جهاز الكمبيوتر ‪.‬‬

‫‪40‬‬
‫مفاهمي الربجمة ‪ -‬لغة اليس شارب‬
‫مفاهيم البرمجة ‪ -‬لغة السي شارب‬

‫ما هي لغة سي شارب؟‬ ‫•‬


‫أنواع البيانات و تعريف المتغيرات‬ ‫•‬
‫العمليات الحسابيـة و المنطقية‬ ‫•‬
‫جمل االختيار (… ‪)if ,if.. else,‬‬ ‫•‬
‫جمل الدوران‪/‬التكرار (‪)while, do.. While, ..‬‬ ‫•‬
‫المصفوفات‬ ‫•‬
‫تعريف الدوال و استدعاءها‬ ‫•‬

‫‪42‬‬
‫ما هي لغة سي شارب؟‬

‫تعتبر لغة سي شارب ‪ C#‬من أحدث لغات البرمجة والتي تم تطويرها من‬ ‫•‬
‫بمعرفة شركة ‪ Microsoft‬والتي صممت خصيصا ً لبيئة ‪. NET.‬‬
‫و ترجع قوتها في أنها مستمدة من أكثر لغات البرمجة قوة وانتشارا ً مثل ‪C,‬‬ ‫•‬
‫‪. C++, Java‬‬
‫قائمة بشكل كامل على مفاهيم البرمجة الشيئية‪ ,‬وتدعم البرمجة المرئية بحيث‬ ‫•‬
‫يمكن عمل البرامج بسهولة وسرعة‪.‬‬
‫استمدت الكثير من مزايا بيئة ‪ NET .‬مثل العمل على العديد من بيئات العمل‬ ‫•‬
‫مثل تطبيقات المحمول و الحاسوب‪.‬‬

‫‪43‬‬
‫أنواع البرامج التي يمكن كتابتها بلغة ‪C#‬‬

‫• ‪ : Console Applications‬وهييي عبييارة عيين بييرامج تعمييل داخييل نافييذة‬


‫‪ Console‬وهي موجه ‪ MS-DOS‬وال تسمح إال بيإخرا النتيائج عليى هيئية‬
‫نصوص فقط (وهي التي سيتم استخدامها خالل هذا المساق فقط)‪.‬‬
‫• ‪ :Windows Applications‬وهييي التييي تسييتخدم أكثيير ميين نافييذة إلخييرا‬
‫البيانات كما أنها تستخدم واجهة المسيتخدم الرسيومية وتسيتطيع التعاميل ميع كثيير‬
‫ميين وحييدات اإلدخييال واإلخييرا ‪ .‬و هييي تسييتخدم فييي مسيياق البرمجيية المرئيييـة و‬
‫المتقدمة‪.‬‬

‫‪44‬‬
‫أنواع البرامج التي يمكن كتابتها بلغة ‪C#‬‬

‫• ‪ :Mobile Applications‬وهي عبارة عن برامج تعمل في بيئية األجهيزة‬


‫المحمولة (الجوال) والتي تمكن المستخدم من االستفادة منها في أي وقت وفي أي‬
‫مكان‪ ,‬كما تدعم بعض المزايا الخاصة باألجهزة المحمولة‪.‬‬
‫• ‪ :ASP .NET Web Applications‬وهي اإلصدار األحدث من ‪ASP‬‬
‫المسيييتخدمة حالييييا ً لكتابييية تطبيقيييات االنترنيييت والتيييي تتمييييز بأنهيييا ال تحتيييا إليييى‬
‫متطلبييات سييابقة فقييط إلييى متصييفح‪ .‬كمييا يمكيين الوصييول إليهييا بسييهولة إذا اتصييلنا‬
‫باالنترنت‪.‬‬

‫‪45‬‬
‫أنواع البيانات و تعريف المتغيرات‬

‫• تحتيوي لغية ‪C #‬عليى مجموعية مين األنيواع األساسيية للبيانيات‪ ,‬وتسيتخدم هيذه‬
‫األنييواع للتعبييير عيين البيانييات التييي تخييزن فييي المتغيييرات‪ ,‬وتعتبيير ه يذه األنييواع‬
‫كلمات محجوزة‪ ,‬ويمكن تقسيم هذه األنواع إلى مجموعات‪:‬‬
‫القيم المنطقية ‪bool :‬‬ ‫✓‬
‫األحرف‪char :‬‬ ‫✓‬
‫‪byte, short, ushort, int, uint,‬‬ ‫األعداد الصحيحة‪long, ulong :‬‬ ‫✓‬
‫األعداد العشرية‪float, double :‬‬ ‫✓‬
‫النصوص‪string :‬‬ ‫✓‬

‫‪46‬‬
‫أنواع البيانات و تعريف المتغيرات‬

‫‪ ‬تعريف المتغيرات في لغة ‪C#‬‬


‫;‪int x = 5, y = 9‬‬
‫;‪int x = 5‬‬
‫;‪int y = 9‬‬

‫‪47‬‬
‫أنواع البيانات و تعريف المتغيرات‬

‫• و للتحويل بين األنواع و بعضها نستخدم الطريقة التالية‬

‫‪x = (int) y‬‬

‫المتغير الذي‬ ‫النوع المراد‬ ‫المتغير المراد‬


‫سيحتوي القيمة‬ ‫التحويل له‬ ‫تحويل نوعه‬
‫الجديدة بعد التحويل‬

‫‪48‬‬
‫العمليات الحسابيـة و المنطقية‬

‫الرمز‬ ‫العملية‬
‫الجمع‬
‫الطرح‬
‫الضرب‬
‫القسمة‬
‫بااااااااااااا ي القساااااااااااامة‬
‫)‬ ‫(‬

‫‪49‬‬
‫العمليات الحسابيـة و المنطقية‬

‫عمليات التساوي‬ ‫استخدامها‬


‫==‬ ‫التحقق من تساوي القيم‬
‫=!‬ ‫التحقق من عدم تساوي القيم‬

‫عمليات المقارنة‬ ‫استخدامها‬


‫التحقق من أن القيمة اليسرى أقل من القيمة اليمنى‬
‫التحقق من أن القيمة اليسرى أكبر من القيمة اليمنى‬
‫التحقق من أن القيمة اليسرى أكبر من أو تساوي القيمة اليمنى‬
‫التحقق من أن القيمة اليسرى أصغر من أو تساوي القيمة اليمنى‬

‫‪50‬‬
‫العمليات الحسابيـة و المنطقية‬

‫العمليات المنطقية‬ ‫استخدامها‬


‫وتستخدم للربط بين جملتين‬ ‫عملية‬
‫وتستخدم للربط بين جملتين‬ ‫عملية‬
‫وتستخدم مع جملة واحدة فقط‬ ‫عملية‬

‫‪51‬‬
‫جمل االختيار‬

✓If
✓If … else
✓ nested if
✓Switch

52
‫جمل االختيار‬

‫كيفية كتابة جملة ‪if‬‬

‫)الشرط( ‪if‬‬
‫;عملية واحدة‬

‫)الشرط( ‪if‬‬
‫{‬
‫مجموعة من العمليات‬
‫}‬

‫‪53‬‬
‫جمل االختيار‬

‫كيفية كتابة جملة ‪if … else‬‬


‫)الشرط( ‪if‬‬
‫;عملية واحدة‬
‫‪else‬‬
‫;عملية أخرى‬
‫)الشرط( ‪if‬‬
‫{‬
‫مجموعة من العمليات‬
‫}‬
‫‪else‬‬
‫{‬
‫مجموعة أخرى من العمليات‬
‫}‬
‫‪54‬‬
‫جمل االختيار‬

‫كيفية كتابة جملة ‪ if‬المتداخلة‬


‫)شرط خارجي‪if (1‬‬
‫{‬
‫)شرط داخلي‪if (1‬‬
‫{‬
‫)شرط داخلي ‪if (2‬‬
‫{‬
‫جمل تنفذ عند تحقق الشرط االول و الثاني و الثالث‬
‫}‬
‫‪else‬‬
‫{‬
‫جمل تنفذ عند عدم تحقق الشرط الثالث و تحقق الشرط االول و الثاني‬
‫}‬
‫}‬
‫}‬
‫‪else‬‬
‫{‬
‫جمل تنفذ عند عدم تحقق الشرط االول‬
‫}‬ ‫‪55‬‬
‫جمل االختيار‬
‫)‪switch (x‬‬
‫{‬
‫‪case 1 :‬‬ ‫كيفية كتابة جملة ‪switch‬‬
‫جمل برمجية تنفذ في حال كانت ‪ = x‬الحالة ‪1‬‬
‫;‪break‬‬
‫‪case 2 :‬‬
‫جمل برمجية تنفذ في حال كانت ‪ = x‬الحالة ‪2‬‬
‫;‪break‬‬ ‫المتغير من الممكن‬
‫‪case 3 :‬‬ ‫أن يكون من النوع‪:‬‬
‫جمل برمجية تنفذ في حال كانت ‪ = x‬الحالة ‪3‬‬
‫;‪break‬‬
‫‪default :‬‬
‫جمل برمجية تنفذ في حال كانت ‪ x‬ال تساوي إي‬
‫حالة من الحاالت السابقة‬
‫;‪break‬‬
‫}‬
‫‪56‬‬
‫مثال ‪ :1‬جمل االختيار‬

‫• أكتب برنامج يقوم بقراءة معدل طالب و يقارنه بدرجة النجاح و هي ‪ 50‬فما‬
‫فوق ‪ ,‬فإن كان يساويها او أكبر اكتب ناجح و إال يكتب راسب‪.‬‬
‫‪Start‬‬

‫‪Read‬‬
‫‪mark‬‬

‫‪false‬‬
‫‪true‬‬
‫‪Mark >= 50‬‬

‫‪Print‬‬ ‫‪Print‬‬
‫”‪“Passed‬‬ ‫”‪“Passed‬‬

‫‪Stop‬‬
‫‪57‬‬
‫ جمل االختيار‬:1 ‫مثال‬
1 using System;
2 class Marks_using_if_else
3 {
4 static void Main()
5 {
6 int mark;
7 String input;
8 Console.Write("Enter the mark: ");
9 //Read mark
10 input = Console.ReadLine();
11 mark = int.Parse(input);
12 //check the mark
13 if (mark >= 50)
14 Console.WriteLine("Passed");
15 Else
16 Console.WriteLine("Failed");
17 } }
58
‫مثال ‪ :2‬جمل االختيار‬

‫أكتب خوارزمية و برنامج يقوم بقراءة معدل طالب و يقارنه بالقيم التالية‪:‬‬ ‫•‬
‫طباعة " – "‪Excellent‬أي ممتاز – إذا كانت العالمة أكبر من أو تساوي ‪.85‬‬ ‫•‬
‫طباعة " – "‪Very Good‬أي جيد جدا ً – إذا كانت العالمة أكبر أو تسياوي ‪75‬‬ ‫•‬
‫وفي نفس الوقت أقل من ‪.85‬‬
‫طباعية " – "‪Good‬أي جييد – إذا كانيت العالمية أكبير مين أو تسياوي ‪ 65‬وفيي‬ ‫•‬
‫نفس الوقت أقل من ‪.75‬‬
‫طباعة " "‪Passed‬إذا كانت أكبر من أو تساوي ‪ 50‬وفيي نفيس الوقيت أقيل مين‬ ‫•‬
‫‪.65‬‬
‫وطباعة " "‪Failed‬إذا كانت أقل من ‪.50‬‬ ‫•‬

‫‪59‬‬
‫ جمل االختيار‬:2 ‫مثال‬

Start

Read
p, q

false true
Mark >= 85

Print
“Excellent”
false true
Mark >= 75

Print
false true “Very Good”
Mark >= 65

Print
false “Good”
true
Mark >= 50

Print Print
“Passed” “Passed”

60
Stop
‫ جمل االختيار‬:2 ‫مثال‬
1 static void Main()
2 {
3 int mark;
4 string input;
5 Console.Write("Enter the mark: ");
6 //Read mark
7 input = Console.ReadLine();
8 mark = int.Parse(input);
9 //check the mark
10 if (mark >= 85)
11 Console.WriteLine("Excellent");
12 else if (mark >= 75)
13 Console.WriteLine("Very Good");
14 else if (mark >= 65)
15 Console.WriteLine("Good");
16 else if (mark >= 50)
17 Console.WriteLine("Passed");
18 Else
19 Console.WriteLine("Failed");
61
20 } }
‫جمل الدوران‬

✓ while
✓ do… while
✓ for
✓ For each

62
‫جمل الدوران‬

‫الجمل االبتدائية‬
‫شرط التكرار‬
‫عملية واحدة لتكرارها‬

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

‫‪63‬‬
‫جمل الدوران‬

‫الجمل االبتدائية‬

‫عملية واحدة لتكرارها‬


‫شرط التكرار‬
‫الجمل االبتدائية‬

‫انتبه في حال كان هناك أكثر من جملة‬ ‫مجموعة من العمليات لتكرارها‬


‫نريد تنفيذها في كل دورة البد ان‬
‫نضعهم جميعا بين قوسين‬ ‫شرط التكرار‬

‫‪64‬‬
‫جمل الدوران‬

‫جمل يتم تنفيذها‬

‫علما بأن‪:‬‬
‫المتغير ‪ : i‬يحتوي على قيمة بدائيـة قد تكون كبيرة أو صغيرة‬
‫العدد ‪ :100‬هو قيمة الحد األقصى الذي سيصل له التكرار و بعده سيتوقف و هو ليس‬
‫رقم ثابت‬
‫شرط المقارنة‪ :‬البد ان يكون منطقيا صحيحا حتى ينتهي التكرار عند حد معين و ال‬
‫يكون ال نهائي‬
‫‪ : i++‬شرط تغيير قيمة المتغير قد يكون بالزيادة او النقصان‪ ,‬و قد تكون الزيادة ‪ 1‬او‬
‫حسب معادلة أخرى‬
‫‪65‬‬
‫مثال ‪ :3‬جمل الدوران‬

‫• اكتب برنامج لحساب مضروب العدد ‪ 10‬باستخدام جمل الدوران المختلفة‪.‬‬

‫)‪static void Main(string[] args‬‬


‫{‬
‫;‪int fact = 1‬‬

‫)‪for (int i = 1; i <= 10; i++‬‬


‫;‪fact = fact * i‬‬
‫;)‪Console.WriteLine("fact of 10 is" + fact‬‬
‫;)(‪Console.Read‬‬

‫}‬ ‫تمرين ذاتي ‪ :‬قم بحل المثال بالطرق األخرى‬


‫‪66‬‬
‫المصفوفات‬

‫اسم المصفوفة (كما تالحظ‬


‫جميع عناصر المصفوفة لها‬
‫ذات االسم وهو ‪)c‬‬

‫رقم المكان في المصفوفة‬


‫و يسمى (‪ )index‬أو‬
‫(‪)subscript‬‬

‫‪67‬‬
‫المصفوفات‬

‫المصفوفة أحاديـة األبعاد‬

‫;] ‪type[] array_name = new type[ x‬‬

‫نوع العناصر التي‬ ‫عدد العناصر التي نريد‬


‫ستحجز في الذاكرة‬ ‫حجزها في الذاكرة‬

‫;‪type [] array_name‬‬
‫;] ‪array_name = new type[ x‬‬

‫‪68‬‬
‫المصفوفات‬

‫المصفوفة ثنائيـة األبعاد‬

‫;] ‪type[] [] array_name = new type[ x ][ y‬‬

‫التي نوع العناصر‬ ‫عدد الصفوف‬ ‫عدد األعمدة‬


‫ستحجز في الذاكرة‬

‫;‪type [][] array_name‬‬


‫;] ‪array_name = new type[ x ][ y‬‬

‫‪69‬‬
‫تعريف الدوال و طريقة استدعاءها‬

‫)‪return_type function_name (parameters type para_name‬‬


‫{‬
‫الكود‬
‫;‪Return_type‬‬
‫}‬

‫متغير له نفس النوع‬ ‫اسم الدالة‬ ‫اسم القيم و أنواعها التي‬


‫المحدد‬ ‫تحتاج لها الدالة للعمل‬
‫في تعريف الدالة‬

‫‪70‬‬
‫البرمجة المرئية‬

‫هي برمجة ذات تصميم مرئي وواجهة رسومية تسمح بالبرمجة‬


‫بواسطة التعبيرات البصرية‪.‬‬

‫‪71‬‬
‫البرمجة المرئية‬
‫أهم أدوات البرمجة المرئية‬
‫زر أمر عادي ‪ ،‬يحتوي على بعض الخصائص مثل‪:‬‬ ‫‪Button‬‬
‫تحديد مظهر زر األمر‪FlatStyle: .‬‬
‫موضع النص من زر األمر‪TextAlign: .‬‬

‫زر االختيار المتعدد ‪ ،‬يمكننا اختيار عدة عناصر‬ ‫‪CheckBox‬‬

‫مثل السابق ولكنه يسمح لك باختيار واحد‬ ‫‪RadioButton‬‬

‫ائمة لالختيار من ضمن خيارات في صف واحد‬ ‫‪ComboBox‬‬

‫‪72‬‬
‫البرمجة المرئية‬

‫أدوات البرمجة المرئية‬


‫ائمة لالختيار من ضمن خيارات ‪ ،‬حسب الحجم المطلوب‪.‬‬ ‫‪ListBox‬‬

‫أداة نصية تسمح للمستخدم بالكتابة داخلها‬ ‫‪Textbox‬‬

‫أداة لعرض النصوص‬ ‫‪Label‬‬

‫‪73‬‬
‫هيالشيئية‬
‫البرمجة الشيئية ؟‬ ‫البرمجة‬
‫ما‬
‫✓ البرمجة الشيئية أو البرمجة كائنيه التو ُّجه‪Object-oriented programming -‬‬
‫ويطلق عليها أحيانا اسم ‪:‬برمجة كائنيه المنحى‪ ،‬أو برمجة شيئية أو برمجة موجهة نحو‬
‫الكائنات (أو العناصر)‪ .‬وهي عبارة عن نمط برمجة متقدم‪ ،‬وفيه يقسم البرنامج إلى‬
‫وحدات تسمى الكائنات )‪ ، (Objects‬كل كائن عبارة عن حزمة (تعليب) من البيانات‬
‫(المتغيرات والثوابت(والدوال ووحدات التنظيم وواجهات االستخدام‪.‬‬

‫كل شيء عبارة عن كائن‪Every things is an Object‬‬


‫هذه القاعدة تعني ان كل شيء تراه في حياتك هو عبارة عن كائن مثل ‪ :‬السيارة ‪ ،‬جهاز‬
‫الكمبيوتر ‪ ،‬اإلنسان ‪ ،‬الهاتف المحمول ‪ . . .‬الخ ‪ ،‬وال بد ان كل كائن‬
‫له خصائص و افعال ‪ ،‬لنأتي بأبسط الكائنات هو السيارة لها خصائص مثل اللون ) احمر ‪،‬‬
‫اسود ‪ ،‬اخضر ) و من األفعال التي تقوم بها الحركة‪.‬‬
‫هيالشيئية‬
‫البرمجة الشيئية ؟‬ ‫البرمجة‬
‫ما‬
‫مثال آخر عن الهاتف المحمول‬

‫فالهاتف ايضا ً له خصائص مثل اللون ‪ ،‬الشركة المصنعة ‪ ،‬الحجم و الوزن ‪ ،‬وكذلك ايضا ً له افعال يقوم بها‬
‫مثل االتصال ‪ ،‬طع اإلتصال ‪ ،‬تخزين المعلومات و تشغيل التطبيقات ‪ ،‬كذلك يمكن تطبيق هذه القاعدة على‬
‫جميع الكائنات من حولك‪.‬‬
‫هيالشيئية‬
‫البرمجة الشيئية ؟‬ ‫البرمجة‬
‫ما‬
‫وفي لغة البرمجة التي تتبع نظام البرمجة الكائنية ال يخلو اي ‪Class‬من هذه الخصائص و األفعال فتطبق‬
‫عليه قاعدة ) كل شيء عبارة عن كائن وكل كائن له خصائص وافعال (ولكن بإختالف‬
‫المسميات فترجمة كلمة خصائص هي )‪ (Attributes‬و األفعال )‪(Actions‬‬

‫الصنف والكائن (‪)class and object‬‬


‫•الكائن )‪(Object‬‬
‫هو شيء له وجود‪ ،‬وعلى هذا فإننا نتعامل مع الكائنات بصورة دائمة في حياتنا اليومية‪.‬وهذه أمثلة على بعض‬
‫الكائنات ‪:‬القلم ‪,‬الهاتف المحمول ‪,‬جهاز الكمبيوتر…‬
‫والكائن الواحد )‪ (Object‬يمكن أن يتكون من عدد من الكائنات )‪(Objects‬‬

‫•الفئة )‪ (Class‬وهو نموذج الوحدة الرئيسية لبناء الـكائن )‪ (Object‬بمعنى أنه يتم تكوين أكثر من‬
‫كائن على أساس نموذج البناء األساسي وهو ‪ (Class),‬ويمكن تشبيه الكالس بالقالب الذي يقوم‬
‫بتشكيل الكائن ويمكن بعد ذلك استخدام هذا الكائن ألي غرض مطلوب‪.‬‬
‫‪Control Statements‬‬ ‫البرمجة الشيئية‬

‫مثال‬
‫الشيئية‬
‫البمجة الشيئية ؟‬
‫ه ر‬ ‫البرمجة‬
‫ما ي‬
‫بعض المفاهيم األساسية في البرمجة الشيئية‬
‫✓ هناك أربعة مفاهيم أساسية يتم من خاللها الوصول لمفهوم البرمجة الشيئية و هي موضحة‬
‫بالرسم التالي ‪...‬‬
‫البرمجة الشيئية‬

‫التغليف ‪Encapsulation‬مفهـــوم التغليـف‬

‫✓ التغليف (‪ :)Encapsulation‬هو عملية وضع الخصائص و العمليات ضمن وحدة‬


‫واحدة (‪ )Class‬فيتم اخفاء البيانات و الدوال و يُسمح بالوصول لهم بصالحيات معينة‪.‬‬
‫✓ و لذلك يسمى هذا المفهوم أيضـًا اخفاء البيانات (‪.)Data Hiding‬‬
‫البرمجة الشيئية‬

‫التجريــد ‪Abstraction‬‬

‫✓ مفهــوم التجريــد (‪ :)Abstraction‬هو عملة اخفــاء طريقة تطبيق العمل داخل‬


‫الـ‪ , Class‬فأنت تعلم أن السيارة تسير و لكنك ال ترى كيف تنتج هذه الحركة‪.‬‬
‫✓ فمثــال ‪ :‬عند النظر للسيارة ننتبـه فقط لـكونها سيــارة و إذا دققنا النظر ننتبه لـ ‪:‬‬
‫▪ اللون‬
‫▪ الشكل‬
‫▪ عدد األبواب‬
‫✓ و لكن ال يلفت انتباهنا كيفية سيرها و طريقة وصول الوقود للمحركات و طريقة‬
‫توقفها فهذا التعقيد كله ال نتعامل معه في حياتنا و بالتالي البرمجة الشيئية تتمتع بهذه‬
‫الميزة من خالل مفهوم ‪Abstraction‬‬
‫البرمجة الشيئية‬

‫التوراث ‪Inheritance‬‬

‫✓ مفهــوم التوراث هو مفهوم مشتق من علم الوراثة الموجود في الكائنات الحية ‪,‬‬
‫حيث أن االبن يرث صفات و مهارات معينة من أبويه و يظهر فيه صفات و‬
‫مهارات أخرى‪ ,‬و هذا األمر متوفر في البرمجة الشيئية مع بعض التغيير‪.‬‬

‫طالب‬

‫جامعي‬ ‫مدرسي‬

‫بكالوريوس‬ ‫دبلوم‬ ‫ابتدائي‬ ‫إعدادي‬ ‫ثانوي‬


‫البرمجة الشيئية‬

‫تعدد األشكال ‪Polymorphism‬‬

‫✓ مفهــوم تعدد األشكال (‪ :)Polymorphism‬هو درة المبرمج من خالل لغات‬


‫البرمجة التي تدعم الشيئية أن يُنتج عدد من الدوال التي يتم تطبيقها بشكل مختلف و‬
‫ذلك لمحاكاة الوا ع حيث أننا نقوم بحساب مساحة األشكال الهندسية و لكن كل مساحة‬
‫يتم حسابها بشكل مختلف‪.‬‬

You might also like