Jump to content

problema com as chavetas (erros)


Recommended Posts

Posted

estive a fazer o programa que deixo em baixo

não estou a conseguir completar o programa porque não consigo fechar a função main sei que uma data de coisas geram erros

alguem consegue identificar o problema e dizer-me como resolvo?

public class estudante {

public static void main(String[]args){

private String nome;
private int []notas; //a declarar a tabela...
private float media;

//construtor
public estudante()
{
 System.out.print("nome do estudante:");
 Scanner sc = new Scanner (System.in);
 nome=sc.nextLine();
 System.out.print("numero de notas:");
 int numNotas = sc.nextInt();

 notas = new int [numNotas]; //a criar a tabela...
 for(int i=0; i<numNotas; i++)
 {
   System.out.print("nota:"+(i+1));
   notas[i]=sc.nextInt();
 }
 media=calculaMedia();
}
///////////////////////////////////////////////////////
//escreve os dados de um estudante
public void imprimeEstudante()
{
 System.out.print("as notas de "+nome+"são:");
 for (int i = 0; i<notas.length;i++){
  System.out.print(notas[i]+"");
 }
 System.out.print("a media e:"+media);
}
///////////////////////////////////////////////////////
//faz o acesso externo a media
public float getMedia(){
 return media;
}
//////////////////calcular a media////////////////////
private float calculaMedia(){
 float soma=0;
 if (notas.length>0){
  for (int i=0; i<notas.length; i++){
   soma += notas[i];
  }
 return soma/notas.length;
 }
 else return -1;
}
///////////////////////////////////////////////////////
}
Posted

Não percebo qual é a dúvida. Não estás a fechar a função main... tu próprio disseste.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Posted

Mas tu estás a fechar a função main.... é a útima chaveta do teu código.

Ainda te falta uma chaveta para fechar a classe estudante.

Mesmo assim tens aí qualquer coisa que não bate certo....

Dá uma vista de olhos AQUI e tenta perceber o que fizeste errado...

Engenharia de Sistemas Informáticos @ IPCA

"Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs

Posted

Mas tu estás a fechar a função main.... é a útima chaveta do teu código.

Ainda te falta uma chaveta para fechar a classe estudante.

@msmsms : não olhes para este comentário, só te vais confundir ainda mais, por ser um erro grave de interpretação de código

se o problema é fechar o main, fecha-o, assim como fechaste as outras funções

IRC : sim, é algo que ainda existe >> #p@p
Posted (edited)

ai ai

o problema é que quando fecho a função main as coisas dão todas erros

testaram o código?

acontece que se eu não colocar a chaveta a fechar a main só tenho um erro "a chaveta'' que sei onde é no teclado como o cromo acima falou!

quando coloco a chaveta após o construtor tenho mais de 20 erros... dentro e fora da função main...

Edited by msmsms
Posted

o problema é que quando fecho a função main as coisas dão todas erros

...

acontece que se eu não colocar a chaveta a fechar a main só tenho um erro "a chaveta'' que sei onde é no teclado como o cromo acima falou!

quando coloco a chaveta após o construtor tenho mais de 20 erros... dentro e fora da função main...

isso é porque tens mais erros além da chaveta, se falta a chaveta é favor a por ...

depois podes fazer um post com os erros porque:

- quem está aqui a ajudar tem mais coisas a fazer

- ler código é chato

- apanhar bugs manhosos é ainda mais chato

- fazer de cabeça é o mais chato de todos

testaram o código?

(eu,) claro que não ... para testar o código estás cá tu porque o código é teu

IRC : sim, é algo que ainda existe >> #p@p
Posted (edited)

o meu problema é com a função main e o construtor!

se existe-se aqui alguém realmente entendido nesta linguagem saberia logo dizer-me porquê que o seguinte pedaço de código dá erro:

import java.util.*;
public class poo {
public static void main(String[]args){

int []tabela = new int [5];

public poo(){

}
}
}

não sei porquê que dão respostas sabendo tanto ou menos do que eu já consegui saber...

1º - não sei se posso ou não colocar um construtor dentro de uma função main

2º - não percebo porquê que o construtor dá o erro ''error on token public'' assim que é criado dentro da funções main

Edited by msmsms
Posted (edited)

O constructor é um método e o main é outro, mas tens o contructor dentro da main..

import java.util.*;
public class poo {
 public static void main(String[]args){

    int []tabela = new int [5];

 } // Fecha a main

 public poo(){

    media=calculaMedia();

 } // Fecha o Constructor

} // Fecha a class poo
Edited by KiNgPiTo
Posted

O constructor é um método e o main é outro, mas tens o contructor dentro da main..

import java.util.*;
public class poo {
 public static void main(String[]args){

 int []tabela = new int [5];

 } // Fecha a main

 public poo(){

 media=calculaMedia();

 } // Fecha o Constructor

} // Fecha a class poo

O constructor é um método e o main é outro, mas tens o contructor dentro da main..

import java.util.*;
public class poo {
 public static void main(String[]args){

 int []tabela = new int [5];

 } // Fecha a main

