Está en la página 1de 8

1

INVESTIGACION DE ALGORITMOS
Trabajo de informática
(marzo de 2024)

Cristian Truque Cordoba

Resumen – Los algoritmos permiten automatizar tareas, tomar A) Características de un algoritmo


decisiones basadas en datos y mejorar el rendimiento de los
sistemas. Además, son la base para el desarrollo de software y
aplicaciones que utilizamos en nuestra vida diaria. Son Asimismo, los algoritmos presentan una serie de características
fundamentales para resolver problemas de manera eficiente y comunes [2]. Son:
optimizar procesos en diferentes áreas, como la ciencia, la
ingeniería, las finanzas y la inteligencia artificial. Por medio de esta • Precisos: Objetivos, sin ambigüedad.
investigación se busca informar sobre los diferentes temas que • Ordenados: Presentan una secuencia clara y precisa
tratan los algoritmos, definiéndolos, detallando y dando ejemplos
para poder llegar a la solución.
de cada uno para un mayor entendimiento sobre el tema.
• Finitos: Contienen un número determinado de pasos.
• Concretos: Ofrecen una solución determinada para la
situación o problema planteados.
Palabras claves – Algoritmo, programación, lenguajes,
diagramas. • Definidos: El mismo algoritmo debe dar el mismo
resultado al recibir la misma entrada.

I. INTRODUCCIÓN B) Partes de un algoritmo

1. Input (entrada): Información que damos al algoritmo


En el mundo de la programación y la informática, existen con la que va a trabajar para ofrecer la solución
conceptos fundamentales que sirven como componentes básicos esperada.
para comprender y desarrollar software de manera eficaz.
Mientras tanto, los lenguajes de programación son las 2. Proceso: Conjunto de pasos para que, a partir de los
herramientas que utilizan los desarrolladores para comunicarse datos de entrada, llegue a la solución de la situación.
con las computadoras y crear software. Finalmente, existen
lenguajes orientados a objetos, que se basan en la creación de
3. Output (Salida): Resultados, a partir de la
objetos que encapsulan datos y funciones relacionadas,
transformación de los valores de entrada durante el
promoviendo la reutilización de código y la representación de
proceso.
conceptos del mundo real en software. Es por esto que mediante
esta investigación trataremos cada uno de estos temas,
De este modo, un algoritmo informático parte de un estado
suministrando de esta manera un vistazo acerca de los
inicial y de unos valores de entrada, sigue una serie de pasos
fundamentos teóricos que todo programador y desarrollador
sucesivos y llega a un estado final en el que ha obtenido una
debe comprender y dominar.
solución [3].
II. ALGORITMOS
C) Tipos de algoritmos

Un algoritmo es en realidad un procedimiento por etapas. Es


un conjunto de reglas que hay que seguir para realizar una tarea ✓ Divide y vencerás
o resolver un problema. En el campo de la programación
informática, los algoritmos son conjuntos de reglas que indican Permiten dividir un problema en varios subproblemas del
al ordenador cómo ejecutar una tarea. En realidad, un programa mismo tipo. Estos problemas más pequeños se resuelven y sus
informático es un algoritmo que indica al ordenador qué pasos soluciones se combinan para resolver el problema original.
debe realizar y en qué orden para llevar a cabo una tarea
específica. Se escriben utilizando un lenguaje de programación
[1].
2

✓ Fuerza bruta

Probar todas las soluciones posibles hasta encontrar la mejor.


Un algoritmo aleatorio utiliza un número aleatorio al menos una
vez durante el cálculo para encontrar la solución del problema.

✓ Voraz

Encuentra la solución óptima localmente, con el objetivo de


encontrar una solución óptima para el problema global. Un
algoritmo recursivo resuelve la versión más simple de un
problema y luego resuelve versiones cada vez más grandes hasta Fig 2. Funcionamiento del algoritmo de Netflix.
encontrar la solución del problema original.

