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