Convierte pseudocódigo a Java
Codoritmo traduce tu algoritmo a una clase de Java con su método main: deduce los tipos (int, double, boolean, String), convierte tus funciones en métodos static y agrega lo necesario para leer datos del teclado.
Abre el programa en Codoritmo; elige Java en Ver › Traducir a.
El mismo algoritmo en pseudocódigo y en Java
El ejemplo «Promedio de notas», con un arreglo y un ciclo Para, y el Java que genera Codoritmo para él, sin retoques.
Pseudocódigo
Proceso PromedioNotas Definir notas Como Real Dimension notas[5] Definir suma, promedio, maximo Como Real Definir i Como Entero suma <- 0.0 maximo <- 0.0 // Llenar el arreglo Para i <- 1 Hasta 5 Hacer Escribir "Ingrese nota ", i, ": " Leer notas[i] suma <- suma + notas[i] // Encontrar la nota máxima Si notas[i] > maximo Entonces maximo <- notas[i] FinSi FinPara promedio <- suma / 5 Escribir "Promedio: ", promedio Escribir "Nota más alta: ", maximoFinProcesoJava generado por Codoritmo
// Este código fue generado por Codoritmo a partir del pseudocódigo.// Puede que no sea completamente correcto: revíselo antes de usarlo.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigDecimal;import java.math.RoundingMode;class Promedionotas { static BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) { int i = 0; double maximo = 0.0; double promedio = 0.0; double suma = 0.0; double[] notas = new double[5]; suma = 0; maximo = 0; for (i = 1; i <= 5; i++) { System.out.println("Ingrese nota " + i + ": "); notas[i - 1] = leerReal(); suma = suma + notas[i - 1]; if (notas[i - 1] > maximo) { maximo = notas[i - 1]; } } promedio = suma / 5; System.out.println("Promedio: " + texto(promedio)); System.out.println("Nota más alta: " + texto(maximo)); } // Lee una línea de la entrada. static String leer() { try { String linea = entrada.readLine(); return linea == null ? "" : linea; } catch (IOException e) { return ""; } } static double leerReal() { return Double.parseDouble(leer().trim()); } // Escribe un número como PSeInt: redondeado a 10 decimales, sin ceros // finales y sin notación exponencial. static String texto(double valor) { if (Double.isNaN(valor) || Double.isInfinite(valor)) return String.valueOf(valor); return new BigDecimal(valor).setScale(10, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString(); } static String texto(boolean valor) { return valor ? "VERDADERO" : "FALSO"; }}El código es exactamente el que genera Codoritmo para este programa, incluido el comentario del inicio, que siempre sale en español.
Cómo traducir tu pseudocódigo a Java
Escribe o abre tu algoritmo
Tiene que estar sin errores de sintaxis; el panel Problemas te muestra cuáles hay.
Elige Java
En Ver › Traducir a, elige Java. La pestaña de código del panel lateral muestra la traducción.
Compara y copia
La traducción cambia mientras escribes. Cópiala o descárgala como .java con Archivo › Exportar como.
Ejecútala
Guárdala con el nombre de la clase, por ejemplo Promedionotas.java, y ejecútala con java Promedionotas.java (Java 11 o posterior).
Abre el programa en Codoritmo; elige Java en Ver › Traducir a.
Lo que cambia al pasar a Java
La clase toma el nombre de tu algoritmo: Algoritmo PromedioNotas se convierte en class Promedionotas.
Para leer datos, el código agrega métodos pequeños (leerEntero, leerReal…) que leen una línea del teclado y la convierten al tipo de la variable.
Los arreglos se crean con new y su tamaño puede ser una variable, así que Dimension datos[n] se traduce directo. Como en C, los índices empiezan en 0 y datos[i] pasa a ser datos[i - 1] cuando tu perfil usa arreglos desde 1.
Los reales se escriben como en PSeInt, redondeados a 10 decimales, con un método de ayuda llamado texto.
Cómo se traduce cada instrucción
Cada fila es una instrucción de PSeInt traducida por Codoritmo dentro de un programa con n y i enteros, x real, nombre de texto y un arreglo datos[5]. El resultado se genera al construir esta página.
| Instrucción | PSeInt | Java |
|---|---|---|
| Escribir | Escribir "Hola, ", nombre | System.out.println("Hola, " + nombre); |
| Escribir sin salto de línea | Escribir Sin Saltar "Total: " | System.out.print("Total: "); |
| Leer un entero | Leer n | n = leerEntero(); |
| Leer un real | Leer x | x = leerReal(); |
| Número al azar | n <- Aleatorio(1, 6) | n = 1 + (int) (Math.random() * (6 - 1 + 1)); |
| Si … SiNo | Si n MOD 2 = 0 Entonces
Escribir "par"
SiNo
Escribir "impar"
FinSi | if (n % 2 == 0) {
System.out.println("par");
} else {
System.out.println("impar");
} |
| Segun | Segun n Hacer
1: Escribir "uno"
De Otro Modo: Escribir "otro"
FinSegun | switch (n) {
case 1:
System.out.println("uno");
break;
default:
System.out.println("otro");
} |
| Mientras | Mientras n > 0 Hacer
n <- n - 1
FinMientras | while (n > 0) {
n = n - 1;
} |
| Repetir … Hasta Que | Repetir
Leer n
Hasta Que n > 0 | do {
n = leerEntero();
} while (n <= 0); |
| Para | Para i <- 1 Hasta 10 Hacer
Escribir i
FinPara | for (i = 1; i <= 10; i++) {
System.out.println(i);
} |
| Elemento de un arreglo | datos[1] <- n | datos[0] = n; |
Codoritmo y PSeInt de escritorio
PSeInt de escritorio también exporta a Java. Estas son las diferencias.
Lo que suma Codoritmo
- Ves la traducción al lado del pseudocódigo y cambia mientras escribes.
- Exporta también a C#, PHP, Pascal, Visual Basic, QBasic, MatLab y HTML, como PSeInt.
- La traducción respeta el perfil elegido, por ejemplo arreglos desde 0 o desde 1.
Lo que PSeInt de escritorio hace y Codoritmo todavía no
- Su exportación tiene muchos años de uso en aulas; la de Codoritmo es más reciente, así que revisa el código antes de entregarlo.
Codoritmo es un proyecto independiente, inspirado en PSeInt y compatible con su sintaxis y sus perfiles de instituciones. No es PSeInt ni está afiliado a él. Sitio oficial de PSeInt
Preguntas frecuentes
¿Qué versión de Java necesito?
El código compila con Java 8 o posterior. Para ejecutarlo directamente con java Archivo.java, sin compilar antes, necesitas Java 11 o posterior.
¿Por qué no usa Scanner?
Usa BufferedReader, que lee una línea completa cada vez, como Leer en PSeInt. Así cada respuesta que escribes corresponde a un Leer.
¿El código sigue el estilo de Java?
Está escrito para parecerse a tu pseudocódigo, no para seguir todas las convenciones de Java: por ejemplo, declara todas las variables al principio de main. Es un buen punto de partida para reescribirlo a tu manera.
Ejemplos para probar
Programas resueltos, cada uno con su código, su diagrama y una ejecución de muestra.
Promedio de Notas
Guarda cinco notas en un arreglo y calcula su promedio y la más alta.
BásicoBúsqueda lineal
Busca un nombre en una lista sin importar mayúsculas o minúsculas.
IntermedioFactorial y potencia
Funciones que calculan el factorial y una potencia.
IntermedioOrdenamiento por selección
Busca el menor de los que faltan y lo pone en su lugar.
Intermedio
Por concepto:Ejemplos de Entrada y salidaEjemplos de Arreglos
Otras herramientas de Codoritmo
- PSeInt onlineEscribe y ejecuta pseudocódigo con la sintaxis de PSeInt desde el navegador.
- Alternativa a PSeIntUna comparación honesta entre Codoritmo y PSeInt de escritorio.
- Diagrama de flujo onlineEl diagrama de flujo de tu algoritmo, generado del código y animado al ejecutar.
- Prueba de escritorioLa tabla con el valor de cada variable en cada paso, llenada mientras el programa corre.
- Pseudocódigo a PythonTu algoritmo traducido a un programa de Python que puedes ejecutar.
- Pseudocódigo a CTu algoritmo traducido a un programa en C (o C++) listo para compilar.
- Programar con bloquesArma tu algoritmo con bloques, como en Scratch, y mira el pseudocódigo que escriben.
Sigue aprendiendo
- Biblioteca de ejemplos53 algoritmos resueltos, del «Hola mundo» a los ordenamientos.
- Referencia del lenguajeCada instrucción y función de PSeInt explicada con un ejemplo.
- Perfiles de institucionesLos 463 perfiles de PSeInt y qué reglas cambia cada uno.
- Acerca de CodoritmoQué es el proyecto, quién lo hace y cómo se relaciona con PSeInt.