Patroonprogramma's in Java: Print ster, piramide en nummer

⚡ Slimme samenvatting

Patroonprogramma's in Java Print sterren, cijfers of letters in een vaste vorm, waarbij elk van deze vormen is opgebouwd uit geneste lussen. De buitenste lus telt de rijen, terwijl de binnenste lussen spaties en tekens plaatsen.

  • 🔘 Definitie: Bij patroonafdrukken worden symbolen, cijfers of letters in een bepaalde vorm op de console gerangschikt.
  • ☑️ Categorieën: Er bestaan ​​drie groepen, namelijk sterpatronen, cijferpatronen en karakterpatronen.
  • ✅ Structuur: De buitenste lus stuurt de rijen aan, terwijl de binnenste lussen de inleidende spaties en afgedrukte tekens verwerken.
  • 🧪 Voorbeelden: De programma's met halve driehoeken, zandlopers, ruiten, omgekeerde driehoeken en letterpiramides komen aan bod.
  • ️ Techniek: Tekenvormen zetten een integer-seed om naar een char, beginnend bij 65 voor de letter A.
  • 📊 Voordeel: Het schrijven van patronen verbetert de beheersing van lussen, rekenkunde met exponenten en de vaardigheden die nodig zijn voor sollicitatiegesprekken.

Patroonprogramma's in Java Om ster-, piramide- en cijfervormen af ​​te drukken

Patroonafdrukprogramma's zijn ontwerpen of symbolen die letters of andere tekens in een specifiek formaat bevatten. Java patrooncodering verhoogt de logica-opbouw van de programmeurs, waardoor ze goede programmeurs kunnen worden.

Elk voorbeeld hier vereist alleen geneste lussen en basisfunctionaliteit. Java syntaxis.

Categorieën patronen

We kunnen ontelbare patronen tekenen in JavaEn alle patronen kunnen op drie verschillende manieren worden uitgevoerd.

Er zijn drie hoofdcategorieën die worden gebruikt om te identificeren Java patroon programma's.

  • Sterpatroon: In Java sterpatroonprogramma's, de sterpatronen zijn een reeks sterretjes (*) gebruikt om verschillende vormen te creëren, zoals een piramide, sterpatroon, strakke driehoek, linker driehoek, ruitvorm, vierkant en nog veel meer patronen. Java.
  • Nummerpatroon: Om stroombesturingsinstructies te oefenen, is een ander type patroon het gebruik van numerieke patroonprogramma's. JavaGetallenpatroonprogramma's bestaan ​​uit getallen/tellen. Meestal stellen we de waarde van 'i' in, een lus-iterator, om getallen te genereren in patroonprogrammering. Het minimum aantal lussen voor een getallenpatroon is twee. Het getallenpatroonprogramma in Java Werkt ook met het rijen- en kolommensysteem.
  • Karakterpatroon: De tekenpatroonprogrammering bestaat uit tekens die zich in de Engelse alfabetten. Dit is een andere manier om je programmeervaardigheden te verbeteren, maar hier hebben we het over karakters, niet over getallen of sterren. Het patroon kan hetzelfde karakter in het hele patroon hebben of kan verschillende karakters hebben, afhankelijk van de logica die je toepast.

De tabel hieronder laat zien wat er tussen de categorieën verschilt.

Categorie Gedrukte eenheid Waar komt de gedrukte waarde vandaan? Voorbeelduitvoer
sterpatroon Asterisk Een vast symbool, dus alleen de lusgrenzen veranderen. * * *
Nummerpatroon Digit De lus-iterator i of j wordt direct afgedrukt. 1 2 3
Tekenpatroon Letter Een integer seed geconverteerd naar een char, beginnend bij 65 voor A. abc

In alle drie gevallen telt de buitenste lus de rijen, print een binnenste lus uitlijningsspaties en print een tweede lus de zichtbare tekens. Alleen de afgedrukte eenheid verandert.

Dezelfde loop-technieken vormen de basis voor andere klassieke oefeningen zoals selectie sorteren, invoegsoorten Armstrong nummer programma.

Sterpatronen komen eerst, omdat het symbool nooit verandert en alleen de lusgrenzen ertoe doen.

Sterpatronenprogramma's in Java

Sterpatronen printen een asterisk op de console, de patroonvorm hangt volledig af van de code die je schrijft.

Halflinks driehoekig sterpatroonprogramma:

Het onderstaande programma print deze halve linkerdriehoek:

Console-uitvoer toont een halve linkerdriehoek van sterren over zes rijen.

public class LeftStarPattern{    
public static void main(String args[]){    
 int i, j, row = 6;       
   for (i=0; i<row; i++)    {  
      for (j=2*(row-i); j>=0; j--)         
      {  System.out.print(" ");  
	  }   
        for (j=0; j<=i; j++ )   
		{   
			System.out.print("* "); 
		}   
	System.out.println();  
	}
  }
}

Code uitleg:

  • Verklaren int ik, int.j. Declareer en initialiseer de rijvariabele als een int rij.
  • i is de iterator voor de buitenste 'for'-lus en j is een iterator voor de binnenste 'for'-lus, 'row' bevat een aantal rijen die de piramide zou moeten hebben.
  • In genest voor vertegenwoordigt de buitenste 'for' rijen en de binnenste 'for' vertegenwoordigt kolommen.
  • Initialiseer in de buitenste 'for' de iterator 'i' met 0, stel de voorwaarde i<rij in en verhoog i.
  • Nu wordt de binnenste 'for'-lus geïnitialiseerd met 2*(rij-i) en neemt af.
  • De geneste 'for' drukt ruimte af op het consolescherm.
  • Buiten het lichaam van geneste 'for' wordt nog een 'for'-lus geplaatst. Dit 'voor' ster afdrukken nadat het geneste 'for' is uitgevoerd. Het loopt door totdat j<=i.

Zandloper sterpatroonprogramma:

Twee op elkaar gestapelde piramides vormen deze zandloper:

Console-uitvoer toont een zandlopervorm, opgebouwd uit twee stervormige piramides.

