ساره علي

Members
  • عدد منشوراتي

    3
  • تاريخ الإنضمام

  • تاريخ اخر زياره

السمعه بالموقع

1 Neutral

عن العضو ساره علي

  • الرتبه
    مبدع جديد
  1. بسم الله الرحمن الرحيم تكلمنا في المقالة السابقة (القواميس Dictionaries في السويفت - الجزء الأول) عن عدّة نقاط وهي : ماهي القواميس Dictionaries ؟ كيفية تعريف وإنشاء القواميس Dictionaries : 1 إنشاء قواميس فارغة . 2 إنشاء قواميس بقيم إبتدائية . إضافة عناصر جديدة للقواميس . إزالة قيم القواميس . وفي هذه المقالة سنكمل ماتعلمناه عن القواميس وسنتحدث عن : التعديل على قيم القواميس . خاصية count في القواميس. استخدام التكرار مع القواميس . التعديل علي قيم القواميس : ذكرنا سابقاً أننا عندما نريد التعامل مع قيم القواميس والوصول لها فإن ذلك سيكون عن طريق المفتاح الخاص بالقيمة، وبناءاً على ذلك نستطيع الوصول والتعديل على قيمة معينة من خلال المفتاح الخاص بها . * ملاحظة : حتى تتمكن من التعديل على قيم القواميس من المهم أن تكون من نوع var (متغير) وليس let (ثابت) . وللتعديل علي أي قيمة سيكون ذلك كالتالي : مثال (١) : var Jobs : [Int : String] = [1:"Programmer" , 2:"Designer" , 3:"Writer"] Jobs [3] = "Secretary" في هذا المثال تم تغيير قيمة المفتاح (3) في المتغير Jobs من (Writer) إلى (Secretary) . أيضاً للتعديل على القيم نستطيع استخدام الدالة updateValue (ForKey:) وسنستخدمها كالتالي : سنقوم بتغيير قيمة المفتاح (3) في المتغير Jobs في المثال السابق من (Writer) إلى (Secretary) ولكن باستخدام الدالة : Jobs.updateValue("Secretary", forKey: 3) خاصية Count في القواميس : في القواميس نستطيع استخدام الخاصية count لمعرفة عدد العناصر الموجودة . مثال (١) : var Jobs : [Int : String] = [1:"Programmer" , 2:"Designer" , 3:"Writer"] var NewJobs : [Int : String] = [1:"Doctor" , 2:"Engineer"] print(Jobs.count) print(NewJobs.count) في هذا المثال لدينا متغيرين من نوع Dictionary وهم Jobs و NewJobs الأول يحتوي على (٣عناصر) ،بينما المتغير الثاني يحتوي على (عنصرين فقط) . بعد ذلك قمنا باستخدام الخاصية count مع كلا المتغيرين لطباعة عدد العناصر الموجودة في كل متغير وعلى ذلك سيتم طباعة رقم 3 ومن ثم رقم 2 والتي تدل كما قلنا على عدد عناصر كل متغير . تستطيع الآن تجربة ذلك في ال xCode لترى النتيجة استخدام التكرار مع القواميس : لابد وأنك لاحظت في الأمثلة السابقة جميع المخرجات تكون للقيم بدون المفتاح ولقيمة واحدة فقط ، فلنفترض الآن بأنك أردت طباعة كل المفاتيح الموجودة مع قيمهم ، ولعمل ذلك فإننا سنستخدم for-In loop (يُفترض بأنك قد تعرفت على for-In loop كيفية كتابتها وفكرتها قبل التعرف على القواميس ) . مثال (١) : var Jobs : [Int : String] = [1:"Programmer" , 2:"Designer " , 3:"Writer"] for (x , y) in Jobs { print ( " Key = \(Key) and the value is = \(Value) ") } بالمثال السابق أردنا طباعة جميع المفاتيح مع قيمها للقاموس Jobs ،واستخدمنا الـ for - In loop لطباعتها . في for- in loop سيصبح للمفاتيح ثابت وأسميناه x وللقيم أيضاً ثابت واسميناه y والمخرجات ستكون كالتالي : بإمكانك أيضاً باستخدام الـ for-In loop مع القواميس أن تقوم بطباعة جميع المفاتيح فقط أو جميع القيم فقط كالتالي : for x in Jobs.keys { print ( " Key = \(x) ") } استخدمنا الخاصية keys بعد اسم القاموس لنتمكن من طباعة جميع المفاتيح في القاموس Jobs. والمخرجات ستكون كالتالي : * لاحظ بأن المخرجات ليست بالترتيب لأن كما ذكرنا سابقاً (في مقالة القواميس Dictionaries في السويفت - الجزء الأول) بأن القواميس تعتبر غير مرتبة unorderd . ولطباعة القيم فقط سنستخدم الخاصية values : for x in Jobs.values { print ( " Key = \(x) ") } والمخرجات كالتالي : وبذلك نكون قد انتهينا بحمد الله من موضوع القواميس Dictionaries بجزئيه الأول والثاني ،أتمنى أكون قد وفقت في الشرح ولا تتردد في سؤالي عن أي نقطة قد تصعب عليك وصلى الله وسلم على نبينا محمد وعلى آله وصحبه أجمعين ..
  2. بسم الله الرحمن الرحيم تكلمنا في المقالة السابقة (القواميس Dictionaries في السويفت - الجزء الأول) عن عدّة نقاط وهي : ماهي القواميس Dictionaries ؟ كيفية تعريف وإنشاء القواميس Dictionaries : 1 إنشاء قواميس فارغة . 2 إنشاء قواميس بقيم إبتدائية . إضافة عناصر جديدة للقواميس . إزالة قيم القواميس . وفي هذه المقالة سنكمل ماتعلمناه عن القواميس وسنتحدث عن : التعديل على قيم القواميس . خاصية count في القواميس. استخدام التكرار مع القواميس . التعديل علي قيم القواميس : ذكرنا سابقاً أننا عندما نريد التعامل مع قيم القواميس والوصول لها فإن ذلك سيكون عن طريق المفتاح الخاص بالقيمة، وبناءاً على ذلك نستطيع الوصول والتعديل على قيمة معينة من خلال المفتاح الخاص بها . * ملاحظة : حتى تتمكن من التعديل على قيم القواميس من المهم أن تكون من نوع var (متغير) وليس let (ثابت) . وللتعديل علي أي قيمة سيكون ذلك كالتالي : مثال (١) : var Jobs : [Int : String] = [1:"Programmer" , 2:"Designer" , 3:"Writer"] Jobs [3] = "Secretary" في هذا المثال تم تغيير قيمة المفتاح (3) في المتغير Jobs من (Writer) إلى (Secretary) . أيضاً للتعديل على القيم نستطيع استخدام الدالة updateValue (ForKey:) وسنستخدمها كالتالي : سنقوم بتغيير قيمة المفتاح (3) في المتغير Jobs في المثال السابق من (Writer) إلى (Secretary) ولكن باستخدام الدالة : Jobs.updateValue("Secretary", forKey: 3) خاصية Count في القواميس : في القواميس نستطيع استخدام الخاصية count لمعرفة عدد العناصر الموجودة . مثال (١) : var Jobs : [Int : String] = [1:"Programmer" , 2:"Designer" , 3:"Writer"] var NewJobs : [Int : String] = [1:"Doctor" , 2:"Engineer"] print(Jobs.count) print(NewJobs.count) في هذا المثال لدينا متغيرين من نوع Dictionary وهم Jobs و NewJobs الأول يحتوي على (٣عناصر) ،بينما المتغير الثاني يحتوي على (عنصرين فقط) . بعد ذلك قمنا باستخدام الخاصية count مع كلا المتغيرين لطباعة عدد العناصر الموجودة في كل متغير وعلى ذلك سيتم طباعة رقم 3 ومن ثم رقم 2 والتي تدل كما قلنا على عدد عناصر كل متغير . تستطيع الآن تجربة ذلك في ال xCode لترى النتيجة استخدام التكرار مع القواميس : لابد وأنك لاحظت في الأمثلة السابقة جميع المخرجات تكون للقيم بدون المفتاح ولقيمة واحدة فقط ، فلنفترض الآن بأنك أردت طباعة كل المفاتيح الموجودة مع قيمهم ، ولعمل ذلك فإننا سنستخدم for-In loop (يُفترض بأنك قد تعرفت على for-In loop كيفية كتابتها وفكرتها قبل التعرف على القواميس ) . مثال (١) : var Jobs : [Int : String] = [1:"Programmer" , 2:"Designer " , 3:"Writer"] for (x , y) in Jobs { print ( " Key = \(Key) and the value is = \(Value) ") } بالمثال السابق أردنا طباعة جميع المفاتيح مع قيمها للقاموس Jobs ،واستخدمنا الـ for - In loop لطباعتها . في for- in loop سيصبح للمفاتيح ثابت وأسميناه x وللقيم أيضاً ثابت واسميناه y والمخرجات ستكون كالتالي : بإمكانك أيضاً باستخدام الـ for-In loop مع القواميس أن تقوم بطباعة جميع المفاتيح فقط أو جميع القيم فقط كالتالي : for x in Jobs.keys { print ( " Key = \(x) ") } استخدمنا الخاصية keys بعد اسم القاموس لنتمكن من طباعة جميع المفاتيح في القاموس Jobs. والمخرجات ستكون كالتالي : * لاحظ بأن المخرجات ليست بالترتيب لأن كما ذكرنا سابقاً (في مقالة القواميس Dictionaries في السويفت - الجزء الأول) بأن القواميس تعتبر غير مرتبة unorderd . ولطباعة القيم فقط سنستخدم الخاصية values : for x in Jobs.values { print ( " Key = \(x) ") } والمخرجات كالتالي : وبذلك نكون قد انتهينا بحمد الله من موضوع القواميس Dictionaries بجزئيه الأول والثاني ،أتمنى أكون قد وفقت في الشرح ولا تتردد في سؤالي عن أي نقطة قد تصعب عليك وصلى الله وسلم على نبينا محمد وعلى آله وصحبه أجمعين ..
  3. بسم الله الرحمن الرحيم كما نعرف فإن لغة السويفت Swift تدعم الأنواع الأساسية من المتغيرات مثل : Int - Float - Double - Bool - String - Character كما تدعم أنواع مختلفة أخرى ، وتدعم ٣ أنواع أساسية تُسمى بـ ( Collection Types ) وهم : المصفوفات Arrays - القواميس Dictionaries - المجموعات Set سأتحدث في هذه المقالة عن ( القواميس Dictionaries ) ، وسأتكلم فيها عن : ماهي القواميس Dictionaries ؟ كيفية تعريف وإنشاء القواميس Dictionaries : إنشاء قواميس فارغة . إنشاء قواميس بقيم إبتدائية . إضافة عناصر جديدة للقواميس . إزالة قيم القواميس . ماهي القواميس Dictionaries ؟ كما قلنا سابقاً فإن القواميس أو ماتعرف بـ Dictionaries هي إحدى أنواع المتغيرات في لغة السويفت Swift ، يُستخدم هذا النوع في تخزين عدد من القيم (غير المرتبة unorderd) في متغير واحد ،ويتم تخزين كل قيمة باستخدام مُعرف فريد يُعرف بـ ( المفتاح Key) وذلك ليسهل الوصول لهذه القيمة عند الحاجة إليها . ولتسهيل فكرة القواميس Dictionaries قمت بعمل رسم توضيحي يشرح فكرتها : في الرسمه السابقة نرى بأن لدينا ( متغير ) من نوع dictionary بحيث احتوى على ( ٣ مفاتيح ) وكل مفتاح يشير إلى ( قيمة ) ، بحيث نستطيع الوصول مثلاً (للقيمة ١) فقط عن طريق ( المفتاح ١) و (القيمة ٢) عن طريق (المفتاح ٢) و (القيمة ٣) عن طريق ( المفتاح ٣) وهكذا . وبالتالي استطعنا في متغير واحد تخزين أكثر من قيمة والوصول لهذه القيم باستخدام المفاتيح Keys . سألخص لك الكلام السابق على شكل نقاط : القواميس Dictionaries إحدى أنواع المتغيرات في لغة السويفت Swift . تقوم بتخزين عدد من القيم غير المرتبة unorderd داخل متغير واحد . يتم الوصول لكل قيمة من قيم القواميس عن طريق معرف فريد يعرف بالمفتاح Key . اتمنى أن تكون فكرة القواميس Dictionaries أصبحت واضحة وإن لم تكن كذلك فبإذن الله ستتضح لك أكثر مع الأمثلة 😊 كيفية تعريف وإنشاء القواميس Dictionaries : قبل أن نقوم بالتعرف على طريقة إنشاء القواميس سأذكر لك عدّة نقاط مهمة جداً يجب عليك أن تضعها في الاعتبار قبل تعريف أي Dictionary : أولاً : أسماء المفاتيح Keys يجب أن تكون فريدة uniqe . ثانياً : في المتغير من نوع Dictionary يجب أن تكون ( كل ) المفاتيح key من نفس النوع ، و ( كل ) القيم من نفس النوع ، مثلاً أن تكون كل المفاتيح من نوع Int والقيم من نوع String فهذا صحيح لأن كل المفاتيح من نفس النوع وهو Int و كل القيم من نفس النوع وهو String . ثالثاً : من المسموح أيضاً أن تكون جميع المفاتيح وجميع القيم من نفس النوع مثلاً أن تكون المفاتيح والقيم من نوع String . والآن فلنبدأ بإنشاء القواميس Dictionaries ! 1. إنشاء قواميس فارغة : لتعريف القواميس نستخدم مايعرف بالأقواس المربعة [ ] لتحديد نوع المفاتيح والقيم للمتغير : مثال (١) : var x = [Int : String] ( ) في المثال السابق قمنا بتعريف المتغير x وعرّفنا المفاتيح من نوع Int والقيم من نوع String ( وليس العكس ) و استخدمنا الأقواس التالية : ( ) لنقول بأن المتغير هذا لايحتوى على أي قيمة إلى الآن . مثال (٢) : var y = [String : String] ( ) قمنا بتعريف المتغيرy وعرّفنا المفاتيح من نوع String والقيم أيضاً من نوع String ،و استخدمنا الأقواس التالية : ( ) لنقول بأن المتغير هذا لايحتوى على أي قيمة إلى الآن . 2. إنشاء قواميس بقيم إبتدائية : ولإضافة قيم للقواميس سنتبع الصيغة التالية : سنقوم الآن بتعديل الأمثلة السابقة ووضع قيم ابتدائية لها، وسيكون ذلك كالتالي : مثال (١) : var x : [Int : String] = [ 1 : "A" , 2: "B" , 3 : "C" ] المتغير x يحتوى على المفاتيح التالية : المفتاح 1 والذي يشير للقيمة A والمفتاح 2 والذي يشير للقيمة B والمفتاح 3 والذي يشير للقيمة C . مثال (٢) : var y : [String : String] = [ "One" : "A" , "Two" : "B" , "Three" : "C" ] المتغير y يحتوي على المفاتيح التالية : المفتاح One والذي يشير للقيمة A والمفتاح Two والذي يشير للقيمة B والمفتاح Three والذي يشير للقيمة C . من الأمثلة السابقة نلاحظ مايلي : لتعيين القيم للمتغير نستخدم ( = ) . نضع القيم بين الأقواس كالتالي : ] المفتاح : القيمة [ ونفصل بينهم بفاصلة ( , ) . المفاتيح والقيم لها نفس النوع الذي تم تعريفه ، غير ذلك سيظهر لنا خطأ error. ( كل ) المفاتيح في المتغير الواحد كانت من نفس النوع و ( كل ) القيم أيضاً كانت من نفس النوع . إضافة عناصر جديدة للقواميس : من المهم معرفة أن القواميس لا تستخدم الأمر insert أو الأمر append لإدراج عناصر جديدة مثل ماتفعل المصفوفات ،والسبب في ذلك كما ذكرنا بداية هذه المقالة بأن القواميس تتميز بأنها غير مرتبة unordered بعكس المصفوفات التي تتميز بأنها مرتبة orderd لذلك لادراج قيم في القواميس سنتبع الطريقة التالية : مثال (١) : x [ 4 ] = "Four" هنا أصبح لدينا في المتغير x مفتاح (4) وقيمته هي . Four مثال (٢) : y ["Four"] = "D" هنا أصبح لدينا في المتغير y مفتاح Four)) وقيمته هي . D إزالة قيم القواميس : كما عرفنا فإن القيم في القواميس مرتبطة بمفتاح key خاص فيها لذلك عند حذف أي قيمه فإننا نتعامل مع المفتاح الخاص فيها وذلك بجعله يساوي nil : Variable-Name [Key] = nil مثال (١) : x [ 4 ] = nil مثال (٢) : y ["Four"] = nil الطريقة الأخرى وهي استخدام الدالة( removeValue (ForKey :Key_name ، هذه الدالة تقوم بحذف القيمة المطلوبة إن كانت موجودة أو تسترجع القيمة nil في حالة لم تكن موجودة . Variable-Name.removeValue (ForKey : Key_name) مثال (١) : x.removeValue (ForKey :4) مثال (٢) : y.removeValue (ForKey :"Four") وصلنا لنهاية المقالة أتمنى أن أكون قد وفقت في إيصال المعلومات بشكل واضح وسهل للجميع ،وبإذن الله سيكون هناك جزء ثاني لهذه المقالة نتعمق فيها أكثر في القواميس .
  4. صحيح التطبيق العملي والممارسة هي أفضل طريقة لتعلم وإتقان أي لغة برمجة 👍
  5. بسم الله الرحمن الرحيم كما نعرف فإن لغة السويفت Swift تدعم الأنواع الأساسية من المتغيرات مثل : Int - Float - Double - Bool - String - Character كما تدعم أنواع مختلفة أخرى ، وتدعم ٣ أنواع أساسية تُسمى بـ ( Collection Types ) وهم : المصفوفات Arrays - القواميس Dictionaries - المجموعات Set سأتحدث في هذه المقالة عن ( القواميس Dictionaries ) ، وسأتكلم فيها عن : ماهي القواميس Dictionaries ؟ كيفية تعريف وإنشاء القواميس Dictionaries : إنشاء قواميس فارغة . إنشاء قواميس بقيم إبتدائية . إضافة عناصر جديدة للقواميس . إزالة قيم القواميس . ماهي القواميس Dictionaries ؟ كما قلنا سابقاً فإن القواميس أو ماتعرف بـ Dictionaries هي إحدى أنواع المتغيرات في لغة السويفت Swift ، يُستخدم هذا النوع في تخزين عدد من القيم (غير المرتبة unorderd) في متغير واحد ،ويتم تخزين كل قيمة باستخدام مُعرف فريد يُعرف بـ ( المفتاح Key) وذلك ليسهل الوصول لهذه القيمة عند الحاجة إليها . ولتسهيل فكرة القواميس Dictionaries قمت بعمل رسم توضيحي يشرح فكرتها : في الرسمه السابقة نرى بأن لدينا ( متغير ) من نوع dictionary بحيث احتوى على ( ٣ مفاتيح ) وكل مفتاح يشير إلى ( قيمة ) ، بحيث نستطيع الوصول مثلاً (للقيمة ١) فقط عن طريق ( المفتاح ١) و (القيمة ٢) عن طريق (المفتاح ٢) و (القيمة ٣) عن طريق ( المفتاح ٣) وهكذا . وبالتالي استطعنا في متغير واحد تخزين أكثر من قيمة والوصول لهذه القيم باستخدام المفاتيح Keys . سألخص لك الكلام السابق على شكل نقاط : القواميس Dictionaries إحدى أنواع المتغيرات في لغة السويفت Swift . تقوم بتخزين عدد من القيم غير المرتبة unorderd داخل متغير واحد . يتم الوصول لكل قيمة من قيم القواميس عن طريق معرف فريد يعرف بالمفتاح Key . اتمنى أن تكون فكرة القواميس Dictionaries أصبحت واضحة وإن لم تكن كذلك فبإذن الله ستتضح لك أكثر مع الأمثلة 😊 كيفية تعريف وإنشاء القواميس Dictionaries : قبل أن نقوم بالتعرف على طريقة إنشاء القواميس سأذكر لك عدّة نقاط مهمة جداً يجب عليك أن تضعها في الاعتبار قبل تعريف أي Dictionary : أولاً : أسماء المفاتيح Keys يجب أن تكون فريدة uniqe . ثانياً : في المتغير من نوع Dictionary يجب أن تكون ( كل ) المفاتيح key من نفس النوع ، و ( كل ) القيم من نفس النوع ، مثلاً أن تكون كل المفاتيح من نوع Int والقيم من نوع String فهذا صحيح لأن كل المفاتيح من نفس النوع وهو Int و كل القيم من نفس النوع وهو String . ثالثاً : من المسموح أيضاً أن تكون جميع المفاتيح وجميع القيم من نفس النوع مثلاً أن تكون المفاتيح والقيم من نوع String . والآن فلنبدأ بإنشاء القواميس Dictionaries ! 1. إنشاء قواميس فارغة : لتعريف القواميس نستخدم مايعرف بالأقواس المربعة [ ] لتحديد نوع المفاتيح والقيم للمتغير : مثال (١) : var x = [Int : String] ( ) في المثال السابق قمنا بتعريف المتغير x وعرّفنا المفاتيح من نوع Int والقيم من نوع String ( وليس العكس ) و استخدمنا الأقواس التالية : ( ) لنقول بأن المتغير هذا لايحتوى على أي قيمة إلى الآن . مثال (٢) : var y = [String : String] ( ) قمنا بتعريف المتغيرy وعرّفنا المفاتيح من نوع String والقيم أيضاً من نوع String ،و استخدمنا الأقواس التالية : ( ) لنقول بأن المتغير هذا لايحتوى على أي قيمة إلى الآن . 2. إنشاء قواميس بقيم إبتدائية : ولإضافة قيم للقواميس سنتبع الصيغة التالية : سنقوم الآن بتعديل الأمثلة السابقة ووضع قيم ابتدائية لها، وسيكون ذلك كالتالي : مثال (١) : var x : [Int : String] = [ 1 : "A" , 2: "B" , 3 : "C" ] المتغير x يحتوى على المفاتيح التالية : المفتاح 1 والذي يشير للقيمة A والمفتاح 2 والذي يشير للقيمة B والمفتاح 3 والذي يشير للقيمة C . مثال (٢) : var y : [String : String] = [ "One" : "A" , "Two" : "B" , "Three" : "C" ] المتغير y يحتوي على المفاتيح التالية : المفتاح One والذي يشير للقيمة A والمفتاح Two والذي يشير للقيمة B والمفتاح Three والذي يشير للقيمة C . من الأمثلة السابقة نلاحظ مايلي : لتعيين القيم للمتغير نستخدم ( = ) . نضع القيم بين الأقواس كالتالي : ] المفتاح : القيمة [ ونفصل بينهم بفاصلة ( , ) . المفاتيح والقيم لها نفس النوع الذي تم تعريفه ، غير ذلك سيظهر لنا خطأ error. ( كل ) المفاتيح في المتغير الواحد كانت من نفس النوع و ( كل ) القيم أيضاً كانت من نفس النوع . إضافة عناصر جديدة للقواميس : من المهم معرفة أن القواميس لا تستخدم الأمر insert أو الأمر append لإدراج عناصر جديدة مثل ماتفعل المصفوفات ،والسبب في ذلك كما ذكرنا بداية هذه المقالة بأن القواميس تتميز بأنها غير مرتبة unordered بعكس المصفوفات التي تتميز بأنها مرتبة orderd لذلك لادراج قيم في القواميس سنتبع الطريقة التالية : مثال (١) : x [ 4 ] = "Four" هنا أصبح لدينا في المتغير x مفتاح (4) وقيمته هي . Four مثال (٢) : y ["Four"] = "D" هنا أصبح لدينا في المتغير y مفتاح Four)) وقيمته هي . D إزالة قيم القواميس : كما عرفنا فإن القيم في القواميس مرتبطة بمفتاح key خاص فيها لذلك عند حذف أي قيمه فإننا نتعامل مع المفتاح الخاص فيها وذلك بجعله يساوي nil : Variable-Name [Key] = nil مثال (١) : x [ 4 ] = nil مثال (٢) : y ["Four"] = nil الطريقة الأخرى وهي استخدام الدالة( removeValue (ForKey :Key_name ، هذه الدالة تقوم بحذف القيمة المطلوبة إن كانت موجودة أو تسترجع القيمة nil في حالة لم تكن موجودة . Variable-Name.removeValue (ForKey : Key_name) مثال (١) : x.removeValue (ForKey :4) مثال (٢) : y.removeValue (ForKey :"Four") وصلنا لنهاية المقالة أتمنى أن أكون قد وفقت في إيصال المعلومات بشكل واضح وسهل للجميع ،وبإذن الله سيكون هناك جزء ثاني لهذه المقالة نتعمق فيها أكثر في القواميس .

عالم البرمجة

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