Mintaprogramok be Java: Csillag, piramis és szám nyomtatása

⚡ Okos összefoglaló

Mintaprogramok Java csillagokat, számokat vagy betűket nyomtathat rögzített alakban, és mindegyik beágyazott ciklusokból épül fel, ahol a külső ciklus sorokat számol, a belső ciklusok pedig szóközöket és karaktereket helyeznek el.

  • 🔘 Meghatározás: A mintanyomtatás a szimbólumokat, számjegyeket vagy betűket meghatározott alakba rendezi a konzolon.
  • ☑️ Kategóriák: Három csoport létezik, nevezetesen csillagminták, számminták és karakterminták.
  • Szerkezet: A külső ciklus a sorokat vezérli, míg a belső ciklusok a kezdő szóközöket és a nyomtatott karaktereket kezelik.
  • 🧪 Példák: Fél háromszög, homokóra, rombusz, szemközti háromszög és betűpiramis programok is szerepelnek a kínálatban.
  • 🇧🇷 Technika: A karakteralakzatok egy int magot (egész számot) vetnek a char-ra, az A betű 65-ös számától kezdődően.
  • 📊 Haszon: A minták írása fejleszti a ciklusvezérlést, az indexszámítást és a próbaverziós készségeket az interjúkhoz.

Mintaprogramok be Java csillag, piramis és számformák nyomtatásához

A mintanyomtató programok olyan minták vagy szimbólumok, amelyek betűket vagy más karaktereket tartalmaznak meghatározott formátumban. Java A mintakódolás növeli a programozók logikai felépítését, ami segít nekik jó programozóvá válni.

Minden itt szereplő példa csak beágyazott ciklusokat és alapvető műveleteket igényel Java szintaxis.

A minták kategóriái

Számtalan mintát rajzolhatunk Java, és az összes minta három különböző módon végrehajtható.

Az azonosításhoz három fő kategóriát használnak Java mintaprogramok.

  • Csillagminta: In Java csillagmintás programok, a csillagminták sorozata csillagok (*) különböző alakzatok létrehozására használják, mint például piramis csillagminta program, szűk háromszög, bal oldali háromszög, rombusz alakú, négyzet alakú és sok más minta Java.
  • Számminta: A folyamatirányítási utasítások gyakorlásához egy másik mintatípus a számmintás programok, JavaA számminta-programok számokból/számlálásból állnak. Legtöbbször az 'i' értékét állítjuk be, amely egy ciklus iterátor számok generálására a mintaprogramozásban. A számminta legkisebb ciklusszáma szintén kettő. A számminta-program a következőben található: Java sorok és oszlopok rendszerében is működik.
  • Karakterminta: A karakterminta programozása olyan karakterekből áll, amelyek a Angol ábécé. Ez egy másik módja a kódolási készség fejlesztésének, de itt a karakterekkel foglalkozunk, nem a számokkal vagy a csillagokkal. A mintának lehet ugyanaz a karaktere a teljes mintában, vagy lehetnek különböző karakterek, az alkalmazott logikától függően.

Az alábbi táblázat bemutatja, hogy mi változik a kategóriák között.

Kategória Nyomtatott egység Honnan származik a kinyomtatott érték Minta kimenet
Csillagminta Csillag Fix szimbólum, így csak a ciklushatárok változnak * * *
Számminta Digit Az i vagy j ciklus iterátor közvetlenül kiíródik 1 alkalmazott
Karakterminta Levél Egy int seed, ami char-ra vált, 65-től kezdődően A esetén ABC

Mindhárom esetben a külső ciklus számolja a sorokat, egy belső ciklus kinyomtatja az igazítási szóközöket, a második pedig a látható karaktereket. Csak a kiíratott mértékegység változik.

Ugyanezek a cikluskészségek vezérlik a többi klasszikus gyakorlatot is, mint például a kiválasztási rendezés, beszúrási rendezés, És a Armstrong-szám program.

A csillag minták az elsők, mivel a szimbólum soha nem változik, és csak a ciklushatárok számítanak.

Csillagminta programok itt Java

A csillagminták csillagot nyomtatnak a konzolra, a minta alakja teljes mértékben a beírt kódtól függ.

Fél bal háromszög csillagmintás program:

Az alábbi program kinyomtatja ezt a fél bal oldali háromszöget:

Konzolkimenet, amely hat sorban csillagokból álló bal oldali háromszöget mutat

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 magyarázat:

  • Kijelent int i, int j. A sorváltozó deklarálása és inicializálása an int sorban.
  • i a külső 'for' ciklus iterátora, j pedig a belső 'for' ciklus iterátora, a 'sor' a piramisnak rendelkeznie kell néhány sorral.
  • A beágyazott for esetén a külső „for” a sorokat, a belső „for” pedig az oszlopokat jelöli.
  • A külső 'for'-ban inicializálja az 'i' iterátort 0-val, állítsa be az i< feltételt, és növelje az i-t.
  • Most a belső 'for' ciklus inicializálva van 2*-vel (i sor) és csökkentésekkel.
  • A beágyazott „for” helyet nyomtat a konzol képernyőjén.
  • A beágyazott „for” törzsén kívül egy másik „for” hurok kerül elhelyezésre. ez a 'for' nyomtatott csillag a beágyazott „for” végrehajtása után. J<=i-ig hurkol.

Homoküveg csillagmintás program:

Két egymásra rakott piramis hozza létre ezt a homokórát:

Konzolkimenet, amely két csillagpiramisból épített homokóra alakot mutat

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 magyarázat:

  • Code -vel kezdődik nyilvános statikus űr fő, int sorokban meghatározza a homoküvegben található sorok számát.
  • Két beágyazott „for” van, az első a lefelé mutató piramist, a második pedig a felfelé mutató piramist.
  • A beágyazott for esetén a külső „for” a sorokat, a belső „for” pedig az oszlopokat jelöli.
  • A külső 'for' ciklusokban i<= sor-1-ig, a belső 'for' ciklusokban i-ig. nyomtatási rendszer kiírja a helyet a konzolon.
  • A második belső hurok egy csillagot és egy szóközt nyomtat a konzolon.
  • Amikor az első belső hurok teljesen végrehajtódik i=0-nál, akkor a második belső ciklus teljes mértékben végrehajtódik.
  • Ezután a külső hurok növekedett. Ez a ciklus addig tart, amíg a feltétel hamissá nem válik.
  • A második beágyazott hurok a felfelé irányuló piramist jeleníti meg, éppen csak megváltoztatja az első beágyazott hurok külső hurkának inicializálását és állapotát.
  • Megjeleníti a felfelé mutató piramist. Mind a lefelé, mind a felfelé irányuló piramisok teszik a homoküveg csillag minta.

Gyémánt alakú csillagmintás program:

Egy felfelé és lefelé irányuló piramis adja ezt a gyémántot:

Konzolkimenet, amely két piramis által alkotott csillagokból álló gyémántot mutat

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 magyarázat:

  • A gyémánt csillag minta, 'n' a sorok száma, n-1 a_0 térben tárolva.
  • A beágyazott for esetén a külső „for” a sorokat, a belső „for” pedig az oszlopokat jelöli.
  • Az első beágyazott „for” a felfelé mutató piramist jeleníti meg. A külső 'for' ciklusok n-ig és a belső for ciklusok space_0-ig a belső ciklus helyet jelenít meg a konzolon.
  • Van egy másik belső „for” is, amely i<= 2 * j – 1-ig hurkol, és egy csillagot jelenít meg a belső „for” nyomtatási rendszeren kívül, és egy sort nyomtat. Ez a beágyazott hurok a felső piramist nyomtatja ki.
  • A másik beágyazott „for” egy lefelé mutató piramist jelenít meg. A külső 'for' hurkok i<=n-1-ig, az első belső 'for' szóközt, a második belső pedig csillagot nyomtat.
  • A belső „for”-on kívül nyomtasson sorközt. mind a felfelé, mind a lefelé haladó piramis teszi a gyémántmintát.

Derékszögű háromszög csillagminta términta program:

A j és i modulusa a következő hézagokat illeszti be:

Konzolkimenet, amely egy derékszögű háromszöget mutat csillagokból modulus alapú térközzel

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 magyarázat:

  • A fenti minta kódot, a külső „for” gondoskodik a sorok számáról, a belső „for” pedig az oszlopokat.
  • Ha a külső „for” 1, ami az első sort jelenti, és amikor a belső „for” értéke 1, az azt jelenti, hogy ez az első oszlop.
  • A belső 'for'-ban deklaráljunk egy mid nevű változót, és tároljuk a j/i maradékát. Ez felosztja az i és j értékeket, hogy megkapja a modulust.
  • Tehát, ha a modulus 0, akkor jelenítsen meg egy csillagot és szóközt; ellenkező esetben csak egy csillag jelenjen meg. A belső „for”-on kívül nyomtasson egy sort.

Modern Java Megjegyzés: ból ből Java 11 a térhurkok helyettesíthetők a következővel: System.out.print(" ".repeat(n)), és minden sort egy StringBuilder egy előtt println() A hívás gyorsabban fut. Az eredeti kód a leírtak szerint marad meg, mivel explicit módon mutatja a számtani műveleteket.

Csereping A ciklusszámláló csillagja minden csillag alakzatot szám alakzattá alakít.

Numerikus minták programjai Java

A numerikus minták számokból állnak; numerikus mintákból sokféle alakzatot rajzolhatunk.

Szemközti félháromszög mintázatú program:

A lefelé, majd felfelé számolás ezt a számháromszöget eredményezi:

Konzolkimenet, amely egy szemközti fél háromszöget mutat számokból

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 magyarázat:

  • Ennek a mintának a megrajzolásához két egymásba ágyazott „for” hurkot fogunk használni. Az egyik kinyomtatja az első piramist, a másik pedig a második piramist.
  • Kijelent int i, int j és int sor_0, és inicializálja a sort a kívánt sorok számával. Itt a sor értéke 5.
  • Állítsa be az első beágyazott 'for' külső 'for' ciklusát, inicializálja az i-t a sorok számával, és addig iteráljon, amíg i >=, és csökkentse az iterátort. Ez a külső „for” a sorokkal foglalkozik.
  • A belső 'for'-ban állítsa be a j=1 feltételt, és iterálja j<=i-ig. A belső ciklus törzsében jelenítse meg a j változót a szóközzel.
  • Most a második beágyazott „for”-ban változtassa meg az első beágyazott „for” külső „for” feltételét. Inicializálja 2-vel, és ismételje meg az i<= sorokig.
  • És a belső ciklus addig ismétlődik, amíg el nem éri az i-t. Ezután megjelenik az üzenet a konzolon, ugyanúgy, mint az első beágyazott „for” belső ciklusában, a belső for prints sorköz törzsén kívül.

Ismétlődő szám a derékszögű háromszög oszlopban Mintaprogram:

A számláló visszaállítása minden sorban megismétli a számokat:

A konzol kimenete egy derékszögű háromszöget mutat, amely minden sorban egytől újrainduló számokat mutat

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 magyarázat:

  • A példakódban deklarálja int i, int j, int szmber, és int n.
  • Ezután inicializálja az n-t a kívánt sorok számának értékével, ez itt 7.
  • A külső 'for'-ban indítsa el a ciklust 0 értékről, és addig iterálja, amíg el nem éri az n-t.
  • A számot inicializálhatja a hurkon belül vagy kívül.
  • A belső 'for'-ban addig iteráljon, amíg j kisebb vagy egyenlő lesz, mint i elérte. És jelenítse meg a számot szóközzel.
  • A belső „for” szövegtörzsén kívül nyomtatott sorköz.
  • A belső „for” addig ismétlődik, amíg feltétele hamis lesz. Amikor ez a feltétel hamisra változik, a külső ciklus ismét növekszik, és végrehajtja a belső 'for'-t, amíg a feltétel hamisra nem változik.
  • Ez az eljárás addig ismétlődik, amíg a külső hurok hamis nem lesz.

Ugyanez a váz betűket nyomtat, miután egy int magot char-rá alakítottunk.

Karaktermintázat programok Java

A karakterminták angol ábécékből állnak. Klassz és klassz karakterminta-programokat készíthetünk velük. Java néhányat az alábbiakban tárgyalunk.

Karakter félpiramis mintás program:

Egy int seed char-ra fordítása a következő betűket írja ki:

Konzolkimenet, amely egy félpiramist mutat A-tól F-ig terjedő nagybetűkből

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 magyarázat:

  • Deklarálja az ábécét, és inicializálja 65 értékkel.
  • A külső a hurkot 0-tól kezdi, és addig ismétli, amíg i 5 vagy kevesebb lesz.
  • A for belsejében a ciklus 0-val kezdődik, és addig ismétlődik, amíg j kisebb vagy egyenlő nem lesz, mint i.
  • Ezután nyomtassa ki a karaktert és a szóközt a kimeneti képernyőn.
  • Karakterek nyomtatásához az ábécét egész számról karakterre írjuk.
  • A törzsén kívül növelje az ábécét, és nyomtassa ki a sort a kimeneti képernyőn. A (char) az ábécé értékét karakterré alakítja.

Piramis/háromszög minta Java:

Egy szóközhurok piramis alakban középre igazítja a betűket:

A konzol kimenete egy középre igazított nagybetűs piramis

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 magyarázat:

  • Ebben a példakódban három „for” ciklust használtunk, az egyik egy külső ciklus, két hurok pedig a külső „for”-ba van beágyazva.
  • A külső 'for' 0-tól kezdődik, és addig ciklusok, amíg az érték 8 vagy kisebb lesz.
  • A külső 'for' törzsében az egész típusú ábécé változóját 65-ös értékkel inicializáltuk, a másik 'for'-t pedig a törzsébe ágyaztuk be.
  • Az első belső „for” a külső „for” hurok hátoldala, és a törzsében a konzolon található nyomtatási terület. A testén kívül van egy másik „for” is. Úgy iterál, mint a külső hurok.
  • A második belső ciklus törzsében írja ki a karaktert az ábécé +k beírásával, és írja ki szóközzel a konzolon. A második belső „for” törzsén kívül nyomtasson egy sort.

GYIK

Számoljon visszafelé a teljes sorszámtól. Egy balra igazított alakzatnak nincs szüksége sorokra, egy középre igazított piramisnak a sorok számának levonására van szüksége az aktuális sorindex nélkül, a fenti példában pedig a 2*(row-i) képletet használjuk.

A mesterséges intelligencia által használt asszisztensek soronként összehasonlíthatják a várt és a tényleges konzolszöveget, és megnevezhetik az eggyel eltérő ciklushatárt. Futtasd újra a javított programot, mielőtt megbíznál a javításban.

Igen. GitHub másodpilóta egy egysoros leírásból működő alakzatot hoz létre. Ellenőrizd a szóközhurkot, mivel a generált kód gyakran egy oszloppal eltolva középre igazítja az ábrát.

Adjon hozzá egy határvizsgálatot a legbelső cikluson belül. A szimbólumot csak az első sorra, az utolsó sorra, vagy az első és az utolsó oszlopra írja ki; máshol írja ki a szóközöket.

Igen. Az egyik rekurzív metódus kiír egy sort és megnövelt számmal hívja meg magát, míg a második a sorozatot kezeli. A kimenet azonos, de a ciklusok elkerülik az extra veremkereteket.

Egy n soros háromszög kinyomtatása nagyjából n²/2 karakter írását igényli, tehát a költség O(n²). Maga a kimenet négyzetesen növekszik, így egyetlen algoritmus sem nyomtatja ki ugyanazt az ábrát gyorsabban.

A 65 az A nagybetűs A ASCII és Unicode kódpontja. A 65 karakterré alakítása A-t, a 66 pedig B-t eredményez, tehát az egész szám növelése és a konvertálás az ábécé sorrendjét követi.

Bemutatják a ciklusvezérlést, az indexaritmetikát, és azt a képességet, hogy papíron, könyvtár nélkül lehessen szárazon futtatni a kódot. Egy jelölt, aki tracAz egy soros esetek általában helyesen értelmezik a beágyazott iterációt.

Foglald össze ezt a bejegyzést a következőképpen: