Ir ao conteúdo
  • Cadastre-se

Python passar de c++ para java


Posts recomendados

#include <iostream> 
#include <math.h> 
#include <vector>  
#include <string>

using namespace std;  

class Coordenada{     
	int x_, y_; 
	 
	public:     
		Coordenada(){}     
		Coordenada(int x, int y)
		{         
			x_ = x;         
			y_ = y;     
		}     
		int getX()
		{ 
			return x_; 
		}     
		int getY()
		{ 
			return y_; 
		}     
		float distancia(Coordenada b)
		{         
			return sqrt(pow(getX() - b.getX(),2) + pow(getY() - b.getY(),2));     
		}
 }; 
 
  
class Municipio{     
	int id, populacao;     
	string nome;     
	Coordenada local;  
	
	public:     
		Municipio(int i, string n, int pop, Coordenada c)
		{         
			id = i; nome = n; populacao = pop; local = c;     
		} 
		    
		int getPopulacao()
		{ 
			return populacao; 
		}     
		
		string getNome()
		{ 
			return nome; 
		}     
		
		Coordenada getCoordenada()
		{ 
			return local; 
		}     
		
		int getId()
		{ 
			return id; 
		} 
};  

class Mapa{  
	vector<Municipio> municipios;  
	
public:     
	void addMunicipio(Municipio m)
	{ 
		municipios.push_back(m); 
	}
	Municipio getMunicipio(int id){
		for(int d=0 ; d<municipios.size();d++){
			if(municipios[d].getId()==id){
				return municipios[d];
			}
		}	
	}
    Municipio getMaior()
    {         
		int maiorPopulacao = 0;         
		int maior;         
		for(int i = 0; i < municipios.size(); i++)
		{             
		 	if(municipios[i].getPopulacao() > maiorPopulacao)
		 	{                
				maior = i;                 
				maiorPopulacao = municipios[i].getPopulacao();             
			}         
		}   	      
		return municipios[maior];     
	} 
	
	void drawMapa()
	{
		cout<<endl;
		for(int i = 1; i<=5 ; i++)
		{
			for(int j = 1; j<=10; j++)
			{
				
				int num = 0;
				for(int s = 0; s<municipios.size();s++)
				{
					if(municipios[s].getCoordenada().getX()==i && municipios[s].getCoordenada().getY()==j)
					{
						cout<<municipios[s].getId();
						num=1;
					}
				}
				if(num==0){
					cout<<"0";
				}
					
			}
			cout<<endl;
		}
	}
}; 


int main() 
{
     Coordenada c1(2,3);
     Coordenada c2(4,4);     
	 Coordenada c3(3,4); 
	 
    Municipio lavras(1, "Lavras", 100000, c1);     
	Municipio nepomuceno(2, "Nepomuceno", 30000, c2);     
	Municipio bh(3, "BH", 1000000, c3);
	  
    Mapa minas;     
	minas.addMunicipio(lavras);     
	minas.addMunicipio(nepomuceno);     
	minas.addMunicipio(bh);  
	
    cout<<"Maior populacao: "<<minas.getMaior().getPopulacao()<<endl;     
	cout<<"Municipio: "<<minas.getMaior().getNome()<<endl;     
	cout<<"Distancia: "<<lavras.getCoordenada().distancia(nepomuceno.getCoordenada());  
	
    minas.drawMapa();  
    
	int id;     
	cout<<"Pesquise um municipio pelo id: "<<endl;     
	cin>>id; 
	 
    cout<<"Municipio: "<<minas.getMunicipio(id).getNome()<<endl;   
    
    return 0; 
	
	}

Boa tarde , fiz esse programa em c++ e gostaria de transferir para java

C++passar para JAVA.txt

Urna eletronica.txt

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

3 horas atrás, Leonardo0308 disse:

Boa tarde @LEANDRO VEIGA

 

E qual seria sua duvida?

Passei  o codigo de c++ para  phayton mas o metodo drawMapa nao esta funcionando de forma correta...em c++ funcionou corretamente, já em phyton não, se puder me corrigir.

mapa word.docx

 

 

 

 

import math

class Coordenada:
	def __init__(self, x, y):
		#self referencia o proprio objeto da classe. Semelhante ao this do c++
		self.__x = x
		self.__y = y

	def getX(self):
		return self.__x

	def getY(self):
		return self.__y


	def Distancia(self, p):

		#print("Valor de x do ponto 1..:{}".format(self.getX()))
		#print("Valor de y do Ponto 1..:{}".format(self.getY()))

		#print ("Valor de x do ponto 2..:{}".format(p.getX()))
		#print ("Valor de y do Ponto 2..:{}".format(p.getY()))

		return math.sqrt(math.pow((self.getX() - p.getX()), 2) + math.pow((self.getY() - p.getY()) ,2))


