iMasters Fóruns: exercicio java - iMasters Fóruns

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

exercicio java

#1 Membro offline   manobral Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 2
  • Cadastrado: 19-maio 09

Postou 06 novembro 2009 - 22:11

Escrever um programa em Java para ler os nomes de N alunos e as suas N notas obtidas na unidade.
Calcular e imprimir:
A maior nota e o nome do aluno que a obteve
A menor nota e o nome do aluno que a obteve
A média das notas
Os nomes dos alunos com notas maiores ou iguais à média


import java.util.Scanner;

public class Main {

    
    public static void main(String[] args) {
        Scanner leia = new Scanner(System.in);
          float  media = 0;
          char nome[] = new char[5];
          int nota[] = new int [5], i, maior = 0, menor = 0, a_media = 0, igual = 0, soma = 0, m = 0, me = 0;
             for(i=0; i<5; i++){
                 System.out.println("Informe o nome do aluno na posição: " +i);
                 nome[i] = leia.next().charAt(0);
                 System.out.println("Informe a nota do aluno na posição: " +i);
                 nota[i] = leia.nextInt();
             }

    }

}

Impaquei ai!^^

Estou iniciando agora no java e as vezes da umas travadas aki :assobiando:
Desde já agradeço a ajuda!

Este post foi editado por Mário Monteiro: 07 novembro 2009 - 10:13
Razão por editar:: Editar para um Titulo que possua o minimo de coerencia


#2 Membro offline   Vanilson Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 91
  • Cadastrado: 24-junho 08

Postou 09 novembro 2009 - 11:45

Bom tambem sou iniciante em Java mais você pode usar um ciclo para fazer a leitura dos valores no array e dentro do ciclo podes usar estruturas de decisão.

Bom tambem sou iniciante em Java mais você pode usar um ciclo para fazer a leitura dos valores no array e dentro do ciclo podes usar estruturas de decisão.

#3 Membro offline   tllsae Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 9
  • Cadastrado: 16-junho 09

Postou 15 novembro 2009 - 16:47

char nome[] = new char[5];

Por que não usar String?


int nota[] = new int [5], i, maior = 0, menor = 0, a_media = 0, igual = 0, soma = 0, m = 0, me = 0;

Utilize uma linha para cada declaração, o código fica muito mais limpo e agradável.


Ficaria melhor resolver seu exercício usando, pelo menos, uma classe Aluno.

#4 Membro offline   Giovanny Ritchie Ícone

  • Giovanny Ritchie
  • Ícone
  • Grupo: Membros
  • Posts: 166
  • Cadastrado: 11-maio 08
  • Localização:Ao lado de 1 computador

Postou 18 novembro 2009 - 04:25

Opa.. beleza?
Segundo o exercicio você deve ler N nomes e N notas, quando o exercicio é posto desse jeito é porque será necessário que você peça ao usuario a quantidade de alunos, depois você criará os arrays alocando pra eles o tamanho equivalente a quantidade de alunos.. Mas isso é só mais um detalhe, vamos ao exercicio....

Vou deixar o detalhe da quantidade por sua conta, então vou supor que vamos tratar de 10 aluns.
Por se tratar de nomes, o mais sensato é usar um arrary que guarde objetos do tipo String, que é usado para guardar texto. Se for usar char, você estará criando um array com suporte a apenas um charater em cada elemento do mesmo. Outra abordagem( e concerteza melhor) seria criar uma classe Aluno, que ia ter o nome e nota de cada aluno, mas vamos a gambiarra( q parece mais simples, mas só dá dor de cabeça mais tarde)...

class Main {
    public static void main(String[] args) {
       String nomes[] = new String[10]; // dez nomes de dez alunos
       double notas[] =  new double[10]; // as notas normalmente são  podem ter casas decimais

       java.util.Scanner input =  new java.util.Scanner(System.in); // em vez d usar java.util.Scanner pode fazr import normalment
       
       // agora é soh ler os nomes e as notas
       for(int i = 0.i <10;++i) {
          System.out.printf("Insira o nome e a nota do %dº aluno", i+1);
          nomes[i] =  input.nextLine();
          notas[i] = input.nextDouble();
       }
       
       // agora é soh pegar a maior nota e o nome do fera
       String nomeMaior; double notaMaior = 0.0;
       for(int i=0;i<10;i++) {
            if(i==0) {
               notaMaior = notas[i];
               nomeMaior = nomes[i];
            }else {
               if(notas[i]>maior) {
                  notaMaior = notas[i];
                  nomeMaior = nomes[i];
               }
            }
       }

      // pronto, uma parte do problema ja foi resolvido
      // aqui é soh imprimir o nome do maior e a nota, que estão nas variaveis "notaMaior" e "nomeMaior"
       
      // até qui tudo tranquilo?? dá uma olhada, se entender isso o resto fica mole, tenta dar uns avanços sozinho
      // se empecar denovo estaremos aqui pra ajudar... 
    }
}


Espero ter ajudado.... :joia:

Olha bota o código pra testar, n rodei nem nada... escrevi e pronto, há sempre uma palavra reservada mais escrita, ou ponto e virgula faltando, mas a ideia está aí...

Abraço

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)