✓ Vuelta atrás
III. DIAGRAMA DE FLUJO EN PROGRAMACIÓN
Divide el problema en subproblemas que se pueden intentar
resolver uno tras otro. Si no se encuentra la solución, basta con Un diagrama de flujo es un dibujo que representa un proceso
retroceder en el problema hasta encontrar la manera de seguir detallando sus tareas y decisiones. Su finalidad es expresar de
avanzando. manera simple y visual lo que ocurre en un proceso o en un
programa, de manera que sea fácil de comprender.
✓ Programación directa
Los diagramas de flujo se pueden presentar al programador para
Permite descomponer un problema complejo en un conjunto de que éste comprenda mejor lo que el cliente quiere realizar.
subproblemas más sencillos. Todos estos subproblemas se Posteriormente el programador desarrolla el programa
resuelven una vez, y su solución se almacena para su uso futuro. basándose en los diagramas de flujo.
Esto evita tener que volver a calcular sus soluciones [1].
También se dibujan diagramas de flujo para documentar un
D) Ejemplos: programa de ordenador una vez terminado, para comunicar lo
que hace el programa de una manera visual y comprensible.
1. Edgerank
Los diagramas de flujo no se limitan a representar el
Edgerank es el nombre del algoritmo de Facebook y se encarga funcionamiento de los programas, también pueden informarnos
de determinar qué publicaciones ves cada vez que accedes a la de las tareas que debemos realizar en una situación determinada
red social, mostrándote aquellas que Edgerank cree que pueden [4].
ser de tu interés (Fig 1).

A) Símbolos del diagrama de flujo

Principalmente, un diagrama de flujos está formado por


diferentes elementos que nos permiten dar forma a la idea del
algoritmo (Fig 3) [5] :

Fig 1. Funcionamiento de Edgerank Fig 3. Símbolos del diagrama de flujo.

2. Netflix
• Línea de flujo: La línea de flujo muestra la dirección
del proceso y conecta a dos bloques entre sí.
El algoritmo de Netflix registra las búsquedas que se realizan de
todos los contenidos disponibles y con esto, conocen los
• Terminador o terminal: El terminador o terminal
intereses del usuario. Se registran incluso los días de la semana
representa los puntos de inicio o fin del proceso de un
en los que más se consumen productos de la plataforma o las
diagrama de flujo.
horas que se invierten en visionado (Fig 2).
3

• Proceso: El símbolo del proceso es el componente más • Símbolo de unión de invocación: Este símbolo se usa
común de un diagrama de flujo e indica un paso del para converger diversas ramas en un solo proceso.
proceso.
• Operación manual: Simboliza a una operación o ajuste
• Comentario o anotación: Puedes mencionar manual del proceso.
información extra acerca de un paso con un comentario
o anotación. • Conector (con otra página): Este símbolo se usa para
conectar otros dos símbolos que están en diferentes
páginas.

• Conector (en esta página): Con este punto se pueden


conectar dos símbolos y reemplazar líneas largas para
Fig 4.Simbolos del diagrama de flujo. simplificar el diagrama de flujo.

• Entrada/salida: El símbolo de entrada/salida


representa el proceso de incorporación o extracción de
datos externos.

• Decisión: Este símbolo representa a una decisión que Fig 7. Símbolos del diagrama de flujo.
tu equipo o tú deben tomar para pasar al paso siguiente
del proceso. Por lo común, se trata de una decisión del
estilo “verdadero o falso” o de una pregunta que se • Preparación o inicialización: Este símbolo indica un
responde por sí o por no. paso de preparación o inicialización en el proceso.

• Datos almacenados: Simboliza a un archivo o base de • Proceso alternativo: Las líneas de este símbolo, por lo
datos. general, son líneas de puntos. El símbolo en sí mismo
indica una alternativa al paso normal del proceso en
• Símbolo “o”: Indica que el flujo del proceso continúa caso de ser necesaria.
en tres o más ramas.
• Proceso predeterminado: Este símbolo señala un
proceso que ya ha sido determinado en algún otro
lugar.

• Múltiples documentos: Simboliza a


Fig 5. Símbolos del diagrama de flujo. muchos documentos.

• Entrada manual: Este símbolo representa a los datos o


la información que se debe ingresar manualmente al B) Tipos de diagramas de flujo
sistema.
✓ Flujogramas de decisiones
• Exposición: Indica un paso en el que se expone
información importante. Empleados a la hora de determinar, justificar y analizar los
cambios en una estructura, equipo de trabajo, desarrollo de
• Documento: Este símbolo representa a un solo tareas, decisiones, entre otros, y sus consecuencias.
documento.
✓ Diagramas de flujo lógicos
• Retraso: Con este símbolo puedes planificar y
representar cualquier período de demora que será parte
Con los cuales se identifica un problema y se indica el modo de
del proceso.
solucionarlo.

