Não consigo "encontrar" os erros

15 respostas
C

Boa noite

Tenho duvidas na hora de chamar o metodo na classe principal.
Sou bem principiante msm, e então por isso peço uma ajudinha
Um metodo eu entendi e passei os paramentros
agora o outro nao entendi, se eu n passo parametros e só passo o println ele dá erro, se passo parametros como fiz com o primeiro metodo tb da erro, e nao sei pq, será q por gentileza alguem pode me responder o pq não dá certo, pq to perdida msm.......................

public class PVetores {
	public float x,y;

	public PVetores(float ax,float ay) {
 		this.x=ax; this.y=ay;
		}

	public void move(float dx,float dy){
 		this.x+=dx; this.y+=dy;
		}

	public void mostra(){
 		System.out.println("("+this.x+","+this.y+")");
		}


//metodo para retornar o modulo do vetor
	public void RetornaModulo (float x, float y){
	
		double n;
		n = (float) Math.sqrt(x*x + y*y);
		
		System.out.println("O modulo do vetor M é:" + "+this.n+");
		}



//metodo para tornar o vetor M um vetor unitario
	public void VetorUnitario (float x, float y, float v1, float v2, float n){
		v1= (x/n);
		v2= (y/n);
		System.out.println ("O vetor unitário de M é:" + "+this.v1" + "+this.v2");
		} 
		 

}
A CLASSE PRINCIPAL
class PrincPVetores {

 public static void main(String args[]) {
  	PVetores vt;
	vt=new PVetores ((float)1.0,(float)0.0);
  	vt.mostra();
	vt.move(1,1);
	vt.mostra();
	vt.x=100;
	vt.mostra();
	double alt = 1.0;
	double alt1 = 0.0;
	vt.RetornaModulo ((float) alt , (float) alt1);
		
	vt.VetorUnitario (){
	System.out.println ("O vetor unitário de M é:" + "+this.v1" + "+this.v2");
	}
	
 	}

}

E OS ERROS

