Tabla de Migración de C++ a Java
Java se programó en el lenguaje C y conserva mucho de su origen.
Reglas de migracion de C++ a Java
Componente C++ Java
1 Documentación c++ documentacion: Java 11 API documetation:
[Link] [Link]
[Link]
[Link]
2 IDE Ventana Terminal + gedit Ventana Terminal + gedit
NetBeans
3 Editar gedit miPro.c& gedit [Link]&
4 Compilar c++ miPro.c => [Link] javac [Link] => [Link]
5 Ejecutar ./[Link] Java MiClase // ejecuta [Link]
6 Incluir #include<cmath> import [Link];
// [Link] es un paquete; Math es una clase
7 Prototipos de int miFun(int var1); No tiene
funciones
8 Clase No tiene public class MiClase{ … } // hasta fin de archivo
9 Definir y asignar int var = 1; int var = 1;
Variables static TuClase tc = new TuClase();
10 Main: main(){...} public static void main(String args[]){…}
11 Definir funciones int miFun(int var1){…} static int miFun(int var1){…}
void miFun1(void){…} static void miFun(){…}
12 Llamar funciones n = miFun(23); Igual
miFun();
13 Imprimir #include<iostream>
printf("Ingrese un dato: ") [Link]("Ingrese un dato: ")
printf("var = %d\n", var) [Link]("var = %d\n", var) // igual a C++
[Link]("var = " + var); // salta de línea
[Link](); // salta una línea
14 Leer #include<cstdio> import [Link];
// definir la variable sc antes; puede ser global:
static Scanner sc = new Scanner([Link]);
scanf("%d", &var); var = [Link](); // lee un entero
// otros
[Link](); [Link]();
[Link](); [Link]();
[Link](); // lee una cadena hasta el próximo blanco
[Link](); // lee una cadena hasta el fin de línea
15 Imprimir/Leer #include<iostream> No hay
using namespace std;
cout << var << endl; // imprime var
cin >> var; // lee var
16 Estructura de if()…; [else] Igual
selección switch{...}
17 Estructura de do{...} while(...); Igual
repetición while(...){….}
for(…; …; ...){...}
18 Arreglos int nn[3]; int nn[ ] = new int[3]; // inicia los elementos en 0
int nn[ ] = {1, 2, 3}; int nn[ ] = {1, 2, 3};
int mat[2][3]; int mat[ ][ ] = new int[2][3]; // inicia los elementos en 0
int mat[2][3] = {1, 2, 3, 4, 5, 6}; int [ ][ ] mat[2][3] = {{1, 2, 3}, {4, 5, 6}};
No hay Matriz irregular
int [ ][ ] pascal = { {1}, // fila 0, con 1 sola columna
{1, 1}, // fila 1, con 2 columnas
{1, 2, 1} }; // fila 2, con 3 columnas
19 Números aleatorios [Link](); // Rango: double [0, 1>
#include<cstdlib> import [Link];
#include<ctime>
//semilla
srand(time(NULL)); Random rand = new Random();
rand()%n; // Rango entero: int [0, n-1> [Link](); // Rango: int +-[2-32, 232]
[Link](n); // Rango: int [0, n-1>
[Link](); // Rango: long +-[2-64, 264]
[Link](); // Rango: float [0, 1>
20 Apuntadores int *n; No hay, llama a C++
Maneja apuntadores en modo interno
Llama a funciones en otros lenguajes.
21 Cadena de caracteres char cad[ ] = "Hola amigo"; String cad = "Hola amigo";
int n = strlen(cad); int n = [Link]();
22 Memoria dinámica Si hay No hay, llama a C++
23 Estructuras typedef struct { // tipo de estructura objetos
int var1;
flat var2;
} MiStru;
Ejemplo: Se ha programado en C++ el problema: Se lanza 100 veces una moneda diga el número de caras y sellos que salieron.
Programa en C++ y en Java: Diferencias en rojo
Operación // moneda.c // [Link]
Programa #include<iostream> class Moneda{
#include<ctime>
Editar con int contCara=0, contSello=0; static int contCara=0, contSello=0;
gedit int main(){ public static void main(String[] args ){
srand(time(NULL));
for(int i=0; i<100; i++) for(int i=0; i<100; i++)
if(rand()%2) contCara++; if([Link]()<.5) contCara++;
else contSello++; else contSello++;
printf("Caras : %d\n", contCara); [Link]("Caras : %d\n", contCara);
printf("Sellos: %d\n", contSello); [Link]("Sellos : %d\n", contSello);
} }
}
Compilar c++ moneda.c javac [Link] → [Link]
Ejecutar ./[Link] java Moneda
Salida Caras : 48
Sellos: 52
Problemas
1. Se tiene el programa 1.c programado en C++, el cual resuelve el problema: Retirar dinero de
un cajero automático, que le dispensará billetes de 200, 100, 50, 20, 10, moneda de 5 y soles.
Si retirá 387, su salida en el monitor será:
Ingrese el monto a retirar: 287
Usted recibirá:
1 billete de 200 soles
1 billete de 50 soles
1 billete de 20 soles
1 billete de 10 soles
1 moneda de 5 soles
2 soles.
Conviértalo a Java.
2. Se tiene el programa 2.c en C++ que lee dos enteros m > 0 y n > 0, y presenta el menú:
Operación que requiere:
1) Sumar: m + n
2) Restar: m – n
3) Multiplicar: m * n
4) Dividir: m/n
5) Salir
Elija su opción: _
Ejecute la opción seleccionada, repita el proceso y salga (termine) con la opción 5.
Conviértalo a Java.