✓ Flujograma de trabajo

Se presentan las decisiones que una organización o grupo de


personas toman a la hora de realizar alguna labor específica o
Fig 6. Símbolos del diagrama de flujo.
proyecto. Este tipo de diagramas son empleados ampliamente
en la gestión de proyectos para indicar y organizar el personal a
4

cargo, las labores específicas y las herramientas con las que la IV. COMPLICAR EN PROGRAMACIÓN
empresa cuenta para ejecutar cualquier actividad identificada.
La tarea de compilar se refiere al proceso de traducción del
✓ Diagramas de flujo de producto código fuente, entendiéndose por código fuente las líneas de
código que se han escrito en un lenguaje de programación, en
Funcionales durante el proceso de creación de un producto. este caso un lenguaje de programación de alto nivel. Por
ejemplo: C, Pascal, C++.
✓ Flujograma de proceso
Los compiladores son los programas encargados de hacer la
Con los cuales se muestran los resultados de un producto creado. traducción del código fuente de un programa, creado mediante
un lenguaje de programación, a lenguaje de máquina o código
✓ Diagrama de flujo de sistema objeto, el único tipo de lenguaje que entienden los procesadores
de las computadoras [8].
Esenciales para la programación web. Este tipo de flujogramas
se emplean durante las primeras etapas de construcción de
algoritmos, ayudando a describir la interacción y respuesta de
los programas computacionales, comunicativos, virtuales,
etcétera.

✓ Flujogramas de casos de usos

Se relacionan a la interacción de un cliente con una empresa.


Aquí se tienen en cuenta las decisiones y objetivos que dichos
clientes tienen, así como también se contemplan las posibles Fig 5. Partes de un compilador
acciones y/o posibles consecuencias [6].

C) Ejemplos: Los compiladores básicamente se dividen en dos partes, siendo


la primera de ellas el “Front End”, y que es la parte del
1. Diagrama de Flujo para sumar dos números leídos por compilador encargada de analizar y comprobar la validez del
teclado y escribir el resultado (Fig 8) [7]. código fuente y en base a ella crear los valores de la tabla de
símbolos. Esta parte generalmente es independiente del sistema
operativo para el cual se está compilando un programa (Fig 5).

La segunda parte del compilador es la llamada “Back End”,


parte en la cual es generado el código máquina, el cual es creado,
de acuerdo a lo analizado en el “Front End”, para una plataforma
específica, que puede ser Windows, Mac, Linux o cualquier otra
(Fig 5).

Fig 8. Diagrama de flujo sumar dos números leídos por teclado y escribir A) Fases de un compilador
el resultado.

• Análisis Léxico: El compilador divide el código fuente


2. Diagrama de flujo para calcular la hipotenusa de un en una serie de tokens o símbolos que representan las
triángulo rectángulo, conocidos sus dos catetos (Fig palabras clave, identificadores, operadores y otros
9) [7]. elementos del lenguaje de programación.

• Sintaxis Análisis: El compilador verifica la estructura


del código fuente y su conformidad con la gramática
del lenguaje de programación.

• Análisis semántico: Este verifica que las instrucciones


del programa sean semánticamente correctas y
coherentes, y realiza verificaciones como la asignación
de tipos y la resolución de nombres.

Fig 9. Diagrama de flujo para calcular la hipotenusa.


5

