Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

habitat

[Resolvido] Exercicio Java para iniciantes. (ajuda)

Mensagens Recomendadas

habitat

Boa tarde , Sou aluno do 1º ano de Eng informatica .

Comecei a tentar resolver alguns exercicios de java (basicos)

Um dos exercicios que apanhei foi este:

Escreva um programa em Java que leia as alturas dos alunos de uma turma

com 20 alunos e determine quantos são baixos (menos de 1,55 m), quantos são

de altura média (entre 1,55 m e 1,70 m) e quantos são altos.

Como no meu entender não é suposto o programa pedir ao utilizador as alturas da turma, decidi criar 20 variaveis entre 1,50 e 1,90 .

Concerteza haverá um metodo mais comodo de arranjar 20 variaveis, do que andar a escrever

double a = 1.52
double b = 1.89
double c = ....

Por ai em diante....

A minha primeira questão é exactamente saber qual é a forma mais inteligente de o fazer .

A minha segunda questão é perceber como é que depois de ter as 20 variaveis, vou conseguir que o programa compare todas as variaveis existentes com as alturas definidas no enunciado .

espero nao ter sido confuso .

obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

tens razão, existe uma maneira bem mais simples do que ter 20 variáveis ...

é ter uma que guarda 20 valores:

double alturas[20]; // <--- array/lista de 20 valores de virgula flutuante

depois é só aceder a cada uma:

alturas[0] = 2; // <--- primeiro elemento, índice 0
alturas[1] = 3; // <--- segundo elemento, índice 1
...
alturas[19] = 5; // <--- último/vigésimo elemento, índice 19

como não queres ter n linhas de código "quase" igual umas a seguir à outras, usas um ciclo:

for (int i = 0; // iniciar uma variável interna do ciclo com o valor de 0
    i < 20;    // executar o código do ciclo enquanto o valor da variável "i" for inferior a 20
    i++)       // incrementar o valor da variável "i" em uma unidade após cada execução do ciclo
{
 alturas[i] = 34; // atribuir o valor ao elemento de índice "i"
}

o mesmo pode ser aplicado à leitura : tratar muitos elementos de uma vez = ciclo

  • Voto 1

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
habitat

Agradeço imenso a prontidão em responder .

Eu uso o netbeans , pelo que eu percebi : tenho que incializar um array com 20 possiveis valores

double alturas [20];

.

Posteriormente a cada entrada da lista atribuir valores :

alturas[0] = 1.59;
alturas[1] = 1.90;
.......
alturas [19] = 1.80.

Tenho andando a investigar o porque do erro na seguinte parte do codigo :

double alturas [20];

Mas nao consigo deslindar o caso .

Segundo o IDE : Uncompilable source code - variable alturas might not have been initialized

O que é que está a falhar?

Peço desculpa pelo incomodo .

------------------------------------------------------------------------------------------------------------------------------------------------------------

double[ ] alunos;
alunos = new double[10];

Consegui resolver o problema desta maneira

Que diferença faz

alunos = new double[10];

?

Editado por habitat

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

ok ... esse é um ponto um bocado complicado, vamos ver se consigo responder claramente

a instrução

double alturas[20];

é uma variável que define uma lista de valores, mas o problema é que não reserva memória para esses valores.

é como se fosse : "um mapa para os valores, mas não tens o caminho físico"

é necessário reservar a memória para os elementos:

double alturas[20] = new double[20]; // <-- dizer ao sistema para reservar os 20

Editado por HappyHippyHippo
  • Voto 1

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.