Um progrma que recebe nome e a distancia de varias praias e mostra a praia mais distante

4 respostas
B

Bom dia pessoal tentei resolver com o código abaixo, mas ele não responde. Por favor me ajudem

import javax.swing.JOptionPane;

class p1

{

public static void main(String args[])

{

String Nome_P[]=new String[8];

float dist_P[]=new float[8];

String P_m_distante= “”;

int c=0;

float distante=0;

int i;

String Mensagem="";

float Soma=0;
for ( i=0; i<8; i++)

{

Nome_P[i]=JOptionPane.showInputDialog(Digite o nome da Praia);

dist_P[i]=Float.parseFloat(JOptionPane.showInputDialog(Digite a distância da praia));

Soma=Soma+dist_P[i];

if (dist_P[i]>distante)

distante=dist_P[i];

P_m_distante= " distante ";
}

float Media=Soma/i;

JOptionPane.showMessageDialog(null,"  a distância média das praias é de - “+Media+” KM \n e a praia mais distante é a praia : “+Nome_P[i]+” dista à"+P_m_distante);

}

}

4 Respostas

alansousa.si

Olá BNTeixeira,

Está dando estouro de array nesse ponto Nome_P[i], pois quando chega no 7 ele incrementa mais 1 para depois chegar se i<8 e quando você vai imprimir o Nome_P[i], o i está com valor 8.

Jubinha

Bom dia, BNTeixeira.

O alansousa.si respondeu a tua dúvida. Apenas eu complementarei com o fonte modificado:

import javax.swing.JOptionPane;

class Praia

{

public static void main(String args[])

{

String Nome_Praia[] = new String[8];

float dist_Praia[] = new float[8];

String sPraiaMaisDistante = “”;

float praiaMaisDistante = 0, Soma = 0;

String Mensagem = “”;
for ( int i = 0; i < dist_Praia.length-1; i++)

{

Nome_Praia[i] = JOptionPane.showInputDialog(Digite o nome da Praia);

dist_Praia[i] = Float.parseFloat(JOptionPane.showInputDialog(Digite a distância da praia));

Soma += dist_Praia[i];

if (dist_Praia[i] > praiaMaisDistante)

{

praiaMaisDistante = dist_Praia[i];

sPraiaMaisDistante = Nome_Praia[i];

}

}

float Media = Soma / dist_Praia.length;

// " dista à"+P_m_distante -> este trecho da mensagem não entendi.

Mensagem = " a distância média das praias é de - “+String.valueOf(Media)+” KM \n e a praia mais distante é a praia : "+sPraiaMaisDistante;

JOptionPane.showMessageDialog(null,Mensagem);

}

}
B

Obrigado jubinha! o trecho que você não entendeu: dista quer dizer fica à tantos km. Agora você poderia me dar uma luz de como implementaria um código para mostrar quantas praias ficam entre 15 e 20 Km

Jubinha

Veja o que sugiro a você :

for ( int i = 0; i < dist_Praia.length-1; i++)

{

Nome_Praia[i] = JOptionPane.showInputDialog(Digite o nome da Praia);

dist_Praia[i] = Float.parseFloat(JOptionPane.showInputDialog(Digite a distância da praia));

Soma += dist_Praia[i];

if (dist_Praia[i] > praiaMaisDistante)

{

praiaMaisDistante = dist_Praia[i];

sPraiaMaisDistante = Nome_Praia[i];

}

// Acrescente este pergunta

if (dist_Praia[i] >= 15 && dist_Praia[i] <= 20)

{

++quantidadePraiaLimite;

}
}

float Media = Soma / dist_Praia.length;

Mensagem = " a distância média das praias é de - “+String.valueOf(Media)+” KM \n e a praia mais distante é a praia : "+sPraiaMaisDistante;

JOptionPane.showMessageDialog(null,Mensagem);

Mensagem = "Quantidade de Praia(s) entre 15 a 20 KM : " + String.valueOf(quantidadePraiaLimite);

JOptionPane.showMessageDialog(null,Mensagem);
Criado 1 de junho de 2016
Ultima resposta 1 de jun. de 2016
Respostas 4
Participantes 3