• Generación de código intermedio: Este representa el programa de computadora consiste en una cadena de estas
programa de manera más abstracta y se puede instrucciones de lenguaje de máquina (más los datos).
optimizar antes de generar el código objeto. Normalmente estas instrucciones son ejecutadas en secuencia,
con eventuales cambios de flujo causados por el propio
• Optimización de código: Puede realizar una serie de programa o eventos externos.
optimizaciones en el código intermedio o en el código
objeto para mejorar su eficiencia, como la eliminación • Lenguaje de bajo nivel
de código redundante o la reorganización de las Un lenguaje de programación de bajo nivel es el que
instrucciones para minimizar la cantidad de ciclos de proporciona poca o ninguna abstracción del microprocesador de
procesador requeridos. una computadora. Consecuentemente, su trasladado al lenguaje
máquina es fácil. El término ensamblador se refiere a un tipo de
• Generación de código: El compilador finalmente programa informático encargado de traducir un archivo fuente,
genera el código objeto que se puede ejecutar en la escrito en un lenguaje ensamblador, a un archivo objeto que
computadora. contiene código máquina ejecutable directamente por la
máquina para la que se ha generado.
• Vinculación y carga: Si el programa utiliza bibliotecas
externas, el compilador puede vincularlas al código • Lenguaje de alto nivel
objeto generado y generar un archivo ejecutable que se
carga en la memoria de la computadora para su Los lenguajes de programación de alto nivel se caracterizan
ejecución [9]. porque su estructura semántica es muy similar a la forma como
escriben los humanos, lo que permite codificar los algoritmos
B) Ejemplos de manera más natural, en lugar de codificarlos en el lenguaje
binario de las máquinas, o a nivel de lenguaje ensamblador [11].
1. Single pass compilers (de una sola pasada)
B) Ejemplos
Este tipo de compiladores ofrecen la posibilidad de generar
código máquina con una sola lectura del código fuente. 1. PHYTHON

2. JIT (Just In Time) Este es un lenguaje de programación de código abierto muy


versátil. Es muy utilizado para la IA y el Big Data. Se caracteriza
Tipo de compilador que permite compilar un código en tiempo por ser un lenguaje fácilmente legible y sencillo. Además,
real cuando sea necesario. cuenta con una curva de aprendizaje muy corta si lo
comparamos con otros lenguajes de programación. Asimismo,
V. LENGUAJES DE PROGRAMACIÓN Python también puede utilizarse en prácticamente cualquier
sistema operativo (Fig 6). [12]
Un lenguaje de programación es un idioma utilizado por
desarrolladores y programadores que permite transformar una
serie de comandos e instrucciones escritas en datos y actividades
específicas.

Un lenguaje de programación se utiliza principalmente para


desarrollar aplicaciones de sobremesa, sitios web, aplicaciones
móviles, programas y plataformas empresariales. Por tanto,
mediante la escritura de estos códigos podemos convertir
nuestras ideas en un código máquina que puede ser «leído» por Fig 6. Logo de PHYTHON.
los distintos tipos de computadoras. En otras palabras, los
lenguajes de programación se usan para dar instrucciones a un 2. JAVASCRIPT
ordenador indicándole qué hacer y cómo hacerlo [10].
Javascript se trata de un lenguaje de programación muy utilizado
A) Tipos de lenguaje de programación en la programación web del lado del cliente. Es muy práctico y
es capaz de ser ejecutado desde cualquier navegador, lo que lo
• Lenguaje de máquina convierte en el lenguaje más usado de Internet. Javascript es
multiplataforma y está dirigido a objetos y eventos. Además, al
Este lenguaje se compone de un conjunto de instrucciones que ser interpretado, no necesita compilarse (Fig 7) [12].
determinan acciones que serán realizadas por la máquina. Y un
6

Fig 7. Logo de JAVASCRIPT.

VI. LENGUAJES DE PROGRAMACION


ESTRUCTARADOS Fig 9. Ejemplo LENGUAJE DBASE.

VII. LENGUAJES DE PROGRAMACION POR


Un lenguaje de programación estructurado es aquellos que
PROCEDIMIENTOS.
facilitan o impone prácticas de programación de forma modular,
promoviendo la división de un programa de aplicación en una
jerarquía de módulos o elementos independientes que, a su vez, Un lenguaje de programación por procedimiento es un tipo de
puede contener otros elementos comunes, los lenguajes de lenguaje de programación de computadora que especifica una
programación estructurados constan de una jerarquía estructural serie de pasos y procedimientos bien estructurados dentro de su
que comienza con el proceso principal y se descompone en contexto de programación para componer un programa.
niveles inferiores según dicte la lógica. Estas estructuras Contiene un orden sistemático de declaraciones, funciones y
inferiores son los módulos del programa, que pueden contener comandos para completar una tarea o programa computacional.
tanto llamadas a otros módulos (de nivel inferior) como bloques Este tipo de lenguaje de programación segrega un programa
que representen combinaciones estructuradas de dentro de variables, funciones, declaraciones y operadores
condición/acción. Todo ello puede combinarse en un único condicionales. Se implementan procedimientos o funciones en
módulo o unidad de código, o descomponerse en múltiples los datos y las variables para realizar una tarea. Estos
módulos, residentes en bibliotecas [13]. procedimientos se pueden invocar / invocar en cualquier lugar
entre la jerarquía del programa y también mediante otros
A) Ejemplos procedimientos. Un programa escrito en lenguaje de
procedimiento contiene uno o más procedimientos [16].
1. LENGUAJE C
A) Ejemplos
Es un lenguaje de programación (considerado como uno de los
más importantes en la actualidad) con el cual se desarrollan 1. LENGUAJE FORTRAN
tanto aplicaciones como sistemas operativos a la vez que forma
la base de otros lenguajes más actuales como Java, C++ o C#. Es un lenguaje de programación utilizado principalmente en
(Fig 8) [14]. matemáticas y en aplicaciones de cálculo científico. Los
programas Fortran llaman a funciones que incluyen el prefijo f_,
como puede ver en el ejemplo siguiente. (Fig 10) [17].

