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

دورة للغه C# .Net 2005 من البداية حتى الاحتراف

مغلق
بدأه محـ جمال مـد في 3 أغسطس 2007 · 48 رد · 8,865 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

احببت ان انشئ في منتدانا الحبيب الفريق العربي للبرمجة دورة للغه C# يتم وضع دروسها بشكل مستمر نبدا من البداية لنصل الى مرحلة الاحتراف في هذا المجال

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

.net introduction (platform and frame work )

Basic c# programs

Value types in .net

Statements

Exceptions

Methods

Arrays and collections

Object oriented essentials

Inheritance in c#

Polymorphism

Indexes and properties

Operator overloading

Delegates and events

Attributes

Modules and assemblies

I/O

Serialization

Graphics

Threading

Application domain and services

Security , user and data security

Reflection

Instrumentation

Globalization

Interoperation

Mailing

Installing and configuring application

حيث من المفترض ان تكون بعد اكمال الدورة قادرا على التقدم لامتحان mcp من شركة مايكروسوفت للغه السي شارب

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

في كل موضوع سوف يتم تناول موضوعين او ثلاثة او ربما اربعه حسب حجم الموضوع ليتم شرحه هنا

فارجو من الله ان يوفقنا ويفقكم لما يحب ويرضى

وان يقدم لي العون الكافي لاقوم باكمال الدورة كاملة معكم

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

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

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#2

net introduction :platform and framework

سوف نقوم بداية بالقيام باعطاء مقدمة بسيطة عن بيئه الدوت نت ومحتوياتها

Platform : Operating System That Help The Programmer in The Programming

اي انها عمليات في النظام تساعد المبرمج في عملية البرمجة

Framwork 2.0 Componants

محتويات الفريم وورك الجديدة من مايكروسوفت

Compiler : Tools That convert the code to the source in system

اي ان الكومبايلر هو المترجم لاكواد السي شارب وهو الذي يقوم بارجاعها لمصدرها

وعملنا كله سوف يترجم على هذا الجزء من الفريم وورك

2- Base Class Library

وهي ال DLL التي توفر موارد النظام عند عملية تشغيل البرنامج سيتم شرحها بشكل مفصل في المراحل المتقدمة

3- CLR : Common language RunTime

وهو الذي ينظم العمليات في النظام

وسوف نشرحه بشكل مفصل والى ماذا ينقسم

a - Garbage Collection

b - multimedia Threading support

c - debbugar and exception Handler

a - وهو لعميات الحفظ في الذاكرة والذاكرة مقسمة الى قسمين

stack

heap

ال stack يقوم بحفظ اسماء المتغيرات ويقوم بربطها بقيمها التي في ال Heap

مثال

String Str = "Mr.Asp"

هنا سيتم حفظ المتغيير a في ال Stack

وقيمته mr.asp في ال heap

طبعا ال heap ما بعرف مكانها غير الله سبحانه وتعالى

يعني ما في رابط خاص للدخول اليها

طيب مثلا الان صار في عندنا معلومات بال heap وما في stack باشر عليها

رح يصير هون عندنا حجز من الرامات والميموري في الكمبيوتر

ورح يثقل بدون داعي

طيب كيف بدنا نحذف ال heap بدون ما نعرف مكانها ؟؟؟

هنا ياتي دور Gaebage Collection

حيث يقوم بفحص كافة heap ويرى اذا كان يوجد متغير بال stack يؤشر عليها يتركها اما

اذا كانت مقطوعه ولا يوجد اي شيئ يؤشر عليها فانه يقوم بحذفها بشكل فوري

b- دايما واحنا بنلعب العاب بنشوف مثلا في زلمى بمشي

او سيارة جايه

او مجموعه سيارات بتمشي او طيارات بنفس اللحظة

طيب كيف ال proccess قدر يشغل هالمجموعه مع بعضها مع انو ما بقدر يشغل الى process واحد بنفس الوقت

هنا ياتي دور ال mulitthreading

thread معناها بالاصل خيط

وهنا تستخدم لوصل شيئ بشي مثلا

يمكن تقسيم المعالج process لاكثر من thread كل واحد منها يقوم بعمل معين

مثلا يقوم هذا ال thread بعمل هذا الشي و الثاني يقوم بعمل شيئ اخر

وهكذا يتم توزيع موراد النظام بشكل منظم جدا

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

c- debugger and exception

الاخطاء في برامجنا

دائما لما نشغل البرنامج بتصير معنا مشاكل

كل مشكلة بوقت معين

مثلا احنا مرات بنفحص الكود ما بطلع في مشكلة لما نشغل البرنامج بعطيك مشكلة

شو السبب !!!!!!

رح نعرفه الان

تقسم الاخطاء الى الانواع التالية

Syntax Error : in Compiler

اي بيكون عندك خطا بالكود وبييصر بالكمبايلر

RunTime Error : CLR

مثلا انت طلبت تشغل ملف وما كان موجود

Logical Error : Debugger

تحدث في Debugger لاسباب معينه في البرنامج

بحمد الله وبفضلة اكملنا اول موضوع من مواضيع الدورة وهو

.net introduction (platform and frame work )

وسأبدأ بشكل مباشر في الموضوع الثاني

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

تحياتي

تم تعديل هذه المشاركة بواسطة Ben_Laiid في 14 أغسطس 2007 في 21:24

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#3

