Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Rodrigues Torre

[Resolvido] Exercicio utilizando função de retorno

Recommended Posts

Gostaria de saber como implementar uma função para o seguinte problema

 

A teleming está interessada em saber qual foi o maior número de impulsos no mês e quantos assinantes atingiram este valor. Sabe-se que os valores dos pulsos serão lidos por teclado e o último contém o valor -1 e não deve ser considerado. Os resultados devem fornecer maior número de impulsos no mês e o número de assinantes que atingiram este valor.

 

Eu comecei a fazer da seguinte maneira

 

import javax.swing.JOptionPane;

public class Funcao {
	public static void main(String[] args) {

		int impulsos=0,maior=0;
		int assinantes=0;
		int total=0;
	
	impulsos=Integer.parseInt(JOptionPane.showInputDialog("Entre com o valor do Impulso"));
	assinantes=Integer.parseInt(JOptionPane.showInputDialog("Entre com o código do assinante"));
	
	JOptionPane.showMessageDialog(null,"O maior impulso no mês "+maior+ "\nE o total de assinantes que atingiram o valor foi:  "+assinantes);
	
	}
	
	public static int maior (int impulsos, int maior)
	{
		
		if(impulsos>maior)
		maior = impulsos;
		return maior;
	}
	
	public static int assinantes (int assinantes)
	{
		
		return assinantes;
	}
	
}

E eu não consigo achar uma maneira do programa me mostrar o que o problema pede.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra começar, você deve utilizar um loop para receber os valores dos impulsos. O ideal seria trabalhar com listas, porém, é provável que ainda não tenha tido contato. Dessa forma utilize matriz.

int[] impulsos = new int[10];
int impulso = 0;
int indice = 0;

while(impulso != -1 && contar < 10) {
   impulsos[indice] = Integer.parseInt(JOptionPane.showInputDialog("Entre com o valor do Impulso"));;
}

Depois de ter os valores numa matriz fica fácil descobrir qual é o maior valor e quantas vezes repetiu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Vergil , dei uma mexida no seu código. Espero q isso ajude. http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif

Abraçoss!

 


import java.util.Scanner;

public class Funcao {


    public static void main(String[] args) {
           CalFuncao funk = new CalFuncao();
        int impulso;
        Scanner input = new Scanner (System.in);
        do {
            impulso = input.nextInt();
            funk.maior(impulso);
        } while (impulso != -1);

        System.out.printf ("O maior impulso no mês: %d \n E o total de assinantes que atingiram o valor foi: %d",
                funk.getImpulsomaior(),funk.getAssinantes());
    }
}
// outra classe
public class CalFuncao { 
    private int assinantes = 0;
    private int impulsomaior = 0;

    public void maior(int imp) {
        if (imp > impulsomaior) {
            impulsomaior = imp;
            assinantes = 1;
        } else if (imp == impulsomaior) {
            assinantes++;
        }
    }

    public int getAssinantes() {
        return assinantes;
    }

    public int getImpulsomaior() {
        return impulsomaior;
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda

 

Consegui fazer o código mas de forma diferente

 

Problema resolvido

 

import javax.swing.*;
class Impulsos{
        public static void main(String[] args)
        {
        	int impulsos;
        	impulsos = Integer.parseInt(JOptionPane.showInputDialog("Entre com os valores do Impulso"));
        	Calcula_Impulsos(impulsos);
        
        }
		
		public static void Calcula_Impulsos (int impulso){
			
			int quantos,maiorimpulso;
			quantos=0;
			maiorimpulso=impulso;
			while (impulso!=-1){
				if (impulso>maiorimpulso){
					maiorimpulso = impulso;
					quantos=1;
				}
					
					else if (impulso=
						=maiorimpulso)
						quantos=quantos+1;
						
				impulso=Integer.parseInt(JOptionPane.showInputDialog("Entre com os valores dos Impulsos"));
			}
			
			System.out.print(" Maior impulso no mes "+maiorimpulso);
			System.out.println();
			System.out.print(" assinantes  "+quantos);
			System.out.println();
		}
}

 

Ae Vergil , dei uma mexida no seu código. Espero q isso ajude. http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif

Abraçoss!

 


import java.util.Scanner;

public class Funcao {


    public static void main(String[] args) {
           CalFuncao funk = new CalFuncao();
        int impulso;
        Scanner input = new Scanner (System.in);
        do {
            impulso = input.nextInt();
            funk.maior(impulso);
        } while (impulso != -1);

        System.out.printf ("O maior impulso no mês: %d \n E o total de assinantes que atingiram o valor foi: %d",
                funk.getImpulsomaior(),funk.getAssinantes());
    }
}
// outra classe
public class CalFuncao { 
    private int assinantes = 0;
    private int impulsomaior = 0;

    public void maior(int imp) {
        if (imp > impulsomaior) {
            impulsomaior = imp;
            assinantes = 1;
        } else if (imp == impulsomaior) {
            assinantes++;
        }
    }

    public int getAssinantes() {
        return assinantes;
    }

    public int getImpulsomaior() {
        return impulsomaior;
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda

 

Consegui fazer o código mas de forma diferente

 

Problema resolvido

 

import javax.swing.*;
class Impulsos{
        public static void main(String[] args)
        {
        	int impulsos;
        	impulsos = Integer.parseInt(JOptionPane.showInputDialog("Entre com os valores do Impulso"));
        	Calcula_Impulsos(impulsos);
        
        }
		
		public static void Calcula_Impulsos (int impulso){
			
			int quantos,maiorimpulso;
			quantos=0;
			maiorimpulso=impulso;
			while (impulso!=-1){
				if (impulso>maiorimpulso){
					maiorimpulso = impulso;
					quantos=1;
				}
					
					else if (impulso=
						=maiorimpulso)
						quantos=quantos+1;
						
				impulso=Integer.parseInt(JOptionPane.showInputDialog("Entre com os valores dos Impulsos"));
			}
			
			System.out.print(" Maior impulso no mes "+maiorimpulso);
			System.out.println();
			System.out.print(" assinantes  "+quantos);
			System.out.println();
		}
}

 

 

 

Boa!! =]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.