habitat Posted February 13, 2013 at 05:28 PM Report #495167 Posted February 13, 2013 at 05:28 PM 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.
HappyHippyHippo Posted February 13, 2013 at 05:34 PM Report #495169 Posted February 13, 2013 at 05:34 PM 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 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
habitat Posted February 13, 2013 at 06:11 PM Author Report #495175 Posted February 13, 2013 at 06:11 PM (edited) 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]; ? Edited February 13, 2013 at 06:12 PM by habitat
HappyHippyHippo Posted February 13, 2013 at 06:18 PM Report #495178 Posted February 13, 2013 at 06:18 PM (edited) 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 Edited February 13, 2013 at 06:18 PM by HappyHippyHippo 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
habitat Posted February 13, 2013 at 06:22 PM Author Report #495179 Posted February 13, 2013 at 06:22 PM Muito obrigado HappyHippyHippo. 🙂 Desculpa o incomodo .
LuisMendes330 Posted March 2, 2013 at 06:50 PM Report #497650 Posted March 2, 2013 at 06:50 PM Conseguiste resolver o exercício habitat?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now