لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 02/11/19 في كل الموقع
-
من ناحية التنفيذ او الاداء لا يوجد فرق. لكن عند حجم مشروع معين، يصبح تقسيم المشروع إلى أقسام (Packages) ضرورة، ومفيد في عدة نقاط: 1. هيكلية واضحة لملفات المشروع بحيث يسهل الوصول لاي ملف مطلوب. 2. سهولة البحث في نظام الملفات نفسه، فعندما يكون كل كلاس ضمن ملفه الخاص، فإن البحث عن الملف يعني البحث عن الكلاس، بعكس ان يكون مجموعة كلاسات ضمن نفس الملف. 3. إعادة الاستخدام او Reusability بمعنى يمكن اعادة استخدام نفس الخوارزميات في مشاريع اخرى. كما نقوم نحن باعادة استخدام كلاس Input/Output او كلاسات Graphics و Math وغيرها. اخيراً يجب الانتباه ان هذه المفاهيم لم تولد من العدم، لذلك بغض النظر عن مدى فائدتها حالياً إلا انني لا يمكنني ان اتجاهل هذه الفائدة، وسأعمل بمشروعي بحسب المعرفة التي لدي، وعندما اصل لنقطة احتاج فيها لهذه المفاهيم، ستكون الفائدة ظاهرة تمام. الامر مشابه لاسئلة، ما فائدة Abstract Class, Interface, Events, Delegates وغيرها؟ هي بالتأكيد مفيدة، لكن اذا كنت في مشروع ولم احتاج لها حقاً، لا يوجد اي مشكلة، لانني ساحتاجها لاحقاً. بالتوفيق،،،1 نقطة
-
أهلاً بك، أن تضع كل كلاس في ملف تحت باكيج المشروع يكون أفضل بكثير من أن تضعهم كلهم في ملف واحد ..وذلك في البداية أسهل للمبرمج في اكتشاف الاخطاء فتحدد أي الأجزاء بالظبط التي تحتاج لتصحيح...أفضل في التجريب والإختبار أثناء مرحلة الإنشاء فتجرب كل كلاس على حدة وتطور عليها بعينها بسهولة...إفترض أنك أرسلت المشروع لشركة واحتاجت تطوير لهذا النظام بعد فترة سيكون التعامل مع المشروع كملفات كل منها يحتوي كلاس تقوم بوظيفة معينه أفضل بكثير من التدقيق في الملف الواحد الطويل والبحث عن أي كلاس او متغير فيها...تقسيم البناء واستخدام طبقات متجزئة في تصميم المشاريع هو أحد مبادئ هندسة البرمجيات المستخدمة لإنتاج أنظمة بالكفاءة اللازمة والتقنية المتعارف عليها بين محللي النظم...من وجهه نظرة عامية أيضا وبمنطق " فَرِّق تَسُد " فإن تقسيم المشروع على عدة ملفات بناء على وظيفة كل قسم يكون الأفضل.1 نقطة
-
وعليكم السلام ورحمة الله. انت بحاجة فقط لمجموعة حلقات تكرارية loops للمرور على المصفوفة لتعبئتها اولا ثم لجمع الاسطر والاعمدة والاقطار. using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { // Read the array dimensions from the user Console.Write("Enter the array size: "); int size = int.Parse(Console.ReadLine()); // If the array size is even (not odd), then break; if (size % 2 == 0) { Console.WriteLine("Please enter en odd number!"); return; } // Define our [Size x Size] array int[,] array = new int[size, size]; // Assume that the array is magic until we make our calculations bool isMagic = true; // Just Print the array, to make it more readable // We have 2 loops, one for rows and the other for columns // It start from the [0,0], then [0,1] index until complete the first row // Then complete for [1,0], then [1,1] index until complete the second row, and so on... Console.WriteLine("Array size:"); for (int row = 0; row < size; row++) { for (int col = 0; col < size; col++) { Console.Write($"[{row},{col}]"); } Console.WriteLine(); } // Fill the array // Also using 2 loops Console.WriteLine(); Console.WriteLine("Please fill the array"); for (int row = 0; row < size; row++) { for (int col = 0; col < size; col++) { Console.Write($"Enter number at [{row},{col}]: "); array[row, col] = int.Parse(Console.ReadLine()); } } // Start our calculations Console.WriteLine(); Console.WriteLine("Calculating:"); // Sum the first row, where other rows, columns and diagonals must match int magicValue = 0; for (int i = 0; i < size; i++) { magicValue += array[i,0]; } // We will start by calculating the first row sum and the first col sum. for (int row = 0; row < size; row++) { int rowValue = 0; int colValue = 0; for (int col = 0; col < size; col++) { rowValue += array[col, row]; colValue += array[row, col]; } // if the current row sum != magicValue then break if(rowValue!= magicValue) { isMagic = false; break; } // Also if the current column sum != magicValue then break if(colValue!= magicValue) { isMagic = false; break; } // first loop match // Reset values to calcaute the rest of rows and cols. rowValue = 0; colValue = 0; } // If we reach this code without any break, then all rows and cols are matched // we need to check if isMagic still true, and not flagged to false inside the loops. if (isMagic) { // Print the final array Console.WriteLine("It's Magic Array :)"); for (int row = 0; row < size; row++) { for (int col = 0; col < size; col++) { Console.Write($"[{array[row,col]}]"); } Console.WriteLine(); } } else { Console.WriteLine("Not match"); } } } } يمكنك التجربة بمصفوفة بحجم 3x3 والمدخلات كالتالي: [2][7][6] [9][5][1] [4][3][8] بالتوفيق،،،1 نقطة