Last active
May 16, 2019 02:32
-
-
Save wagfim/f0fbda1bd221acaaef2b1d8cdbe9fb9e to your computer and use it in GitHub Desktop.
Desenhe um X com o numero de linhas informado pelo usuário.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Lista { | |
public static void main(String[] args) { | |
int num; //tamanho do X | |
int qtdParagrafo; //quantidade de espaços antes de cada linha | |
String paragrafo = ""; //String do paragrafo | |
int qtdEspacosInterior; //quantidade de espaços entre cada braço do X | |
String espacoInterior = ""; //String do espaço entre os braços | |
int linhas; //quantidade de linhas antes e depois do meio | |
Scanner leitor = new Scanner(System.in); | |
// --------- | |
while (true) { | |
System.out.print("Informe um numero positivo ímpar: "); //lê o tamanho do X | |
num = leitor.nextInt(); | |
if (num > 0 && num%2 != 0) break; //só sai do while quando for digitado um numero positivo impar | |
} | |
// --------- Ajustes para a 1º linha | |
qtdEspacosInterior = num-2; //quantidade de espaços entre os braços do X na 1ª linha | |
for (int i = 0; i < qtdEspacosInterior; i++) { | |
espacoInterior+=" "; //preenche o espaço interior | |
} | |
qtdParagrafo = 0; //quantidade de espaços no paragrafo | |
linhas = num/2; //calcula a quantidade de linhas antes e depois do eixo | |
// --------- LINHAS DE CIMA ---------- | |
for (int i = 0; i < linhas; i++) { | |
System.out.println(paragrafo+"X"+espacoInterior+"X"); //desenha a linha | |
paragrafo+=" "; //preenche mais um espaço no paragrafo para a proxima linha | |
qtdParagrafo++; //guarda a quantidade de paragrafo (para ser usada abaixo do eixo) | |
espacoInterior = ""; //esvazia o espaço interior para ser preenchido corretamente | |
qtdEspacosInterior-=2; //diminui o espaço entre os braços (-2 a cada linha) | |
for (int j = 0; j < qtdEspacosInterior; j++) { | |
espacoInterior += " "; //preenche o espaço interior | |
} | |
} //fim linhas de cima | |
// --------- EIXO ---------- | |
System.out.println(paragrafo+"X"); //onde os braços se cruzam | |
// --------- Ajustes para a 1º linha abaixo do eixo | |
espacoInterior = " "; //a primeira linha abaixo do eixo sempre tem apenas 1 espaço no interior | |
qtdEspacosInterior = 1; // -> assim sendo a qtd de espaços no interior vai começar com 1 | |
qtdParagrafo--; //nas linhas abaixo do eixo o paragrafo vai diminuindo -1 a cada linha | |
// --------- LINHAS DE BAIXO ---------- | |
for (int i = 0; i < linhas; i++) { | |
paragrafo = ""; //esvazia o paragrafo para ser preenchido corretamente | |
for (int j = 0; j < qtdParagrafo; j++) { | |
paragrafo += " "; //preenche corretamente o paragrafo | |
} | |
System.out.println(paragrafo+"X"+espacoInterior+"X"); //desenha a linha | |
espacoInterior = ""; //esvazia o espaço interior para ser preenchido corretamente | |
qtdEspacosInterior+=2; //abaixo do eixo o espaço interior aumenta 2 a cada linha | |
for (int j = 0; j < qtdEspacosInterior; j++) { | |
espacoInterior += " "; //preenche corretamente o espaço interior | |
} | |
qtdParagrafo--; //diminui a quantidade (-1) de espaços do paragrafo | |
} //fim linhas de baixo | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment