برامج نمط الهرم في لغة الجافا

نماذج الأنماط تُستخدم كثيرًا في المقابلات لفهم قدرات التفكير المنطقي للمُقابل. الأنماط الهرمية شائعة جدًا وبمجرد فهم الطريقة التي يتم إنشاؤها بها، فإن كتابة الشيفرة لتحقيق نفس النتيجة مهمة سهلة.

برامج الأنماط الهرمية في جافا

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

نمط الهرم من الأرقام

إذا نظرت إلى النمط الأول، ستجد أن كل صف يحتوي على نفس الرقم يُطبع نفس عدد المرات. ومع ذلك، كل صف يحتوي على فراغات بيضاء رائدة وعددها “الصفوف – i”. دعونا نلقي نظرة على البرنامج لطباعة هذا النمط.

package com.journaldev.patterns.pyramid;

import java.util.Scanner;

public class PyramidPattern {

	private static void printPattern1(int rows) {
		// لحلقة تكرار للصفوف
		for (int i = 1; i <= rows; i++) {
			// الفراغات البيضاء في الجزء الأمامي من الأرقام
			int numberOfWhiteSpaces = rows - i;

			// طباعة الفراغات البيضاء الرائدة
			printString(" ", numberOfWhiteSpaces);

			// طباعة الأرقام
			printString(i + " ", i);

			// الانتقال إلى السطر التالي
			System.out.println("");
		}
	}

	// وظيفة فائدة لطباعة سلسلة معينة من الأوقات
	private static void printString(String s, int times) {
		for (int j = 0; j < times; j++) {
			System.out.print(s);
		}
	}

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		System.out.println("Please enter the rows to print:");
		int rows = scanner.nextInt();
		// System.out.println("Rows = "+rows);
		scanner.close();

		System.out.println("Printing Pattern 1\n");
		printPattern1(rows);

	}

}

لاحظ أنني قمت بإنشاء وظيفة فائدة لمهمة طباعة السلسلة الشائعة. إذا كنت تستطيع تقسيم برنامجك إلى وظائف قصيرة قابلة لإعادة الاستخدام، فهذا يظهر أنك لست فقط تسعى لكتابة البرنامج ولكنك ترغب أيضًا في ضمان جودته وإعادة استخدامه. عند تشغيل البرنامج أعلاه، نحصل على الناتج التالي.

Please enter the rows to print:
9
Printing Pattern 1

        1 
       2 2 
      3 3 3 
     4 4 4 4 
    5 5 5 5 5 
   6 6 6 6 6 6 
  7 7 7 7 7 7 7 
 8 8 8 8 8 8 8 8 
9 9 9 9 9 9 9 9 9 
Pyramid Pattern Java Program Output

نمط الهرم من الأرقام المتزايدة

هنا هو الوظيفة لطباعة النمط 2. النقطة الرئيسية للملاحظة هي عدد الفراغات البيضاء الرائدة ومن ثم يتم طباعة الأرقام بترتيب متزايد.

/**
 * 
 * Program to print below pyramid structure
 *      1         
       1 2        
      1 2 3       
     1 2 3 4      
    1 2 3 4 5     
   1 2 3 4 5 6    
  1 2 3 4 5 6 7   
 1 2 3 4 5 6 7 8  
1 2 3 4 5 6 7 8 9 
*/
private static void printPattern2(int rows) {
	// لحلقة تكرار للصفوف
	for (int i = 1; i <= rows; i++) {
		// الفراغات البيضاء في الجزء الأمامي من الأرقام
		int numberOfWhiteSpaces = rows - i;

		// طباعة الفراغات البيضاء الرائدة
		printString(" ", numberOfWhiteSpaces);

		// طباعة الأرقام
		for(int x = 1; x<=i; x++) {
			System.out.print(x+" ");
		}

		// الانتقال إلى السطر التالي
		System.out.println("");
	}
}

هرم الشخصيات

هذا مشروع بسيط حقاً، نحتاج فقط لطباعة الحرف دون أي عمليات حسابية أو تلاعب.

/**
 * Program to print following pyramid structure
        *         
       * *        
      * * *       
     * * * *      
    * * * * *     
   * * * * * *    
  * * * * * * *   
 * * * * * * * *  
* * * * * * * * * 

*/
private static void printPattern3(int rows) {
	// حلقة التكرار للصفوف
	for (int i = 1; i <= rows; i++) {
		// المسافات البيضاء في بداية الأرقام
		int numberOfWhiteSpaces = rows - i;

		// طباعة المسافات البيضاء الرائدة
		printString(" ", numberOfWhiteSpaces);

		// طباعة الحرف
		printString("* ", i);

		// التحرك إلى السطر التالي
		System.out.println("");
	}
}

برنامج نمط الهرم 4

/**
* 
*               1 
              1 2 1 
            1 2 3 2 1 
          1 2 3 4 3 2 1 
        1 2 3 4 5 4 3 2 1 
      1 2 3 4 5 6 5 4 3 2 1 
    1 2 3 4 5 6 7 6 5 4 3 2 1 
  1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 
*/

private static void printPattern4(int rows) {
	// حلقة التكرار للصفوف
	for (int i = 1; i <= rows; i++) {
		// المسافات البيضاء في بداية الأرقام
		int numberOfWhiteSpaces = (rows-i)*2;

		// طباعة المسافات البيضاء الرائدة
		printString(" ", numberOfWhiteSpaces);

		// طباعة الأرقام
		for(int x=1; x0; j--) {
			System.out.print(j+" ");
		}

		// التحرك إلى السطر التالي
		System.out.println("");
	}
}

لاحظ أن كل صف يحتوي على عدد من الأرقام يساوي 2*r-1. لذا سيكون لدينا (صفوف-أ)*2 مسافات بيضاء قبل طباعة أي رقم. ثم تبدأ الأرقام من 1 إلى “أ” ومن ثم إلى 1 مرة أخرى. منطقنا لطباعة الأرقام سيتطلب حلقتين تكراريتين لتحقيق ذلك.

برنامج نمط الهرم 5 في جافا

/**
 * 
 *                9 
                8 9 8 
              7 8 9 8 7 
            6 7 8 9 8 7 6 
          5 6 7 8 9 8 7 6 5 
        4 5 6 7 8 9 8 7 6 5 4 
      3 4 5 6 7 8 9 8 7 6 5 4 3 
    2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 
  1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 
*/
private static void printPattern5(int rows) {
	// حلقة التكرار للصفوف
	for (int i = rows; i >= 1; i--) {
		// المسافات البيضاء في بداية الأرقام
		int numberOfWhiteSpaces = i*2;

		// طباعة المسافات البيضاء الرائدة
		printString(" ", numberOfWhiteSpaces);

		// طباعة الأرقام
		for(int x=i; x=i; j--) {
			System.out.print(j+" ");
		}

		// التحرك إلى السطر التالي
		System.out.println("");
	}
}

نمط هرم معكوس من الحروف

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

/**
 * 
* * * * * * * * * 
 * * * * * * * * 
  * * * * * * * 
   * * * * * * 
    * * * * * 
     * * * * 
      * * * 
       * * 
        * 
 */
private static void printPattern6(int rows) {
	// حلقة التكرار للصفوف
	for (int i = rows; i >= 1; i--) {
		// المسافات البيضاء في الجزء الأمامي من الأرقام
		int numberOfWhiteSpaces = rows - i;

		// طباعة المسافات البيضاء الرائدة
		printString(" ", numberOfWhiteSpaces);

		// طباعة الحرف
		printString("* ", i);

		// الانتقال إلى السطر التالي
		System.out.println("");
	}
}

نمط هرم معكوس من الأرقام

لنلقي نظرة على مثال لنمط الهرم المعكوس المكون من الأرقام.

	/**
	 * 
9 9 9 9 9 9 9 9 9 
 8 8 8 8 8 8 8 8 
  7 7 7 7 7 7 7 
   6 6 6 6 6 6 
    5 5 5 5 5 
     4 4 4 4 
      3 3 3 
       2 2 
        1 
	 */
private static void printPattern7(int rows) {
	// حلقة التكرار للصفوف
	for (int i = rows; i >= 1; i--) {
		// المسافات البيضاء في الجزء الأمامي من الأرقام
		int numberOfWhiteSpaces = rows - i;

		// طباعة المسافات البيضاء الرائدة
		printString(" ", numberOfWhiteSpaces);

		// طباعة الحرف
		printString(i+" ", i);

		// الانتقال إلى السطر التالي
		System.out.println("");
	}
}

الاستنتاج

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

قراءة إضافية

برامج السلاسل في جافا و أسئلة مقابلة برمجة جافا

يمكنك مراجعة الشيفرة الكاملة والمزيد من أمثلة البرمجة من خلال مستودعنا على جيتهاب.

Source:
https://www.digitalocean.com/community/tutorials/pyramid-pattern-programs-in-java