Fig 8. Ejemplo LENGUAJE C.

2. LENGUAJE DBASE. Fig 10. Ejemplo LENGUAJE FORTRAN.

Es un sistema de administración de bases de datos de


microcomputadoras (DBMS) que se ejecuta en una plat aforma 2. LENGUAJE ALGOL
Windows. DBase Está diseñado para manipular bases de datos
relacionales. Es un lenguaje versátil de tercera generación con Utiliza bloques de declaraciones entre parentesis y fue el primer
capacidad no procesal. (Fig 9) [15]. lenguaje en emplear los términos BEGIN y END para
delimitarlos. (Fig 11) [18].
7

Fig 12. Ejemplo LENGUAJE RUBY.

2. PYTHON

Es un lenguaje de programación ampliamente utilizado en las


aplicaciones web, el desarrollo de software, la ciencia de datos
y el machine learning (ML).
En Python, se usa la siguiente sintaxis para crear una variable y
Fig 11. Ejemplo LENGUAJE ALGOL.
para asignarle un valor a esa variable: (Fig 13) [21].

VIII. LENGUAJE PROGRAMACION ORIENTADOS A


OBJETOS.
Fig 13. Ejemplo LENGUAJE PYTHON.

Los lenguajes de programación orientadas a objetos son


lenguajes dinámicos en los que estos objetos se pueden crear y IX. CONCLUSIÓN
modificar sobre la marcha. Estos tratan a los programas como
conjuntos de objetos que se ayudan entre ellos para realizar En base a la anterior investigación se puede concluir que los
acciones. Entendiendo como objeto a las entidades que algoritmos y los lenguajes de programación son fundamentales
contienen datos permitiendo que los programas sean más fáciles para el desarrollo de software. Comprender sus fundamentos
de escribir, mantener y reutilizar. Los objetos tienen toda la teóricos detrás de cada concepto permite crear soluciones y
información (atributos) que los diferencia de otros optimizar procesos en diferentes áreas. Además, los algoritmos
pertenecientes a otra clase. Por medio de unos métodos se son la base para el desarrollo de aplicaciones que diariamente se
comunican los objetos de una misma o diferente clase utilizan y son claves para la automatización de tareas basadas en
produciendo el cambio de estado de los objetos. Esto hace que datos. Por otro lado, los lenguajes de programación las
a los objetos se les trate como unidades indivisibles en las que herramientas que utilizan los desarrolladores para crear
no se separan la información ni los métodos usados en su Software, existen diferentes enfoques los cuales con el pasar del
tratamiento. tiempo han ido mejorando como los programadores
estructurados, por procedimientos y orientados a objetos. En
Los lenguajes de programación orientados a objetos tienen su resumen, cada uno de estos conceptos son esenciales para
origen en un lenguaje que fue diseñado por los profesores optimizar procesos y tomar decisiones basadas en datos.
OleJohan Dahl y Kristen Nygaard en Noruega. Este lenguaje de
programación orientado a objetos fue el “Simula 67” que fue un REFERENCIAS
lenguaje creado para hacer simulaciones de naves [19]. [1] Algoritmo : Definición y usos - DataScientest. (2022, June 9). Formation
Data Science | Datascientest.com. https://datascientest.com/es/que-esun-
algoritmo
A) Ejemplos [2] Maluenda, R. (2021, January 21). Qué es un algoritmo informático:
características, tipos y ejemplos. Profile Software Services.
https://profile.es/blog/que-es-un-algoritmo-informatico/ [3]
1. LENGUAJE RUBY Algoritmo. (2020, December 21). Edix España.
https://www.edix.com/es/instituto/que-es-algoritmo/
Ruby es un lenguaje de programación interpretado, reflexivo y
orientado a objetos. Combina la sintaxis inspirada en Python y [4] Diagramas de flujo - Programación - Picuino. (n.d.). Picuino.com.
Retrieved September 8, 2023, from
Perl con características orientadas a objetos similares a
https://www.picuino.com/es/progflowchart.html
Smalltak. (Fig 12) [20].
[5] Asana. (2022, December 7). ¿Qué es un diagrama de flujo y cómo
hacerlo? Asana. https://asana.com/es/resources/what-is-a-flowchart