 public poo(){

 media=calculaMedia();

 } // Fecha o Constructor

} // Fecha a class poo

obrigado, parecia ser esse o meu problema em não perceber que o construtor tem de estar exterior à função main

vamos ver se agora os programas correm melhor...

Posted

não sei porquê que dão respostas sabendo tanto ou menos do que eu já consegui saber...

todos que te responderam sabiam a resposta que +e o disseram : coloca a chaveta !!! e até deram um link para saberes a sintaxe.

agora, se não queres compreender, mas sim alguém que te faça tudo então terás de esperar por alguém que o faça

para que te lembres do que te foi dito:

se o problema é fechar o main, fecha-o, assim como fechaste as outras funções

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

Uma boa forma de aprenderes é conseguires encontrar os teus erros e resolvê-los..... Daí que que todos te darem apenas dicas e não a resposta logo de mão beijada

Eu mesmo te disse:

Mesmo assim tens aí qualquer coisa que não bate certo....

Dá uma vista de olhos AQUI e tenta perceber o que fizeste errado...

E dei-te o link para a estrutura de uma classe...

Engenharia de Sistemas Informáticos @ IPCA

"Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs

Posted

o tempo urge e encontrar um problema ás vezes não é tão rápido para teres uma ideia eu estou desde ontem desde cerca das 16 horas para conseguir completar este programa com sucesso

apesar de eu já me ter convencido que que não estava a colocar a chaveta de fechar correctamente na função main ainda assim obtenho erros, um erro que parece que os atributos não são reconhecidos nem pela função main nem pelos métodos.

e o site que me passaram não resolve o problema que aqui acontece.

só me resta desistir e seguir para bingo..

import java.util.*;
public class estudante {

public static void main(String[]args){

private String nome;
private int []notas;
private float media;

}//fecha a função main

public estudante()
{
 System.out.print("nome do estudante:");
 Scanner sc = new Scanner (System.in);
 nome=sc.nextLine();

 System.out.print("numero de notas:");
 int numNotas = sc.nextInt();

 notas = new int [numNotas]; //a criar a tabela...
 for(int i=0; i<numNotas; i++)
 {
  System.out.print("nota:"+(i+1));
  notas[i]=sc.nextInt();
 }
 media=calculaMedia();
}//fecha o consrutor
public void imprimeEstudante()
{
 System.out.print("as notas de "+nome+"são:");
 for (int i = 0; i<notas.length;i++){
  System.out.print(notas[i]+"");
 }
 System.out.print("a media e:"+media);
}//fecha o metodo imprimeEstudante

public float getMedia(){
 return media;
} //fecha o metodo getMedia
private float calculaMedia(){
 float soma=0;
 if (notas.length>0){
  for (int i=0; i<notas.length; i++){
   soma += notas[i];
  }
 return soma/notas.length;
 }
 else return -1;
}//fecha o metodo calcula media
}//fecha a classe
Posted

então, só para não desistires da linguagem (apesar de eu não gostar do Java)

import java.util.*;
public class estudante {
 // se estas variáveis são da classe teem de estar
 // definidas ao nível da classe e não dentro de nenhuma
 // função (no teu caso da main)
 private String nome; // <--------------
 private int []notas; // <--------------
 private float media; // <--------------

 public static void main(String[]args)
 {
 }//fecha a função main

 public estudante()
 {
   System.out.print("nome do estudante:");
   Scanner sc = new Scanner (System.in);
   nome=sc.nextLine();

   System.out.print("numero de notas:");
   int numNotas = sc.nextInt();

   notas = new int [numNotas]; //a criar a tabela...
   for(int i=0; i<numNotas; i++)
   {
     System.out.print("nota:"+(i+1));
     notas[i]=sc.nextInt();
   }
   media=calculaMedia();

   // necessitas de fechar o scanner
   sc.close(); // <-----------------------
 }//fecha o consrutor

 public void imprimeEstudante()
 {
   System.out.print("as notas de "+nome+"são:");
   for (int i = 0; i<notas.length;i++)
   {
     System.out.print(notas[i]+"");
   }
   System.out.print("a media e:"+media);
 }//fecha o metodo imprimeEstudante

 public float getMedia()
 {
   return media;
 } //fecha o metodo getMedia

 private float calculaMedia()
 {
   float soma=0;
   if (notas.length>0){
     for (int i=0; i<notas.length; i++)
     {
       soma += notas[i];
     }
     return soma/notas.length;
   }
   else return -1;
 }//fecha o metodo calcula media
}//fecha a classe
IRC : sim, é algo que ainda existe >> #p@p
Posted

As variáveis de instância ficam fora da main...

E o nome da class (bem como os constructores) deveriam estar a começar por maiúscula.

Sugiro mesmo bastante que leias o link que o joelbrito postou em cima, estes problemas estão todos no 1º pedaço de código exemplificado.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.