Convirtiendo codigo C/C++ a Python
¡No existe el “Mejor” lenguaje de programación!
Puesto que siempre dependerá del uso que le quieras dar, o mas bien para que lo quieras usar.
Sin duda C++ es un lenguaje bastante completo y el cual se transforma con el paso del tiempo (Por cierto, en abril de este año se lanzó C++20). Con C++ puedes programar microchips, GUIs con ayuda de MFC o Qt y es especialmente bueno para ejecutarse en sistemas de manera independiente sin ayuda de un intérprete (lo cual no es el caso con Python). Pero no te ayudara mucho si quieres programar la lógica de una página web y te dará dolores de cabeza si necesitas programar algún proyecto que necesite de bastantes bibliotecas y no tienes practica compilándolas y adhiriéndolas al proyecto.
Es este ultimo punto un bonus en Python, en el puedes importar módulos de una manera extremadamente rápida y con ello usar código de terceros bastante fácil en tu programa, con ello te ahorras el tiempo y los problemillas de compilar bibliotecas aparte a comparación de C++.
Python necesita de un interprete y puede llegar a ser un poco mas lento en tiempo de ejecución a comparación con C++, pero el programar en Python, debido a su flexibilidad es algo placentero.
Pese a ser los dos lenguajes muy diferentes (su sintaxis bastante, ya lo veras…), comparten en común las paradojas de la programación orientada a objetos, y en tanto uno como el otro, también se puede programar de manera procedural (ósea con solo funciones, sin necesidad de clases).
A continuación, te mostraremos un ejemplo de un código en C++, el cual vamos a convertir en código Python.
Algoritmo en el lenguaje C++
Este ejemplo es la consulta de un seguidor nuestro en la página de ElCodigoBlanco en Facebook.
Queremos
convertir este código en C++
a código en Python
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include<stdio.h> int main(int n, char **args) { printf("FCFS: FIRST COME FIRST SERVERED"); int np=11, procesos[10]; double tf = 0, tp;// tiempo promedio. while (np > 10 || np <= 0) { printf("\nNumero de procesos: "); scanf("%d", &np); } for(int i=1; i <= np; i++) { printf("\nInserte el proceso %d :", i); scanf("%d", &procesos[i-1]); } for(int i=1; i <= np; i++) { tf += procesos[i]; tp = tp + tf; printf("\nProceso %d, concluye en %2.1f", i, tf); } printf("\n——————————-"); printf("\nLa suma de los procesos %2.1f", tp); tp = tp / np; printf("\n\nTiempo promedio en FCFS fue de: %2.2f:", tp); return 0; } |
Para ello tenemos que tratar de entender el Código y ver que estructuras de datos se usan en él.
Tenemos:
-
Include
: Incluimos la bibliotecastdio.h
- Funcion
main()
-
Array
deint
s - Funcion
printf()
para imprimir valores en la consola - Funcion
scanf
para aceptar inputs del usuario. - Loops
For
ywhile
- Operadores
=
,<=
,++
,<
,[ ]
,{ }
,( )
,%
,/
Traduciendo el código
C++ | Python |
---|---|
#Include<...> | No existen, en cambio se imporan modulos usando import |
int main( ){ ... return 0; } | La construccion equivalente seria :if __name__ == "__main__": |
Array | No hay implementacion de Arrays estaticas, mejor aun estan las listas dinamicas que se definen:lista = [ ] |
printf( ) / std::cout << | print( ) |
scanf( ) / std::cin >> | n = input() por defecto se guardara como string |
For(...){ ... }; / while (...) { ... }; | for i in range(1,...n): |
= , <= , ++ , < , [ ] , { } , ( ) , % , / | = , <= , ++ , < , [ ] , { } (para diccionarios solamente) , ( ) , / |
Algoritmo en el lenguaje Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | def code(): print("FCFS: FIRST COME FIRST SERVERED") np=11 procesos =[] tf = 0 tp = 0 # tiempo promedio. while (np > 10 or np <= 0): print("\nNumero de procesos: ") np = int(input()) print(np) for i in range(np): print("\nInserte el proceso :", i) procesos.append(int(input())) for i in range(np): tf += procesos[i] tp = tp + tf print("\nProceso", i+1,"concluye en ", tf) print("\n——————————-") print("\nLa suma de los procesos ", tp) tp = tp / np print("\n\nTiempo promedio en FCFS fue de:", tp) if __name__ == "__main__": code() |
¿Te ha gustado el desarrollo de este ejercicio?
¿Quisieras más publicaciones como esta?
¡Coméntanos tus dudas y dinos que podríamos haber hecho mejor!, tal vez tengas una solución más sencilla a este ejercicio, ¡enséñanosla!
Por cierto, ¿aun no estas registrado en Thewhitecode.com?, crea ahora tu perfil y no te pierdas de nada!
Un Abrazo!
Master
https://thewhitecode.com/