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 -
- Csillagminták Java-ban
- Keretek a Java-ban
- Elrendezés Java-ban
- Bevezetés a mintákba a PHP-ben
- Minták JavaScript-ben példákkal