Saturday, November 30, 2013

أساسيات البرمجة سي شارب - الفئات الكلاسات C# classes

أساسيات البرمجة  - الفئات C# classes

ما هي الفئة:-

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




تبدأ تعريف الفئة بالكلمة المحجوزة Class.


 specifier> class  class_name 
{
    // member variables
     specifier>  type> variable1;
     specifier>  type> variable2;
    ...
     specifier>  type> variableN;
    // member methods
     specifier>  type> method1(parameter_list) 
    {
        // method body 
    }
     specifier>  type> method2(parameter_list) 
    {
        // method body 
    }
    ...
     specifier>  type> methodN(parameter_list) 
    {
        // method body 
    }
}

حيث specifier هو محدد الوصول تم شرحه في درس الكبسلة.

حيث type هو نوع البيانات تم شرحه مسبقا.

حيث parameter list هو قائمة الوسطاء التي تمرر من خلال الدالة تم شرحها مسبقا.


مثال مبسط على المفاهيم السابقة.

using System;
namespace BoxApplication
{
    class Box
    {
       public double length;   // الطول
       public double breadth;  // العرض
       public double height;   //الارتفاع
    }
    class Boxtester
    {
        static void Main(string[] args)
        {
            Box Box1 = new Box();        // تصريح عن الكائن الأول من نوع صندوق
            Box Box2 = new Box();        //تصريح عن الكائن الثاني من نوع صندوق
            double volume = 0.0;         // نتغير لتخزين القيمة

            //أسناد القيم لأبعاد الصندوق الاول
            Box1.height = 5.0;
            Box1.length = 6.0;
            Box1.breadth = 7.0;

            //اسناد القيم لابعاد الصندوق الثاني
            Box2.height = 10.0;
            Box2.length = 12.0;
            Box2.breadth = 13.0;
           
            // حساب حجم الصندوق الاول
            volume = Box1.height * Box1.length * Box1.breadth;
            Console.WriteLine("Volume of Box1 : {0}",  volume);

            // حساب حجم الصندوق الثاني
            volume = Box2.height * Box2.length * Box2.breadth;
            Console.WriteLine("Volume of Box2 : {0}", volume);
            Console.ReadKey();
        }
    }
}

طباعة مخرجات الكود السابق.

Volume of Box1 : 210
Volume of Box2 : 1560

الاعضاء الفئة الدوال والكبسلة.

الدالة التي داخل الفئة هي كود أولي في الفئة مثل اي متغير يقوم بإجراء اي عمليات على الكائن.
الخصائص  هي متغيرات للكائن ولكن لايمكن الوصول اليها مباشرة بل عن طريقة خاصية get للقراءة أو set للكتابة للمتغير الخاص .
مثال:- 

using System;
namespace BoxApplication
{
    class Box
    {
       private double length;   //الطول
       private double breadth;  // العرض
       private double height;   // الارتفاع
       public void setLength( double len //خاصية للكتابة
       {
            length = len;
       }

       public void setBreadth( double bre )
       {
            breadth = bre;
       }

       public void setHeight( double hei )
       {
            height = hei;
       }
       public double getVolume()//خاصية للقراءة
       {
           return length * breadth * height;
       }
    }
    class Boxtester
    {
        static void Main(string[] args)
        {
            Box Box1 = new Box();        // تصريح عن الكائن
            Box Box2 = new Box();
            double volume;


            // Declare Box2 of type Box
            // box 1 specification
            Box1.setLength(6.0);
            Box1.setBreadth(7.0);
            Box1.setHeight(5.0);

            // box 2 specification
            Box2.setLength(12.0);
            Box2.setBreadth(13.0);
            Box2.setHeight(10.0);
       
            // volume of box 1
            volume = Box1.getVolume();
            Console.WriteLine("Volume of Box1 : {0}" ,volume);

            // volume of box 2
            volume = Box2.getVolume();
            Console.WriteLine("Volume of Box2 : {0}", volume);
           
            Console.ReadKey();
        }
    }
}

الناتج الكود:-

Volume of Box1 : 210
Volume of Box2 : 1560



Ahmed Ata Almahallawi
Freelancer
IT
IT Help Desk,
SEO experience,PHP,C#,ASPX
Al alami st
gaza -jabaliaGaza Strip
Palestine
ahmed.almahallawi@gmail.com

DOB: 05/10/1984
by +Ahmed Almahallawi 
24/11/2013





No comments

أساسيات البرمجة سي شارب - المجاميع المرقمة C# - Enums

أساسيات البرمجة - المجاميع المرقمة C# - Enums

ماهو المجاميع المرقمة Enum

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

التصريح عن المجاميع المرقمة Enum:-

enum <الاسم> 
{ 
    قائمة البيانات 
};

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

مثال عن Enum:-

enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

مثال  عن استخدام المجاميع المرقمة Enum:-

using System;
namespace EnumApplication
{
   class EnumProgram
   {
      enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

