اذهب إلى المحتوى

لوحة المتصدرين

  1. Lujain Maaz

    Lujain Maaz

    الأعضاء


    • نقاط

      16

    • المساهمات

      344


  2. zahershullar

    zahershullar

    الأعضاء


    • نقاط

      4

    • المساهمات

      625


  3. يونس بن عمارة

    يونس بن عمارة

    الأعضاء


    • نقاط

      2

    • المساهمات

      19


  4. Hadjer

    Hadjer

    الأعضاء


    • نقاط

      1

    • المساهمات

      183


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 11/21/15 في كل الموقع

  1. تعتبر المؤشرات Pointers من أقوى الميزات التي تمتاز بها لغة ++C عن باقي اللغات المشهورة مثل جافا، فيجوال بيسك..الخ. لفهم عمل المؤشرات واستخدامها لابد أولًا أن يكون لديك معرفة عن ما هو العنوان Address في ذاكرة الحاسوب. تُقسم ذاكرة الحاسوب إلى أجزاء من bytes وكل بايت لديه العنوان الخاص به على سبيل المثال في ذاكرة حجمها 1 KB يوجد 1024 bytes وكل بايت يعطي عنوان (أي أن مجال العناوين من 0 - 1023). فالمؤشرات إذًا هي متغيرات تختزن عناوين متغيرات أخرى في الذاكرة بالـ hexadecimal النظام الست عشري، يمكن للمؤشرات أن تؤشر على متغير من نوع primitive أو عنصر من مصفوفة array أو غرض object. يُعرّف المؤشر بطريقتين: int *p; أو int* p;مثال على طريقة تعريف مؤشر وإسناد عنوان متغير من نوع int إليه: int* ptr; int a = 5; ptr = &a; // &a is the address of a.التعليمة البرمجية int* ptr تعرف مؤشر pointer من نوع int أي أن العنوان الذي يختزنه هو عنوان متغير من نوع int. التعليمة البرمجية ptr = &a تقوم بإسناد عنوان المتغير a إلى المؤشر p (أي أن a& هو عنوان المتغير a وتُقرأ ( Reference a) رفرنس a). مثال: #include <iostream> using namespace std; int main() { int *pc, c; c = 5; cout<< "Address of c (&c): " << &c << endl; cout<< "Value of c (c): " << c << endl << endl; pc = &c; // Pointer pc holds the memory address of variable c cout<< "Address that pointer pc holds (pc): "<< pc << endl; cout<< "Content of the address pointer pc holds (*pc): " << *pc << endl << endl; c = 11; // The content inside memory address &c is changed from 5 to 11. cout << "Address pointer pc holds (pc): " << pc << endl; cout << "Content of the address pointer pc holds (*pc): " << *pc << endl << endl; *pc = 2; cout<< "Address of c (&c): "<< &c <<endl; cout<<"Value of c (c): "<< c<<endl<< endl; return 0; }النتيجة: ماذا تعني المؤشرات pointers في ++C ؟
    1 نقطة
  2. تعلم البرمجة بحد ذاتها لا يرتبط بشكل أساسي بلغة البرمجة لأن البرمجة تُعلّم طريقة التفكير وطريقة الوصول للمشكلة وإيجاد حل لها بأفضل وأسرع الطرق. عمومًا أنصحك أن تبدأ بلغة ++C فهي لغة أساسية وتصقل الكثير من تفكيرك البرمجي في المستقبل حيث أن معظم اللّغات التي ظهرت بعد ++C هي لغات أسهل منها وأكثر مرونة وحين تتقن لغة ما لن يصعب عليك تعلم لغة برمجة جديدة طالما أنك امتلكت التفكير البرمجي السليم. عليك التركيز على البرمجة الغرضية التوجه أو الكائنية التوجه Object Oriented Programming فبعض اللغات تعتمد بشكل أساسي على OOP وتسمى Pure OOP Language مثل لغة جافا Java. غالبًا يُشرح مفهوم البرمجة غرضية التوجه في لغة C++ في الدروس الأخيرة. أيضًا الإلمام ببرمجة تطبيقات الهواتف الذكية يعتبر من الأمور التي لا غنى عنها لأي مبرمج أو مطور ولا سيما بوجود تسارع كبير يشهده العالم في هذا المجال. بالتوفيق.
    1 نقطة
  3. كثيرًا ما ينشر المسوقين ورواد الأعمال صورهم وفيديوهاتهم التي تبين أسلوب حياتهم الراقي والتي من شأنها أن تغري المتابعين، وبالتالي يمكن أن يؤثر ذلك على التعلق بهم بما أنهم رجال ناجحون للسير على دربهم، ما يهمني الآن كيف أستطيع أن أقنع عملائي باتباعي عندما لا يكون لي ذلك الأسلوب المغري في الحياة ؟ وهل يمكن إيهام المتابعين بصور خادعة مثلا من أجل لفت انتباههم ؟
    1 نقطة
  4. الجواب يكون حسب ما تبيعه، منتج أو خدمة. وحسب التوقيت بعد أو إطلاق المنتج أو الخدمة الخطوات قبل الإطلاق: - حدّد أولا فئة الزبائن المستهدفة حجمها وكيفية الوصول إليها ومدى التجاوب. - قم بعمل استبيان ودراسة جدوى للمنتج والمشروع أو الخدمة. - اطلق نسخة بيتا أو عينة من المنتج وجس نبض السوق (هذه الخطوات توفر عليك المال والتعب والخسارة أو النجاح المهم والكبير في حالة سارت الأمور كما هو مخطط لها ) بعد إطلاق المنتج أو الخدمة : سوّقه في أماكنه الخاصة. لا تعرض مثلا تي شيرت في مجموعات بيع الكتب والمجلات و العكس صحيح . لما يكون المنتج معروضا في مكانه الصحيح على النت فلن تضطر إلى أن تبدو كبائع يلح في بيع سلعته فيثير ذلك التخوف من عملية الاحتيال بل ستبدو كبائع في مكانه الصحيح يعرض منتجه بكل بساطة . لا تظهر اندفاعك : لو كانت لك خدمة x معينة، ولها حلول دفع واضحة وأتى زبون معين او عرضت عليه ووافق لكنه طلب حلا للدفع لا يتوفر لديك . لا داعي لإنشائه فورا تقيد دوما بمسارك في المنتج والخدمة ولا تتعجل الأمور وكل يسير حسب وقته و ما هو مخطط له . ببساطة : لا للحلول الجانبية ولا للمراوغات او الطرق المختصرة التي تؤدي بسمعتك إلى الأسفل . دع مستخدمي المنتج او الخدمة هم من يروج لك : تعلم بعض التسويق الخاص ببناء المجتمعات حول منتج ما او خدمة . فهو مهم جدا . لا تعتمد في هذه الحالة على الخدمات التي تكون موسمية أو منتجات محدود الفترة و سريعة الانتهاء . بناء المجتمعات يتطلب أربعة أمور العلم والتعلم الدائم والصبر و الوقت . في حوارك مع الزبائن والترويج لمنتجه .اتبع دائما أفضل الطرق المتبعة في التسويق وركز على القيمة التي يضيفها خدمتك ومنتجك للزبون او العميل لا على العائد .
    1 نقطة
  5. مجال عملك يجب أن يحدده الهدف النهائي منه و الفئة المستهدفة، لا الثراء. إن كان النجاح = الثراء في نظرك فهذا يحتاج منك إلى إعادة فهم النجاح. تعريف النجاح هو تحقيق الأهداف ، لو كان الثراء من ضمنها لا مشكلة. كيفية التأثير : - التركيز على القيمة لا العائد : فمثلا لو كان لديك منتج وهو كتاب معين تعبتي فيه وأخرجته بأحسن صوره فالتركيز التسويقي يجب ان يكون على القيمة لا العائد بمعنى ( قيمة الكتاب وفوائده ) لا عدد تحميلاته أو من اشتروه . - الاحتفاء بالنجاحات الصغيرة : في ذكرى زواجهما ميليسا زوجة بيل غيتس لم تضع صورة لمنزلها الفاخر أو سيارتها الغالية بل صورة عادية جدا وهي تقرأ لابنائها فهي ركزت على القيمة. واحتفت بالنجاحات التي تبدو صغيرة في نظر الكثيرين . - دع زبائنك وعملائك يشاركون مراحل نجاحك والوصول للقمة. لا أن تكلمهم من الأعلى : لا أحد يحب أن يتكلم احد بعد أن ينجح تماما، ففي دواخلنا نعتبر ذلك شئنا أم أبينا تفاخرا وضربة حظ وظروف مساعدة . لذلك فمشاركة النجاحات الصغيرة ومراحل الوصول من أهم الأشياء والوسائل التي لا تحتاج إلى إغراء مادي واضح للعملاء . كيفية تطبيق الخطوات : تطبيق الخطوة الأولى : التركيز على القيمة لا العائد : كمثال كتاب المدون الناجح محمد حبش: البت من عيون الدولار. هو كتاب لا يقول لك "سأجعلك غنيا وتملك سيارة لامبرغيني في اسبوع " بل يقول لك : كتابي يحوي أكثر من 70 مقال عن التقنية والأعمال وعلاقتهم ببعض، التركيز هنا على القيمة لا العائد . اعتراض : سأخسر اذن العديد من الزبائن . الجواب : ستربح وتبقي زبائن مدى الحياة . وفي مقال حول التدوين اليومي والربح منه ، خسر المدون Yann Girard العديد من عملائه لما بدأ التدوين اليومي لكن استفاد من زبائن وعملاء دائمين انها غربلة ضرورية . الاحتفاء بالنجاحات الصغيرة : في عصرنا لم يعد هناك ضرورة كي تنجح وتكبر ثم تحكي عن ذكريات نجاحك .. العصر أصبح سريعا جدا وكل شيء أصبح في الوقت الحقيقي . فلما تحقق نجاحات صغيرة مثل : التعاقد مع شركة ، نشر كتابك ، بيع العديد من الخدمات أو حتى حيازة تدوينتك الاخيرة على تفاعل كبير. احتفِ بذلك وشاركه واكتب الطريقة .. سيتكون لديك جمهور يتابعك و يتكون على يديك او لنقل يتكون معك . و هذا من أساسيات العمل الجماعي في عصرنا هو ان فكرة القائد أصبحت متلاشية الحدود والناس والموظفون المبدعون والزبائن لم يعودوا يريدون بائعا ولا قائدا ولا شركة بل ( صديقا ) ، (ناصحا) و ملجأ فكريا وقيميا . وهنا نعود الى النقطة الأولى وهي تركيزنا على القيمة . اضافة : التواضع رِفعة : أسلوب الاغراء يولد الحسد والتفاخر والرياء وهذا معروف وزبائنه ونظامه له منحنى معين هو الصعود السريع والانحدار السريع وهناك الكثير من الأمثلة العربية . ومعظمنا للأسف لا يملكون اسما او تجارة بل يصطادون في المياه العكرة ويبدلون المحتوى والبراند - الوسم - في كل مرة . النجاح ربما يأتي ببطء لكنه نجاح .
    1 نقطة
  6. بدايةً استخدم أداة التحديد المضلع ارسم بواسطتها شكل الزجاج المكسور اختر أداة التدرج اللوني ضع تدرج لوني بين الرمادي الداكن والأبيض واجعل لها شفافية كبيرة طبّق التدرج على شكل الزجاج مجددًا استخدم اداة التحديد المضلع لرسم حواف للزجاج وتلوينها بالرمادي بالتوفيق
    1 نقطة
  7. ارسم قوس من القائمة Create > Shapes > Arc ادرج الشكل ثم اسحبه بالفأرة لتحصل على شكل مشابه للصورة ضاعف القوس وذلك بتحديده ثم الضغط على shift واسحبه للأسفل قليلًا اضغط على القوس بالزر الأيمن واختر convert it to an editable spline ثم اذهب إلى لوحة Modify ثم اختر Vertex ثم اضغط على زر attach ثم حدد القوس الآخر واضغط connect حدد نهاية القوس واسحبها للنهاية المعاكسة ثم نفّذ الأمر مع النهاية الأخرى وبذلك يصبح لدينا شكل واحد متصل ألغِ تفعيل vertex ثم حدد الشكل الجديد ومن قائمة Modify ابحث عن Extrude ثم ارفع قيمة amount حتى يصير طول الشكل مماثل لعرضه ضاعف الشكل بنفس الطريقة التي اتبعناها مع القوس سابقًا دوّر النسخة 180 درجة بواسطة أداة الدوران الموجودة في شريط الأدوات العلوي وأخيرًا ضاعف الشكلين بنفس الأسلوب لنحصل على أربعة اشكال كهذه الآن أنت سألت كيف نرسم أما عن الخامات والمواد وعملية التصيير (الرندر) فهذه عملية يطول شرحها
    1 نقطة
  8. أسهل طريقة هي برسم خط بشكل مقطع نصف المستوعب ثم تطبيق تأثيرات عليه ليصبح مستوعب فلذلك نبدأ برسم الخط من القائمة Create>Shape>Line ارسم بواسطة الخطوط مقطع عمودي لنصف المستوعب كما في الشكل. حدد هذا الشكل واذهب إلى لوحة Modify ثم فعّل الخيَار Spline واسحب المزلاج للأسفل حتى نصل إلى Outline ونضغط عليها لتفعيلها ثم حدد شكل المستوعب واسحبه قليلًا للأسفل وبذلك نضيف سماكة لهذا الشكل. تابع الصور لمعرفة كيفية سير العمل. ابحث عن التأثير Lathe من قائمة Modify ثم فعّل Weld Core وحدد المحاذاة Align على المستوى الأدنى Min وحدد Output على Patch . تابع الصور التالية لرؤية العملية والنتائج.
    1 نقطة
  9. درس اليوم مثالي للمبتدئين في برنامج الإليستريتور. ليس من الضروري أن تكون محترفًا لتصمم عملًا فنيًّا رائعًّا، وباستخدام الأشكال الأساسية ومجموعة محدودة من الألوان يمكن أن تنتج تصاميم وأعمال فنيّة مذهلة. في هذا الدرس سنتعلّم استخدام أشكال الإليستريتور الأساسية وأدواته لتصميم منظر طبيعي رائع ومن ثم ننهي التصميم ببعض الإضافات ببرنامج الفوتوشوب. سيكون العمل الفني (المنظر الطبيعي) بسيطًا مصممًا باستخدام الأشكال الأساسية وألوان محدودة باللونين الأخضر والأصفر. عمل الفكتور هذا يميل ليبدو كرسم مسطّح جامد لا حياة فيه لذلك فإن الخطوة الأخيرة ستكون بنقل هذا التصميم إلى الفوتوشوب لحل تلك المشكلة وإضفاء الحيوية على التصميم. افتح ملفًا جديدًا في برنامج Adobe Illustrator. أبعاد الملف غير مهمة فقط اذهب للقائمة التالية لإخفاء حدود لوح الرسم: View > Hide Artboards سنحتاج إلى مخطط ألوان رائع لرسمنا، أنا اخترت سلسلة الألوان التالية. ألصق لقطة من سلسلة الألوان هذه على لوح الرسم ثم أنشئ سلسلة مربعات صغيرة وقم بتعبئة كلٍّ منها بأحد الألوان من السلسلة باستخدام أداة القطّارة Eyedropper. استخدم اللون الأفتح لرسم مستطيل كبير سيكون خلفية الرسم. اختر أحد الألوان الخضراء المتوسطة وارسم بها مستطيلًا وشكلًا بيضويًّا لتشكيل الأرضية والتلّة. بما الشكلين بنفس اللون فسيبدو وكأنهما مندمجان معًا ولكنها منفصلان ويمكن تحريكهما فرديًّا. اختر أقتم لون أخضر وارسم شكلًا بيضويًّا آخر ليكون تلّةً أخرى. حدّد الأشكال البيضوية وأرسلها خلف شكل الأرضية بالزر الأيمن ثم اختر Arrange > Send Backward ولكن أبقها فوق شكل الخلفية ذو اللون الأفتح. استمر بالضغط على Shift أثناء الرسم بأداة Ellipse لتثبيت الأبعاد ورسم دائرة مثالية. وفي مكان آخر على لوح الرسم استخدم أداة القلم Pen لرسم مثلث بأربع نقرات بسيطة. لضبط الشكل استخدم أداة التحديد المباشر Direct Selection لتحديد وتحريك أي من التقاط الثلاث. استخدم أداة القطّارة Eyedropper لإعطاء هذا الشكل اللون الأخضر القاتم من مربعات الألوان المعدّة مسبقًا. حرّك شكل المثلث إلى فوق الدائرة ليكون جذع الشجرة ثم انسخه وألصق النسخة بعد تصغير حجمه وتدويره لتشكيل غصن الشجرة. قم بمداخلة الشكلين حتى يبدو أنهما مندمجان بسلاسة. حدّد كل شكل من الأشكال التي تكوّن الشجرة مع الاستمرار بالضغط على Shift وبعد ذلك اضغط على Alt أثناء سحبها إلى إحدى الجهات لصنع نسخة عنها. عد للخلف واضبط اتجاهات الأغصان لإعطاء كل شجرة شكلًا فريدًا. حدّد الخلفية الصفراء المستطيلة ثم انسخ CMD+C وألصق في المقدمة CMD+F. امسح لون التعبئة في شريط الأدوات toolbar. حدد الأرضية الخضراء المستطيلة مع التلال بالضغط على Shift باستمرار لتحديدها جميعًا. انقر على زر القص Crop من لوحة Pathfinder لقص هذه الأشكال بحسب حجمها. عملية القص الأخيرة سوف تعبث بطبقات العناصر. استخدم اختصار ]+CMD لإرسال العناصر للخلف حتى تظهر عناصر الأرضية مجددًا. مرحلة الرسم الأساسية في درسنا قد انتهت. استخدمنا الأدوات الأساسية لتصميم فكتور منظر طبيعي صغير بسيط ولكننا سنضفي بعض الحياة على هذا المنظر الطبيعي بنسخ كامل التصميم ولصقه داخل برنامج الفوتوشوب Photoshop. افتح صورة Subtle Grunge Texture من موقع LostAndTaken وألصقها فوق العمل الفني في الفوتوشوب. استخدم الاختصار CMD+Shift+U لإشباع الصورة بشكل سريع ثم غيّر خصائص المزج لهذه الطبقة إلى Soft Light. هذا سيجعل الصورة تتفاعل مع ألوان التصميم الذي رسمناه. اذهب إلى القائمة: Filter > Sharpen > Sharpen هذا سيظهر ملامح الصورة الفوقية أكثر. اضغط CMD+F مرة أو مرتين لتكرار التأثير الأخير وإظهار علامات الاهتراء لتتطابق مع شدة الحدة sharp المطبّقة على التصميم. إن كان تأثير الصورة الفوقية يبدو قاسيًا، خفف من opacity لتلك الطبقة لتخفيف التأثير قليلًا. هذا ينهي تصميمنا بشكل كامل. إن استخدام الأشكال الأساسية يمكن أن ينتج بعض الأعمال الفنية المذهلة وبإضافة بعض التأثيرات في الفوتوشوب سيرفع من مستوى التصميم فعليًّا ويمنحه تأثير مرور الزمن عليه خصوصًا أننا استخدمنا سلسلة ألوان محدودة. ترجمة -وبتصرّف- للمقال: How To Create a Simple Landscape Scene in Illustrator لصاحبه Chris Spooner.
    1 نقطة
  10. يوجد عدّة طرق لطباعة المحارف في مصفوفة char، الطريقة الأولى باستخدام حلقة تكرار foreach والخاصية .characters كما في المثال التالي: for character in "Dog!".characters { print(character) } طريقة أخرى باستخدام string casting: let catCharacters: [Character] = ["C", "a", "t", "!"] let catString = String(catCharacters) print(catString) // prints "Cat!"كيف أطبع سلسلة من محارف characters في Swift؟
    1 نقطة
  11. Facebook graph API هو وسيلة أساسية للحصول على المعلومات من منصة فيسبوك على تطبيقك أي أنه يُستخدم للاستعلام عن البيانات أو نشر أي منشور جديد أو إدارة الإعلانات وتحميل الصور ومجموعة متنوعة من المهام الأخرى التي قد يحتاج تطبيقك القيام بها. تتألف المعلومات المتمثلة في Facebook Graph من : العقد nodes وهي "الأشياء" مثل المستخدم، صورة، صفحة، تعليق. الحواف edges وهي الصلات بين تلك "الأشياء" مثل صور الصفحة أو التعليقات على صورة. الحقول fields وهي المعلومات عن تلك الأشياء مثل عيد ميلاد الشخص أو اسم الصفحة. يمكنك الاطلاع على التوثيق الخاص بـ Facebook Graph API والقواعد Syntax لكيفية جلب المعلومات باستخدام Graph API Explorer
    1 نقطة
  12. ERP هي اختصار لـ Enterprise Resource Planning أي تخطيط موارد المشاريع أو المؤسسات. يمكن تعريف ERP على أنها منهجية تحث الشركات على استخدام الموارد بأكثر الطرق فعالية وجودة أي أن ERP هو ليس برنامج أو تطبيق software ولا يمكن تسميته بنظام system لأن الشركات التي تعمل وفق منهجية ERP تقوم ببناء تطبيقات وأنظمة تعمل وفق تلك المنهجية وينتج عنها مثلًا ERP Systems و ERP Solutions...الخ. تهدف أنظمة ERP إلى ربط جميع وحدات الشركة أو المؤسسة مع بعضها البعض (نظام الموارد البشرية، المستودعات، المحاسبة..الخ) بمجمل الأحول لابد لأي شركة أو مؤسسة تطمح لتطوير ذاتها وزيادة نشاطها من استخدام نظام تخطيط الموارد. مثال على أنظمة تعمل وفق منهجية ERP: E2 Shop SystemIntacctما هو ERP ولم يستخدم؟
    1 نقطة
  13. توفر Swift العديد من الطرق للتعامل مع الملفات وتختلف هذه الطرق بحسب نوع إصدار Swift الذي تعمل عليه. يمكن استخدام NSFileManager وهو عبارة عن صف class يحوي على مجموعة من الدوال للقراءة والكتابة على الملفات. طريقة أخرى أكثر شيوعًا في الاستخدام للكتابة على الملفات في Swift 1.x باستخدام الدالة WriteToFile. حيث يتم تمرير مسار الملف الذي تريد الكتابة عليه على الشكل التالي: let file = "file.txt" if let dirs : [String] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String] { let dir = dirs[0] //documents directory let path = dir.stringByAppendingPathComponent(file); let text = "some text" //writing text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil);للقراءة من ملف يتم استخدام contentsOfFile وتمرير مسار الملف الذي تريد القراءة منه كما في المثال التالي: //reading let text2 = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil)في إصدار Swift 2.0 يجب وضع error handling do / catch: let file = "file.txt" //this is the file. we will write to and read from it let text = "some text" //just a text if let dir : NSString = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first { let path = dir.stringByAppendingPathComponent(file); //writing do { try text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding) } catch {/* error handling here */} //reading do { let text2 = try NSString(contentsOfFile: path, encoding: NSUTF8StringEncoding) } catch {/* error handling here */} }كيف أكتب وأقرأ من ملف نصي باستخدام لغة Swift؟
    1 نقطة
  14. تقسّم السلسلة النصية string في Swift بعدّة طرق: الطريقة الأولى استخدام الدالة componentsSeparatedByString التي تأخذ معامل واحد argument وهو المحرف الذي تريد تقسيم السلسلة النصية عنده مثال: var fullName: String = "First, Last" let array = fullName.componentsSeparatedByString(",") print(array); أو يمكن استخدام characters.split وتمرير المحرف الذي ستقسّم السلسلة على أساسه: characters.split(",")كما في المثال التالي: let fullName = "First Last" let fullNameArr = fullName.characters.split(" ") let firstName = String(fullNameArr[0])الطريقة الثانية متاحة في إصدارات Swift التي تسبق الإصدار Swift 2.0 باستخدام الدالة Split: var fullName = "First Last" var fullNameArray = split(fullName) {$0 == " "} var firstName: String = fullNameArray[0] var lastName: String? = fullNameArray.count > 1 ? fullNameArray[1] : nilكيف أقسم سلسلة نصية string وأحولها إلى مصفوفة array في Apple Swift؟
    1 نقطة
  15. لطباعة نوع المتغير في Swift يمكنك استخدام التعبير post-fix self expression للوصول إلى نوع المتغير أو نوع القيمة. على سبيل المثال someClass.self تُرجع اسم الصف نفسه لأن الصف هو نوع بحد ذاته. يمكن أيضًا استخدام التعبير أو الخاصية dynamicType للوصول إلى نوع القيمة في run-time كما في المثال التالي: class PureSwiftClass { } var myvar0 = NSString() // Objective-C class var myvar1 = PureSwiftClass() var myvar2 = 42 var myvar3 = "Hans" print( "String(myvar0.dynamicType) -> \(myvar0.dynamicType)") print( "String(myvar1.dynamicType) -> \(myvar1.dynamicType)") print( "String(myvar2.dynamicType) -> \(myvar2.dynamicType)") print( "String(myvar3.dynamicType) -> \(myvar3.dynamicType)") استخدام التعبير post-fix self expression: print( "String(Int.self) -> \(Int.self)") print( "String((Int?).self -> \((Int?).self)") print( "String(NSString.self) -> \(NSString.self)") print( "String(Array<String>.self) -> \(Array<String>.self)")كيف أطبع نوع المتغير أو نوع الصف class في Apple Swift
    1 نقطة
  16. يوجد عدّة طرق لتغيير ترتيب عناصر في مصفوفة بشكل عشوائي في Swift، الطريقة الأولى هي باستخدام Shuffle كـ دالة method. اكتب الشيفرة التالية: func shuffle<C: MutableCollectionType where C.Index == Int>(var list: C) -> C { let c = count(list) if c < 2 { return list } for i in 0..<(c - 1) { let j = Int(arc4random_uniform(UInt32(c - i))) + i swap(&list[i], &list[j]) } return list } shuffle([1, 2, 3, 4, 5, 6, 7, 8]) // e.g., [6, 1, 8, 3, 2, 4, 7, 5] shuffle(["hello", "goodbye", "ciao"]) // e.g., ["ciao", "goodbye", "hello"]الطريقة الثانية باستخدام (extension (shuffle as a mutating array method اكتب الشيفرة التالية: extension Array { mutating func shuffle() { if count < 2 { return } for i in 0..<(count - 1) { let j = Int(arc4random_uniform(UInt32(count - i))) + i swap(&self[i], &self[j]) } } } var numbers = [1, 2, 3, 4, 5, 6, 7, 8] numbers.shuffle()الطريقة الثالثة باستخدام (extension (shuffle as a non-mutating array method اكتب الشيفرة التالية: extension Array { func shuffled() -> [T] { if count < 2 { return self } var list = self for i in 0..<(list.count - 1) { let j = Int(arc4random_uniform(UInt32(list.count - i))) + i swap(&list[i], &list[j]) } return list } } let numbers = [1, 2, 3, 4, 5, 6, 7, 8] let mixedup = numbers.shuffled() // e.g., mixedup == [6, 1, 8, 3, 2, 4, 7, 5]
    1 نقطة
  17. ببساطة "let" تُعرّف متغير ثابت constant أي لا يمكن تغيير قيمته بعد إعطاءه قيمة مثال: let myVariable= 42بينما "var" تعرف متغير عادي: var myVariable= 42أي أنه في حال رغبتك بتخزين قيم في متغيرات ولا تريد أن يحدث عليها أي تغير فيما بعد عليك أن تُعرّفها كمتغيرات "let" واستخدم المتغيرات "var" فقط عندما تكون القيم المخزنة بها ستتغير لاحقًا.
    1 نقطة
  18. تحتوي Swift على الدالة ()Contains والتي تُرجع قيمة منطقية Boolean true or false. في حال إيجاد العنصر في المصفوفة تُرجع قيمة true وفي حال عدم وجوده ترجع قيمة false. للبحث عن عنصر معين في مصفوفة اكتب الشيفرة التالية: var elements = [1,2,3,4,5] if elements.contains(5) { // any matching items are in results } else { // not found }في الإصدار السابق لـ Swift 2.0 تُكتب ()Contains بالطريقة التالية: var elements = [1,2,3,4,5] if contains(elements, 5) { println("yes") }في حال كانت المصفوفة من نوع object وتريد معرفة فيما إذا كانت المصفوفة تحتوي على object معين أم لا استخدم الدالة ()ContainsObject. مثلًا مصفوفة من نوع imageFile: class imageFile { var fileName = String() var fileID = Int() } var images : [imageFile] = []إنشاء غرضين 2 objects وتعبئتهما في المصفوفة: var aImage = imageFile() aImage.fileName = "image1.png" aImage.fileID = 300 images.append(aImage) aImage = imageFile() aImage.fileName = "image1.png" aImage.fileID = 202 images.append(aImage)التأكد من وجود الغرض aImage ضمن المصفوفة: if (images as NSArray).containsObject(aImage) { // Do something print("yes"); }
    1 نقطة
  19. يوجد عدة طرق لحساب طول السلسلة النصية string في لغة البرمجة swift وذلك بحسب الإصدار الذي تعمل عليه: في إصدار (swift 2.0(Xcode 7 يمكنك حساب عدد العناصر في سلسلة نصية string عن طريق استخدام الدالة التالية: let myString = "Test" let length = myString.characters.count // = 4في إصدار (swift 1.2(Xcode 6.3 يُحسب طول السلسلة النصية string باستخدام الدالة ()count: let myString = "Test" let length = count(myString) // = 4قبل إصدار (swift 1.2(Xcode 6.3 يُحسب طول السلسلة النصية string باستخدام الدالة ()countElements. let myString = "Test" let length = countElements(myString) // = 6يمكنك أيضًا استخدام الخاصية endIndex والتي ترجع طول السلسلة النصية string: let str: String = "Hello, World" print(str.endIndex) // 12طريقة أخرى وهي باستخدام NSString: let str2 = "Hello, World" print(NSString(string: str2).length) // 12
    1 نقطة
  20. نعم توفّر Swift ثلاث مستويات وصول مختلفة access levels للكيانات entities تكون هذه المستويات مرتبطة بالملف المصدري source file. المستويات: public access: يمكن الوصول للكيانات المعرفة كـpublic من أي ملف مصدري وكذلك في حال استيراد التعريف من أي وحدة أخرى. internal access: يمكن استخدام أي كيان معرف كـinternal ضمن الوحدة المعرف بها فقط ولا يمكن الوصول له من أي ملف مصدري خارج الوحدة. private access: يُقيّد استخدام الوحدة حيث يستخدم لإخفاء تفاصيل التنفيذ لجزء معين من الوظائف. هل تحوي لغة البرمجة Apple Swift على access modifier؟
    1 نقطة
  21. لحذف محرف من سلسلة نصية string في swift استخدم الدالة: removeAtIndex(_:)والتي تحذف محرف موجود في فهرس index محدد، مثلًا حذف آخر محرف "!" من سلسلة نصية string تحوي على جملة: "!Welcome to Swift". var welcome ="Welcome to Swift!" welcome.removeAtIndex(welcome.endIndex.predecessor()) // welcome now equals "Welcome to Swift"بالنسبة لحذف أكثر من محرف يمكن ذلك أيضًا أي يمكن حذف كلمة أو مجموعة حروف من سلسلة نصية string بتحديد عدد الفهارس التي تريد حذفها باستخدام الدالة: removeRange(_:)مثلًا حذف آخر كلمة في الجملة "Welcome to Swift" باستخدام الدالة removeRange let range = welcome.endIndex.advancedBy(-6)..<welcome.endIndex welcome.removeRange(range) // welcome now equals "Welcome to"ستصبح السلسة النصية "Welcome to". كيف أحذف محرف من سلسلة نصية string في Apple Swift؟
    1 نقطة
  22. أجل يمكنك اضافة محرف character إلى سلسلة نصية string في swift عند فهرس index محدد باستخدام الدالة: insert(_:atIndex:)ليكن لديك السلسلة النصية التالية: var welcome = "hello"وتريد اضافة المحرف "!" في آخر السلسلة النصية أي بعد الكلمة "hello" باستخدام الدالة: insert(_:atIndex:)استدعي الدالة insert بواسطة اسم المتغير welcome ومرر لها المعاملين 2 arguments وهما المحرف character الذي تريد اضافته ورقم الفهرس index الذي تريد وضع المحرف عنده كما في المثال التالي: var welcome = "hello" welcome.insert("!", atIndex: welcome.endIndex) // welcome now equals "hello!"يمكنك أيضًا اضافة كلمة أو سلسلة نصية أخرى إلى سلسلة نصية موجودة باستخدام الدالة: insertContentsOf(_:at:)مثلًا اضافة كلمة "there" إلى السلسلة النصية welcome عند الفهرس index قبل الأخير: welcome.insertContentsOf(" there".characters, at: welcome.endIndex.predecessor()) // welcome now equals "hello there!"ستصبح السلسة النصية !hello there كيف أُضيف محرف إلى سلسلة نصية string في Apple Swift؟
    1 نقطة
  23. يتوفر في جافا دالتين في التعامل مع المجلدات directories هما mkdir() و mkdirs الدالة ()mkdir تنشئ مجلد directory تُرجع قيمة ture في حال نجاح العملية وإنشاء المجلد أو قيمة false في حال فشل إنشاء المجلد (تفشل عملية إنشاء المجلد في حال كان المسار موجود مسبقًا أي لا يمكن إنشاء مجلدين بنفس الاسم في نفس المكان) أو أن يكون المسار غير صحيح.الدالة ()mkdirs تنشئ مجلد directory مع جميع المجلدات التي يحتويها.مثال إنشاء المجلدات /tmp/user/java/bin: import java.io.File; public class CreateDir { public static void main(String args[]) { String dirname = "/tmp/user/java/bin"; File d = new File(dirname); // Create directory now. d.mkdirs(); } }سيتم إنشاء مجلد جديد في القرص C باسم tmp يحوي على المجلدات user->java->bin بالترتيب:
    1 نقطة
×
×
  • أضف...