class Municipio:
	def __init__(self, id, populacao, nome, coordenada_local):
		self.__id = id
		self.__populacao = populacao
		self.__nome = nome
		self.__coordenada_local = coordenada_local

	def getPopulacao(self):
		return self.__populacao

	def getNome(self):
		return self.__nome

	def getCoordenada(self):
		return self.__coordenada_local


	def getId(self):
		return self.__id


class Mapa(Municipio):
	def __init__(self):
		#Criei aqui uma lista, onde a mesma irá conter objetos do tipo Municipio.
		self.municipios = []

	def addMunicipio(self, m):
		#push back
		self.municipios.append(m)


	def getMunicipio(self, id):
		for i in len(self.municipios):
			#if (self.municipios[i].getId()):
			#	return self.municipios[i]
			i = i + 1


	def getMaior(self):

		maiorPopulacao = 0
		maior = 0

		for i in len(self.municipios):
			if (self.municipios[i].getPopulacao() > maiorPopulacao):
				maior = i
				maiorPopulacao = self.municipios[i].getPopulacao()

		return self.municipios[maior]


	def drawMapa(self):
		for i in range(1,6):
			for j in range(1,11):
				num = 0
				for s, elemento in enumerate(self.municipios):
					#print(self.municipios[s].getCoordenada().getX())

					if (self.municipios[s].getCoordenada().getX() == i and self.municipios[s].getCoordenada().getY() == j):
						print("{} ".format(self.municipios[s].getId()))
						num=1

					if (num == 0):
						print ("0")

				s = s + 1

				if (j > 10):
					print('\n')
				# print (s)

				j = j + 1 #j += 1
			print ("\n")
			i = i + 1




if __name__ == "__main__":
	p1 = Coordenada(2,3)
	p2 = Coordenada(3,5)
	p3 = Coordenada(4,6)

	m1 = Municipio(1, 30.000, 'Nepomuceno', p1)
	m2 = Municipio(2, 150.000, 'São João Del Rei', p2)
	m3 = Municipio(3, 1.000000, 'Belo Horizonte', p3)

	mapa = Mapa()

	mapa.addMunicipio(m1)
	mapa.addMunicipio(m2)
	mapa.addMunicipio(m3)

	print("O código da cidade..:{}".format(m1.getId()))
	print ("A cidade de {} tem {:.4f} habitantes".format(m1.getNome(), m1.getPopulacao()))
	print ("\n")

	print("O código da cidade..:{}".format(m2.getId()))
	print("A cidade de {} tem {:.4f} habitantes".format(m2.getNome(), m2.getPopulacao()))
	print ("\n")

	print("O código da cidade..:{}".format(m3.getId()))
	print("A cidade de {} tem {:.4f} habitantes".format(m3.getNome(), m3.getPopulacao()))
	print("\n")

	print ("Imprime os identificadores de localização..:{}".format(mapa.drawMapa()))

	print ("O valor da Distancia e..:{}".format(p1.Distancia(p2)))

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@LEANDRO VEIGA Olá. Apenas algumas dicas que podem ajudar você a resolver o problema

A primeira é referente ao for da forma como você está fazendo no método drawMapa. Veja nesse exemplo:

for i in range(0, 10):
    print(i)
# aqui não é necessário incrementar a variável i, dessa forma: i += 1 (internamente é feito isso)    

Outra dica, pegando esse pequeno exemplo, é caso queira imprimir o valor da variável i sem quebra de linha:

for i in range(0, 10):
    print(i, end="") # dessa forma o resultado será impresso sem quebra de linha

Caso ainda tiver dúvidas quanto a essas dicas é só perguntar

Link para o comentário
Compartilhar em outros sites

Seu método drawMapa corrigido ficaria assim:

def drawMapa(self):
            for i in range(1, 6):
                for j in range(1, 11):
                    num = 0
                    for s in range(len(self.municipios)):		
                            if self.municipios[s].getCoordenada().getX() == i and self.municipios[s].getCoordenada().getY() == j:
                                    print("{}".format(self.municipios[s].getId()), end="")
                                    num = 1
                    if (num == 0):
                            print ("0", end="")
                print()     

A questão é talvez ajustar a identação, que, se não me engano e pelo que aprendi, em Python seria de uma tabulação apenas, e não duas

 

Obs: Estou ainda praticamente começando a estudar Python 

 

Só dois pontos no seu código: a palavra "id" é uma função interna do Python, logo, não deve ser usada como nome de variável

>>> type(id)
<class 'builtin_function_or_method'>

https://stackoverflow.com/questions/6350847/is-id-a-keyword-in-python

 

O outro é que você deve apenas chamar o método drawMapa, dessa forma:

mapa.drawMapa()

E não imprimir essa chamada ao método

 

Vê se é isso que você quer 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!