      static void Main(string[] args)
      {
         int WeekdayStart = (int)Days.Mon;
         int WeekdayEnd = (int)Days.Fri;
         Console.WriteLine("Monday: {0}", WeekdayStart);
         Console.WriteLine("Friday: {0}", WeekdayEnd);
         Console.ReadKey();
      }
   }
}


ناتج  المثال:-


Monday: 1
Friday: 5





Ahmed Ata Almahallawi
Freelancer
IT
IT Help Desk,
SEO experience,PHP,C#,ASPX
Al alami st
gaza -jabaliaGaza Strip
Palestine
ahmed.almahallawi@gmail.com

DOB: 05/10/1984
by +Ahmed Almahallawi 
24/11/2013

No comments

Thursday, November 28, 2013

أساسيات البرمجة سي شارب - التراكيب C# - Structures

أساسيات البرمجة - التراكيب C# - Structures


التراكيب structures

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

ان التراكيب الى حد ما تشبه الفئات الا أن الفرق بينهما هو.

1- الفئات تحتاج الى انشاء كائن منها كي تستخدمها.
2 الفئات من نوع البيانات ذات المرجع بينما التركيب من ذات القيمة.
3 الفئات تحتاج الى استخدام الكلمة المحجوزة  new بينما التركيب الاسم ثم نقطة ثم العنصر  المراد الوصول اليه.
4- لا تستخدم مبادي الوراثة.
5- ليس لها مشيدات افتراضية.
في المثال التالي سننشأ سجل للكتاب يتكون من العناصر التالية:-
  • Title
  • Author
  • Subject
  • Book ID

الاعلان عن التركيب:-

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
}; 

استخدام التركيب:-

using System;
     
struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  

public class testStructure
{
   public static void Main(string[] args)
   {

      Books Book1;        /* التصريح عن تركيب الكتاب الاول */
      Books Book2;        /* التصريح عن تركيب الكتاب الثاني */

      /* اسناد معلومات الكتاب الاول*/
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali"; 
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;

      /* اسناد معلومات الكتاب الاول */
      Book2.title = "Telecom Billing";
      Book2.author = "Zara Ali";
      Book2.subject =  "Telecom Billing Tutorial";
      Book2.book_id = 6495700;

      /* طباعة معلومات الكتاب الاول */
      Console.WriteLine( "Book 1 title : {0}", Book1.title);
      Console.WriteLine("Book 1 author : {0}", Book1.author);
      Console.WriteLine("Book 1 subject : {0}", Book1.subject);
      Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);

      /* طباعة معلومات الكتاب الثاني */
      Console.WriteLine("Book 2 title : {0}", Book2.title);
      Console.WriteLine("Book 2 author : {0}", Book2.author);
      Console.WriteLine("Book 2 subject : {0}", Book2.subject);
      Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);       

      Console.ReadKey();

   }
}

الناتج طباعة التركيب:-

Book 1 title : C Programming
Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700

مميزات التراكيب:-


  1.   يمكن ان يحتوى على  دوال,خصائص, فهارس,أحداث,معاملات.
  2. يمكن تعريف لها مشيدات ولكن لا يمكن تعريف لها مهدمات.
  3. لا يمكن ات ثورث المشيدات مشيدات اخرى.
  4. يمكنها  تنفيذ الواجهات واحدة او اكثرة.
  5. لا يمكن تعرفها كتراكيب مجردة او افتراضية او محمية (راجع محددات الوصول).
  6. لا تستخدم الكلمة المحجوزة new كالفئات عند استخدامها فهو لا ينشيء منها كائن حتى تسند قيم له بعكس الفئات.

مثال موسع يشمل مميزات التراكيب:-


using System;
     
struct Books
{
   private string title;
   private string author;
   private string subject;
   private int book_id;
   public void getValues(string t, string a, string s, int id)
   {
      title = t;
      author = a;
      subject = s;
      book_id = id;
   }
   public void display()
   {
      Console.WriteLine("Title : {0}", title);
      Console.WriteLine("Author : {0}", author);
      Console.WriteLine("Subject : {0}", subject);
      Console.WriteLine("Book_id :{0}", book_id);
   }

};  

public class testStructure
{
   public static void Main(string[] args)
   {

      Books Book1 = new Books(); /*  التصريح عن التركيب الكتاب الاول */
      Books Book2 = new Books(); /* التصريح عن التركيب الكتاب الثاني */

      /* استدعاء الدالة وتمرير لها الباراميترات */
      Book1.getValues("C Programming",
      "Nuha Ali", "C Programming Tutorial",6495407);

      /* استدعاء ادالة وتمرير لها الباراميترات */
      Book2.getValues("Telecom Billing",
      "Zara Ali", "Telecom Billing Tutorial", 6495700);

      /* طباعة معلومات الكتاب الاول */
      Book1.display();

      /* طباعة معلومات الكتاب الثاني */
      Book2.display(); 

      Console.ReadKey();

   }
}

ناتج التراكيب:-

Title : C Programming
Author : Nuha Ali
Subject : C Programming Tutorial
Book_id : 6495407
Title : Telecom Billing
Author : Zara Ali
Subject : Telecom Billing Tutorial
Book_id : 6495700


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





Ahmed Ata Almahallawi
Freelancer
IT
IT Help Desk,
SEO experience,PHP,C#,ASPX
Al alami st
gaza -jabaliaGaza Strip
Palestine
ahmed.almahallawi@gmail.com

DOB: 05/10/1984
by +Ahmed Almahallawi 
24/11/2013

No comments