Pascal para Java

9 respostas
H

Alguém conhece algum programa freeware que converte um código pascal em um código java?

Obrigado,
Herlen

9 Respostas

fenrir

Eu cheguei a procurar algo assim para converter código em C para Java. Só que em todos os lugares que eu lia a respeito, sempre havia a seguinte ressalva: não converta!! Reescreva!

O resultado de uma conversão pode ser medonha!

É muito mais negócio reescrever, mesmo que leve algum tempo. A lógica do que deve ser feito você já tem (o código original), que é o que mais tempo tomaria, caso não existisse.

T

O que normalmente ocorre é que as ferramentas tentam converter mas não conseguem fazer uma conversão perfeita. Problemas:

  • Muitas APIs não podem ser diretamente convertidas (APIs do Windows, do Delphi etc);
  • Algumas construções não podem ser corretamente traduzidas (em Delphi, por exemplo, há ponteiros de memória, que não têm um correspondente no Java);
    Então dá mais trabalho. Não é a mesma coisa que traduzir inglês para o português usando o Babelfish (que deixa algumas coisas sem traduzir e traduz algumas coisas errado, tudo porque o computador não pensa e não lê jornais…); no caso do Babelfish a tradução ainda é usável porque ao você ler, você compensa os erros. No caso do Pascal para Java quem vai usar a saída é o computador, e ele não consegue compensar os erros de tradução.
    Mas sempre existe alguma coisa que pode lhe ajudar. O que não existe é uma ferramenta que faça o trabalho 100% perfeito e 100% sozinho.
H

Com certeza não sairia 100%, mas ajudaria muito.
Aproveitando que eu estou tentando transformar uma função de pascal para java, vcs conhecem uma função no java similar a função “ord” no pascal. A função “ord” no pascal me retorna o código ASCII de um caracter, sua sintaxe é ord(c: char): integer
E a função mod, que me retorna o resto da divisão de dois inteiros, vcs conhecem alguma similar no java? Essa é fácil de implementar, mas se já tiver alguma pronta…

Valeu

ranophoenix

Função mod em java, na realidade é o operador %. Por exemplo: 4%2=0

Quanto ao ASCII, em java ach melhor vc se acostumar com UTF.

H

ranophoenix:
Função mod em java, na realidade é o operador %. Por exemplo: 4%2=0

Quanto ao ASCII, em java ach melhor vc se acostumar com UTF.

Por questões de compatibilidade com outros sistemas desenvolvidos em Delphi, nesse caso, terei que continuar usando o ASCII. Descobri como pegar o valor, na realidade é bem fácil, basta colocar (int)meuchar.

Valeu.

F

alguem pode me ajudar… como ficaria os codigos do pascal escritos em java ??
eu não estou conseguindo, se alguem puder me ajudar .Obrigado!
meu e-amil ->> ( [email removido] )

Program  Farma;
 var  quant,cont,cont2:real;//declaração da variavel

    i, preco1, preco2, preco3: integer;
    remedio, med1, med2, med3:  string;
    med: array[1..3] of string;  // declaração do vetor
    preco: array [1..3] of real; //Um array é uma estrutura que representa listas (vetores) ou tabelas (matrizes) de valores
begin
	cont:=0;
     cont2:=0;
	for i:= 1 to 3 do  
   begin
	    clrscr;// serve para apagar o que foi digitado
	    write('Digite o nome do remedio:');
         read (remedio);
                
         if(remedio='anador') then 
     	cont:=2.80;
         if(remedio='apracur') then
          cont:=3.20;
         if(remedio='dipirona') then
          cont:=5.30;
          cont2:=cont+cont2;
          med[i]:=remedio;
          preco[i]:=cont;
   end;
	   
	     writeln;// serve para pular uma linha
	     writeln;
	     writeln ;
          writeln ('                       Sua compra foi: ');
 
 
        	writeln;
          for i:= 1 to 3 do
		writeln ( med[i], ':                       R$        ',preco[i]:2:2);
	     writeln ;
          writeln ('Total:                        R$         ', cont2:2:2);
End.// end do begin inicial
M

ao pe da letra sem a orientacao a objetos seria:

import java.util.Scanner;

public class Farmacia{

     public static void main(String[] args){

          String[] med = new String[3];
          Float[] preco = new Float[3];

          String remedio;

          float cont=0,cont2=0;

          Scanner in = new Scanner(System.in);

          for(int i = 0; i < 3; i++){

               System.out.print("\nDigite o nome do remedio: ");
               remedio = in.next();

               if(remedio.equals("anador"))
                    cont=2.80f;
               else if(remedio.equals("apracur"))
                    cont=3.20f;
               else if(remedio.equals("dipirona"))
                    cont=5.30f;

               cont2=cont+cont2;
               med[i]=remedio;
               preco[i]=cont;
          }
          System.out.print("\n\n\n\nSua compra foi:\n");

          for(int i = 0; i < 3; i++){

               System.out.println(med[i]+": R$ "+preco[i]);
          }
          System.out.println("Total: R$ "+cont2);
     }
}

espero que ajude

F

oow mano obrigado!!!

mais ainda ta dando uma mensagem e nao ta rodando…
acho que esteja faltando declarar a variavél??

testei no eclipse.
vc pode da uma olhada dinovo?
vlw.

M

Bom eu connferi aqui e ta certinho…

q erro ta dando pra vc???

Criado 31 de março de 2005
Ultima resposta 13 de jun. de 2009
Respostas 9
Participantes 6