Ir ao conteúdo

Java Conversão Portugol para Java


Ir à solução Resolvido por Felipecfk,

Posts recomendados

Postado

Gostaria de converter este código Portugol para Java:

 

 

programa{
funcao início(){
    inteiro num_mercadorias, contador
    real total_estoque, preco, media
    cadeia res
    
    total_estoque = 0.0
    num_mercadorias = 0
    
    faca {
         escreva("Entre com o valor:")
         leia(preco)
         
         total_estoque = total_estoque + preco
         num_mercadorias = num_mercadorias + 1
         
         escreva("voce quer continuar S/N?)
         leia(res)
         
    }enquanto(res == "s" ou res == "S")
    
    media = total_estoque / num_mercadorias
    
    escreva( "A média do valor por mercadoria em estoque é de: " + media)
    escreva( "\nO valor total em estoque é de R$ " + total_estoque)
    
        }
    }
    


    
    

  • Amei 1
Postado

Basicamente é só ir trocando os comando em português pelos equivalentes da linguagem.

escreva = System.out.println
inteiro = int
real = double
faca-enquanto = do-while
leia = *use a classe Scanner
cadeia = char
funcao = *use a sintaxe de métodos do java
programa = *use o nome da classe

 

  • Obrigado 1
  • Amei 1
Postado
import java.util.Scanner;

class Main  {
	public static void main(String[] args) {
		Scanner ler = new Scanner(System.in);
		int preco;
		
		double total_estoque = 0.0;
		int num_mercadorias = 0;
		double media = 0.0;
		
		System.out.printf("Entre com o valor: ");
		preco = ler.nextInt();
		
		System.out.printf("%d\n",preco);
		
		total_estoque = total_estoque + preco;
		num_mercadorias = num_mercadorias + 1;
		
		
		Scanner res = new Scanner(System.in);{
		{System.out.println("voce quer continuar S/N: ");
		
		String resp = res.nextLine();
		System.out.println(resp);//
		System.out.printf("%2f\n",total_estoque);
		System.out.printf("%d\n",num_mercadorias);
		while(resp =="S" || resp == "s") {
			System.out.println(resp);
			media = total_estoque / num_mercadorias;
			
		/*
		 System.out.printf("%2f\n",total_estoque);
		 System.out.printf("%d\n",num_mercadorias);
		 */
			
			
			 System.out.printf( "A média do valor por mercadoria em estoque é de: %2f",total_estoque);
			 System.out.printf( "\nO valor total em estoque é de R$ %d ",total_estoque);
		 }
		}
		}
	}
}
	 

 

Meu anjo tentei........mas, acho que têm vários erros.......Agradeço sua atenção de qq forma.......Entrei lá no youtube e criei uma agenda para fazer o curso. 

  • Obrigado 1
Postado

Foi bem, deu quase tudo certo. Porém você mudou a estrutura do programa, por exemplo

cadeia res

 

deveria ter sido convertido para

char res;

 

Mas você declarou como sendo do tipo Scanner.

 

O laço

faca {
    [...]
} enquanto(res == "s" ou res == "S")

 

desapareceu do seu programa, e ele é importante para o fluxo correto. Ele deveria ter sido convertido para

do {
    [...]
} while(res == "s" ou res == "S")

 

Os demais são erros de sintaxe, algumas chaves foram abertas onde não deveriam e fechadas nos lugares errados.

  • Obrigado 1
  • Solução
Postado
Em 20/02/2022 às 19:58, Nolly disse:

Gostaria de converter este código Portugol para Java:

 

 

programa{
funcao início(){
    inteiro num_mercadorias, contador
    real total_estoque, preco, media
    cadeia res
    
    total_estoque = 0.0
    num_mercadorias = 0
    
    faca {
         escreva("Entre com o valor:")
         leia(preco)
         
         total_estoque = total_estoque + preco
         num_mercadorias = num_mercadorias + 1
         
         escreva("voce quer continuar S/N?)
         leia(res)
         
    }enquanto(res == "s" ou res == "S")
    
    media = total_estoque / num_mercadorias
    
    escreva( "A média do valor por mercadoria em estoque é de: " + media)
    escreva( "\nO valor total em estoque é de R$ " + total_estoque)
    
        }
    }
    


    
    

Daí que eu me pergunto, pra que ensinar portugol se depois não vão conseguir converter pra código de verdade? Seria mais fácil ensinar o código de verdade direto. Enfim...

a função início() = public static void main (String[] args)

inteiro = int

real = double ou float

cadeia = (disseram que é char, eu achei que fosse array traduzindo ao pé da letra, mas é char mesmo)

faça = do
enquanto = while

escreva = print (no caso do java o System.out.print ou println se quiser pular linha). Não adianta você usar o printf como fez porque o printf não entende "+", ele entende ",". O seu portugol está dando a entender que é pra usar o print normal do java, mesmo que não seja tão preciso quanto o printf. Acho que a ideia é essa mesmo, é só pra traduzir e rodar, sem muita firula de %0.2f. Você faz em 10 min isso aí. Só lembra de fechar o scanner no final ler.close(). É uma boa prática.

E como o colega acima disse, não é pra substituir o char por scanner, é só pra acrescentar o scanner pra ele poder ler o que você digitar no terminal depois. Outra, lembra que pra ler char não é aspas duplas como no String, você fez "s" ou "S", na verdade é 's' ou 'S'

 

o termo "ou" no casso é esse aqui "||". Corrigindo aquele trecho do while fica: while (res == 's' || res == 'S');


 

  • Curtir 1
  • Amei 1

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!