// SE NAO COLOCO PARAMETROS
';' expected vt.VetorUnitario <>{

//SE COLOCO PARAMETROS

'.class' expected vt.VetorUnitario <float alt3, float alt3, float alt4>{

obrigada
Abraços

15 Respostas

Roger75

Olha, é assim que você tem que chamar o método:

class PrincPVetores {

 public static void main(String args[]) {
  	PVetores vt;
	vt=new PVetores ((float)1.0,(float)0.0);
  	vt.mostra();
	vt.move(1,1);
	vt.mostra();
	vt.x=100;
	vt.mostra();
	double alt = 1.0;
	double alt1 = 0.0;
	vt.RetornaModulo ((float) alt , (float) alt1);
		
	vt.VetorUnitario (1,1,1,1,1);//Alterei aqui para fazer funcionar
	
 	}

}

Você tem que passar 5 parâmetros na chamada do método, pois foi assim que declarou na classe.

tralsl

pra vc poder imprimir n vc precisa tirar os parenteses

senão vc vai imprimir a string “+this.n+”

C

Bom dia

Obrigada pela ajuda.

Então o negocio de passar o metodo deu certo, compilou.
Agora o de tirar as " " dos this.n nao deu mto certo nao, pq compilou e imprimiu na tela o que eu declarei no metodo, mas como lá eu tb tinha posto as variaveis a serem impressas com " " saiu como String e imprimiu o nome da variavel.
Aí eu fiz como vc me orientou e tirei as " " lá na declaração do metodo na classe, só q aí da outro erro quando vou compilar e eu nao consigo descobrir o q eu to fazendo de errado.........
to mandando de novo o codigo agora com as alterações q eu fiz de novo, para ficar mais facil p vcs verem (coloquei alguns comentarios das minhas duvidas) e o novo erro

Dá para dar mais essa ajudinha?????

Por enquanto mto obrigada mesmo, realmente eu vacilei no negocio de por as " " na hr de imprimir, mas fazer o q né acontece, hehehe

public class PVetores {
	public float x,y;

	public PVetores(float ax,float ay) {
 		this.x=ax; this.y=ay;
		}

	public void move(float dx,float dy){
 		this.x+=dx; this.y+=dy;
		}

	public void mostra(){
 		System.out.println("("+this.x+","+this.y+")");//mas pq que aq pode ter as " " não é a mesma coisa????
		}


//metodo para retornar o modulo do vetor
	public void RetornaModulo (float x, float y){
	
		double n;
		n = (float) Math.sqrt(x*x + y*y);
		
		System.out.println("O modulo do vetor M é:" +  this.n);// aqui tava assim: ("O modulo do vetor M é:" +  "this.n")
		}



//metodo para tornar o vetor M um vetor unitario
	public void VetorUnitario (float x, float y, float n){
		double v1;
		double v2;
		v1= (float) (x/n);
		v2= (float) (y/n);
		System.out.println ("O vetor unitário de M é:" + this.v1 + this.v2);//aq tava assim: ("O vetor unitário de M é:" + //"this.v1" + "this.v2")
		} 
		 

}

A CLASSE PRINCIPAL

class PrincPVetores {

 public static void main(String args[]) {
  	PVetores vt;
	vt=new PVetores ((float)1.0,(float)0.0);
  	vt.mostra();
	vt.move(1,1);
	vt.mostra();
	vt.x=100;
	vt.mostra();
	double alt = 1.0;
	double alt1 = 0.0;
	vt.RetornaModulo ((float) alt , (float) alt1);


	double alt2;
	double alt3;
	double alt4;
	vt.VetorUnitario (1,1,1);//aq eu coloquei 3 variaveis, se eu por 5 como vc me orientou da erro, e assim deu certo 
	}

}
e por ultimo o novo erro (dá 3 vezes o mesmo erro só muda as variaveis):
cannot find symbol
variable n
class PVetores
    System.out.println("O modulo do vetor M é:" +  this.n)

cannot find symbol
variable v1
class PVetores
     System.out.println ("O vetor unitário de M é:" + this.v1 + this.v2)  
    
cannot find symbol
variable v2
class PVetores
     System.out.println ("O vetor unitário de M é:" + this.v1 + this.v2)

valeu gente
abraçossssssssssssssss

tralsl

aqui se vc quiser que valor unitário seja igual a v1 + v2, vc vai precisar somar fora do parâmetro para o println, pq como esta só vai contatenar as representações como string

tenta assim

float v = v1 + v2; System.out.println ("O vetor unitário de M é:" + v);

tralsl
cannot find symbol
variable n
class PVetores
    System.out.println("O modulo do vetor M é:" +  this.n)
...

vc tem que se lembrar que n é uma variável local de método, fora do método esse variável não existe

vc pode fazer fazer o método RetornaModulo() retornar um double

//metodo para retornar o modulo do vetor
	public void RetornaModulo (float x, float y){
	
		double n;
		n = (float) Math.sqrt(x*x + y*y);
		
		System.out.println("O modulo do vetor M é:" +  this.n);// aqui tava assim: ("O modulo do vetor M é:" +  "this.n")
		}
para
//metodo para retornar o modulo do vetor
public float retornaModulo (float x, float y) //utilize letrar minúsculas para início dos métodos e variáveis, mesmo que sejam estâncias de objetos
{
   double n;
   n = (float) Math.sqrt(x*x + y*y);
   //System.out.println("O modulo do vetor M é:" +  this.n);// aqui tava assim: ("O modulo do vetor M é:" +  "this.n")
   return n;
}
isso faz a mesma coisa
public float retornaModulo (float x, float y){
   return (float) Math.sqrt(x*x + y*y);
}

agora vc pode altera essa linha no main

vt.RetornaModulo ((float) alt , (float) alt1);
para
System.out.println(vt.retornaModulo ( (float) alt , (float) alt1));
C

Boa noite…

Mto mto mto obrigada msm
valeu pela ajuda

vou ver agora se com essas dicas que vcs me deram nesse exercicio eu consigo achar os erros dos outros que eu fiz.
Valeu msm

Se eu nao conseguir com certeza estarei por aq denovo

grande abraço a todos
bigaduuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

C

Boa noite caros colegas…

Será que mais uma vez alguem pode me dar uma mãozinha

Eu to fazendo um exercicio e ele compilou no javac, só q a hora que vou chamar o programa ele da um erro q eu nao sei pq, para variar, kkkkk

//Escreva um programa simples que toma um vetor de preços e um de descontos (50%=.5), 
//e altera o vetor de preços de modo que estes produtos já incluam os descontos no seu
// valor de venda. Exemplo:
//Preços   :	         40,5	30,3	12,6	100
//Descontos:	           .5	  .3	  .2	 .5
//Vetor calculado:	20.25	9.09	2.52	50


public class TabelaPreco{
	double vetorpr []= {40.5, 30.3, 12.6, 100};//preços sem desconto

	public TabelaPreco(){
	}
			

	double vetordesc []= {.5, .3, .2, .5};//valor do desconto
		
	//metodo para calcular o desconto
 	public void aplicaDescontos()
	{
	double vtotal[]={0};
		for (int i =0; i <vetorpr.length; i++)//percorrer o vetor dos preços alterando com o vetor do desconto
		{	
				
			vtotal[i] = vetorpr[i] * vetordesc[i];//e jogando o resultado no vetor do valor total
		}
 									
		
		for (int i =0; i <vetorpr.length; i++) {
		System.out.println(vtotal[i]);
			
  		}
	}

 	public static void main(String[] args){
		TabelaPreco total = new TabelaPreco();
		total.aplicaDescontos();
	}
}

Se alguem puder me ajudar
eu agradeço e mtoooooooooooo

Abraços a todos

Allan_Barcelos

Cara pelo que vi, o vtotal tem só um elemento

double vtotal[] = {0};

tenta

double vtotal = new double[vetorpr.length];
Roger75

Allan Barcelos:
Cara pelo que vi, o vtotal tem só um elemento

double vtotal[] = {0};

tenta

double vtotal = new double[vetorpr.length];

Na verdade é

double vtotal[] = new double[vetorpr.length];
C

Valeu gente mto obrigada pela ajuda…

Vcs são demais

abraçosssssss

até mais

Allan_Barcelos

Coloca [resolvido] no tópico, se tu não tem mais essa duvida :wink:

C

Boa noite

Então, tenho outras dúvidas, posso continuar nesse msm topico ou tenho q criar outro???

Vou por aq msm depois qualquer coisa eu faço de novo

Bom é o seguinte

to fazendo uns exemplos de herança e todos da o msm erro qdo vou instanciar a classe principal
e nos meus livros está do jeito q to fazendo, então n sei o pq q da erro.
Alguem pode me dar uma luz, por favor.

a classe “pai” é Pessoa
a classe “filha” é Funcionario
e a classe Principal é PessFunc

class Pessoa{
	private String nome;
	private int identidade;
	private String nascimento;

	//construtor que recebe argumentos para inicializar seus campos
	Pessoa (String n, int i, String d){
		nome = n;
		identidade = i;
		nascimento = d;
		}

	//O método toString nao recebe argumentos e retorna uma string contendo os valores dos campos formatados

	public String toString(){
		return "Nome:" +nome+ "\nIdentidade:" +identidade+ " " +"\nData de nascimento:" +nascimento;
		}
}
class Funcionario extends Pessoa{
	private String admissao;
	private float salario;

	//O construtor recebe os mesmos dados que seriam necessarios para instanciar a classe Pessoa
	Funcionario (String nome, int i, String nascimento, String adm, float sal){
		super (nome, i, nascimento);
		admissao = adm;
		salario = sal;
		}

 
	public String toString(){
		String resultado;
		resultado = super.toString()+"\n";
		resultado = resultado + "Data de admissao:" +admissao+"\n";
		resultado = resultado + "Salario:" +salario;
		return resultado;
		}

	//metodo para consulta de salarios

	final public float qualSalario(){
		return salario;
		}
}
class PessFunc{
	public static void main (String [] args){
		Pessoa a = new Pessoa ("Chris", "22.578.123-x", "07/05/1978");
		System.out.println(a);

		}
}

A classe principal nem tá terminada, mas como ja deu o erro eu nem fiz o resto.
o erro:

constructor Pessoa (java.lang.String, java.lang.String, java.lang.String)
class Pessoa
Pessoa a = new Pessoa ("Chris", "22.578.123-x", "07/05/1978");

Se alguem puder me ajudar eu agradeço

Abraços gente
até mais

D
bom,

tanto na classe Pessoa quanto na classe Funcionario, vc colocou um metodo chamado toString”, aconselho vc mudar esse nome, pq isso é um metodo interno do javacoloca EscrevePessoa e EscreveFuncionario”, assim não tem como cá erroe na classe principal, vc tá tentano passar os tres parametros para a classe Pessoa como StringsLEMBRE QUE VC DECLAROU :

String nome;

int identidade;

string nascimento;

então o certo é:

class PessFunc{
	public static void main (String [] args){
		Pessoa a = new Pessoa ("Chris", 22578123, "07/05/1978");
		System.out.println(a);

		}
}

vlw

C

Boa noite

Nossa cara, é msm …
que mancada a minha
nem me dei conta desse detalhe q passei todos os parametos como String

Valeu pela juda

OBS: Não vou fechar o topico pq to fazendo varios exercicios e se eu tiver duvida vou voltar a perguntar, blz???

Por enquanto, muita obrigada

abraços

D

ok…

  • aconselho vc fechar, para não fik um só tópico com varios assuntos diferentes…
    podendo ate quem for te ajudar não saber o q vc quer direito…
    vlw
Criado 13 de junho de 2010
Ultima resposta 3 de jul. de 2010
Respostas 15
Participantes 5