[6] Conceptos básicos de programación: Tipos de diagramas de flujo. (n.d.).


Gcfglobal.org. Retrieved September 8, 2023, from
8

https://edu.gcfglobal.org/es/conceptos-basicos-de-programacion/tiposde-
diagramas-de-flujo/1/

[7] ejemplos de diagramas de flujo. (n.d.). Retrieved September 8, 2023,


from https://www.areatecnologia.com/informatica/ejemplos-
dediagramas-de-flujo.html

[8] Marker, G. (2017, March 26). ¿Qué es compilar? Tecnologia-facil.com;


Tecnología Fácil. https://tecnologia-facil.com/que-es/que-es-compilar/

[9] Marker, G. (2022, November 12). Lenguajes compiladores: que son?


Ejemplos. Tecnología + Informática; Tecnología+Informatica.
https://www.tecnologia-informatica.com/lenguajes-compiladores-
queson-ejemplos/

[10] Romano, C. (n.d.). Lenguajes de programación: qué son y cómo


funcionan. El Blog de Pixartprinting. Retrieved September 8, 2023, from
https://www.pixartprinting.es/blog/lenguajes-de-programacion/

[11] Monterde, U. M. (n.d.). Lenguajes de Programación. Unam.mx.


Retrieved September 8, 2023, from
https://programas.cuaed.unam.mx/repositorio/moodle/pluginfile.php/102
3/mod_resource/content/1/contenido/index.html

[12] Juan de Assembler Institute. (2022, May 12). ¿Cuántos Lenguajes de


Programación Existen? Assembler Institute.
https://assemblerinstitute.com/blog/cuantos-lenguajes-de-
programacionhay/
[13] Palomares, H. (2023, January 21). Programación estructurada - ¿Qué es?
Hilmer Tecnología Digital.
https://hilmer.vip/2023/01/21/programacionestructurada/
[14] Ejemplos de programas en lenguaje C. (n.d.). Abrirllave.com. Retrieved
September 8, 2023, from https://www.abrirllave.com/c/ejemplos.php
[15] oshcar_banda. (2021, March 12). DBASE (página 2). Monografias.com.
https://www.monografias.com/trabajos11/dbase/dbase2
[16] ¿Qué es un lenguaje de procedimiento? - definición de techopedia. (n.d.).
Icy Science. Retrieved September 8, 2023, from
https://es.theastrologypage.com/procedural-language
[17] Lenguaje FORTRAN. Divulgacion informatica. Rafael Barzanallana.
(n.d.). Www.um.es. Retrieved September 8, 2023, from
https://www.um.es/docencia/barzana/DIVULGACION/INFORMATIC
A/Lenguaje-FORTRAN.html.
[18] ALGOL. (n.d.). EcuLenguajes de programacion orientada a objetos.
(n.d.). Larevistainformatica.com. Retrieved September 8, 2023, from
http://www.larevistainformatica.com/lenguajes-programacion-
orientadaobjetos.htm
[19] red.cu. Retrieved September 8, 2023, from
https://www.ecured.cu/ALGOL
[20] Villa, A. A. (2023, February 21). Qué es Ruby. Profile Software
Services. https://profile.es/blog/que-es-ruby/
[21] Navone, E. C. (2022, February 24). Python ejemplos de código – tutorial
de programación en Python desde cero para principiantes.
freecodecamp.org.
https://www.freecodecamp.org/espanol/news/pythonejemplos-de-codigo-
tutorial-de-programacion-en-python-desde-ceropara-principiantes/

También podría gustarte