Universidade Federal do ABC Bacharelado em Ciência da Computação Processamento da Informação - Prof. Fabrício Olivetti de França Guia de tradução entre Java e outras linguagens 1 Da aula teórica ao Java Na aula teórica: 1 NOMEPROGRAMA { int inteiro ; 3 inteiro = leitor. nextint (); println ( inteiro ); 5 Em Java: // nao esqueca de importar o Scanner 2 import java. util. Scanner ; 4 class NOMEPROGRAMA { 6 int inteiro ; 8 // alguns professores usam " sc" ou " in" no lugar de leitor 10 Scanner leitor = new Scanner ( System. in); inteiro = leitor. nextint (); 12 System. out. println ( inteiro ); 14 2 Do Scilab/Python ao Java Declaração de variáveis: No Scilab/Python: x = 12 2 y = 3.2 s = " Texto " 4 logico = x > 10 // declare o tipo da variavel e termine com ";" 2 int x = 12; double y = 3.2; 4 String s = " Texto "; boolean logico = x > 10; 1
Entrada e saída de dados: O usuário irá entrar com um valor inteiro, um valor real e uma string. Em seguida, o programa imprimirá na tela os três valores separados por espaço e, depois, os três valores separados por espaço mas com 3 casas decimais na variável do tipo real. 1 inteiro = input (" Entre com um inteiro ") real = input (" Entre com um numero real ") 3 palavra = input (" Entre com um texto ", " string ") 5 disp ( inteiro, real, palavra ) disp ( msprintf ( %d %.3 f %s\n, inteiro, real, palavra )) No Python (versão 3.6 em diante): inteiro = int ( input () ) 2 real = float ( input () ) palavra = input () 4 print ( inteiro, real, palavra ) 6 print (f { inteiro { real :.3 { palavra ) // nao esqueca de importar o Scanner 2 import java. util. Scanner ; 4 class ENTRADASAIDA { 6 int inteiro ; double real ; 8 char letra ; String palavra ; 10 String p1, p2; 12 // alguns professores usam " sc" ou " in" no lugar de leitor Scanner leitor = new Scanner ( System. in); 14 inteiro = leitor. nextint (); 16 real = leitor. nextdouble (); letra = leitor. nextline (). charat (0) ; // ugh! 18 leitor. nextline (); // necessario se tiver algum " next " antes de nextline () palavra = leitor. nextline (); 20 // Se quisermos capturar duas palavras 22 // separadas por espaco em duas strings // diferentes. Ex.: " Ola mundo " => p1 = " Ola ", p2 = " mundo " 24 p1 = leitor. next (); p2 = leitor. next (); 26 System. out. println ( inteiro + " " + real + " " + palavra ); 28 System. out. printf ("%d %.3 f %s\n", inteiro, real, palavra ); 30 32 Observações: a instrução printf recebe como primeiro parâmetro uma String que indica a formatação do seu texto: %d número inteiro %.Nf número real com N casas decimais %s String \n vai para a próxima linha 2
Para o caso de capturar uma String com nextline(), se existir a instrução nextint() e/ou next- Double() em linhas anteriores, é necessário executar o comando nextline() sem atribuir a nenhuma variável. Operações Matemáticas avançadas: x = 10.3 2 potencia = x ^4 raiz = sqrt ( x) 4 logaritmo = log ( x) exponencial = exp ( x) 1 x = 10.3 potencia = x **4 3 raiz = sqrt ( x) logaritmo = log ( x) 5 exponencial = exp ( x) 1 double x = 10.3; double potencia = Math. pow (x, 4); 3 raiz = Math. sqrt (x); logaritmo = Math. log (x); 5 exponencial = Math. exp (x); Declaração de funções: 1 function [ resultado ]= quadrado ( x) resultado = x* x 3 endfunction 5 x = 5 y = quadrado ( x) 7 disp (y) 1 def quadrado ( x): resultado = x* x 3 return resultado 5 x = 5 y = quadrado ( x) 7 print (y) 1 class NOMEPROGRAMA { 3 public static int quadrado ( int x) { int resultado = x* x; 5 return resultado ; 7 3
9 int x = 5; int y = quadrado ( x); 11 System. out. println (y); 13 15 Condicionais: Nos códigos abaixo as instruções x = x + 1 e x = x 2 serão executadas somente se x > 10, a instrução x = x + 3 será executada caso x 10 e x > 3, a instrução x = 3 será executada caso contrário. Já a instrução x = x x será executada SEMPRE. 1 if x >10 then x = x + 1 3 x = x * 2 elseif x > 3 then 5 x = x + 3 else 7 x = 3 end 9 x = x* x 1 # Nota : o alinhamento eh importante if x >10: 3 x = x + 1 x = x * 2 5 elif x > 3: x = x + 3 7 else : x = 3 9 x = x* x 1 if (x >10) { x = x + 1; 3 x = x * 2; else if (x > 3) { 5 x = x + 3; else { 7 x = 3; 9 x = x* x; Repetição Enquanto: Nos códigos abaixo as instruções y = y + (x%10) e x = x/10 serão repetidas enquanto x > 0, quando x 0, o valor de y é impresso na tela. 1 x = 1234 y = 0 3 while x >0 y = y + (x %10) 5 x = x /10 end 7 disp (y) 4
1 # Nota : o alinhamento eh importante x = 1234 3 y = 0 while x >0: 5 y = y + ( x %10) x = x /10 7 print (y) 1 int x = 1234; int y = 0; 3 while (x >0) { y = y + (x %10) ; 5 x = x /10; 7 System. out. println (y); Repetição Para: Nos códigos abaixo as instruções fazem com que o valor de i varie de 1 até n e, para cada valor de i a instrução x = x i é executada. Ao final, o valor de x é impresso (após o laço). 1 x = 1 n = 5 3 for i =1: n x = x * i 5 end disp (x) # Nota : o alinhamento eh importante 2 x = 1 n = 5 4 for i in range (1,n +1) : x = x*i 6 print (x) int x = 1; 2 int n = 5; for (i =1; i <=n; i ++) { 4 x = x* i; 6 System. out. println (x); 5