public class Main
{
    public static void main(String[] args)
    {
        int rows = 5;            
        for (int i= 0; i<= rows-1 ; i++)
        {
            for (int j=0; j <i; j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
 { 
System.out.print("*" + " ");
 } 
System.out.println(""); 
} 
for (int i= rows-1; i>= 0; i--)
        {
            for (int j=0; j< i ;j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
            {
                System.out.print("*" + " ");
            }
            System.out.println("");
        }
        
    }
}

Code uitleg:

  • Code begint met de openbare statische leegte hand int-rijen bepaalt het aantal rijen dat zandglas zal bevatten.
  • Er zijn twee geneste 'for', de eerste geeft de neerwaartse piramide weer, en de tweede geeft de opwaartse piramide weer.
  • In genest voor vertegenwoordigt de buitenste 'for' rijen en de binnenste 'for' vertegenwoordigt kolommen.
  • In de buitenste 'for'-lussen tot i<= rij-1, binnenste 'for'-lussen tot i. printsysteem drukt de ruimte op de console af.
  • De tweede binnenste lus drukt een asterisk plus spatie af op de console.
  • Wanneer de eerste binnenlus volledig wordt uitgevoerd op i=0, wordt de tweede binnenlus volledig uitgevoerd.
  • Vervolgens werd de buitenste lus verhoogd. Deze cyclus gaat door totdat de voorwaarde onwaar wordt.
  • De tweede geneste lus geeft de opwaartse piramide weer, waarbij alleen de initialisatie en toestand van de buitenste lus van de eerste geneste lus worden gewijzigd.
  • Het zal de opwaartse piramide weergeven. Zowel neerwaartse als opwaartse piramides zullen de zandloper sterpatroon.

Ruitvormig sterpatroonprogramma:

Een opwaartse en een neerwaartse piramide vormen deze diamant:

Console-uitvoer toont een ruit van sterren gevormd door twee piramides.

public class Main
{
	public static void main(String args[])
	{
		int n, i, j, space_0 = 1;
		n = 6;
		space_0 = n - 1;
		for (j = 1; j<= n; j++)
		{
			for (i = 1; i<= space_0; i++)
			{
				System.out.print(" ");
			}
		space_0--;
		for (i = 1; i <= 2 * j - 1; i++)
		{ 
			System.out.print("*");
		}
		System.out.println(""); 
	}
	space_0 = 1;
	for (j = 1; j<= n - 1; j++)
	{
	for (i = 1; i<= space_0; i++)
	{
		System.out.print(" ");
	}
	space_0++;
	for (i = 1; i<= 2 * (n - j) - 1; i++)
	{
		System.out.print("*");
	}
	System.out.println("");
	}
  }
}

Code uitleg:

  • In de diamant sterpatroon, 'n' is het aantal rijen, opgeslagen n-1 in spatie_0.
  • In genest voor vertegenwoordigt de buitenste 'for' rijen en de binnenste 'for' vertegenwoordigt kolommen.
  • De eerste geneste 'for' geeft de opwaartse piramide weer. Buitenste 'for'-lussen tot n en binnenste for-lussen tot spatie_0. De binnenste lus geeft ruimte op de console weer.
  • Er is nog een innerlijke 'for' die doorloopt tot i<= 2 * j – 1 en een ster weergeeft, buiten dit innerlijke 'for'-printsysteem wordt een regel afgedrukt. Deze geneste lus drukt de bovenste piramide af.
  • De andere geneste 'voor' vertoont een neerwaartse piramide. Buitenste 'for'-lussen tot i<=n-1, eerste binnenste 'for' print ruimte en tweede binnenste for prints ster.
  • Buiten de binnenste 'for', druk de regelafstand af. zowel de opwaartse als de neerwaartse piramide vormen het ruitpatroon.

Rechthoekig sterpatroon ruimtepatroonprogramma:

De modulus van j en i voegt deze hiaten in:

Console-uitvoer toont een rechthoekige driehoek van sterren met een onderlinge afstand gebaseerd op de modulus.

public class AsterikProgramJava { 
 public static void main(String[] args) { 
  for(int i=1;i<=10;i++) 
  { 
    for(int j=1;j<=i+i;j++)
	{
		int mid; 
		mid=j%i; 
		if(mid==0) 
			System.out.print("* "); 
		else 
			System.out.print("*");
	}
	System.out.print("\n");
	}
 }
}

Code uitleg:

  • In de bovenstaande patroon code, de buitenste 'for' zorgt voor het aantal rijen, en de binnenste 'for' onderhoudt de kolommen.
  • Als het buitenste 'for' 1 is, wat de eerste rij betekent, en als het binnenste 'for' 1 is, betekent dit dat dit de eerste kolom is.
  • Declareer binnen de binnenste 'for' een variabele met de naam mid en sla de rest van j/i op. Dit verdeelt de i- en j-waarden om de modulus te verkrijgen.
  • Dus als de modulus 0 is, toon dan een asterisk en spatie; anders toon je alleen een asterisk. Buiten de binnenste 'for', druk je een regel af.

MODERN Java Opmerkingen: vanaf Java 11 De ruimtelussen kunnen worden vervangen door System.out.print(" ".repeat(n))en het bouwen van elke rij in een StringBuilder voor één println() De aanroep wordt sneller uitgevoerd. De oorspronkelijke code is ongewijzigd gebleven, omdat deze de berekeningen expliciet weergeeft.

Ruilenping Het sterretje bij de lussteller verandert elke stervorm in een cijfervorm.

Numerieke patronenprogramma's in Java

Numerieke patronen bestaan ​​uit getallen. We kunnen veel verschillende vormen uit numerieke patronen tekenen.

Tegenover half driehoekig patroonprogramma:

Door eerst naar beneden en dan naar boven te tellen, krijg je deze getallendriehoek:

Console-uitvoer die een tegenoverliggende halve driehoek van getallen weergeeft

public class Number_p  {  
	public static void main(String[] args)   {  
	int i, j, rows_0=5;  
	for (i = rows_0; i >= 1; i--) 
	{  
		for (j = 1; j <= i; j++)  
		{  
			System.out.print(j+" "); 
		}  
		System.out.println();  
	}  
	for (i = 2; i <= rows_0; i++)   {  
		for (j = 1; j <= i; j++) {  
			System.out.print(j+" ");
		}  
		System.out.println(); 
		}
	}
}

Code uitleg:

  • Om dit patroon te tekenen, gebruiken we twee geneste 'for'-lussen. De ene zal de eerste piramide afdrukken en de andere zal de tweede piramide weergeven.
  • Verklaren int ik, int j en int row_0, en initialiseer de rij met het gewenste aantal rijen. Hier is de rijwaarde 5.
  • Stel de buitenste 'for'-lus van de eerste geneste 'for' in, initialiseer i met het aantal rijen en herhaal totdat i >= en verlaag de iterator. Deze buitenste 'for' heeft betrekking op rijen.
  • Stel in innerlijke 'for' de voorwaarde j=1 in en herhaal totdat j<=i. Geef in de hoofdtekst van de binnenste lus de j-variabele met de spatie weer.
  • Wijzig nu in de tweede geneste 'for' de buitenste 'for'-voorwaarde van de eerste geneste 'for'. Initialiseer het met 2 en loop totdat de i<= rijen.
  • En de binnenste lus herhaalt zich totdat i is bereikt. Vervolgens wordt het bericht weergegeven op de console, hetzelfde als in de binnenste lus van de eerste geneste 'for' buiten de hoofdtekst van de binnenste regelafstand voor prints.

Herhaald getal in de rechter driehoek van de kolom Patroonprogramma:

Door de teller op elke rij te resetten, worden de getallen herhaald:

Console-uitvoer toont een rechthoekige driehoek van getallen die elke rij opnieuw bij één beginnen.

public class Number_pattern  {  
	public static void main(String args[])   
	{   
		int i, j,number, n=7;   
	for(i=0; i<n; i++)  
	{   
		number=1;   
		for(j=0; j<=i; j++)  
		{   
			System.out.print(number+ " ");   
			number++; 
		}   
		System.out.println();   
	} 
  } 
}

Code uitleg:

  • In de voorbeeldcode declareert u int ik, int j, int number, en int n.
  • Initialiseer vervolgens de n met de waarde van het gewenste aantal rijen, hier is het 7.
  • Begin in de buitenste 'for' de lus vanaf waarde 0 en herhaal deze totdat n is bereikt.
  • U kunt het nummer binnen of buiten de lus initialiseren.
  • Herhaal in de binnenste 'for' totdat j kleiner is dan of gelijk is aan i bereikt. En geef het nummer met de spatie weer.
  • Buiten het lichaam van de binnenste 'for', druk de lijnruimte af.
  • De innerlijke 'for' herhaalt zich totdat de voorwaarde onwaar wordt. Wanneer deze voorwaarde onwaar wordt, wordt de buitenste lus opnieuw verhoogd en wordt de binnenste 'for' uitgevoerd totdat de voorwaarde onwaar wordt.
  • Deze procedure herhaalt zich totdat de buitenste lus vals wordt.

Hetzelfde sjabloon print letters zodra een integer als startwaarde wordt geconverteerd naar een char.

Tekenpatronen Programma's in Java

Tekenpatronen bestaan ​​uit Engelse alfabetletters. We kunnen coole en geweldige programma's maken met tekenpatronen. Java Enkele daarvan worden hieronder besproken.

Karakter Halve piramide patroonprogramma:

Het converteren van een integer seed naar een char print deze letters:

Console-uitvoer toont een halve piramide van hoofdletters A tot en met F.

public class Character_p{
    public static void main(String[] args){
        int alphabet = 65;
        for (int i = 0; i <= 5; i++){
            for (int j = 0; j <= i; j++)
            {   
				System.out.print((char) alphabet + " ");}
				alphabet++;
				System.out.println();
			}
		}
}

Code uitleg:

  • Declareer het alfabet en initialiseer het met de waarde 65.
  • De buitenste voor start de lus vanaf 0 en herhaalt totdat i 5 of minder is.
  • Binnen de for begint de lus bij 0 en wordt herhaald totdat j kleiner is dan of gelijk is aan i.
  • Druk vervolgens het teken en de spatie af op het uitvoerscherm.
  • Om tekens af te drukken, typen we het alfabet van geheel getal naar teken.
  • Buiten de hoofdtekst verhoogt u het alfabet en drukt u de regel af op het uitvoerscherm. De (char) converteert de alfabetwaarde naar een teken.

Piramide/driehoekpatroon in Java:

Een space loop centreert de letters in een piramide:

Console-uitvoer toont een gecentreerde piramide van hoofdletters.

public class CharacterPattern  
{              
	public static void main(String[] args){  
		for (int i = 0; i <= 8; i++)   
		{  
			int alphabet_0 = 65;   
			for (int j = 8; j > i; j--)  
			{  
				System.out.print(" ");  
			}  
			for (int k = 0; k <= i; k++)  
			{  
				System.out.print((char) (alphabet_0 + k) + " ");  
			}  
		System.out.println();  
	}  
  }  
} 

Code uitleg:

  • In deze voorbeeldcode hebben we drie 'for'-lussen gebruikt, één is een buitenste lus en twee lussen zijn genest in de buitenste 'for'.
  • De buitenste 'for' begint bij 0 en loopt door totdat de waarde 8 of minder is.
  • In de hoofdtekst van de buitenste 'for' hebben we de alfabetvariabele van het gehele type geïnitialiseerd met een waarde van 65 en de andere 'for' in de hoofdtekst genest.
  • De eerste binnenste 'for' is het omgekeerde van de buitenste 'for'-lus, en in zijn lichaam printruimte op de console. Buiten zijn lichaam is er nog een 'voor'. Het itereert zoals de buitenste lus.
  • In de hoofdtekst van de tweede binnenste lus drukt u het personage af door het alfabet + k te typen en het met spatie op de console af te drukken. Buiten het lichaam van de tweede binnenste 'for' wordt een lijn afgedrukt.

Veelgestelde vragen

Tel terug vanaf het totale aantal rijen. Een links uitgelijnde vorm heeft geen rijen nodig, een gecentreerde piramide heeft rijen nodig min de huidige rij-index, en in het bovenstaande voorbeeld wordt 2*(rij-i) gebruikt.

AI-assistenten kunnen de verwachte en daadwerkelijke consoletekst regel voor regel vergelijken en de lusgrens benoemen die één regel afwijkt. Voer het gecorrigeerde programma zelf opnieuw uit voordat u de oplossing vertrouwt.

Ja. GitHub-copiloot Genereert een werkende vorm op basis van een beschrijving van één regel. Controleer de spatielus, aangezien de gegenereerde code de figuur vaak één kolom naar links centreert.

Voeg een grenscontrole toe binnen de binnenste lus. Print het symbool alleen op de eerste rij, de laatste rij of de eerste en laatste kolom; print spaties op andere plaatsen.

Ja. Eén recursieve methode print een rij en roept zichzelf aan met een verhoogd aantal, terwijl een tweede methode de reeks beheert. De uitvoer is identiek, maar lussen voorkomen de extra stackframes.

Het afdrukken van een driehoek met n rijen vereist ongeveer n²/2 tekenbewerkingen, dus de kosten zijn O(n²). De uitvoer zelf groeit kwadratisch, dus geen enkel algoritme print dezelfde figuur sneller.

65 is het ASCII- en Unicode-codepunt van de hoofdletter A. Het converteren van 65 naar een teken levert A op en 66 levert B op, dus door het getal te verhogen en te converteren, doorloop je het alfabet in volgorde.

Ze laten zien hoe je lussen beheert, indexberekeningen uitvoert en hoe je code op papier kunt testen zonder dat er een bibliotheek nodig is. Een kandidaat die tracAls één rij correct wordt begrepen, wordt geneste iteratie meestal correct geïnterpreteerd.

Vat dit bericht samen met: