Bevezetés a Java mintázatokba

A Java minták című cikkben, mielőtt bármilyen programozási nyelvet megtanulna a Java-ban, és mélyen belemerülne a fejlett koncepciókba, nagyon fontos és legfontosabb része a hurkok működésének megértése. Habár létezik 3 típusú hurok, amelyek egy, míg és egy ideig tartó hurkokat tartalmaznak. Mindegyik hurkot a program sajátos helyzetének megfelelően használják, mivel kissé különböznek egymástól. A különféle hurkok használatához némi programozási logika szükséges, és erre a célra a programozók kapják a mintázatgyakorlást, mivel ez magában foglalja a logikai és az érvelési erő felhasználását. Ez lehet geometriai alakzatok (például háromszög, négyzet stb.), Piramis, dobozok nyomtatása csillagok, számok, karakterstílusok különféle mintáin a konzol képernyőjén. A hurok formátuma vagy alapszintaxisa programozási nyelvenként különbözhet, de az ezen minták kinyomtatásának általános logikája változatlan.

Példa a Java mintáira

Nézzünk meg néhány példán keresztül, hogyan lehet rajzolni mintákat a Java-ban

1. példa: A fél piramis kinyomtatása számok segítségével.

Kód:

public class Pyramid
(
public static void main(String() args)
(
int i, j;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
​//innermost loop is to print the numbers in the specific rows for (j=1; j<=i; j++)
(
System.out.print(j +" " );
)
System.out.println();
)
)
)

Kimenet:

A fenti példában csak 2 alaphurok szükséges a minta kinyomtatásához, az első hurokhoz a sorok számát kell megadni. Esetünkben definiáltuk a sorokat, azaz 5-et, különben a felhasználótól a felhasználót is átvehetjük, és egy változóban tárolhatjuk. A belső hurok a számok egy adott sorba történő kinyomtatása. Az 1 sor kitöltése vagy a 'j' hurok vége után a sor megváltozik a println () gombbal.

2. példa: A számok nyílának nyomtatása.

Kód:

public class NumberTriangle
(
public static void main(String() args)
(
int i, j;
int rows =7;
​//outermost loop to represent the number of rows which is 7 in this case
//for the upper half of arrow
for (i=1; i<= rows; i++)
(
​//innermost loop is to print the numbers in the specific rows
//for the upper half of arrow
for (j=1; j<=i; j++)
(
System.out.print(j + " ");
)
System.out.println();
)
​//outermost loop to represent the number of rows which is 6 in this case
//for the lower half of arrow
for (i=rows-1; i>=1; i--)
(
​//innermost loop is to print the numbers in the specific rows
//for the lower half of arrow
for (j=1; j<=i; j++)
(
System.out.print(j + " ");
)
System.out.println();
)
)
)

Kimenet:

A fenti példában meg kell osztani a nyilat két felére, és mindegyik felére 2 hurkot kell használni. A sorok számának első felében a sorok számára beállított kezdeti érték lenne, míg az alsó részben a sorok száma 1-nél kevesebb, mint a kezdeti érték. Mindkét fél belső hurkát használják az egyes sorokon a külső huroknak megfelelő iterációhoz.

3. példa: A teljes piramis nyomtatása csillagok segítségével (*).

Kód:

public class FullPyramid
(
public static void main(String() args)
(
int i, j, k;
int rows = 5;
//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= rows; i++)
(
//innermost loop to represent the spaces in pyramid for (j= 1; j<= rows-i; j++)
(
System.out.print(" ");
)
​//innermost loop to represent the stars (*) in pyramid for (k= 1; k<= 2*i-1; k++)
(
System.out.print("* ");
)
System.out.println();
)
)
)

Kimenet:

A fenti példában három dolgot kell tennünk, azaz szem előtt tartva a piramis kinyomtatásához szükséges összes sort, amelyben a hurokhoz az első az 1-től a sorig változó. Másodszor, először ki kell nyomtatnunk a szóközöket a piramisban, majd a szóköz után a mintát (*). Ehhez a másodikhoz és a harmadikhoz olyan hurkokat használunk, amelyek a külső „i” hurkon belül vannak.

4. példa: Fél fordított piramis kinyomtatása számok segítségével.

Kód:

public class ReversePyramid
(
public static void main(String() args)
(
int i, j, k;
int rows = 5;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= rows; i++)
(
//innermost loop to represent the spaces
for (j= 1; j<= rows-1; j++)
(
System.out.print(" ");
)
​//innermost loop to represent the stars (*) in pyramid for (k= 1; k<= i; k++)
(
System.out.print("* ");
)
System.out.println();
)
)
)

Kimenet:

Az egyszerű fél piramis könnyű, mivel kezelni kell a kinyomtatott számokat, * vagy karaktereket, de a fordított piramishoz először ki kell nyomtatnunk a szóközöket, majd ezt a mintát, amely a mi esetünkben (*). Tehát a hurkokhoz a 3-at hasonlóan használják, mint a teljes piramis esetén.

5. példa: A fél piramis nyomtatása ábécé segítségével.

Kód:

public class AlphabetPyramid
(
public static void main(String() args)
(
int i, j;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
int ch = 65;
​//innermost loop to represent the alphabets in a pyramid in particular row for (j= 1; j<= i; j++)
(
System.out.print((char)(ch + i - 1) + " ");
)
System.out.println();
)
)
)

Kimenet:

A piramis ugyanazzal a logikával van nyomtatva, mint amelyet a fenti példa használ, a 2-nél hurkokhoz, az egyik a sorok számához, a másik pedig a karakter nyomtatásához egy adott sorban. De a legfontosabb dolog, amelyet meg kell jegyezni, a karakter adatok kezelése. Az 'A' számértéke Java-ban 65, tehát az összes matematikai logika az ábécé numerikus értékével történik, és végül karakter formátumban kerül kinyomtatásra.

6. példa: Ábécé nyomtatási mintája.

Kód:

public class AlphabetPattern
(
public static void main(String() args)
(
int i, j;
//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
int ch = 65;
​//innermost loop to represent the alphabets for (j= 1; j<= i; j++)
(
System.out.print((char)(ch - 1 + j) + " ");
)
System.out.println();
)
)
)

Kimenet:

A fenti példában a karakterértékkel és a 2-es ciklusokkal kezelt alapelv hasonló az 5. példához, csak a különbség a kívánt mintázat kinyomtatásához használt egyszerű logika.

7. példa: Négyzet nyomtatás csillaggal (*).

Kód:

public class SquarePattern
(
public static void main(String() args)
(
int i, j;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
int ch = 65;
//innermost loop to represent the stars (*) for (j= 1; j<= 5; j++)
(
System.out.print(" * " + " ");
)
System.out.println();
)
)
)

Kimenet:

A négyzet nyomtatásához hosszra és szélességre van szükség, azaz a négyzet mindkét oldalának azonosnak kell lennie, ami esetünkben 5. Tehát az első a hurokhoz a négyzetben lévő sorok hosszához vagy számához, a belső hurokhoz pedig a négyzet szélességéhez használható, azaz 5 csillag egy sorban.

8. példa: Téglalap nyomtatása csillaggal (*).

Kód:

public class RectanglePattern
(
public static void main(String() args)
(
int i, j;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
int ch = 65;
​//innermost loop to represent columns the stars (*) for (j= 1; j<= 9; j++)
(
System.out.print(" * " + " " );
)
System.out.println();
)
)
)

Kimenet:

A (*) téglalap nyomtatásának alapvető logikája megegyezik a négyzetek nyomtatásával, az egyetlen különbség a téglalap különböző hossza és szélessége. Az 'i' hurok a téglalap hosszára vonatkozik, a belső 'j' hurok pedig a hurok szélességére. Programunkban állandó értékként vesszük fel, kérhetjük a felhasználót is, és külön változókba tárolhatjuk.

9. példa: Gyémánt nyomtatása csillagokkal.

Gyémánt nyomtatása Java-ban nagyon egyszerű folyamat. Ez magában foglalja 2 piramis nyomtatását, egyet felfelé és egy fordított irányban. Tehát alapvetően a hurkokat kell ugyanúgy használni, mint a két különálló piramis kinyomtatásához.

Kód:

public class Diamond
(
public static void main(String() args)
(
int i, j, k;
int rows = 5;
​//outermost loop to represent the number of rows which is 5 in this case.
// Creating upper pyramid
for(i= 1; i<= rows; i++)
(
//innermost loop to represent the spaces in upper pyramid for (j= 1; j<= rows-i; j++)
(
System.out.print(" ");
)
​//innermost loop to represent the stars (*) in upper pyramid for (k= 1; k<= 2*i-1; k++)
(
System.out.print("* ");
)
System.out.println();
)
​//outermost loop for the rows in the inverted pyramid for (i = rows-1; i>0; i--)
(
​//innermost loop for the space present in the inverted pyramid for (j=1; j<= rows - i; j++)
(
System.out.print(" ");
)
​//innermost loop inside the outer loop to print the ( * ) pattern in inverted pyramid for (k = 1; k<= 2*i-1; k++)
(
System.out.print("* ");
)
System.out.println();
)
)
)

A fenti példában szinte ugyanazt a logikát alkalmazzuk mind a piramisok létrehozására, az egyik felfelé, a másik pedig fordított irányba. A hurok számára az első a mintában szereplő sorok vagy sorok száma, a másik két hurok pedig a szóközök és a csillagok (*) mintája a mintában.

Kimenet:

10. példa: Bináris számok nyomtatása lépcső formátumban.

Kód:

public class BinaryStair
(
public static void main(String() args)
(
int i, j;
//outer loop for the total rows which is 5 in this case for (i = 1; i <= 5; i++)
(
​//inner loop for the pattern of 0 and 1 in each row for (j = 1; j<= i ; j++)
(
if (j % 2 ==0)
(
System.out.print(0);
)
else
(
System.out.print(1);
)
)
System.out.println();
)
)
)

Kimenet:

A fenti példában a bináris mintázat kinyomtatására az „i” hurok számára a külső sor az összes sor száma, a belső pedig a „j” hurok számára iterálásra kerül az „i” külső hurokig, mivel az 1. sorhoz 1 értékre van szükség, a 2. sorra 2 értékre van szüksége, és így tovább. Ha és más utasításokat használunk a 0 és 1 alternatív érték kinyomtatásához, tegyük fel, hogy először i = 1, j = 1 és 1% 2! = 0, akkor az 1 kinyomtatásra kerül, és a végrehajtás elmozdul a belső hurok.

11. példa: Program ismétlődő ábécé mintázat kinyomtatására.

Kód:

public class AlphabetReverseOrder
(
public static void main(String() args)
(
int i, j, k;
//outer loop for the total rows which is 5 in this case for (i = 0 ; i<=5; i++)
(
int ch= 65;
//inner loop for the pattern of alphabets in till 'i' loop for (j = 0; j <=i ; j++)
(
System.out.print((char) (ch+j) + " ");
)
//inner loop for the pattern of alphabets in reverse order from 'i' loop for (k= i-1; k >=0; k--)
(
System.out.print((char) (ch+k) + " ");
)
System.out.println();
)
)
)

Kimenet:

A fenti példában, ha minden mintasort megfigyelünk, először az ábécét növekvő sorrendben, azaz AB-vel, majd fordított sorrendben, azaz AB A-vel kell kinyomtatnunk. Ehhez 3 hurokra van szükség, 1. az hurok a sorok teljes számához. A második a hurok számára, hogy növekvő sorrendben nyomtassa ki az ábécét, majd a harmadik a hurkot, amely a külső 'i' hurok belsejében marad, és ugyanabba a sorba nyomtatja az ábécéket, 'j' hurok fordított sorrendjében.

Következtetés

A fenti példa és azok magyarázata egyértelműen megmutatja, hogyan lehet ilyen mintákat készíteni a Java-ban. Noha ezek a minták nehéznek tűnnek a kezdetben, de mélyrehatóan megfigyelve, hogy a mintázat ismétlődik egy sorban, és hány hurkot kell használni, megkönnyíti ezt a gyakorlatot. Ma a nagyvállalatok interjúiban is felkérik a jelölteket, hogy írják le a különböző nehézségi szintű minták logikáját. Mivel ez a mintázatkészítés megmutatja az egyén alapvető logikai és programozási ismereteit.

Ajánlott cikk

Ez egy útmutató a Java mintákhoz. Itt tárgyaljuk a Java minták bevezetését és a különféle minták példáit, valamint a kimenetet. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Csillagminták Java-ban
  2. Keretek a Java-ban
  3. Elrendezés Java-ban
  4. Bevezetés a mintákba a PHP-ben
  5. Minták JavaScript-ben példákkal

Kategória: