meu programa não roda !!!!!!

meu programa não roda !!!!!!

por marcos j silva -
Número de respostas: 9

class Conversor5
 
{
 int celsiusParafahrenheit(int c)
 {
   return 9*c/5+32;
 }
 int fahrenheitParacelsius(int f)
 {
   return 5*(f-32)/9;
 }
 int celsiusParakelvin(int k)
 {
   return k-273;
 int kelvinParacelsius(int c)
 {
   return c+273;
 }
 int fahrenheitParakelvin(int f)
 {
   5*(f-32)/9+273;
 }
 int kelvinParafahrenheit(int k)
 {
   return (k-273)/5*9+32;
 }

emite a seguinte coisa Conversor5 c5 = new Conversor5();
Error: Invalid Import Declaration
> conversor4 c4 = new conversor4();
Error: Undefined class 'conversor4'
> import conversor4; // auto-import
conversor4 c4 = new conversor4();
ClassNotFoundException: conversor4
> Conversor4 c4 = new Conversor4();
Error: Undefined class 'Conversor4'
> import conversor4; // auto-import
Conversor4 c4 = new Conversor4();
ClassNotFoundException: conversor4
> Conversor4 c4 = new Conversor4();
Error: Undefined class 'Conversor4'
>

Em resposta à marcos j silva

Re: meu programa não roda !!!!!!

por Marcelo Queiroz -
Marcos, alguns problemas:

1. no método celsiusParakelvin você esqueceu um '}'.
2. no método fahrenheitParakelvin você esqueceu o 'return'.
3. parece que você não colocou o último '}' (da classe Conversor5)
4. os métodos kelvinParacelsius e celsiusParakelvin usam nomes dos parâmetros trocados (kelvinParacelsius deveria receber um valor em Kelvin, ou 'k'). Isso não é relevante para o computador, mas para quem for ler seu programa (inclusive você).
5. As expressões dos métodos kelvinParacelsius e celsiusParakelvin estão trocadas (0 kelvin equivale a -273 celsius e não +273 celsius).
6. Seu programa não tem uma classe Conversor4, então algumas das linhas de testes não fazem sentido...

Antes de digitar qualquer coisa na janela "Interactions" é fundamental salvar e compilar seu programa, e observar na janelinha de baixo (Compiler Output) se não houve nenhuma mensagem de erro. Não dá pra testar um programa enquanto ele não foi compilado com sucesso (mensagem "Compilation completed"), sem mensagens de erro. Enquanto seu programa tiver erros de compilação, você deve "depurá-lo" (ou "debug-á-lo" sorriso).

Outra observação, menos da linguagem e mais do problema, é que todas as expressões envolvendo valores 'int' vão utilizar a divisão inteira (aquela que despreza o resto da divisão), então seu programa deve dar algumas respostas diferentes da calculadora. Os erros serão menores se você trocar .../5*9 por ...*9/5 (vale a pena pensar por quê).

Boa sorte!


Em resposta à marcos j silva

Re: meu programa não roda !!!!!!

por Marcelo Finger -
Caro Marcos.

Claramente v não compilou o seu programa. O drJava enxerga o compilador? Ao editar o arquivo, v deve salvar, compilar e só então digitar na janela de iterações.

Marcelo Finger
Em resposta à Marcelo Finger

Re: meu programa não roda !!!!!!

por Paloma Goncalves -

Qual é o problema do meu programa abaixo?

class Aluno
{
  double _nota1, _nota2, _nota3, _nota4;
  void carregaNotas(double n1, double n2, double n3, double n4)
  {
    _nota1=n1;
    _nota2=n2;
    _nota3=n3;
    _nota4=n4;
  }
  double calculaMedia()
  {
    return (_nota1+_nota2+_nota3+_nota4)/4;
    System.out.println("A nota é " +(_nota1+_nota2+_nota3+_nota4)/4 );
  }
  void verificaNota()
  {
    if((_nota1+_nota2+_nota3+_nota4)/4 < 3)
      System.out.println("Reprovado");
   else if ( (_nota1+_nota2+_nota3+_nota4)/4>3 && (_nota1+_nota2+_nota3+_nota4)/4<5 )
      System.out.println("Recuperacão");
   else
      System.out.println ("Reprovado");
  }
}
    

Em resposta à Paloma Goncalves

Re: meu programa não roda !!!!!!

por Ariane Haselmann -
Oi Paloma.

Eu vi a sua dúvida e resolvi tentar ajudar, sei que sou só aluna, mas não custa tentar ajudar os amigos, né?

Então, eu refiz bastante coisa no código e ele funcionou. Vou colocar aqui embaixo como ele ficou e o que eu fiz:

class Aluno
{

void calculaMedia(double nota1, double nota2, double nota3, double nota4) /* usei a função void, pois já que vc já vai imprimir o valor nem precisa retornar nada, e quando tentei usar double nota1,nota2, nota3, nota4 não funcionou, tive que colocar double na frente de cada uma das variáveis, além do que no calculaMedia vc tem que passar os valores para serem usados, a mesma coisa no verificaNota */
{
double media; /* acrescentei isso */
media=(nota1+nota2+nota3+nota4)/4; /* acrescentei isso também, pra não ter que ficar digitando toda hora a expressão, já guarda ela numa variávels chamada media mesmo */
System.out.println("A media eh: "+media);
 
}
void verificaNota(double nota1, double nota2, double nota3, double nota4)
{
if(((nota1+nota2+nota3+nota4)/4) < 3) /* acho que não precisa de tantos () como eu coloquei, mas é que tenho mania de fazer isso pra separar tudo direitinho */
System.out.println("Reprovado");
else if ((((nota1+nota2+nota3+nota4)/4) > 3) && (((nota1+nota2+nota3+nota4)/4) < 5) )
System.out.println("Recuperacão");
else
System.out.println ("Aprovado");
}
}


Acho que é isso. Já compilei e já rodei aqui e deu tudo certo! Alguém me corrija se eu estiver errada em algo! =)

Em resposta à Paloma Goncalves

Re: meu programa não roda !!!!!!

por Ariane Haselmann -
Ah e aproveitando que estou aqui. Aproveitei o problema que o professor passou hoje em sala de aula sobre os primos (só que troquei os "whiles" por "fors") e queria resolver um que estou tentando. O problema consiste em achar o 10001 número primo. Como faço isso? O que acrescento no meu código? Aqui está o que fiz até agora:

class Primos{
 
boolean ehPrimo(int valor){
int numDivisores=0;
for(int i=1; i<=valor/2; i++){
if(valor%i==0){
numDivisores++;
}
}
if(numDivisores==2) return true;
else return false;
}
 
void quantosPrimos()
{
int numPrimos=0;
int valor;
for(int i=1;i<=valor;i++){
if(ehPrimo(i)){
numPrimos++;
}
}
System.out.println("O numero de primos eh "+numPrimos);
}
 
void proxPrimo(int valor){
int i;
for(i=valor+1; !ehPrimo(i); i++);
System.out.println("O proximo primo eh o "+i);
}
 
}
Em resposta à Paloma Goncalves

Re: meu programa não roda !!!!!!

por Ariane Haselmann -
Desculpa Paloma, seu código está certo, acho que a única coisa que está dando algum problema é o verificaNota, pois é >=3 no lugar do >3 (na parte do recuperação), e no else final "Aprovado", em vez de "Reprovado".

Além disse, já que vc criou o método calculaMédia, vc pode calcular apenas uma vez a média no início do verificaNotaovo, atribuindo a resposta a uma variável e usar essa variável para comparar, em vez de ficar calculando toda hora de novo a mesma expressão.

Em resposta à Paloma Goncalves

Re: meu programa não roda !!!!!!

por Marcelo Queiroz -
Olás!

Em primeiro lugar, aqui no fórum não tem essa de "ser só aluno", é ótimo quando todo mundo se ajuda!

Sobre o programa da Paloma, além do '>=3' que a Ariane já notou, o fato de que as expressões repetidas no método verificaNota() não são necessárias, e o 'return' do método calculaMedia() provocar o término prematuro da execução (o System.out.println "A nota é..." nunca será executado), realmente o resto do programa parece OK. Será que o seu problema foi deixar de fazer o programa rodar, na janela de interações, por exemplo com a seqüência de comandos abaixo?

Aluno a = new Aluno();
a.carreganota(3.5,6.0,4.0,10.0);
a.calculaMedia()
a.verificaNota()

Se não foi isso, tente especificar o que aconteceu quando você tentou rodar. Boa sorte!