Código básico com Vetor

6 respostas
javatar

Boa tarde javeiros…
Eu peguei uma lista de exercício para fazer que tem vetor como comecei aprender Java faz pouco tempo eu estou com dúvida, nessa lista de exercício, tem a lista e as resoluções eu apaguei quase todas resoluções menos uma que vou colar aqui e pedir para vocês por favor me explicar o que o código está fazendo, se possível linha a linha.

Proposta do exercício:

  1. Faça um programa que carregue um vetor com 10 números reais. Calcule e mostre a quantidade de números negativos e a soma dos números positivos deste vetor.

Resolução:

import java.util.Scanner;

public class Ex01 {
	public static void main(String[] args) {
		Scanner entrada = new Scanner(System.in);

		float num[] = new float[10], qtdNegativos = 0, positivos = 0;

		for (int cont = 0; cont < 10; cont++) {
			System.out.print("Insira o " + (cont + 1) + "° número Real: ");
			num[cont] = entrada.nextFloat();

			if (num[cont] >= 0) {
				positivos = positivos + num[cont];
			} else {
				++qtdNegativos;
			}
		}

		if (qtdNegativos > 0) {
			System.out.println("A quantidade de números Reais negativos é: "
					+ qtdNegativos);
		}

		if (positivos > 0) {
			System.out.println("A soma dos números positivos do vetor é: "
					+ positivos);
		}

	}
}

Muito Obrigado :slight_smile:

6 Respostas

pvrsouza

O que exatamente não entendeu? O código é tão simples ( Isso não é desrespeito com sua dificuldade! Pelo amor de Deus! ) que não entendo onde está sua dúvida. Explique melhor para tentar te ajudar.

Abraço

javatar

Eu sei que é super fácil, por isso que pesquisei na internet.
Lista de exercícios básicos, eu estou aprendendo na faculdade, começo de if , switch a lógica eu já sei, mais não entendo os código usado ae.
Se tivesse como explicar as linhas…
essa parte que é todo o código, rsrsrs

Scanner entrada = new Scanner(System.in);  
  
        float num[] = new float[10], qtdNegativos = 0, positivos = 0;  
  
        for (int cont = 0; cont < 10; cont++) {  
            System.out.print("Insira o " + (cont + 1) + "° número Real: ");  
            num[cont] = entrada.nextFloat();  
  
            if (num[cont] >= 0) {  
                positivos = positivos + num[cont];  
            } else {  
                ++qtdNegativos;  
            }  
        }  
  
        if (qtdNegativos > 0) {  
            System.out.println("A quantidade de números Reais negativos é: "  
                    + qtdNegativos);  
        }  
  
        if (positivos > 0) {  
            System.out.println("A soma dos números positivos do vetor é: "  
                    + positivos);

e não é que tenho dificuldade é que nunca vi isso mesmo em Java, dae eu peguei essa lista para aprimorar além do que estou aprendendo, a apostila que leio e o livro, não chegou nessa parte tbm…

Obrigado

josue_Placido

Cara marque as linhas que vc nao entende…
Fica mais facil explicar…
Agora explicar o codigo inteiro eh barra cara… :roll:

FabioQuintana

Segue a possivel solução para o seu problema.

/**
 * Vamos lá entao, fiz comentarios linha a linha
 * Procurei ser o mais simples possivel.
 */

/** importa a biblioteca "Scanner"
 * essa biblioteca permite fazer leitura de um InputStream quando você usa
 * o System.in, nesse caso, lê entradas de teclado.
 */
import java.util.Scanner;

/**
 * Define uma classe do tipo "public", que pode ser acessada por outras classes
 * a classe que mantem o "main" deve por default(padrao) ser public
 */
public class Ex01 {

        /* definição do metodo main */
	public static void main(String[] args) {

                /**
                 * define um objeto do tipo Scanner
                 * com o nome de "entrada", ou seja,
                 * variavel que vai receber as entradas
                 * via teclado do usuário.
                 */
		Scanner entrada = new Scanner(System.in);

                /* num[] = vetor que recebe os 10 valores digitados via teclado pelo usuário
                 * qtdNegativos = variavel que conta quantos sao negativos
                 * positivos = variavel que armazena a soma dos positivos
                 */
		float num[] = new float[10], qtdNegativos = 0, positivos = 0;

                /* laço principal da execução,
                 * recebe as entradas de teclado, e efetua os testes
                 * isolando os positivos dos negativos, e somando os positivos
                 * e contando o numero de negativos.
                 */
		for (int cont = 0; cont < 10; cont++) {
                        /* exibi uma mensagem para o usuario com o numero
                         * da inserção atual.
                         */
			System.out.print("Insira o " + (cont + 1) + "° número Real: ");
                        /* atribui ao vetor num o valor digitado pelo usuario */
			num[cont] = entrada.nextFloat();

                        /* testa se o numero inserio é maior que "0"
                         * se verdade - identifica como sendo positivo e soma o valor
                         * a variavel "positivos".
                         * se falso - identifica como negativo e incrementa o contador de negativos
                         */
			if (num[cont] >= 0) {
                                /* soma o valor digitado pelo usuario ao valor atual da variavel
                                 *
                                 * ex.: soma = 10;
                                 * soma = soma + 10;
                                 * soma então passa a ser 20.
                                 *
                                 * otimização:
                                 * positivos += num[cont];
                                 */
				positivos = positivos + num[cont];
			} else {
                                /* incrementa a variavel qtdNegativos
                                 * equivalencias:
                                 * qtdNegativos = qtdNegativos + 1;
                                 * qtdNegativos += 1;
                                 * qtdNegativos++;
                                 */
				++qtdNegativos;
			}
		}

                /* testa se a variavel qtdNegativos é maior que "0"
                 * se verdadeiro - exibi uma mensagem com a quantidade de negativos
                 * se falso - nao executa nenhuma ação
                 */
		if (qtdNegativos > 0) {
                        /* imprimi mensagem com a quantidade de numeros negativos */
			System.out.println("A quantidade de números Reais negativos é: "
					+ qtdNegativos);
		}

                /* testa se o somatori de positivos é maior que "0"
                 * se verdadeiro - imprimi uma mensagem com o valor da soma de todos positivos
                 * se falso - nao executa nenhuma ação
                 *
                 * essa verificação causa um possivel erro...
                 * no caso de o usuario digitar 10 vezes o valor "0"
                 * nao será impresso nada ao final da execução...
                 *
                 * otimização:
                 * System.out.println("A soma dos números positivos do vetor é: " + positivos);
                 *
                 * conclusão:
                 * por mais que todos valores digitados sejão menores que "0"
                 * ainda assim o somatorio é "0"
                 */
		if (positivos > 0) {
			System.out.println("A soma dos números positivos do vetor é: "
					+ positivos);
		}



	}
}

Espero ter ajudado.

Abraço e sucesso.

javatar

Bom Dia, muito obrigado era isso mesmo que precisava, agora com a explicação desse eu vou tentar fazer os outros…

Abraços e muito obrigado =)

T

Valeu pelo código, estou aprendendo programação usando vetores na linguagem C e esse código mesmo não sendo em C me ajudou bastante a resolver 1 questão similar a essa.
Posteriormente devo aprender java.

Criado 15 de setembro de 2010
Ultima resposta 1 de out. de 2010
Respostas 6
Participantes 5