Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

الخوارزمياتالتعامل مع المصفوفة ذات البعدين - التمرين الثامن

المطلوب

هذا التمرين مقسّم إلى خمسة أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.

  1. أكتب برنامج يعرّف مصفوفة إسمها matrix تتألف من 3 أسطر و 5 أعمدة.
  2. ثم يطلب من المستخدم إدخال قيم لها.
  3. ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
  4. بعدها يطلب من المستخدم إدخال أي عدد ليرى كم مرة هذا العدد موجود في المصفوفة, و يخزنه في المتغير x.
  5. في الأخير يعرض للمستخدم ناتج عملية البحث, أي كم مرة وجد نفس قيمة المتغير x في المصفوفة matrix.

النتيجة المطلوبة

لنفترض أن المستخدم أدخل قيم عشوائية في المصفوفة, ثم أدخل العدد 3 ليعرف كم مرة توجد القيمة 3 في المصفوفة.

الخوارزمية

كود الجافا

import java.util.Scanner;
public class Matrix {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
int[][] matrix = new int[3][5];
int x;
int found = 0;
for (int i=0; i<3; i++)
{
for (int j=0; j<5; j++)
{
System.out.print("Enter matrix["+i+"]["+j+"]: ");
matrix[i][j] = input.nextInt();
}
System.out.print("\n");
}
for (int i=0; i<3; i++)
{
for (int j=0; j<5; j++)
{
System.out.print(matrix[i][j] + "\t");
}
System.out.print("\n");
}
System.out.print("\nEnter any number: ");
x = input.nextInt();
for (int i=0; i<3; i++)
{
for (int j=0; j<5; j++)
{
if( matrix[i][j] == x )
{
found = found + 1;
}
}
}
System.out.print(x + " is exist " +found+ " times in the Matrix \n");
}
}
import java.util.Scanner; public class Matrix { public static void main (String[] args) { Scanner input = new Scanner(System.in); int[][] matrix = new int[3][5]; int x; int found = 0; for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print("Enter matrix["+i+"]["+j+"]: "); matrix[i][j] = input.nextInt(); } System.out.print("\n"); } for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(matrix[i][j] + "\t"); } System.out.print("\n"); } System.out.print("\nEnter any number: "); x = input.nextInt(); for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { if( matrix[i][j] == x ) { found = found + 1; } } } System.out.print(x + " is exist " +found+ " times in the Matrix \n"); } }

شرح الكود


int[][] matrix = new int[3][5];
int x;
int found = 0;
int[][] matrix = new int[3][5]; int x; int found = 0;
  • هنا قمنا بتجهيز المصفوفة matrix و حددنا أنها تتألف من 3 أسطر و 5 أعمدة.
  • و المتغير x سنستخدمه لتخزين القيمة (أي العدد) التي سيدخلها المستخدم لاحقاً للبحث عنها في المصفوفة.
  • و المتغير found و أعطيناه القيمة 0 كقيمة أولية لأننا سنستخدمه لاحقاً لحساب كم مرة تم إيجاد القيمة التي بحث عنها المستخدم.


for (int i=0; i<3; i++)
{
for (int j=0; j<5; j++)
{
System.out.print("Enter matrix["+i+"]["+j+"]: ");
matrix[i][j] = input.nextInt();
}
System.out.print("\n");
}
for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print("Enter matrix["+i+"]["+j+"]: "); matrix[i][j] = input.nextInt(); } System.out.print("\n"); }
  • هنا قمنا بإنشاء الحلقتين i و j لجعل المستخدم يدخل قيمة لكل عنصر في المصفوفة.
  • الحلقة i للإنتقال من سطر إلى آخر في المصفوفة, و الحلقة j للإنتقال من عمود إلى آخر في كل سطر في المصفوفة.
  • هنا في كل دورة من دورات الحلقة i سيتم إنشاء حلقة j للمرور على جميع العناصر الموجودة في نفس السطر.
  • في كل دورة من دورات الحلقة j سيطلب من المستخدم إدخال قيمة لعنصر, ثم سيتم تخزينها في هذا العنصر.
  • بعد توقف الحلقة j (أي بعد إعطاء قيم لجميع العناصر الموجودة في نفس السطر) سيتم النزول على سطر جديد بسبب الرمز \n.


for (int i=0; i<3; i++)
{
for (int j=0; j<5; j++)
{
System.out.print(matrix[i][j] + "\t");
}
System.out.print("\n");
}
for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(matrix[i][j] + "\t"); } System.out.print("\n"); }
  • هنا قمنا بإنشاء الحلقتين i و j لعرض جميع قيم المصفوفة matrix.
  • الحلقة i للإنتقال من سطر إلى آخر فيها, و الحلقة j للإنتقال من عمود إلى آخر في كل سطر فيها.
  • هنا في كل دورة من دورات الحلقة i سيتم إنشاء حلقة j لعرض قيمة جميع العناصر الموجودة في نفس السطر.
  • في كل دورة من دورات الحلقة j سيتم عرض قيمة عنصر, ثم وضع بعض المسافات الفارغة بسبب الرمز \t.
  • بعد توقف الحلقة j, أي بعد عرض قيم جميع العناصر الموجودة في نفس السطر, سيتم النزول على سطر جديد بسبب الرمز \n.


System.out.print("\nEnter any number: ");
x = input.nextInt();
System.out.print("\nEnter any number: "); x = input.nextInt();
  • هنا سيطلب من المستخدم إدخال أي عدد, و بعدها سيتم تخزينه في المتغير x.


for (int i=0; i<3; i++)
{
for (int j=0; j<5; j++)
{
if( matrix[i][j] == x )
{
found = found + 1;
}
}
}
for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { if( matrix[i][j] == x ) { found = found + 1; } } }
  • هنا أنشانا الحلقتين i و j للمرور على جميع عناصر المصفوفة.
  • سيتم مقارنة قيمة كل عنصر في المصفوفة مع قيمة المتغير x أي ( مع العدد الذي أدخله المستخدم ).
  • في كل مرة تكون فيها قيمة العنصر تساوي قيمة المتغير x سيتم زيادة قيمة العداد found واحداً
  • إذاً المتغير found سيمثل عدد وجود قيمة المتغير x في المصفوفة matrix.


System.out.print(x + " is exist " +found+ " times in the Matrix \n");
System.out.print(x + " is exist " +found+ " times in the Matrix \n");
  • هنا قمنا بعرض قيمة المتغير found لعرض نتيجة البحث, أي لعرض كم مرة قد وجدت القيمة المتغير x في المصفوفة.

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


دورة تعلم البرمجة للمبتدئين >