dÚvida me ajudem!

5 respostas
M

Seguinte pessoal. To fazendo um exercício em java bem simples mas to me batendo um pouco, tenho que chamar todas as funções pela MAIN entao tem uma função chama Ler() que vai ler 2 números inteiros. depois vem as outras funções Somar(),Dividir() etc… ai é que tá o problema a partir desses 2 inteiros que foram lidos na função Ler(), tenho que joga esses valores pras outras funções para somar,dividir e tal isso passando pela Main, esse programa é com menu onde essas opções vou ter que utilizar com esses 2 inteiros digitados:
no caso:
Menu
1)Ler
2)Somar
3)Subtrair
etc…

primeiro eu vou fazer a leitura é claro, mas não consigo passar esses valores para as outras funções!
Se Puderem me ajudar eu agradeço…

5 Respostas

F

Matheus!

poste o codigo com o erro ou coisa parecida.
Lendo seu post, dá a impressão que você quer algo pronto, de mão beijada. Coisa que acho dificil conseguir por aqui (e com razão).

Vai postando as duvidas que vamos lhe auxiliando, assim vc aprende e futuramente poderá ajudar os outros que vem atrás.

Abraço

Marco a.

M
import <a href="http://java.io">java.io</a>.*;

public class Teste {

public static void main(String args[]){

int op = 999;

while (op != 6){

int rec[] = new int[2];

 op = Menu();

switch (op){
	case 1: Ler();break;
	case 2:Soma();break;
	case 6: Sair();break;
}

}
}

public static int Menu(){

DataInputStream opc ;

opc = new DataInputStream(System.in);

int teste;

String opcao="";

System.out.println("Menu ");

System.out.println(1) Ler);

System.out.println(2)Somar);

System.out.println(3)Subtrair);

System.out.println("Opção: ");
try{
     opcao = opc.readLine();
     }
 	catch (IOException e){
 	System.out.println("Error!!! ");
	  }
			 teste=Integer.parseInt(opcao);
			return teste;

}

public static void Ler(){

int n[] = new int[2];
 DataInputStream ler = new DataInputStream(System.in);

String a,b;int c=0,d=0;
try{

System.out.println("Primeiro número: ");
    a = ler.readLine();
    c=Integer.parseInt(a);
    System.out.println("Segundo número: ");
    b = ler.readLine();
    d=Integer.parseInt(b);
	

 }
 catch (IOException e){
 	System.out.println("Error!!! ");
 }

}


public static int Soma(){


int	soma=0,a=0,b=0;
	System.out.println("Soma = "+soma);
	return soma;
}


public static void Sair(){
	System.out.println("Programa encerrado!!!");
	System.exit(0);
}

o código ta ai…eu to fazendo ele…mas nao consigo joga esses valores digitados…para somar…e o resto!

}

italons
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Teste {
	
	
	private static double num1=-999999;
	private static double num2=-999999;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Ler();
		
		System.out.println("Soma = " + Soma(num1,num2));
		System.out.println("Subtrai = " + Subtrai(num1, num2));
		System.out.println("Multiplicação = " + Multiplica(num1,num2));
		System.out.println("Divisão = " + Divide(num1,num2));
	}
	
	public static double[] Ler(){
		
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		
		try {
			System.out.println("Digite o primeiro numero: ");
			num1 = Integer.parseInt(reader.readLine());
			System.out.println("Digite o segundo numero: ");
			num2 = Integer.parseInt(reader.readLine());
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		double[] numeros = {num1,num2};
		
		for (int i = 0; i < numeros.length; i++) {
			System.out.println(numeros[i]);
		}
		
		return numeros;
	}
	
	public static double Multiplica(double num1,double num2){
		return num1*num2;
	}
	
	public static double Divide(double num1,double num2){
		return num1/num2;
	}
	
	public static double Soma(double num1,double num2){
		return num1+num2;
	}
	
	public static double Subtrai(double num1,double num2){
		if(num1 > num2) return num1-num2;
		else return num2-num1;
	}

}
ViniGodoy

Oi. Não poste títulos de tópicos no GUJ usando só letras maiúsculas. Dá impressão que você quer chamar mais atenção que os demais, e fica mais difícil de ler.
Além disso, procure dar uma descrição mais precisa no título. É meio óbvio que você tem uma dúvida e também evidente que você está aqui procurando ajuda.

Então, um título como "Jogar valores para funções" ajudaria bem mais quem está pensando se vai entrar nesse tópico ou não.

Finalmente, sempre que postar códigos, use a tag code:
[code]
Seu código aqui
[/code]

ao seu problema.

Você sabe passar parâmetros e retornar valores em funções?

Toda função pode retornar um valor:

//Vamos fazer a função ler retornar os ints lidos
public static int[] Ler(){
   DataInputStream ler = new DataInputStream(System.in);
   String a,b;int c=0,d=0;
   try{
      System.out.println("Primeiro número: ");
      a = ler.readLine();
      c=Integer.parseInt(a);
      System.out.println("Segundo número: ");
      b = ler.readLine();
      d=Integer.parseInt(b);
      return new int[] {c, d};
   } catch (IOException e) {
      System.out.println("Error!!! ");
   }
}
Você usa isso assim:
int numeros[] = Ler();

Você também pode passar parâmetros para uma função, por exemplo, a função de soma pode ser escrita assim:

public int soma(int a, int b) {
   return a+b;
}
E ser usada assim:
int numeros[] = Ler();
int s = soma(numeros[0], numeros[1]);
System.out.printf("A soma de %d + %d é %d%n", 
   numeros[0], numeros[1], s);

Veja se com essas explicações você já consegue adaptar seu código e resolver o problema.

italons

só troca aquele ParseInt ali hehhehe, é que antes eu retornava int.

Criado 28 de julho de 2010
Ultima resposta 28 de jul. de 2010
Respostas 5
Participantes 4