Java - Ayuda para programar gráfica en el que se muestre la altura con asteriscos una secuencia de enteros

 
Vista:

Ayuda para programar gráfica en el que se muestre la altura con asteriscos una secuencia de enteros

Publicado por Manuuue (1 intervención) el 04/11/2016 18:34:12
Hola necesito ayuda para un programa, el cual consiste en lo siguiente:

Escribe un programa Java que lea una secuencia de enteros terminada en un número negativo y muestre por pantalla una gráfica en el que se muestre la altura con asteriscos de la secuencia de enteros finalizada en número negativo introducida por teclado, y además de cómo resultado el número de picos, valles, la anchura del valle más largo, la longitud del pico más ancho, la altura del pico más elevado, y la altura del valle más profundo.
A continuación, se muestran ejemplos de ejecución del programa.

10 5 4 3 6 20 19 18 18 17 17 18 19 16 14 5 7 10 -1

**********
*****
****
***
******
******************** ******************* ****************** ****************** ***************** ***************** ****************** ******************* **************** ************** ***** ******* ********** (todos los asteriscos como los 5 primeros en filas)

Número de picos:2
Número de valles:3
Max longitud Montaña:8
Max longitud Valle:8
Max altura:20
Min altura:3

Mi código es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import java.util.Scanner;
public class Montañav2 {
public static void main(String[] args){
	Scanner entrada=new Scanner(System.in);
	int ant=0;
	int num;
	int picos=0;
	int valles=0;
	int maxalt=0;
	int minalt=0;
	int maxlong=0;
	int minlong=0;
	int asterisco;
	int anchvalle=0;
	boolean subiendo=true;
	num=entrada.nextInt();
	if(num>0){
		ant=num;
		num=entrada.nextInt();
		subiendo=(num>ant);
 
	}
	while(num>=0){ //Casos
		if(num>=ant&&subiendo){ //Caso 1
			ant=num;
			num=entrada.nextInt();
		}
		else if(num<ant&&subiendo){ //Caso 2
			picos++;
			ant=num;
			num=entrada.nextInt();
			subiendo=false;
		}
		else if(num<=ant&&!subiendo){ //Caso 3
			ant=num;
			num=entrada.nextInt();
		}
		else if(num>ant&&!subiendo){ //Caso 4
			valles++;
			ant=num;
			num=entrada.nextInt();
			subiendo=true;
		}
 
	}
	System.out.println("Número de picos: " +picos);
	System.out.println("Número de valles: " +valles);
	System.out.println("Máx. altura: " +maxalt);
	System.out.println("Mín. altura: " +minalt);
	System.out.println("Máx. longitud: " +maxlong);
	System.out.println("Mín. longitud: " +minlong);
}
}

Necesito resolver la anchura máxima/mínima, alturas máxima/mínima y la impresión de los asteriscos.
Debe ser resuelto mediante los comandos if / for / else if / while ... (mejor no utilizar comandos más complejos).

¿Alguien podria ayudarme con el código? Me encuentro totalmente perdido y no sé como seguir adelante con el programa.

Muchas gracias anticipadas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder