Dúvida de lógica

12 respostas
C

Ola, estou inpacado em um exercício do livro do Deitel Java como programar 8° Ed.
[color=red]O exercício é o seguinte:[/color] (Localize o menor valor) Escreva um aplicativo que localize o menor de vários números inteiros. Assuma que o primeiro valor lido especifica o número de valores a serem inseridos pelo usuário.
Então eu devo escrever esse aplicativo utilizando somente if, if…else, switch / while, do…while, for / operadores relacionais, e operadores lógicos, só o que o livro ensinou ate agora.
Não passei um exercicio se quer sem resolver e os de desenho ate levaram dias, mais esse ai nem imagino como fazer.
Então… como escrevo esse aplicativo, pessoalmente acho que não é possivel sem saber a quantidade de numeros que vai ser inserida.

12 Respostas

julianolandim

o menor valor sera o numero de valores a inserir ?

InicianteJavaHenriqu

Olá CoderMaster :smiley:

Você vai saber sim, segundo o enunciado:

Além de usar estas estruturas e operadores, você aprendeu tbm sobre vetores :?:

flw :thumbup:

yhhik

na hora de procurar o menor…verifique o tamanho do vetor.
assuma que o primeiro valor é o menor e o compare com todos os outros se algum for menor que ele troque.

C

ainda não cheguei em Vetores… estou no cap.6 (120 paginas pra chegar nele) o livro do deitel repete muito as mesmas coisas e tenho medo de pular essas coisas e acabar pulando algo de novo junto, então sem vetores não é possivel resolver esse exercicio?

matheuslmota

Você pode fazer assim. Você terá uma variável chamada “valor”. O segundo número inserido (já que o primeiro número indica a quantidade de valores à ser inserido) é atribuido à variável valor. Daí em diante, toda vez que um número foi inserido você compara com o valor da variável valor. Se ele for menor que valor, você atribui esse número na variável valor. No fim, você terá o menor número.

julianolandim

Para pegar o menor valor entre 2 numeros basta usar a classe Math

Math.min(valor1, valor2));
C

[color=red]O exercício é o seguinte:[/color] (Localize o menor valor) Escreva um aplicativo que localize o menor de vários números inteiros. Assuma que o primeiro valor lido especifica o número de valores a serem inseridos pelo usuário.

e se o usuario inserir primeiro numero 5, dai dps ele inserir 1,2,3,4 vai ser comparado 5 com 1 , 5 com 2 etc... sendo que cada valor comparado vai substuir o antecessor comparado na variavel em que tiver sendo armazenado. então se o usuario inserir 1,2,3,4 o menor valor vai ser 4 pois foi o ultimo a ser comparado.

talves eu nao tenha entendido certo como deveria fazer, vc poderia escrever o codigo e me mostrar?
[color=red]
julianolandim[/color]: tenho que usar só o que o livro ensinou ate agora… caso não seja possivel resolver o problema assim, o exercicio está no cap. errado.

D

seria mais ou menos isso em um jogo rapido:

public class JavaApplication3 {

    /** 
     * @param args 
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub  
        int max;
        max = Integer.parseInt(JOptionPane.showInputDialog("digite o primeiro numero"));
        int[] nums = new int[max];
        nums[0] = max;
        for (int i = 1; i < max; i++) {
            nums[i] = Integer.parseInt(JOptionPane.showInputDialog("digite o proximo numero"));
        }
        int menor = max;;
        for (int i = 0; i < (max); i++) {
            if (nums[i] <= menor) {
                menor = nums[i];
            }
            System.out.println(nums[i]);
        }
        JOptionPane.showMessageDialog(null, menor + " <--- menor");
    }
}

da uma verificada e ve se entende bem o que acontece....
caso nao, eu te explico passo a passo

[]'s

C
package Capitulo5;
import java.util.Scanner;
public class teste {
	public static void main(String[] args)  
        {
		Scanner Input = new Scanner(System.in);
		System.out.println("Digite um Número.");
		int Length = Input.nextInt();
                
		int N1 = 0,N2=9999;
		int MenorNumero = Length;
		
		for(int contador = 1;contador < Length ;contador++) 
                {
			System.out.println("Digite um Número.");
			N1 = Input.nextInt();
                        
			if(Length < N1)  
                        {
				MenorNumero = Length;
			}
			else if(N1 < N2)  
                        {
				MenorNumero = N1;
			}
			
			
			N2 = N1;
		}
		System.out.println("O menor numero é: " + MenorNumero);
	}	
}
feito por adilson

pow como eu num pensei nisso kkkk, testar cada novo valor com o que inseri antes dele, mais aposto que se eu ficasse mais tempo eu sacava...

D
CoderMaster:
package Capitulo5;
import java.util.Scanner;
public class teste {
	public static void main(String[] args)  
        {
		Scanner Input = new Scanner(System.in);
		System.out.println("Digite um Número.");
		int Length = Input.nextInt();
                
		int N1 = 0,N2=9999;
		int MenorNumero = Length;
		
		for(int contador = 1;contador < Length ;contador++) 
                {
			System.out.println("Digite um Número.");
			N1 = Input.nextInt();
                        
			if(Length < N1)  
                        {
				MenorNumero = Length;
			}
			else if(N1 < N2)  
                        {
				MenorNumero = N1;
			}
			
			
			N2 = N1;
		}
		System.out.println("O menor numero é: " + MenorNumero);
	}	
}
feito por adilson

pow como eu num pensei nisso kkkk, testar cada novo valor com o que inseri antes dele, mais aposto que se eu ficasse mais tempo eu sacava...

foi quase igual o que fiz, diferença que ele pega o primeiro valor para definir o limite do laço, e dentro do laço que vai solicitando os numeros.
ja o que fiz é definido o tamanho do laço tambem e solicitado todos os numeros armazenando em um vetor e depois os compara para ver o menor.

o seu é um pouco mais eficiente pois gasta menos memoria com as variaveis
[]'s

jaboot

CoderMaster,

Você conhece fluxograma? As vezes, quando tenho um problema de lógica na cabeça, pego uma folha e começo a desenhar o fluxo enquanto penso…
Só para não me perder depois. Acho que facilita bastante quando se tem que fazer algo com muitas etapas ou decisões.

Fica a dica!

B

Já foi resolvido este tópico até pelo tempo,
Então segue uma ajuda aí para quem precisar e acho que fiz este de acordo com o exercício do Deitel!

import java.util.Scanner;
public class LocalizadorMenorValor {
	public static void main(String[] args) {
		int total, num, numenor, menor, i;
		Scanner input = new Scanner(System.in);
		i = 1;
		menor = 0;
		System.out.println("Informe a quantidade de valores que deseja inserir:");
		total = input.nextInt();
		total = total - 1;
		System.out.println("Informe um valor inteiro:");
		num = input.nextInt();
		menor = num;
		while ( i &lt;= total ) {
			System.out.println("Informe um valor inteiro:");
			numenor = input.nextInt();	
			if ( menor &gt; numenor ) {
				menor = numenor;
			}
			i++;
		}		
		System.out.println("O menor número informado foi: " + menor);
	}
}
Criado 22 de fevereiro de 2012
Ultima resposta 11 de nov. de 2012
Respostas 12
Participantes 8