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

سعيد

الأعضاء
  • المساهمات

    96
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    6

كل منشورات العضو سعيد

  1. أنصحك ألّا تلجأ لهذا الأسلوب أبدًا. الأفضل أن تستخدم نظام إدارة الإصدارات مثل Git. يُمكّنك أن تُنشأ حسابًا على Github.com لهذا الغرض أو أن تنشأ حسابًا على bitbucket.com إذا كنت تريد أن يكون مشروعك غير متاح للعموم. هذا إذا أردت إنشاء نسخة أون لاين من المشروع. أمّا إذا أردت التخزين على قرصك الصلب فقط؛يمكنك استعمال git فقط. وهذا هو الأسلوب المتبع من أغلب مطوّري التطبيقات (بصرف النظر عن نوعها). توجد سلسلة من المقالات هنا في أكاديميّة حسّوب حول أساسيّات التعامل مع Git يمكنك متابعتها من هنا. أمّا إذا كنت تريد نسخ المشروع فقط. فقم بإغلاق فيجول ستوديو، واذهب إلى المجلّد الخاص بالحل Solution الذي يتضمّن المشروع، ثم نسخه إلى مكان آخر كما تفعل مع أي مجلّد.
  2. أتصوّر أنّك تقصد أنّه لديك متغيّر من النوع string، وتريد أن تعرف القيمة الفعليّة التي يحملها هل هي نصيّة (مزيج من أحرف وأرقام) أم رقميّة (أرقام فقط). يمكنك ذلك بسهولة باستخدام التابع الساكن TryParse من النوع double مثلًا على الشكل التالي: string myValue = "123.6"; double result; bool parsingResult; parsingResult = double.TryParse(myValue, out result); if (parsingResult) { Console.WriteLine("myValue contains numeric value: {0}", result); } else { Console.WriteLine("myValue contains string value: \"{0}\"", myValue); } حاول تغيير قيمة المتغيّر myValue في الأعلى لكي يتضمّن أحرف مثلًا ولاحظ النتيجة.
  3. السبب في ذلك أنّك تحاول إيجاد الجذر التربيعي لقيمة سالبة. وهي قيمة المتغيّر delta الذي سيكون سالبًا في هذه الحالة حسب قيم a و b و c المعطاة. أقترح التعديل التالي للشيفرة البرمجيّة الخاصة بك لتأخذ بعين الاعتبار هذه الحالة: int a, b, c; double delta, solution1, solution2; a = 1; b = 1; c = 1; delta = b * b - 4 * a * c; if(delta > 0) { solution1 = (-b - Math.Sqrt(delta)) / (2 * a); solution2 = (-b + Math.Sqrt(delta)) / (2 * a); Console.WriteLine("Solution 1 = {0}", solution1); Console.WriteLine("Solution 2 = {0}", solution2); } else if (delta == 0) { solution1 = (-b - Math.Sqrt(delta)) / (2 * a); Console.WriteLine("Solution 1 = Solution 2 = {0}", solution1); } else { Console.WriteLine("There is no solutions in R set."); }
  4. أنصحك أن تبدأ بتعلّم لغة بايثون Python فهي لغة مرنة وقويّة وسهلة في نفس الوقت. هذا بالإضافة إلى إمكانيّة استخدامها في بناء تطبيقات ويب، وتطبيقات سطح مكتب (تعمل بشكل أفضل في لينكس). كما أنّ شركات ضخمة مثل Google تعتمدها كلغة برمجة أساسيّة في محرّك بحثها. أنصحك أن تبدأ بها، وبعد أن تفهم منطق البرمجة وآلية حل المشاكل، يمكنك بسهولة أن تستمر بها أو أن تنتقل إلى لغة برمجة أخرى بحسب الحاجة. فالأساس هو تعلّم منطق البرمجة وآلية حل المشاكل البرمجيّة التي تتشابه في جميع لغات البرمجة. يمكنك أن تطلع على سلسلة دروس موجودة هنا في أكاديميّة حسّوب لتتعلّم هذه اللغة على هذا الرابط.كما يمكنك بعد أن تُنهي تعلّم أساسيّات لغة بايثون أن تطلع على سلسلة دروس تعلّمك كيفيّة بناء تطبيقات ويب باستخدام لغة بايثون مع إطار العمل Django. أو مع إطار العمل Flask. كما يمكنك متابعة سلسلة الدروس التالية حول بايثون على يوتيوب:
  5. نعم يمكنك ذلك. الطريقة التي أعرفها هي من خلال Visual Studio 2015. حيث يمكنك إنشاء مشروع جديد، ثم من مربع الحوار الذي سيظهر أمامك يمكنك اختيار نوع مشروع Native-Activity Application (Android) كما في الصورة التالية: لاحظ أنّه قد تمّ اختيار Cross Platform من الجهة اليسرى لنافذة مشروع جديد. مع العلم أنّه ينبغي إضافة ميزة البرمجة باستخدام C++ إلى الـ Visual Studio.
  6. ينبغي أن نتفق أولًا أنّ كل متغيّر من متغيّرات ماتلاب MATLAB هو عبارة عن مصفوفة Matrix. أمّا عمليّات الصفوف Arrays Operations وعمليّات المصفوفات Matrix Operations فهي تتعلّق بكيفيّة إجراء العمليّات الرياضيّة على متغيّرات (مصفوفات) ماتلاب. تجري عمليّات الصفوف Arrays Operations على مستوى العنصر. حيث ينبغي أن يكون للمتغيّرات (التي تخضع المعالجة بهذا النوع) الحجم نفسه وإلّا ستحصل على خطأ. انظر إلى المثال التالي: A = [1 1 1] B = [1 2 3] A+B ans = 2 3 4 أجرينا عمليّة جمع بسيطة على المتغيّرين A و B. لاحظ من الخرج ans أنّ نتيجة عمليّة الجمع عبارة عن مصفوفة جديدة تنتج من جمع كل عنصر من المتغيّر (المصفوفة) A مع نظيره من المتغيّر (المصفوفة) B. أمّا إذا احببنا إجراء عمليّة ضرب صفوفيّة فعليك استخدام العامل (*.) انظر إلى المثال التالي: A = [1 1 1] B = [1 2 3] A.*B ans = 1 2 3 بنفس الأسلوب تمامًا نلاحظ أنّ الضرب يجري على مستوى العناصر المتناظرة في كل من المصفوفتين A و B. بالنسبة للعمليّات المصفوفيّة، فيتشابه أسلوب الجمع والطرح مع العمليّات الصفوفيّة. أمّا بالنسبة للضرب فنستخدم في هذه الحالة العامل * لإجراء عمليّة الضرب بين مصفوفتين بالمفهوم الرياضي المتعارف عليه للضرب بين المصفوفات، حيث يجب أن يتحقّق شرط التوافق بين الأبعاد لتصبح هذه العمليّة صحيحة كما هو معروف. انظر إلى المثال التالي: A = [1 1 1] B = [1; 2; 3] A*B ans = 6 لاحظ أنّ المصفوفة الناتجة هي من الحجم 1x1 (القيمة 6). لمزيد من المعلومات يمكنك مراجعة هذا الرابط.
  7. في الحقيقة تُعتبر لغة c++ امتدادًا extension للغة c وليست تحديثًا لها. تم إيجاد هذه اللغة من قِبَل Bjarne Stroustrup لتدعم البرمجة كائنيّة التوجّه Object Oriented Programming (OOP). تدعم لغة c++ البرامج المكتوبة بلغة c بالكامل دون أي مشكلة، وفي ذلك فائدة عظيمة فيما يتعلّق بالتوافقيةّ مع البرامج القديمة. برأيي ألّا تشغل نفسك بكون لغة c++ هي لغة مستقلة أم ليست مستقلة، فالذي تحتاجه فقط أن تعرف أنّه بإمكانك استخدام مترجمات c++ لكتابة تطبيقات بالنمط القديم (نمط C) أو بالنمط الجديد (C++) أو بمزيج بينهما. والخيار الأخير هو الخيار الذي يلجأ إليه معظم مبرمجي C++.
  8. بالتأكيد يمكنك ذلك وأنصح به بشدّة، لما له من أثر كبير في إكساب الطفل أسس التفكير المنطقي السليم منذ صغره. هذا فضلًا إلى أنّه قد يصبح شغوفًا في البرمجة، وتصبح مهنته المستقبليّة. أنصحك بأن تبدأ بلغة Scratch وهي لغة بسيطة جدًّا تعليماتها البرمجيّة بشكل رسومي. فإذا رأيت الطفل يستجيب بشكل جيّد، وأنّ إمكانيّاته أعلى من مستوى هذه اللغة، فلديك هنا خياران: 1- الانتقال إلى Lego Mindstorm الغنية عن التعريف، حيث يمكنه بناء روبوتات ميكانيكيّة وبرمجتها على نحو رائع. يُعتبر هذا الخيار مكلفًا بعض الشيء. فإذا كانت الميزانيّة محدودة فأنصحك بالخيار الثاني. 2- الانتقال إلى لغة بايثون Python، وتعليمه أساسيّات هذه اللغة المرنة والبسيطة، حيث يمكنه تعلّم البرمجة بشكل سلس وسهل باستخدام هذه اللغة، والتدرّج بحل مشاكل برمجيّة بسيطة متدرّجة في الصعوبة. توجد هنا في الأكاديمية سلسلة دروس حول بايثون يمكنك مراجعتها من هنا.
  9. تحتاج إلى تغيير إصدار Visual Studio 2013 الذي لديك لأنّه RC أي أنّه نسخة تجريبيّة، وقد انتهت صلاحية الترخيص license الخاصة به. يمكنك الانتقال فورًا إلى Visual Studio 2015 Community المجّاني. يمكنك تحميله من خلال الرابط التالي
  10. هل مشروعك الناشئ يقع في نفس مجال عملك الحاليّ؟ إذا كان الأمر كذلك فيجب إخبار صاحب العمل أو المدير، وإلّا فلست مضطرة برأيي لإخباره إلّا إذا كنت تريدين ترك العمل.
  11. تحتاج لبناء تطبيقات لنظام التشغيل iOS أن تتعلّم لغة Swift (سويفت). بالنسبة للأدوات فأنت تحتاج إلى حاسوب MacBook (بأيّ إصدار) بالإضافة إلى تنصيب بيئة التطوير المجّانيّة Xcode. وتحتاج أيضًا إلى تسجيل نفسك كمطوّر تطبيقات في آبل، وستحتاج في هذه الحالة إلى دفع قرابة 99 دولار أمريكي سنويًا. يمكنك الإطلاع على الدورة التالية التي توفّر مترجم على الانترنت لتنفيذ التطبيقات التي تكتبها بلغة سويفت وإظهار الخرج مباشرةً: سلسلة دروس مفيدة جدًا.
  12. استفدت من أنظمة العد والتحويل بينها كثيرًا في حياتي العمليّة. وخاصّة فيما يتعلّق بالتحويل بين أنظمة العد العشري Decimal والست عشري Hexadecimal والثنائي Binary. تحتاج تطبيقات التحكّم الصناعي، وخاصةً عند العمل مع المتحكّمات الصغريّة Microcontrollers إلى التعامل مع أنظمة العد المختلفة بشكل كبير، وخاصّة نظام العد الست عشري. توجد بالتأكيد تطبيقات أخرى لها، ولكن لم أجرّبها. قد يخطر ببالك أنّ استخدام الآلة الحسابة يغني عن تعلّم هذه الأمور، ولكن صدّقني في كثير من الأحيان يكون التحويل الذهني المباشر (وخصوصًا عندما تألف أنظمة العد) عمليًّا أكثر من استخدام الآلة الحاسبة، التي قد تنحصر الحاجة إليها في بعض عمليّات التحويل الصعبة.
  13. لا يمكن الإجابة عن هذا السؤال سوى شخص واحد هو أنت! هل نفسك تميل إلى البرمجة وتطوير التطبيقات، أم تميل إلى التعامل العتاد الصلب والشبكات؟ دعك من متطلّبات سوق العمل، فسوق العمل يحتاج إلى جميع التخصّصات. أمر آخر، هل تفرض عليك الكليّة اختيار التخصّص من السنة الأولى أم أنّ التخصّص يكون في السنوات التالية؟
  14. برأيي أنّ حاسوبًا بمعالج Core i5 (الجيل الخامس أو السادس) وذاكرة وصول عشوائي لا تقل عن 8 جيغا بايت سيفي بالغرض بشرط أن يتم استخدام مسرّع Intel بالنسبة لمحاكي أندرويد Android Emulator (انظر هنا) . وهذه هي المتطلّبات الدنيا. أمّا إذا أردت تشغيل آلات افتراضيّة Virtual Machines مثل VMware أو VirtualBox لأغراض تجريبيّة إلى جانب أدوات التطوير مثل Visual Studio أو Android Studio. فستحتاج إلى ذاكرة عشوائية لا تقل عن 16 جيغا بايت. أرجو ملاحظة أنّ المواصفات السابقة تقديرية فقد تكفيك مواصفات أدنى من ذلك، ولكن ربما عليك تحمّل بعض البطء نتيجة لذلك.
  15. الكلمة this هي كلمة محجوزة في جافا ووظيفتها الإشارة إلى الكائن الحالي، وتُستخدم عادةً ضمن التوابع methods ضمن الأصناف classes. انظر إلى الصنف Person البسيط التالي: public class Person{ public String FirstName; public String LastName; public String GetFullName(){ String fullName = this.FirstName + " " + this.LastName; return fullName; } } انظر إلى التابع GetFullName كيف استخدمنا ضمنه الكلمة this مرّتين للوصول إلى الحقلين FirstName و LastName للكائن الحالي الذي نستدعي منه هذا التابع. ملاحظة: في المثال السابق كان يمكننا الاستغناء عن الكلمة this واستخدام أسماء الحقول بشكل صريح، لأنّ المترجم Compiler سيفهم أنّنا نريد الإشارة إلى هذين الحقلين من الكائن الحالي بشكل ضمنيّ.
  16. يمكنك ذلك من خلال الطريقة التالية التي جرّبتها بنفسي. نزّل البرنامج IP Webcam من هنا. بعد تثبيت البرنامج، افتحه والمس Start server من الأسفل (استخدم التمرير ليظهر في الأسفل). سيعمل البرنامج على تشغيل الكاميرا بوضعية الفيديو. شغّل برنامج VLC media player (إذا لم يكن عندك هذا البرنامج يمكنك تحميله من هنا) ثم من قائمة وسائط اختر: افتح دفق شبكة. ثم اكتب عنوان IP الخاص بهاتفك على الشبكة مكان المستطيل الأحمر كما في الشكل التالي: انقر الزر "شغل" واستمتع بمشاهدة ما تعرضه كاميرا الهاتف.
  17. التحقّق من الطلب request validation هو ميزة في ASP.NET تفحص طلبات HTTP وتتحقّق من كونها خالية من محتوى من الممكن أن يكون ضارًّا. قد يكون هذا المحتوى المشكوك في أمره عبارة عن كود HTML أو حتى كود JavaScript موجود ضمن جسم أو ترويسة أو ضمن الـ cookies الخاصّة بطلب HTTP. فمثلًا إذا كان للموقع صفحة تسمح للمستخدمين بإدخال بعض التعليقات، فمن غير المنطقي أن تحتوي تلك التعليقات على كود HTML أو كود JavaScript وإلّا فإنّ الطلب هو عبارة عن هجوم XSS وهاذا ما سيمنعه ASP.NET في هذه الحالة يتم وضع الوسم التالي في ضمن ملف web.config: <system.web> <httpRuntime requestValidationMode="2.0" /> </system.web>
  18. يمكنك ذلك عن طريق عدم تحميل الملفين للذاكرة عند المقارنة. نفتح الملفين معًا ونقرأ بايت تلو الآخر من كل منهما ونقارن بينهما. إليك الشيفرة التالية باستخدام سي شارب التي توضّح هذه الفكرة: bool Compare(string filePath1, string filePath2) { using (FileStream file1 = File.OpenRead(filePath1)) { using (FileStream file2 = File.OpenRead(filePath2)) { if (file1.Length != file2.Length) { return false; } int count1 = -1, count2 = -1; while (count1 != -1 && count2 != -1) { count1 = file1.ReadByte(); count2 = file2.ReadByte(); if (count1 != count2) { return false; } } } } return true; } ستحتاج إلى استخدام نطاق الاسم System.IO لكي يعمل التابع Compare السابق بشكل صحيح. تقارن هذه الشيفرة بين ملفين على مستوى البايت، وعند حدوث أي اختلاف تُرجع false. وإلّا فإنّها تُرجع true إذا كان التطابق تامًّا. ستحتاج إلى تمرير مساري الملفين المراد مقارنتهما كمتغيرين إلى هذا التابع عند استدعائه.
  19. يمكنك الإطلاع على هذا المقال الذي يوضّح هذا الموضوع بشكل كامل: Masks and flags using bit fields in .NET
  20. يمكن ذلك من خلال المكتبة time.h والدالتين time و localtime والبنية time_t انظر إلى الكود التالي: #include <stdio.h> #include <time.h> int main (int argc, char *argv[]) { time_t now; struct tm *tm; now = time(0); if ((tm = localtime (&now)) == NULL) { printf ("Error extracting time stuff\n"); return 1; } if(tm->tm_hour == 14 && tm->tm_min == 30){ printf("Welcome, time now is: %02d:%02d\n",tm->tm_hour, tm->tm_min); } else{ printf("You are late!\n"); } return 0; }
  21. كيف قمت بعمليّة الربط؟ هل من الممكن أن ترفق ملف مضغوط يحوي المشروع مع قاعدة البيانات؟
  22. أرجو إعطار المزيد من التفاصيل. كلّما كانت التفصيلات أكبر، ازدادت فرصتك للحصول على إجابة جيّدة.
  23. لا داعي لتعلّم لغة برمجة جديدة، فلغة سي شارب C# تفي بالغرض. يمكنك استخدام احدى التقنيّتين التاليتين اللتين توفّرهما مايكروسوفت. وهما: ASP.NET Forms ASP.NET MVC الخيار الثاني هو الأفضل وهو الأحدث والمعتمد لتصميم مواقع ويب. كما يظهر من اسم تقنيّة ASP.NET MVC أنّها تدعم المفهوم Model-View-Controller وهو أحدث صيحة في عالم تطوير الويب. كبداية أنصحك بمطالعة الدروس التالية: w3schools mvc intro وإذا كانت لغتك الانجليزية جيّدة فأنصحك بقراءة الكتاب التالي: Pro ASP.NET MVC 5
×
×
  • أضف...