الدرس الثاني

Basic c# programs

الان عملية البرمجة في السي شارب باستخدام تطبيقات ال Console Application

بعد فتح السي شارب قم باختيار تطبيق Console Application من الشاشة

كما هو موضح بالصورة التالية

1.gif

اذا ما كنت بتعرف كيف بدك تعمل New Project في اضغط

Ctrl + Shift + N

الان امامنا الشاشة مكتوب عليها الكود التالي

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
	class Program
	{
		static void Main(string[] args)
		{
		}
	}
}

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

ان شاء الله رح يطلعو فهمانين كل شي

اولا

Using

تستخدم هذه الكلمة بمثابة استدعاء لبعض الاوامر الموجودة من ال namespace في البرنامج يعني مثلا

احنا بدنا نكتب امر بال Console Application

انو يروح يطبع سطر مكتوب في المحيط العربي

طيب كيف بدنا نعملها ؟؟

اذا ما كان في namespcae اسمها system

رح نضطر نكتب التالي كل ما بدنا نطبع سطر

System.Console.WriteLine("ArabMoheet")

طبعا للاعمال الضخمة والكبيرة هذه العملية ما بتوفي معنا

بدنا اشي مختصر

عشان هيك بنحط فوق

كود

Using System;

وبالتالي بنبطل كل مرة نكتب كلمة system وبنتريح منها بالكلاسة كلها

ويلي مكتوب تحتها نفس المهمة ورح نشرحهن بالتفصيل بالمستقبل

الان نيجي لتشريح القسم يلي بعدة

يلي هو namespace ConsoleApplication1

هذا فقط يعني انو اسم المساحة يلي بتشتغل فيها ConsoleApplication1

وطبعا عشان نبين اولها من اخرها لازم نحط الاقواس التالية

هذا للبداية للنيم سبيس

}

وهذا للنهاية

