Introduzione ai modelli in Java

Nell'articolo Patterns in Java, prima di imparare qualsiasi linguaggio di programmazione in Java e approfondire i concetti avanzati, è molto importante e soprattutto comprendere il funzionamento dei loop. Sebbene ci siano 3 tipi di loop che sono per, while e do-while loop. Ogni loop viene utilizzato in base alla situazione particolare di un programma in quanto leggermente diversi l'uno dall'altro. Al fine di utilizzare vari loop richiede una certa logica di programmazione e, a tale scopo, viene data ai programmatori la pratica dei modelli in quanto implica l'uso di potere logico e di ragionamento. Può essere la stampa di figure geometriche (come triangolo, quadrato, ecc.), Piramide, scatole in vari motivi di stelle, numeri, stile dei caratteri sullo schermo della console. Il formato o la sintassi di base dei loop possono differire da un linguaggio di programmazione all'altro, ma la logica generale per stampare questi pattern rimane la stessa.

Esempio di pattern in Java

Comprendiamo come disegnare modelli in Java attraverso alcuni esempi

Esempio 1: Stampa di mezza piramide usando i numeri.

Codice:

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();
)
)
)

Produzione:

Nell'esempio sopra, per stampare il motivo sono necessari solo 2 loop di base, il primo per loop è per il numero di righe. Nel nostro caso abbiamo definito le righe, ovvero 5, altrimenti possiamo anche prendere l'input dall'utente e memorizzarlo in una variabile. Il ciclo interno è quello di stampare i numeri in una riga particolare. Dopo il completamento di 1 riga o la fine del ciclo 'j', la linea viene cambiata usando println ().

Esempio2: stampa della freccia dei numeri.

Codice:

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();
)
)
)

Produzione:

Nell'esempio sopra, dobbiamo dividere la freccia in due metà e usare 2 anelli per ogni metà. Nella prima metà del numero di righe dovrebbe essere impostato il valore iniziale per le righe mentre per il conteggio della mezza riga inferiore è 1 in meno del valore iniziale. I loop interni per entrambe le metà vengono utilizzati per scorrere attraverso ciascuna riga in base al loop esterno.

Esempio 3: Stampa di una piramide completa utilizzando le stelle (*).

Codice:

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();
)
)
)

Produzione:

Nell'esempio sopra, dobbiamo fare 3 cose, vale a dire tenendo presente il numero totale di righe per la stampa della piramide per le quali il primo per loop funziona da 1 a righe variabili. In secondo luogo, dobbiamo prima stampare gli spazi nella piramide e quindi il motivo (*) dopo gli spazi. Per questo secondo e terzo vengono utilizzati i loop che si trovano all'interno del loop esterno "i".

Esempio 4: Stampa della mezza piramide inversa utilizzando i numeri.

Codice:

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();
)
)
)

Produzione:

La mezza piramide semplice è facile in quanto dobbiamo gestire i numeri, * o i caratteri che stiamo stampando, ma per la piramide inversa, dobbiamo prima stampare gli spazi e dopo quello il modello che è (*) nel nostro caso. Quindi 3 per i loop sono usati lavorando in modo simile a quelli nel caso della piramide piena.

Esempio 5: Stampa di mezza piramide usando alfabeti.

Codice:

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();
)
)
)

Produzione:

La piramide viene stampata con la stessa logica utilizzata nell'esempio sopra usando 2 per i loop, uno per il numero di righe e altri per la stampa del carattere in una riga particolare. Ma la cosa principale da notare è la gestione dei dati dei personaggi. 'A' ha un valore numerico 65 in Java, quindi tutta la logica matematica viene eseguita usando il valore numerico dell'alfabeto e alla fine viene stampata nel formato carattere.

Esempio 6: modello di stampa degli alfabeti.

Codice:

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();
)
)
)

Produzione:

Il modello di base seguito per trattare il valore del carattere e il 2 per i cicli nell'esempio precedente è simile all'esempio 5, l'unica differenza è la semplice logica utilizzata per stampare il motivo desiderato.

Esempio 7: Stampa quadrata usando le stelle (*).

Codice:

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();
)
)
)

Produzione:

Per la stampa di quadrati, abbiamo bisogno di lunghezza e larghezza, cioè entrambi i lati del quadrato dovrebbero essere gli stessi, che è 5 nel nostro caso. Quindi il primo ciclo per viene utilizzato per la lunghezza o il numero di righe in quadrato e il ciclo interno per viene utilizzato per la larghezza del quadrato, ovvero 5 stelle in una singola riga.

Esempio 8: Stampa del rettangolo usando le stelle (*).

Codice:

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();
)
)
)

Produzione:

La logica di base della stampa del rettangolo di (*) è la stessa della stampa dei quadrati, l'unica differenza è la diversa lunghezza e larghezza del rettangolo. Qui il loop 'i' è per la lunghezza del rettangolo e il loop 'j' interno è per la larghezza del loop. Nel nostro programma, è considerato un valore costante, possiamo anche chiedere all'utente e memorizzarlo in variabili separate.

Esempio 9: Stampa di un diamante usando le stelle.

La stampa di un diamante in Java è un processo molto semplice. Implica la stampa di 2 piramidi, 1 nella direzione verso l'alto e un'altra nella direzione invertita. Quindi, fondamentalmente, dobbiamo usare i loop nello stesso modo in cui eseguiamo la codifica per stampare due piramidi separate.

Codice:

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();
)
)
)

Nell'esempio sopra, si applica quasi la stessa logica per creare entrambe le piramidi, una in una direzione verso l'alto e l'altra in una direzione invertita. Il primo per il ciclo è per il numero di linee o righe nel modello e altri due per i cicli sono per gli spazi e il motivo a stelle (*) nel modello.

Produzione:

Esempio 10: Stampa di numeri binari in formato scala.

Codice:

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();
)
)
)

Produzione:

Nell'esempio sopra, per stampare un modello binario, l'esterno per il ciclo 'i' è usato per il numero totale di righe e l'interno per il ciclo 'j' è usato per iterare fino al ciclo esterno 'i' perché per la prima riga abbiamo bisogno di 1 valore, per la seconda riga abbiamo bisogno di 2 valori e così via. Se vengono utilizzate le istruzioni else per stampare un valore alternativo di 0 e 1. Supponiamo per la prima volta i = 1, j = 1 e 1% 2! = 0, quindi viene stampato 1 e l'esecuzione si sposterà fuori dal anello interno.

Esempio 11: programma per stampare il motivo alfabetico ripetuto.

Codice:

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();
)
)
)

Produzione:

Nell'esempio sopra, se osserviamo ogni riga del motivo, dobbiamo prima stampare l'alfabeto nell'ordine crescente, cioè AB e poi nell'ordine inverso, ovvero AB A. Per questo, abbiamo bisogno di 3 anelli, 1 ° per loop per il numero totale di righe. 2o per loop per stampare gli alfabeti in ordine crescente, quindi 3o per loop che rimane all'interno del loop 'i' esterno e stampa gli alfabeti nella stessa riga ma nell'ordine inverso del loop 'j'.

Conclusione

L'esempio sopra e le loro spiegazioni mostrano chiaramente come realizzare tali schemi in Java. Sebbene questi schemi sembrino difficili all'inizio, ma osservandoli profondamente su come la ripetizione del motivo sta avvenendo in una singola riga e in base a quanti cicli dovrebbero essere usati, diventa facile fare delle prove pratiche su questo. Oggi anche nelle interviste di grandi aziende, ai candidati viene chiesto di scrivere la logica di schemi di diversi livelli di difficoltà. Perché questa creazione di modelli mostra le conoscenze logiche e di programmazione di base di un individuo.

Articolo raccomandato

Questa è stata una guida a Patterns in Java. Qui discutiamo Introduzione ai Pattern in Java e gli Esempi di Pattern diversi insieme a Output. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Motivi a stelle in Java
  2. Strutture in Java
  3. Layout in Java
  4. Introduzione ai modelli in PHP
  5. Pattern in JavaScript con esempi

Categoria: