תכניות ליצירת דפים בצורת פירמידה ב-Java

תכניות התבניות נמצאות בשימוש נרחב בראיונות כדי להבין את יכולות החשיבה הלוגית של הנראיין. תבניות פירמידה הן פופולריות מאוד, ופעם שהבנו את הלוגיקה שביצירתן, כתיבת קוד להשגת התבנית דומה היא משימה פשוטה.

תכניות פירמידה בשפת Java

כאן אני מספק דוגמאות ליצירת תבניות פירמידה שונות ממספרים, סמלים ועוד. נבחן גם דוגמאות ליצירת תבנית פירמידה הפוכה בתוך תוכנית Java. נשתדל לשמור על הקוד פשוט כך שיהיה קל להבין.

תבנית פירמידה של מספרים

אם תסתכל בתבנית הראשונה, כל שורה מכילה את אותו המספר המודפס אותו מספר פעמים. בכל זאת, ישנן רווחים לכל שורה שהכמותם היא "שורות-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("שורות = "+שורות);
		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

תבנית פירמידה של מספרים עולה

זו הפונקציה להדפסת התבנית השנייה. הנקודה המרכזית לשים לב אליה היא מספר הרווחים הנובעים ואז המספרים שמודפסים בסדר עולה.

/**
 * 
 * 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("");
	}
}

פירמידה של תווים

זהו אחד פשוט מאוד, אנחנו פשוט צריכים להדפיס את התו בלי חישובים או עיבודים כלשהם. // ללולאת for עבור השורות // רווחים לבנים בפני המספרים // הדפסת רווחים מובילים // הדפסת תו // העבר לשורה הבאה

/**
 * 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);

		 תוכנית דוגמת פירמידה 4 
		System.out.println("");
	}
}

/**
* 
*               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 עבור השורות 
	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 מספרים. לכן יהיו לנו (שורות-i)*2 רווחים לבנים לפני שנדפיס כל מספר. אז המספרים מתחילים מ-1 עד "i" ואז חוזרים ל-1 שוב. הלוגיקה שלנו להדפסת המספרים תצריך שני לולאות for כדי להשיג זאת.

תוכנית דוגמת פירמידה 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 עבור השורות 
	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 עבור השורות
	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 עבור השורות
	for (int i = rows; i >= 1; i--) {
		// רווחים לבנים בפני המספרים
		int numberOfWhiteSpaces = rows - i;

		// הדפסת רווחים לבנים מובילים
		printString(" ", numberOfWhiteSpaces);

		// הדפסת תו
		printString(i+" ", i);

		// העברה לשורה הבאה
		System.out.println("");
	}
}

מסקנה

ישנם רבים סוגי דפוסי פירמידה. הנקודה החשובה ביותר היא להבין את הדפוס שבו מאורגנים מספרים ורווחים. לאחר שתהיה ברורה לך הדפוס, תוכל לכתוב קוד בקלות ב-Java או בכל שפת תכנות אחרת. אנא הודיע לי אם אתה מחפש תכנית ספציפית לדפוס ואנסה לעזור לך.

קריאה נוספת

תכניות מחרוזות ב-Java ו-שאלות ראיון בתכנות ב-Java

תוכל לבדוק את הקוד המלא ודוגמאות נוספות לתכנות מתוך מאגר הקוד שלנו ב-GitHub.

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