Pedido de ajuda!!!

imjo

Membro
Pessoal, algum de vós percebe de programação em Java?

Preciso de ajuda
sadface.gif
Estou a estudar para exame e não percebo nada disto
sadface.gif
sadface.gif
 
Estudo em Aveiro e tenho a disciplina de Programação I que consiste em:
Algoritmia; Estrutura de um programa em JAVA; Elementos básicos da linguagem; Regras de formação de identificadores válidos em JAVA; Armazenamento da informação: Tipos de dados predefinidos; Constantes e variáveis; Expressões e operadores; Instruções de entrada e de saída de dados; Estruturas de controlo: Instruções decisórias. Instruções repetitivas; Funções; Tipo agregado (array): Definição, propriedades e utilização;

Neste momento estou a tentar fazer fazer um programa para converter milhas em quilómetros:

"Pretende-se escrever um programa que dada uma distância expressa em milhas, que é lida do teclado, converte-a para quilómetros e escreve-a no monitor. A fórmula de conversão é QUILOMETROS = 1.609 * MILHAS.*/

Código:
import static pt.ua.prog.WIO.*;
public class ex1A1
{
  public static void main(String[] args)
  {
    double kilometros, milhas;
    printf("Distância em milhas é: ");
    milhas=readDouble();
    do
    {
      kilometros = (1.609*milhas);
    }
    while(milhas<0.0);
    printf("Distância em quilómetros é: ", kilometros);
    println();
  }
"

O programa não corre e, sinceramente, não consigo perceber porquê :(
 
Última edição pelo moderador:
Estás a fazer um ciclo do-while em que não tens nada que altere a condição. E além disso, é suposto essa condição ser sempre falsa (não faz sentido uma distância negativa).
 
Olha, será que podes ser mais explícito?

O que fiz foi seguindo o que está num acetato da matéria teórica facultado pelo professor, este:

prog10.jpg
 
Boas, tens de passar o código que lê os dados do utilizador para dentro do bloco do...while. Tal como está explicado nessa imagem, a ideia é ficares em ciclo até o utilizador introduzir um valor positivo para a distância. Em seguida, basta utilizares a fórmula.
 
Vamos lá analisar isso então. O que está no acetato é isto:

Código:
repetir {
   escrever mensagem no ecrã
   ler as MILHAS
} enquanto MILHAS < 0.0

KILOMETROS = 1.609 * MILHAS

O que corresponde, em Java, a:

Código:
do {
   printf("Distância em milhas é: ");
   MILHAS = readDouble();
} while (MILHAS < 0.0);

KILOMETROS = 1.609 * MILHAS;
Por outras palavras, não estás a fazer o que te pediram.
 
Back
Topo