{

وبعدة بتقدر تبدا نيم سبيس جديدة لها اقواس

الان يلي بعدة هو

Class Program

هذا يعني اسم الكلاس يلي بتشتغل فيه Program

نفس فكرة النيم سبيس يمكن انشاء اكثر من كلاس بنفس النيم سبيس

وبداخلة

static void Main(string[] args)
		{
		}

هذا الكود هو عبارة عن ميثود وهو الامر الاول الذي يتم تنفيذه

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

وتوضع الميثود الاخرى في هذا الميثود لتنفيذها

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

هو عبارة عن مجموعه من الاوامر المنظمة تحت اسم معين يمكن استدعاءها باي جزء من البرنامج

وسارفق لكم ايضا صورة تشرح الشاشه الاولى للبرنامج بشكل مصور

2.gif

الان مثلا كتبنا نيم سبيس اسمها moheet بعد النيم السبيس الافتراضية ConsoleApplication1

ونريد ان نحصل على معلومة داخل الكلاس program

فكيف ناتي بها ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

بكل بساطة اقول انه يمكنك ذلك عن طريق القيام بعملية التسلسل

اي

كتابة الكود التالي

Namespace.nameclass.namething

اي لو قمنا بتعريف متغير داخل كلاس program بهذه الطريقة

public int x = 200;

ونريد استدعاءه من نيم سبيس اخرى فسنكتب التالي

Console.WriteLine(ConsoleApplication1.Program.x);

بكل بساطة سوف يطبع الرقم 200 الذي اعطيناه للمتغير x

وكما قلت ان الميثود للبرنامج هي Main

وهي كالتالي

 
Public Static Void Main()
{
// the code 
}

وسوف يتم تنفيذ الكود المكتوب

الان نفرض ان لدينا الامور التالية

ns = Name Space

IO > ns

text > ns

thread > ns , namespace > ns , Class > ns

ونريد الان ان نصل الى ال Class الذي بداخل ال Thread فكيف نصله ؟

نكتب الكود التالي

Thread.NameSpace.Class

طبعا مع مراعات تغيير اسم النيم سبيس الى النيم سبيس الخاصة ببرنامج وكذلك اسم الكلاس

طبعا لتشغيل برنامجك يوجد اكثر من طريقة

وسادعم الشرح بالصور

3.gif

تصحيح اخطاء اي يعطيك موقع الخطا ونوع الخطا وشرح مفصل عنه

وبدون تصحيح اخطاء اي يعطيك انه يوجد خطا ويخرج من البرنامج اي انه ينفذ البرنامج كما لو ان المستخدم يقوم بالعمل عليه

الى هنا نكون قد انجزنا موضوع

Basic c# programs

ينصح وبشدة استخدام متصفح Mozilla FireFox

ولذلك لظهور الكلمات بشكل صحيح اكثر من انترنت اكسبلوور

تحياتي لكم وبالتوفيق للجميع

تم تعديل هذه المشاركة بواسطة محـ جمال مـد في 3 أغسطس 2007 في 18:43

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#4

Value Type In .Net

بسم الله الرحمن الرحيم

اليوم موضوعنا اخواني الافاضل عن القيم وانواعها في الدوت نت بشكل مفصل

وسابدا حديثي بالمثال التالي

int x = 10;  // in C#

 Dim x as Integer = 10' in vb.net

في المثال السابق قمنا فقط بعملية تعريف متغير x من نوع Integer واعطيناه القيمة 10 في كلا المثالين

ولكن تختلف الطريقة بالتعريف

في المثال السابق لو تغمقنا في الموضوع قليلا لوجدنا ان طريقة تعريف المتغير من نوع رقمي في السي شارب يلي هو Int والتعريف في الفي بي دوت نت يلي هو Integer في ال Compiler كله هذا بيرجع لاصلة

وكلة برجع ل System.Int32

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

int32 x = 10;

 dim x as int32 = 10

فلن يعطينا اي خطا يذكر على العملية لانها عملية سليمة جدا

الان نترك الفي بي ونبدا بالسي شارب

الان ساضع جدول به اسم المتغير في ال common type system

cts

وطريقة تعريفها في السي شارب

alias in c#

والحد الاقصى لما تحملة من قيم

Rang

CTS	Alias	 Rang 
 Int32	Int	-231  to 231 -1
 Int16	Short	-215  to 2 15 -1
 Int64	Long	-263  to 2 63 -1
 Boolen	Bool	True , False 
 Char	Char	2 byte 
 Single	float	4 byte
 Double	Double	8 byte

وهنا صورة توضيحية للانواع

5.gif

==============================================

الانواع في الفريم وورك هي كالتالي

Type in framework

Value type

مثال عليها

int x = 10;

Reference type

مثال عليها

String x = "Mohammad Jamal";

وهنا صورة توضيحية للعملية

4.gif

=======================================

تعريف قيم المتغيرات

يمكننا تعريف المتغيرات كالتالي

متغير من نوع رقمي

int x;

هنا يحجز مساحة معينه لهذا المتغير في الذاكرة ولكننا لم نقم بوضع قيمة للمتغير

فكيف يمكننا اعطاءه قيمة

يمكننا اعطاءه كالتالي

int x = 10;

حيث اعطيناه القيمة 10

المتغيرات من نوع الرقمي int لا يمكننا ان نضع فيها سوى الارقام فقط

الان ناتي لنوع جديد من المتغيرات

وهو المتغير النصي

String

string str;

هنا عرفنا متغير من نوع نصي اسمه str وهو جاهز لاستقبال اي قيمة يتم وضعها بداخلة من نصوص

ولوضع القيم بداخلة يجب وضعها بين علامتي تنصيص

""

كالتالي

string str = "ArabMoheet";

هكذا يتم التعريف عنها

حسنا الان كل شي تمام

ماذا لو اردنا ان نعرف متغير يرجع لنا قيمة True or False

في هذه الحالة تستخدم متغيرات من نوع Boolen

ويمكننا تعريفها كالتالي

bool b = False;

في المثال السابق لو طبعنا قيمة المتغير b لطبع كلمة false لانها هي القيمة التي اعطيناه اياها

السؤال الان هل يمكن اعطاء المتغيرات من نوع boolen القيمة null

في الدوت نت الاجابه اصبحت نعم

فكيف ذلك

بساطة يمكن ذلك بطريقتين

الاولى

Bool?b=null;

والثانية

Nullable<bool>b=null;

بعض الامثلة للمتغيرات التي يمكن تعريفها

int x = 10;
 string y = "Mohammad jamal";
 bool n = True;

 long b = logn.MaxValue();

 float f = 22;

لاحظنا في المثال السابق انه وضعنا قيمة رقمية في اكثر من منطقة

وضعناها في ال Long وفي ال Float

فبماذا تختلف هذه الدوال

ببساطة تختلف في سعه الارقام

ف long هي الاكبر في السعه

وبعدها ال int

وبعدها ال float

يعني لو عندنا رقم كبير يلزمة تعريف من نوع long

والاكبر بينهم جميعا هو Double

اذا اردت ان ترى القيم يمكنك ذلك عن طريق كتابة الكود التالي

long b = logn.MaxValue();

double x = double.Maxvalue();

int x = int.MaxValue();

وعلى هذا المنوال

=========================================

الان مثلا اردنا ان نقوم بتحويل نوع متغير من نوع Int الى نوع Long

فيمكننا ذلك بكل سهولة كالتالي

int x = 500;
 long z = x;

فتتم العملية بدون اي مشاكل تذكر لان ال long اكبر من ال int لذلك يحوي قيمته

ولكن ماذا لو اردنا ان نقوم بتحويل متغير من نوع long الى نوع int

long x = 500;
 int z = x;

هل سينجح هذا الكود !!!!!

بالتاكيد لا لان ال long اكبر من ال int لذلك لا تستطيع ان تحويها

فماذا نفعل بهذه الحالة

يمكننا استخدام طريقة ال Explicit

وهي كالتالي

long x = 1000;
 int z = (int)x;

او

long x = 2323;
 int z = convert.ToInt32(x);

هذه هي العملية بشكل كامل ولن يحدث اي مشاكل ما دامت قيمة المتغير في long اقل من القيمة القصوي لل int

======================================

Read Number From KeyBoard

الان سنقوم بانشاء برنامج يقوم بطباعه ما تكتبه له مرة اخرى

ولتقوم بذلك قم بانشاء مشروع Console Application

واكتب الكود التالي داخل ميثود ال Main

اي بين القوسين

String Str = Console.ReadLine();
 Console.WriteLine(Str);

الكود الاول

String Str = Console.ReadLine();

يقوم هذا الكود بفتح المجال للمستخدم على الشاشه السوداء بكتابه ما يريد

وبعد الضغط على زر انتر يقوم بحفظ كل ما كتب في المتغير Str

Console.WriteLine(Str);

يقوم هذا الامر بطباعه القيمة المدخلة في المتغير Str

برنامج سهل للغاية

الان نريد ان ندخل رقم وبعد ادخالة سوف نقوم بقوم بضربه بالعدد 10 ونظهر الناتج

الكثير منا سوف يعتقد ان الكود الصحيح هو كالتالي

int x = Console.ReadLine();
 int y = x * 10;
 Console.WriteLine = y;

ولكن في الحقيقة هذا الكود خاطئ تماما وسوف يعطيك عليه النظام علامة خطا

الان ماذا سنفعل في هذه الحالة !!!!!!!!!!!!!!!!

ساخبركم

اولا سوف نقوم بكتابة الكود التالي

int x = int.Parse(Console.ReadLine());
 int y = x * 10;
 Console.WriteLine(y);

النقطة الغير مفهومة للجميع هي الكود الاول

Int x = Int.Parse(Console.ReadLine());

فماذا يعني هذا الكود

يعني يعني ان البرنامج سوف يحول اي قيمة مدخلة في الشاشه الى قيمة رقمية ليتعامل معها

وبالتالي يستطيع ان يقوم بعمليات الجمع والطرح والضرب والى اخر هذا الكلام ..............

يمكننا ان نقوم ذلك على ال Double وليس فقط على ال Int

double x = double.parse(Console.ReadLine());

=============================================

الان سوف نقوم بالانتقال الى ما يسمى ال Enum

وكيفية التعامل معه

سوف اضع لكم مثال كامل لتفهموه بسهولة

6.gif

اذا لم تظهر الصورة الكود بالكامل هنا

 
 using System;
 using System.Collections.Generic;
 using System.Text;

 namespace ConsoleApplication1
 {
	 enum Vare {emp1,emp2,emp3};

	 class Program
	 {
		 static void Main(string[] args)
		 {
			 Vare v;
			 v = Vare.emp1;
			 Console.WriteLine(v);
			Console.ReadKey();
		 }
	 }
 }

الان ال Enum قامت بعملية اضافة عناصر

اي جعلت المتغير vare يحوي العناصر ما بين القوسين

ويمكننا ان نقوم بتعريف اي متغير من نوع vare الذي وضعناه في ال Enum

وبعدها نضع للمتغير اي قيمة من ال vare

ونقوم بطباعتها بكل بساطة

هكذا انتهى موضوع اليوم

الذي كان بعنوان

Value Type In .Net

متمنيا ان تكونو قد استوعبتم ما كتبته

واي اسفسارات انا ارحب بها

وسوف ناخذ استراحة لنرى اسالتكم واقتراحاتكم وشكاويكم

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

تم تعديل هذه المشاركة بواسطة Ben_Laiid في 14 أغسطس 2007 في 21:34

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#5

مشكوووووووووووووووووووووووووووووووووووووووووووووووووووور جداااااااا

والله يا أخ محمد كفيت ووفيت شرح اكثر من رائع

والى الاماااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااام

#7

هلا فيكم اخواني

ومشكورين على ردودكم الطيبة وان شاء اللله الله يقدرني اني اكمل الدورة معكم

بس بدي منكو تفاعل في الموضوع حتى تشجعوني استمر بالمواصلة

ووتحياتي لكم

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#8

مشكور اخي الكريم وياريت شوي شوي علينا احنا المبتدئين وان شاء الله سوف نلحق بالركب ونجتهد بإذن الله .

جزاك الله كل خير والى الامام ونحن معك ان شاء الله.

#9

مرحبا بك اخي الفاضل ابوهشام

انا بديت معكم من نقطة الصفر وان شاء الله رح توصلو لمرحلة الاحتراف

ومجموعه الدروس هذه يمكن تكون طويلة بس هي سهله انا حطيتها بشكل 3 دروس حتى ما توخذ معنا الدورة كثير ونمل وهذه البداية لتكونو مع من البداية بشكل نشيط

اما في المراحل المتقدمة عندما ارى الدروس تحتاج لوقت لفهمها فسوف اسير على اقل من مهلي

وتقبل تحياتي

محـ جمال مـد

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#10

ننتظر البقيه وشرح رائع جزاك الله خيرا

تم تعديل هذه المشاركة بواسطة rewsh في 4 أغسطس 2007 في 20:10

#11

شرح رائع جدااااااااا

جزاك الله خيرا

اكمل بارك الله فيك نحن معاك للنهايه

#12

بارك الله فيك واسال الله ان يجعله فى ميزان حسناتك

ولكن عندى سؤال وهو

كيف اعرض عناصر vare كلها بكود واحد

console.write(v,b,c);<<<<<<<<< جربت الكود ده لكن لم يفلح

باعتبار ان v,b,c متغيرات داخل الvare

وجزاك الله خيرا

#13

Statment In C#.Net

بسم الله الرحمن الرحيم

بعد الانتهاء من المواضيع السابقة التي كانت كوجبة خفيفة لنا لنتعود على طبيعه السي شارب

سنبدا اليوم بموضوع مهم جدا في السي شارب

وهو ال Statments

تنقسم ال Statments الى ثلاثة اقسام

1 - selection

2- interation

3- Jump

الان سنفصل بكل واحده منها

ٍٍSelection

1- If

2 Switch

Interation

1- While

2- Do while

3- For

4- Foreach

Jump

1- Break

2- Continue

3- Goto

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

اولا :

If Statments

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

والصيغه العامة لها

If (something exist)
 {
 // do some thing
 }
 else if (something exist)
 {
 // do some thing
 }
 else
 {
 // do some thing
 }

اي انه يمكنك وضع شروط بشكل غير محدود وان لم تنفذ الشروط يمكنك وضع الامر في كلمة else التي

الان سناخذ مثال بسيط عليها من تطبيقات ال Console Application

اولا :

سنفتح مشروع Console Application

ثم سنقوم بكتابة الكود التالي داخلة

string str = console.readline();
 if (str == "Mr.Asp")
 {
   console.writeline("Welocme Mr.Asp")
 }
 else if (str == "arabicprogrammer");
 {
 console.writeline("welcome arabic programmer");
 }
 else 
 {
 Console.Writeline("I Dont Know U");
 }

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

فاذا كان ادخل كلمة mr.asp فانه يقوم بالتحقق منها والقيام بطباعه رسالة ترحيب بهذا المستخدم

اما اذا كانت arabic programmer

فانه ايضا يقوم بالترحيب بهذا المستخدم

اما اذا كانت غير ذلك فانه يخبر المستخدم انه ليس على علم به

كانه هذا مثال بسيط لتطبيقات هائله يمكننا ان نقوم بها من خلال هذه الجملة البسيطة

===========================================

Switch

تقوم هذه الجملة باخذ قيمة متغير ومقارنته بالنتائج المخزنه له

وسنعطيكم مثال على هذه الجملة

string str = console.readline();

 switch (str)
 {
 case "mr.asp" :
 console.writeline("welcome mr.asp");
 break;

 case "arabic programmer" :
 console.writeline("welcome arabic programmer");
 break;

 default :
 console.writeline("i do not know you");
 break;

 }

في هذا المثال قمنا بادخال قيمة معينه للمتغير str من خلال المستخدم وقمنا بمقارنتها

فاذا كانت قيمة المتغير str = mr.asp

فانه يقوم بطباعه كلمة الترحيب

welcome mr.asp

اما اذا كانت arabic programmer

فانه يقوم بطباعه كلمة الترحيب

welcome arabic programmer

اما اذا كان غير ذلك اي default

فانه يطبع كلمة

i dont know you

وطبعا كلمة break بعد كل واحدة هي ضرورية جدا

لانه بعد تحقيق الشرط يتوقف البرنامج

وبهذه نكون انهينا ال Selection من ال Statments

================================================================================

interation

while

تقوم جملة while بتنفيذ امر معين استناد الى شرط اذا كان قائما

اي مثلا

افعل هذا الامر ما دام هذا الشرط غير محقق

فيقوم البرنامج باعادة الشرط بشكل مستمر حتى يتحقق الشرط وتتوقف

وسناخذ مثال عليه

int x = int.prase(console.readline());

 while ( x > 0)
 {
 console.writeline(x);
 x --;

 }

في المثال السابق قام البرنامج بما يلي

جعل المستخدم يدخل رقم ويقوم بتحويلة الى نوع Integer ليتعامل معه على هذا الاساس كما قلنا في الدرس الماضي

ولنفرض ان المستخدم ادخل الرقم 10

فسيقوم البرنامج بالتحقق اذا كان x > 0 فسينفذ الامر

وبما ان x = 10 اي ان x اكبر من 0 اذن سيقوم البرنامج بتنفيذ الامر المكتوب وطباعه اي قيمة تحددها وهنا نحن حدننا ان يطبع قيمة x لنقوم بتتبع البرنامج

وبعد ان ينفذ الحلقة يصل الى امر

X--;

اي قم بتنقيص واحد من ال x

ليصبح 9

ويعود من جديد الى الاعلى والتحقق والتنفيذ وتنقيص واجد فيصبح 8 وهكذا الى ان يصبح 0 ويتوقف الشرط

ملاحظة هامه جدا :: يجب ان تقوم بتنقيص القيمة لانه اذا قمت بتشغيل البرنامج دون ان تقوم بعمل X--; رح يعلق البرنامج

ويظله يطبع بشكل غير محدود لان الشرط ما زال قائما

لذلك احترس

هكذا انتهينا من ال While

===============================

Do While

ماذا تختلف هذه عن جملة while

سوف اشرح لكم صيغتها وانتم ستفهمونها

int x = 1;
 do 
 {
 console.writeline("mr.asp");
 x --;
 }

 while ( x > 0);

هل لاحظتم الفرق ؟؟؟

حيث ان جملة do while تقوم بتنفيذ الكود مرة واحدة على الاقل قبل التاكد من صحة الشرط

اي تنفذ الكود بداية ثم تقوم بالتحقق وهكذ ا

وهذه ايضا انتهينا منها

=============================

For

جملة التكرار For

تستخدم للقيام بتكرير شيئ معين عدد معين من المرات

مثال

For ( int x = 0;x = 10; x ++)
 {
 console.writeline(x);
 }

تشبه قليلا جملة ال while في عملها ولكنها اسهل قليلا

اولا قمنا بتحديد قيمة المتغير x = 0

وقمنا بتحديد نقطة النهاية التي هي x = 10

وقمنا بتحديد مقدار الزيادة في كل مرة اي كل مرة سوف يزيد واحد

x ++;

تعني

 x = x + 1;

او

 x +=1;

وفي كل مرة يقوم بتنفيذ الامر بين الاقواس حتى يتحقق الشرط يلي هو x = 10

ملاحظة وقعت فيها في بداياتي مع السي شارب ولا اود ان يقع بها احد من طلابنا الاعزاء وهي ال for المتداخله

وساعطيكم مثال عليه

for ( int x = 0; x = 10; x ++)
 {
 for ( int y = 0; y = 10; y ++)
 {
 Console.WriteLine(y);
 }
 }

عند تنفيذ هذا الكود سوف تلاحظون ان البرنامج طبع الارقام من 1 الى 10 10 مرات

فماذا يعني هذا

سوف اشرح لكم

اولا ال for الاولى صاحبة المتغير x عند تنفيذ الامر يلي بداخلها يلي هو for صاحبة y سوف يقوم البرنامج يتنفيذ y حتى تصل الى 10 ومن ثم يزيد قيمة 1 الى x

اي مع تنفيذ حلقة y لفة كاملة يتم زيادة 1 لحلقة x

وهي تستخدم عادة في المصفوفات الثنائية والثلاثية وغيرها

انتهينا من ال for

================================

foreach

وهي تستخدم عادة لطباعه عناصر المصفوفات وسناخذ مثال عليها

int [] ar = {1,2,3,4,5,6,7,8};

 foreach ( int x in ar)
 {
 console.writeline(x);
 }

تعريف وادخال المصفوفة في الوقت الحالي غير مطلوب منك ولكن انظر ماذا فعلت foreach

اولا قمنا بتعريف نوع البيانات التي سنسحب منها البيانات التي هي من نوع int

وقمنا بوضعها في المتغير x من ar

وقمنا بطباعه x

سيقوم البرنامج بطباعه كافة عناصر المصفوفة المدخلة

مثال بسيط لفهمها

الان سننتقل الى جمل ال Jump

===================================

Jump Statments

break and continue

int x = 0;
 while (true)
 {
 console.writeline(x);

 x ++;

 if ( x < 10)
 {
 continue;
 }
 else
 {
 break;
 }
 }

اعتقد ان المثال واضح حيث تقوم جملة ال continue بجعل الكود يتابع نفسه من نفسه

وجملة ال break تقوم بايقاف الكود عن التنفيذ

========================

goto statments

int x = int.parse(console.readline());

 if ( x % 2 ==0) goto event;
 console.writeline("odd");

 goto end;

 event:
 console.writeline("Event");

 end:;

عارف انو الوجبة دسمة شوي على المبتدئين ومش فاهمين اشي من هالجملة بس ما عليكو

ان شاء الله ما بتطلعو الا فاهمين ومبسوطين

الان احنا قمنا بتعريف متغير x من انوع integer وجعلنا المستخدم يدخل القيمة داخلة بشكل تقائي

الان نفرض انو المتغير x قيمته 10

فماذا سيفعل البرنامج

رح يشوف اذا باقي القسمة على 2 هو صفر اذن الرقم زوجي

اذن عليه ان يبدا بالتنفيذ من مكان معين

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

ببساطة نقوم بالتعريف التالي

event:

نكتب اسم المكان الذي سينتقل اليه الكود لتنفيذة وتنفيذ ما بعدة ومن ثم نقطتين فوق بعض :

اي سنكتب كود الانتقال للتنفيذ هكذا

goto event;

وسيتجاهل كل الكودات يلي قبل ال event:

وهكذا اذا كان الرقم زوجي سيذهب الى نقطة ال event ويطبع كلمة event

اما اذا كان فردي فلن ينتقل

وسيطبع كلمة odd اي فردي

ومن ثم يذهب الى نقطة end;

التي سبق وذكرنا كيف يتم تحديدها

لاحظتم ان نقطة الوصول الى ال End كتبت هكذا

End:;

وليست فقط

End:

فلماذا

بكل بساطة End:;

تعني انه لا يوجد كوادت بعدها لتنفيذها

لذلك تتوقف عندها

================================================================================

================================================================================

وهكذا انتهينا من موضوع ال Statmentsونلقاكم مرة اخرى بموضوع Exceptionواي سؤال عن اي نقطة غير مفهومة الرجاء طرحه هنا المادة طويلة جدا وعلى الكل ان يكون حاضر الذهن وتنفيذ التمارين وطرح الاسئله بشكل فوري ومتابعه الموضوع لانه يجب عليك ان تبدا معنا مرحلة بمرحلة وخطوة بخطوة لتصبح مبرمج وانا ساكون جاهز للاجابة على كافة استفسارتكم اخواني الافاضلوالسلام عليكم ورحمة الله وبركاته

تم تعديل هذه المشاركة بواسطة Ben_Laiid في 14 أغسطس 2007 في 21:44

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#14
اسامه حمدان كتب:
بارك الله فيك واسال الله ان يجعله فى ميزان حسناتك

ولكن عندى سؤال وهو

كيف اعرض عناصر vare كلها بكود واحد

console.write(v,b,c);<<<<<<<<< جربت الكود ده لكن لم يفلح

باعتبار ان v,b,c متغيرات داخل الvare

وجزاك الله خيرا

هذا طلبك يا مكثور الخير

بعد تعريف ال

 enum vare {emp1,emp2,emp3};

في الاعلى

vare a;
			vare b;
			vare c;

			a = vare.emp1;
			b = vare.emp2;
			c = vare.emp3;

			Console.WriteLine("{0},{1},{2}", a, b, c);

واي سؤال اخر انا بالخدمة يالغلا

تحياتي

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#15

في المشاركة رقم 13 اخي هناك ملاحظة بسيطة ليتم التطبيق بنجاح كما في الصورة التالية:

b83b1502c4.png

مع جزيل الشكر على الجهد الطيب.

#16

ما معنى العبارة التالية:

interation

#17

في موضوع الامر for

21e074f281.png

النتيجة كانت كالتالي:

e5b4ce4445.jpg

فما السبب؟

#18
abuhashem كتب:
ما معنى العبارة التالية:

interation

اعتذر اخي الكريم عن وجود بعض الاخطاء ولان مثل هذه الدروس الكبيرة عند كتابتها يصعب العثور على الخطا

على كل حال شكرا على التنبيه

وهي Iteration وتعنى التكرار

وليس interation

واعتذر عن هذه المعلومة الخاطئه وشكرا على التنبيه مرة اخرى

تحياتي

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#19
abuhashem كتب:
في المشاركة رقم 13 اخي هناك ملاحظة بسيطة ليتم التطبيق بنجاح كما في الصورة التالية:

b83b1502c4.png

مع جزيل الشكر على الجهد الطيب.

اشكرك اخي الكريم على تصحيح المعلومة

واعتذر بسبب وجود بعض الاخطاء

التي سأحاول تفاديها في المرات المقبلة

تحياتي

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#20
abuhashem كتب:
في موضوع الامر for

21e074f281.png

النتيجة كانت كالتالي:

e5b4ce4445.jpg

فما السبب؟

اعتذر مرة اخرى اخي الكريم

فالاكود يجب ان يكون كالتالي

x == 10 ;

وليس

x = 10;

ومشكور على التنبيه

تحياتي

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#21

Exception Handling

بسم الله الرحمن الرحيم

اليوم موضوعنا عن تتبع واصطياد الاخطاء في لغه السي شارب

وهذه العملية سوف تصطاد الاخطاء الناتجة عند تشغيل البرنامج

اولا ساشرح لكم عملية اصطياد الاخطاء بشكل مفصل

اولا :

يقوم الكومبايلر بعملية Run للبرنامج في CLR

مثلا يقوم بفتح ملف Open File

في ال OS

الان عند حدوث خطا سوف يقوم ال OS بارجاع معلومات حول الخطا لل CLR

و ال CLR بدورة يضعها في ال Heap

ونحن نقوم بتعريف متغير في ال Stack يقوم بالتاشير على المعلومات في ال Heap

ويقوم باظهارها لنا على شكل نص

مثال

Try
{
// do Some Thing
}

Catch ( Exception ex)
{
Console.WriteLine(ex.Message);
}

في هذا الكود سوف يقوم البرنامج بتنفيذ الكود واي خطا سوف يقوم بوضعه في المتغير ex ونقوم نحن باظهاره بالشكل الذي نريدة

يمكنك توقع نوع الخطا ايضا واظهار الرساله التي انت تحددها

مثلا

Try
{
// do some thing
}
catch (nameexception ex)
{
console.writeline("about error");
}

حيث ان nameexception هو اسم الخطا المتوقع حدوثه

هكذا انتهينا من ال Exception Handling

تحياتي لكم

تم تعديل هذه المشاركة بواسطة محـ جمال مـد في 7 أغسطس 2007 في 19:47

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#22

Methods

امثلة على الميثود

Main

ReadLine

WriteLine

.

.

.

والكثير منها التي نستخدمها في السي شارب

كيف يمكننا تعريف Methods؟؟

هناك طرق كثيرة في التعريف

وعناصرها التي تبدا بها كالتالي

Public

Private

Protected

Internal

Internal Protected

كل من هذه الميثود يملك عمل معين سوف نشرحة في دروس لاحقة ان شاء الله

الان سوف نقوم بعملية تعريف ميثود في السي شارب

Public Static Void Write()
  {
  int x = int.Parse(Console.ReadLine());
  x ++
  Console.WriteLine(x);
  }

ولاستخدام هذا الميثود نضع في Main كلمة

Write();

لاحظ انه يمكننا كتابة هذا الكود في ال Main

ولكننا قمنا بكتابته بميثود وقمنا باستدعاءه

حيث ان الميثود يقوم بمساعدتنا بشكل كبير في عمليات تنظيم البرمجة

مثال اخر

Public Static Double M(int x);
  {
  Return Math.Pow(x,3);
  }

وفي ال Main نكتب التالي

Console.WriteLine(M(10));

انا عارف انو الدماغ بلش يضرب عند البعض

ولكن ما علينا سوف اشرحه

الان قمنا بتعريف المتغير x في الميثود M وعرفناه من نوع رقمي int

وعندما كتبنا جملة

Return Math.Pow(x,3);

قمنا بارجاع قيمة للميثود m

تعمل ضمن المعادلة التالية

Math.Pow تعني الاس في الرياضيات

اي الرقم الاول هو الرقم الذي سيتم تكراره على عدد الرقم الثاني

مثال فرعي

Math.Pow(10,3);

حيث سيقوم بضرب العشرة بنفسها 3 مرات

وفي المثال السابق سوف يقوم بضرب ال x بنفسها 3 مرات

ولكن من اين سنحصل على قيمة ال x

بكل تاكيد من خلال هذه الجملة

M(10);

حيث قمنا بارجاع القيمة للميثود m وهو المتحكم بالقيم

وعند وضع

M(10);

سوف يقوم بوضع قيمة ال 10 بدل المتغير x

وباظهار النتيجة ضمن المعادلة الموضوعه

================================================================================

الان كيفية طرق ارجاع المعلومة في الميثود

اولا : الطريقة العادية التي استخدمناها في المثال السابق

ثانيا : Referance

ثالثا : OutPut

مثال على Referance

Public Static Void M1(ref int x);
{
x +=10;
}

static void main()
{
int input = 10;
M1(ref input);
Console.WriteLine(input);

ال OutPut سنشرحها لاحقا وال referance ولكن الان اخذنا مقدمة بسيطة عنها

الموضوع القادم هو

Arrays}

تحياتي

تم تعديل هذه المشاركة بواسطة Ben_Laiid في 14 أغسطس 2007 في 21:48

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#23

Arrays

المصفوفات في السي شارب

تعريف المصفوفة

Type [] namearray

مثال

Int [ ] ar;

تعريف المصفوفة وتحديد ابعادها

int [ ] ar;

ar[ ] = new int [5];

بعد واحد فقط

لتعريف المصفوفة باكثر من بعد

Int [ , ] ar2 = new int [ 2, 3];

اي ان بعد هذه المصفوفة 2 × 3

ولادخال القيم للمصفوفة كالتالي

int [ ] ar = {1,2,3,4,5,6,7,8};

او

int [] ar = new int [] {1,2,3,4,5,6,7,8,9};

او

char [ ] ch = new char [ ] {'n','r','j'};

او

string [] str = new string [] {"jamal","arab","programming","mohammad"};

ar.Rank : لمعرفة ابعاد المصفوفة

ar.lenght : لمعرفة عدد عناصر المصفوفة

ولتحديد عنصر في المصفوفة وطباعته نستخدم الكود التالي

Console.WriteLine(ar[0]);

وهكذا

لادخال العناصر لمصوفة ثنائية الابعاد كالتالي

int [ , ] ar = new int [,] {{1,2,3,4},{5,6,7,8}};

ولمعرفة العناصر كالتالي

ar[1,3];

ولطباعه كافة عناصر المصفوفة نستخدم حلقة التكرار كالتالي

For ( int x = 0; x <= ar.Getlenght;x++)
{
console.WriteLine(ar[x]);
}

وللقيام بعملية نسخ للمصفوفة نقوم بالتالي

Int [] copy = (int[]) ar.Clone();

لترتيب العناصر في المصفوفة من الاكبر للصغر

Array.Sort(ar);

ولعكسها

Array.Reveres(ar);

هكذا انتهينا من المصفوفات

واي سؤال انا جاهز

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

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#24

Collection

collection مجموعه من الأقسام تستخدم المجال

Using System.Collection;

وهي تقسم الى انواع ساذكر منها اهمها

اولا :

ArrayList

وهي مصفوفة ولكنها تختلف عن المصفوفة العادية بانها تقوم باستقبال كافة انواع البيانات على شكل Object

لنرى مثال عليها

ArrayList ls = new ArrayList();
 ls.Add(122);
 ls.Add('c');
 ls.Add("Mohammad");
 ls.add();
 ls.Add(0.0323);

نرى في المثال السابق ان ال arraylist تستقبل كافة انواع البيانات

الان سنقوم بعملية عرض للبيانات من خلال حلقة التكرار Foreach

بسيطة

foreach(object el in ls)
 {
   Console.WriteLine(el);
 }

وكله رح يكون تمام ان شاء الله

================================================================================

============================

Queue

نفس الل arraylist تقريبا في الوضيفة تستخدم القاعدة التالية

FIFO : First in First Out

اي الذي يدخل اولا يخرج اولا

مثال

Queue qw = new Queue();
 qw.Enqueue(5);
 qw.enqueue();

 q.dequeue();

هنا سوف ترى ان ال queue عند القيام بادخال قيمة مثلا تم ادخال قيمة 5 اولا

وعند قيامنا بحذف قيمة فانه سيحذف ال 5 اولا

===========================================================

===========================================================

Stack

نفس فكرة ال queue ولكن تتبع الفكرة التالية

LIFO : Last In First Out

مثال

Stack st = new Stack();
 st.Push(5);
 st.push(10);

 st.pop();

 foreach (object c in st)
 {
  console.Writeline(c);
 }

فسوف يقوم بحذف الرقم 10 لانه اخر شيئ تم ادخالة

بعكس ال queue

هذا بحمد الله نكون قد انتهينا من ال Collection

والقاكم باذن الله في الدرس المقبل وهو

Object Oriented essentials

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

تم تعديل هذه المشاركة بواسطة Ben_Laiid في 14 أغسطس 2007 في 21:53

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#25

ماشاء الله عليلك يا باشا

وعندى اقتراح

لو يبقى فى واجب بحيث المعلومات تثبت اكتر

يعنى واجب يشمل الدرس كله

وجزاك الله خيرا

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

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