Subpage under development, new version coming soon!
Subject: Programação
import javax.swing.JOptionPane;
public class Chuva {
public static void main (String[]args)
{
Chuvas ch[] = new Chuvas[31];
float soma=0,media=0;
float soma2=0,media2=0;
float total=0;
for (int i=1; i<32; i++)
{
ch[i].setJanmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Janeiro?")));
soma=ch[i].getJanmm()+soma;
}
media=soma/31;
JOptionPane.showMessageDialog(null, "A média desse mês é:" + media);
for (int i=1; i<29; i++)
{
ch[i].setFevmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Fevereiro?")));
soma2=ch[i].getFevmm()+soma2;
}
media2=soma2/31;
JOptionPane.showMessageDialog(null, "A média desse mês é:" + media2);
total=(media+media2)/2;
JOptionPane.showMessageDialog(null, "A média mensal é:" + total);
}
}
(edited)
public class Chuva {
public static void main (String[]args)
{
Chuvas ch[] = new Chuvas[31];
float soma=0,media=0;
float soma2=0,media2=0;
float total=0;
for (int i=1; i<32; i++)
{
ch[i].setJanmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Janeiro?")));
soma=ch[i].getJanmm()+soma;
}
media=soma/31;
JOptionPane.showMessageDialog(null, "A média desse mês é:" + media);
for (int i=1; i<29; i++)
{
ch[i].setFevmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Fevereiro?")));
soma2=ch[i].getFevmm()+soma2;
}
media2=soma2/31;
JOptionPane.showMessageDialog(null, "A média desse mês é:" + media2);
total=(media+media2)/2;
JOptionPane.showMessageDialog(null, "A média mensal é:" + total);
}
}
(edited)
public class Chuvas {
private float Janmm;
private float Fevmm;
public float getJanmm() {
return Janmm;
}
public void setJanmm(float janmm) {
this.Janmm = janmm;
}
public float getFevmm() {
return Fevmm;
}
public void setFevmm(float fevmm) {
this.Fevmm = fevmm;
}
}
private float Janmm;
private float Fevmm;
public float getJanmm() {
return Janmm;
}
public void setJanmm(float janmm) {
this.Janmm = janmm;
}
public float getFevmm() {
return Fevmm;
}
public void setFevmm(float fevmm) {
this.Fevmm = fevmm;
}
}
cara, acredito que a disposicao deste codigo nao é a ideal, mas vamos lá:
vc precisa de um construtor na classe Chuvas, e precisa construir cada item do array... só assim ele vai parar de dar null pointer
ex:
public Chuvas() {}
e no teu Chuva.java:
(...) // no primeiro for:
for (int i=1; i<32; i++)
{
ch[i] = new Chuvas();
ch[i].setJanmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Janeiro?")));
soma=ch[i].getJanmm()+soma;
}
(...)
no teu segundo for, nao precisa dar "ch[i] = new Chuvas()" de novo.
vc precisa de um construtor na classe Chuvas, e precisa construir cada item do array... só assim ele vai parar de dar null pointer
ex:
public Chuvas() {}
e no teu Chuva.java:
(...) // no primeiro for:
for (int i=1; i<32; i++)
{
ch[i] = new Chuvas();
ch[i].setJanmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Janeiro?")));
soma=ch[i].getJanmm()+soma;
}
(...)
no teu segundo for, nao precisa dar "ch[i] = new Chuvas()" de novo.
teeeeem razão, nao construi a classe construturo direito.. :P
fiz isso no programa passado e esqueci af eh mto detalhe :P
vlw :D
agora eh quebrar a cabeça pra colocar o dia q mais choveu :)
fiz isso no programa passado e esqueci af eh mto detalhe :P
vlw :D
agora eh quebrar a cabeça pra colocar o dia q mais choveu :)
uma sugestão: por que nao organizar a parada por mes, ao inves de um array de dias que cobre dois meses?
public class ChuvasMes {
private int diasMes;
private List mmDia;
// numero de dias no mes
public Chuvas (int dias) {
this.dias = dias;
this.mmDia = new LinkedList();
mmDia = new ArrayList();
}
//adiciona milimetros no proximo dia disponivel
public void addMMDia (Float mm) {
//se o numero de dias do mes foi extrapolado, lança exception
if(mmDia.size() > this.diasMes) {
throw new NumeroDiasInvalidoException();
}
mmDia.add(mm);
}
// modifica o mm de um determinado dia do mes
// i = 0, dia 1... int = 29, dia 30
public void addMMDia (int i, Float mm) {
mmDia.remove(i);
mmDia.add(i,mm);
}
public float getSomaMMMes() {
float retorno = 0;
for(int i=0; i < mmDia.size(); i++) {
retorno += Float.parseFloat(mmDia.get(i));
}
return retorno;
}
public float getMediaMMMes() {
return getSomaMMMes()/dias;
}
}
no teu main, vc teria:
public static void main (String[]args)
{
ChuvasMes chJan = new ChuvasMes(31); //31 dias em janeiro
ChuvasMes chFev = new ChuvasMes(28); //28 dias em fevereiro
for (int i=1; i<32; i++)
{
chJan.addMMDia(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Janeiro?")));
}
JOptionPane.showMessageDialog(null, "A média desse mês é:" + chJan.getMediaMMMes());
...
JOptionPane.showMessageDialog(null, "A média mensal é:" + 0.5*(chJan.getMediaMMMes()+chFev.getMediaMMMes()));
public class ChuvasMes {
private int diasMes;
private List mmDia;
// numero de dias no mes
public Chuvas (int dias) {
this.dias = dias;
this.mmDia = new LinkedList();
mmDia = new ArrayList();
}
//adiciona milimetros no proximo dia disponivel
public void addMMDia (Float mm) {
//se o numero de dias do mes foi extrapolado, lança exception
if(mmDia.size() > this.diasMes) {
throw new NumeroDiasInvalidoException();
}
mmDia.add(mm);
}
// modifica o mm de um determinado dia do mes
// i = 0, dia 1... int = 29, dia 30
public void addMMDia (int i, Float mm) {
mmDia.remove(i);
mmDia.add(i,mm);
}
public float getSomaMMMes() {
float retorno = 0;
for(int i=0; i < mmDia.size(); i++) {
retorno += Float.parseFloat(mmDia.get(i));
}
return retorno;
}
public float getMediaMMMes() {
return getSomaMMMes()/dias;
}
}
no teu main, vc teria:
public static void main (String[]args)
{
ChuvasMes chJan = new ChuvasMes(31); //31 dias em janeiro
ChuvasMes chFev = new ChuvasMes(28); //28 dias em fevereiro
for (int i=1; i<32; i++)
{
chJan.addMMDia(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Janeiro?")));
}
JOptionPane.showMessageDialog(null, "A média desse mês é:" + chJan.getMediaMMMes());
...
JOptionPane.showMessageDialog(null, "A média mensal é:" + 0.5*(chJan.getMediaMMMes()+chFev.getMediaMMMes()));
assim voce facilmente cria um metodo para o dia que mais choveu tambem da classe ChuvasMes...
public int getDiaMaisChuvoso() {
int retorno = 0;
float maiorMM = 0;
for (int i = 0; i < diasMes; i++) {
if(maiorMM < Float.parseFloat(mmDia.get(i))) {
maiorMM = Float.parseFloat(mmDia.get(i));
retorno = i;
}
}
//ate aqui, index 0, dia 1, index 29, dia 30.. entao é necessário incrementar...
retorno++;
return retorno;
}
(edited)
public int getDiaMaisChuvoso() {
int retorno = 0;
float maiorMM = 0;
for (int i = 0; i < diasMes; i++) {
if(maiorMM < Float.parseFloat(mmDia.get(i))) {
maiorMM = Float.parseFloat(mmDia.get(i));
retorno = i;
}
}
//ate aqui, index 0, dia 1, index 29, dia 30.. entao é necessário incrementar...
retorno++;
return retorno;
}
(edited)
hmmmm
mas aí eu nao vou pelo meu raciocínio, vou pelo seu, acho q eu aprendo mais indo pelo meu raciocinio
e tem coisas aí q eu nao vi, ou nao sei usar direito ainda
mas vc me deu uma boa ideia
vlw =*
mas aí eu nao vou pelo meu raciocínio, vou pelo seu, acho q eu aprendo mais indo pelo meu raciocinio
e tem coisas aí q eu nao vi, ou nao sei usar direito ainda
mas vc me deu uma boa ideia
vlw =*
olhae como eu fiz... deu certo :D
public static void main (String args[])
{
Chuvas Ch[] = new Chuvas[32];
float soma=0,media=0;
float soma2=0,media2=0;
float total=0;
float x=1;
float y=1;
float z=0;
for (int i=1; i<32; i++)
{
Ch[i] = new Chuvas();
Ch[i].setJanmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Janeiro?")));
soma=Ch[i].getJanmm()+soma;
[b]x = Ch[i].getJanmm();
if (x>z)
{
z=x;
}[/b]
}
media=soma/31;
JOptionPane.showMessageDialog(null, "A média desse mês é:" + media + "mm por dia.");
for (int i=1; i<29; i++)
{
Ch[i].setFevmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Fevereiro?")));
soma2=Ch[i].getFevmm()+soma2;
} [b]y = Ch[i].getFevmm();
if (y>z)
{
z=y;
}[/b]
}
media2=soma2/31;
JOptionPane.showMessageDialog(null, "A média desse mês é: " + media2 + "mm por dia.");
total=(media+media2)/2;
JOptionPane.showMessageDialog(null, "A média mensal é: " + total + "mm.");
[b] for (int i=1; i<32; i++)
{
if (Ch[i].getJanmm()==z )
{
JOptionPane.showMessageDialog(null, "O dia que mais choveu foi dia " + i + " de Janeiro, choveu " + z + "mm.");
}
if (Ch[i].getFevmm()==z )
{
JOptionPane.showMessageDialog(null, "O dia que mais choveu foi dia " + i + " de Fevereiro, choveu " + z + "mm.");
}[/b]
}
porra consigo colocar em negrito nao :P
(edited)
(edited)
public static void main (String args[])
{
Chuvas Ch[] = new Chuvas[32];
float soma=0,media=0;
float soma2=0,media2=0;
float total=0;
float x=1;
float y=1;
float z=0;
for (int i=1; i<32; i++)
{
Ch[i] = new Chuvas();
Ch[i].setJanmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Janeiro?")));
soma=Ch[i].getJanmm()+soma;
[b]x = Ch[i].getJanmm();
if (x>z)
{
z=x;
}[/b]
}
media=soma/31;
JOptionPane.showMessageDialog(null, "A média desse mês é:" + media + "mm por dia.");
for (int i=1; i<29; i++)
{
Ch[i].setFevmm(Float.parseFloat(JOptionPane.showInputDialog("Quantos mm choveu Dia " + i + " de Fevereiro?")));
soma2=Ch[i].getFevmm()+soma2;
} [b]y = Ch[i].getFevmm();
if (y>z)
{
z=y;
}[/b]
}
media2=soma2/31;
JOptionPane.showMessageDialog(null, "A média desse mês é: " + media2 + "mm por dia.");
total=(media+media2)/2;
JOptionPane.showMessageDialog(null, "A média mensal é: " + total + "mm.");
[b] for (int i=1; i<32; i++)
{
if (Ch[i].getJanmm()==z )
{
JOptionPane.showMessageDialog(null, "O dia que mais choveu foi dia " + i + " de Janeiro, choveu " + z + "mm.");
}
if (Ch[i].getFevmm()==z )
{
JOptionPane.showMessageDialog(null, "O dia que mais choveu foi dia " + i + " de Fevereiro, choveu " + z + "mm.");
}[/b]
}
porra consigo colocar em negrito nao :P
(edited)
(edited)
As { (chaves) ferram com a formatação bbcode do fórum. Nem fique tentando. =P
Esses for-loops com i começando em 1 tão certo?
Esses for-loops com i começando em 1 tão certo?
estão, é a mesma coisa de ele comecar o zero e tratar com (i+1) ao invés de i.
Eiro: parabéns, imaginei que você fosse fazer algo parecido, para não mudar tua lógica :)
Eiro: parabéns, imaginei que você fosse fazer algo parecido, para não mudar tua lógica :)
eu começo assim para não fazer confusão, pq se for fazer do zero ele conta
tipo se eu for pedir quanto choveu no dia 17, ai ia ter q procurar na posição de nº 18, iria atrapalhar um pouco, =p
tipo se eu for pedir quanto choveu no dia 17, ai ia ter q procurar na posição de nº 18, iria atrapalhar um pouco, =p
import javax.swing.JOptionPane;
public class ProgNumero {
public static void main(String[] args)
{
NumeroInteiro[] Lista;
Lista = new NumeroInteiro[100];
int cont=0;
int op=0;
String opcoes =
" - CALCULADORA - " +
"\n\n***Opções*** "+
"\n1. Inserir Numero"+
"\n2. Listar Numeros"+
"\n3. Consultar"+
"\n4. Somar"+
"\n5. Média"+
"\n6. Finalizar"+
"\n\nSelecione a opção: ";
while (op != 6)
{
op = Integer.parseInt(JOptionPane.showInputDialog(null,opcoes,
JOptionPane.QUESTION_MESSAGE));
if (op==1)
{
if (cont==100)
{
JOptionPane.showMessageDialog(null, "Lista Cheia!!!");
}
else
{
NumeroInteiro num = new NumeroInteiro();
num.setNumero(Integer.parseInt(JOptionPane.showInputDialog("Insira o Número:")));
Lista[cont] = num;
cont++;
}
}
if (op==2)
{
for (int i=0; i<cont; i++)
{
JOptionPane.showMessageDialog(null, "Número " + i + " => " + Lista[i].getNumero());
}
}
if (op==3)
{
NumeroInteiro Chave;
Chave(Integer.parseInt(JOptionPane.showInputDialog("Insira o Número à ser consultado:")));
{
int ind=0;
while (ind<Lista.length)
if (Lista[ind]==Chave)
{
JOptionPane.showMessageDialog(null, "O Número " + Chave + " está na posição " + ind);
break;
}
else
ind++;
}
voltei de novo :D
to com 2 problemas
nessa linha Chave(Integer.parseInt(JOptionPane.showInputDialog("Insira o Número à ser consultado:")));
ta dando erro na "Chave", na verdade eu n sei oq colocar, eu sei q ta errado, mas n sei oq colocar
o outro
if (op==2)
{
for (int i=0; i<cont; i++)
{
JOptionPane.showMessageDialog(null, "Número " + i + " => " + Lista[i].getNumero());
}
ele ta listando só o número 0(zero)
public class ProgNumero {
public static void main(String[] args)
{
NumeroInteiro[] Lista;
Lista = new NumeroInteiro[100];
int cont=0;
int op=0;
String opcoes =
" - CALCULADORA - " +
"\n\n***Opções*** "+
"\n1. Inserir Numero"+
"\n2. Listar Numeros"+
"\n3. Consultar"+
"\n4. Somar"+
"\n5. Média"+
"\n6. Finalizar"+
"\n\nSelecione a opção: ";
while (op != 6)
{
op = Integer.parseInt(JOptionPane.showInputDialog(null,opcoes,
JOptionPane.QUESTION_MESSAGE));
if (op==1)
{
if (cont==100)
{
JOptionPane.showMessageDialog(null, "Lista Cheia!!!");
}
else
{
NumeroInteiro num = new NumeroInteiro();
num.setNumero(Integer.parseInt(JOptionPane.showInputDialog("Insira o Número:")));
Lista[cont] = num;
cont++;
}
}
if (op==2)
{
for (int i=0; i<cont; i++)
{
JOptionPane.showMessageDialog(null, "Número " + i + " => " + Lista[i].getNumero());
}
}
if (op==3)
{
NumeroInteiro Chave;
Chave(Integer.parseInt(JOptionPane.showInputDialog("Insira o Número à ser consultado:")));
{
int ind=0;
while (ind<Lista.length)
if (Lista[ind]==Chave)
{
JOptionPane.showMessageDialog(null, "O Número " + Chave + " está na posição " + ind);
break;
}
else
ind++;
}
voltei de novo :D
to com 2 problemas
nessa linha Chave(Integer.parseInt(JOptionPane.showInputDialog("Insira o Número à ser consultado:")));
ta dando erro na "Chave", na verdade eu n sei oq colocar, eu sei q ta errado, mas n sei oq colocar
o outro
if (op==2)
{
for (int i=0; i<cont; i++)
{
JOptionPane.showMessageDialog(null, "Número " + i + " => " + Lista[i].getNumero());
}
ele ta listando só o número 0(zero)