Ejercicio figuras
This commit is contained in:
1 parent
43d1b4d5a9
commit
9a436e8a70
1 file changed
+109
@@ -0,0 +1,109 @@
|
||||
import java.util.*;
|
||||
public class Metodos8 {
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int altura, anchura;
|
||||
boolean terminar = false;
|
||||
while(!terminar){
|
||||
System.out.println("=== Menú de Figuras ===\n" +
|
||||
"1. Rectángulo\n" +
|
||||
"2. Triángulo\n" +
|
||||
"3. Rombo\n" +
|
||||
"0. Salir\n" +
|
||||
"Elige una opción:");
|
||||
int opt = leerEnteroPositivo(sc);
|
||||
switch(opt){
|
||||
case 1:
|
||||
System.out.println("Introduce el ancho del rectángulo");
|
||||
anchura = leerEnteroPositivo(sc);
|
||||
System.out.println("Introduce la altura del rectángulo");
|
||||
altura = leerEnteroPositivo(sc);
|
||||
dibujarRectangulo(anchura, altura);
|
||||
break;
|
||||
case 2:
|
||||
System.out.println("Introduce la altura del triangulo");
|
||||
altura = leerEnteroPositivo(sc);
|
||||
dibujarTriangulo(altura);
|
||||
break;
|
||||
case 3:
|
||||
System.out.println("Introduce la altura del rombo");
|
||||
altura = leerEnteroPositivo(sc);
|
||||
if((altura & 1) != 1) {
|
||||
System.out.println("ERROR: Es un numero impar");
|
||||
continue;
|
||||
}
|
||||
dibujarRombo(altura);
|
||||
break;
|
||||
case 0:
|
||||
return;
|
||||
default:
|
||||
}
|
||||
}
|
||||
sc.close();
|
||||
}
|
||||
|
||||
private static void pintar(char c, int len){
|
||||
for(int i = 0; i < len; i++) System.out.printf("%c", c);
|
||||
}
|
||||
|
||||
private static void dibujarTriangulo(int altura){
|
||||
int longitud = altura * 2 - 1;
|
||||
for(int i = 0; i < altura; i++){
|
||||
int asteriscos = i * 2 + 1;
|
||||
int espacios = (longitud - asteriscos) / 2;
|
||||
pintar(' ', espacios);
|
||||
pintar('*', asteriscos);
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
private static void dibujarRombo(int altura) {
|
||||
int espacios = altura / 2;
|
||||
int asteriscos = 1;
|
||||
|
||||
for (int i = 1; i <= altura / 2; i++) {
|
||||
pintar(' ', espacios);
|
||||
espacios--;
|
||||
pintar('*', asteriscos);
|
||||
asteriscos += 2;
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
pintar('*', altura);
|
||||
System.out.println();
|
||||
|
||||
asteriscos -= 2;
|
||||
|
||||
for (int i = 1; i <= altura / 2; i++) {
|
||||
espacios++;
|
||||
pintar(' ', espacios);
|
||||
pintar('*', asteriscos);
|
||||
asteriscos -= 2;
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
private static void dibujarRectangulo(int anchura, int altura){
|
||||
for(int i = 0; i < altura; i++) {
|
||||
pintar('*', anchura);
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
private static int leerEnteroPositivo(Scanner sc) {
|
||||
boolean parar = false;
|
||||
int n = -1;
|
||||
while (!parar) {
|
||||
try {
|
||||
n = sc.nextInt();
|
||||
} catch (Exception e) {
|
||||
System.out.println("Numero invalido vuelve a insertar uno");
|
||||
sc.nextLine();
|
||||
continue;
|
||||
}
|
||||
if (n > 0) parar = true;
|
||||
else System.out.println("Tiene que ser un numero positivo!");
|
||||
}
|
||||
sc.nextLine();
|
||||
return n;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user