Chamada de método em outra classe [RESOLVIDO]

7 respostas
marcusviniciusbastos

Eu criei 2 classes, uma chamada Numeros e outra
Chamada TesteNumeros.
Não estou entendo pq está apresentando alguns erros. Quem puder me
ajudar, ficarei agradecido.
Segue os códigos:

package Exercicio2;

public class Numeros {

       public int calcMedia(int num[]){
               int media = 0;
               for (int i = 0; i < num.length -1; i++){
                       media += num[i];
               }

               return media / num.length;
       }
       public int calcMaior(int num[]){
               int maior = 0;
               for (int i = 0; i < num.length -1; i++){
                       if (num[i]>= num[i+1]){
                               maior = num[i];
                       }
               }
               return maior;
       }
       public int calcMenor(int num[]){
               int menor = 0;
               for (int i = 0; i < num.length -1; i++){
                       if (num[i]<= num[i+1]){
                               menor = num[i];
                       }
               }
               return menor;
       }
}
package Exercicio2;

import javax.swing.JOptionPane;

public class TesteNumeros {

       public static void main(String[] args) {

               int n = Integer.parseInt(JOptionPane.showInputDialog("Insira o
tamanho do vetor"));
               int[] num = new int[n];
               for (int i = 0; i < n; i++ ){
                       num[i]= Integer.parseInt(JOptionPane.showInputDialog("Insira um
número"));
               }

       }
       // Gostaria de chamar os métodos da classe números nessa classe, aqui que ocorrem os erros.
       calcMedia(num);
       calcMaior(num);
       calcMenor(num);
}

7 Respostas

ViniGodoy
  1. Diga para que servem as classes;
  2. Diga que erros estão dando.
O

Bom, não sei exatamente quais são os erros que está encontrando, mas você está com algumas falhas no seu algoritmo. No calculaMedia você está desprezando sempre o último elemento dos seu vetor!! No calculaMaior e calculaMenor você ignora o numero que você colocou na variável maior e menor, respectivamente. Você está comparando apenas os elementos adjacentes do vetor sem se preocupar com o número que está em maior( ou menor).
Se não for isso diga quais são os erros!

juliocesarss

Vamos la!

Não sei se esse é o erro que acontece, ja que você não postou o erro

Mas eu fiz umas correções no seu código :

package exercicio2;

import javax.swing.JOptionPane;

public class TesteNumeros {

    public static void main(String[] args) {
        Numeros numero = new Numeros();//Aqui eu criei a instancia do obejto da sua classe Numeros, sem esse objeto vc não consegue chamar os seus métodos
        int n = Integer.parseInt(JOptionPane.showInputDialog("Insira o tamanho do vetor"));


        int[] num = new int[n];
        for (int i = 0; i < n; i++) {
            num[i] = Integer.parseInt(JOptionPane.showInputDialog("Insira um  número"));

        }

        //Agora aqui, usei o objeto que eu criei para chamar cada método da classe Numeros
        numero.calcMedia(num);
        numero.calcMaior(num);
        numero.calcMenor(num);
    }
}

Não testei para ver se seu algoritmo esta funcionando.

Só arrumei o código de forma que funcione da maneira correta.

Qualquer coisa posta ae.

@Edit:
Nessa parte, como esses métodos retornam valores, use algo para guarda-los ou exibi-los:

System.out.println(numero.calcMedia(num));
        System.out.println(numero.calcMaior(num));
        System.out.println(numero.calcMenor(num));
pczardini

Bom dia.

Fiz algumas modificações no seu código, amigo.

Verifique se esse era o resultado desejado!!

Obs: a Média está sendo calculada com valores em INT, recomendo utilizar valores double para esse cálculo, por causa de perda de precisão.

import javax.swing.*;

public class Main {

    public static void main(String[] args) {
        Numeros x = new Numeros();
        int n = Integer.parseInt(JOptionPane.showInputDialog("Insira o  tamanho do vetor"));
        int[] num = new int[n];

        for (int i = 0; i < n; i++) {
            num[i] = Integer.parseInt(JOptionPane.showInputDialog("Insira um número"));

        }
        
        System.out.println("Média dos Valores: " + x.calcMedia(num));
        System.out.println("Maior dos Valores: " + x.calcMaior(num));
        System.out.println("Menor dos Valores: " + x.calcMenor(num));
    }
}

Classe Números:

public class Numeros {

    public int calcMedia(int num[]) {
        int media = 0;
        for (int i = 0; i < num.length; i++) {
            media += num[i];
        }
        return (media / num.length);
    }

    public int calcMaior(int num[]) {
        int maior = num[0];
        for (int i = 0; i < num.length; i++) {
            if (num[i] > maior) {
                maior = num[i];
            }
        }
        return maior;
    }

    public int calcMenor(int num[]) {
        int menor = num[0];
        for (int i = 0; i < num.length; i++) {
            if (num[i] < menor) {
                menor = num[i];
            }
        }
        return menor;
    }
}

@Edit

Esqueci de citar que utilizei o código do Amigo "juliocesarss" também!

Ficou bacana, aí facilitou as modificações :lol:

marcusviniciusbastos

Boa tarde pessoal… agradeço a todos a colaboração, vou testar a noite e informo o resultado.
Muito Obrigado.

marcusviniciusbastos

Obrigado a todos!!!

Funcionou certinho, segue o final.

package Exercicio2;

import javax.swing.JOptionPane;

public class TesteNumeros {

	public static void main(String[] args) {
		
		Numeros numeros = new Numeros();
		int n = Integer.parseInt(JOptionPane.showInputDialog("Insira o tamanho do vetor"));
		int[] num = new int[n];
		for (int i = 0; i < n; i++ ){
			num[i]= Integer.parseInt(JOptionPane.showInputDialog("Insira um número"));
		}
		
		JOptionPane.showMessageDialog(null,"A média dos números é: " + numeros.calcMedia(num));
		JOptionPane.showMessageDialog(null,"O maior dos números é: " + numeros.calcMaior(num));
		JOptionPane.showMessageDialog(null,"O menor dos números é: " + numeros.calcMenor(num));
		
		
	}
	
}
pczardini

Isso ai!

Criado 26 de outubro de 2010
Ultima resposta 27 de out. de 2010
Respostas 7
Participantes 5