Diagrama de nodos y apuntadores en una lista simplemente enlazada
← RECURSOS

Estructuras de Datos Lineales: Arreglos, Matrices y Listas Enlazadas

Gestión contigua y enlazada en memoria: arreglos estáticos, matrices multidimensionales y listas simplemente enlazadas con apuntadores.

📌 En síntesis: Gestión contigua y enlazada en memoria: arreglos estáticos, matrices multidimensionales y listas simplemente enlazadas con apuntadores.

Guía técnica desarrollada por el equipo de Proyecto Luna para formación profesional y consulta técnica abierta.


En el desarrollo de software, los lenguajes de programación proporcionan un conjunto de reglas y elementos que permiten construir soluciones lógicas a problemas de baja, mediana y alta complejidad. Este apunte introduce los elementos fundamentales de dichos lenguajes, comenzando por las variables, tipos de datos y operadores, y avanzando hacia estructuras clave de control como las sentencias de decisión e iteración. Estas estructuras son esenciales para representar la lógica de decisiones y la repetición de tareas, lo cual constituye la base del pensamiento algorítmico. El dominio de estos conceptos es imprescindible para abordar ejercicios prácticos y desarrollar programas que respondan eficientemente a distintas situaciones del mundo real. Durante esta semana se abordarán las estructuras fundamentales que permiten a los programas tomar decisiones y repetir instrucciones de forma automática. Estas capacidades permiten resolver problemas complejos, desde aplicaciones simples hasta sistemas automatizados. Nos centraremos en comprender el uso de sentencias condicionales como if, elif y else, junto con los bucles for y while, aplicándolos en contextos reales mediante el lenguaje de programación Python. Además, exploraremos los elementos del lenguaje como variables, operadores y expresiones base para una programación clara y efectiva.


🚀 Introducción


📌 Elementos del lenguaje de programación

1.1. Declaración de variables Una variable es un espacio de memoria con un nombre simbólico que almacena un valor que puede cambiar durante la ejecución del programa. Por ejemplo, si queremos guardar la edad de una persona, podríamos usar una variable llamada edad y asignarle el valor 25. Si queremos guardar su nombre, podríamos usar otra variable llamada nombre y darle el valor “Camila”. En Python, esto se escribe así: 1.2. Tipos de datos Los lenguajes de programación manejan distintos tipos de datos para representar información: La primera guarda un número y la segunda guarda un texto. Usar nombres claros y descriptivos (que son los identificadores) para las variables es muy importante porque hace que el código sea más fácil de leer y entender, tanto para quien lo escribe como para otras personas que lo revisen después. Cada tipo cumple una función específica y es crucial seleccionarlos adecuadamente para optimizar el uso de recursos y garantizar resultados correctos.

Figura 1. Ejemplo de declaración de variables en Python Figura 1. Ejemplo de declaración de variables en Python

Enteros (int): números enteros.

Reales o flotantes (float): números con decimales.

Cadenas de texto (str): secuencias de caracteres.

Booleanos (bool): valores lógicos (True, False).

1.3. Operación de asignación La asignación consiste en vincular un valor a una variable mediante el operador cuyo símbolo es “=”. Por ejemplo, al escribir: 1.4. Tipos de operadores Los operadores definen cómo se manipulan los datos y los tipos que existen son: Estamos indicando que la variable llamada precio almacena el valor numérico 1000, lo cual podría representar, por ejemplo, el costo de un producto en una tienda. Esta acción se conoce como operación de asignación, y es esencial porque permite que un programa recuerde información, la utilice más adelante y también la actualice si es necesario. La operación de asignación funciona de derecha a izquierda, es decir, toma el valor literal (Ej.: 1000) y lo almacena en la variable del lado izquierdo del operador (Ej.: precio). La única regla que se debe respetar es que el valor a guardar sea compatible con el tipo de dato que la variable recibe. Gracias a operaciones como esta, los algoritmos pueden realizar cálculos, tomar decisiones y trabajar con datos que cambian con el tiempo, lo cual es fundamental en cualquier sistema informático.

Figura 2. Asignación de valor a una variable Figura 2. Asignación de valor a una variable

Aritméticos: +, -, *, /, %

1.5. Literales Los literales son valores constantes escritos directamente en el código: 3.14, “Hola”, True. No cambian durante la ejecución y permiten inicializar variables o realizar cálculos directos. Por ejemplo, cuando escribimos nombre = “Hola”, el texto “Hola” es un literal de tipo cadena, y cuando escribimos pi = 3.14, estamos usando un literal numérico con decimal, para representar el valor de pi. 1.6. Expresiones Una expresión combina variables, operadores y literales para producir un valor. Por ejemplo, en la línea: descuento = precio * 0.1 Se está utilizando una variable (precio), un operador aritmético (*) y un literal (0.1) para calcular el valor del descuento. Las expresiones son fundamentales en programación, ya que permiten procesar información, realizar operaciones matemáticas y tomar decisiones dentro del flujo del programa. Se utilizan para hacer operaciones matemáticas básicas como sumar, restar, multiplicar, dividir o calcular el residuo de una división.

Relacionales: ==, !=, >, <, >=, <= Permiten comparar valores entre sí; por ejemplo, verificar si dos números son iguales, si uno es mayor que otro o si son diferentes.

Lógicos: and, or, not Estos operadores resultan esenciales cuando queremos que un programa ejecute ciertas acciones solo si se cumplen una o varias condiciones específicas.

🔹 Concepto

Declaración de variables Proceso mediante el cual se asigna un nombre a un valor. nombre = “Ana” x = 10 10, “Hola”, True Tipos de datos Clasificación de los valores que puede contener una variable. int: 5 float: 3.14 str: “Hola” bool: True Expresiones Combinaciones de variables, operadores y/o literales que producen un nuevo valor. descuento = precio * 0.1 Literales Valores constantes escritos directamente en el código. Tipos de operadores Determinan cómo se manipulan los datos. Aritméticos: +, -, *, /, % Relacionales: ==, !=, >, <, >=, <= Lógicos: and, or, not Operación de asignación Usa el operador “=” para almacenar un valor en una variable. Definición Ejemplo Tabla 1. Cuadro resumen de los elementos del lenguaje de programación en Python Fuente: OpenAI (2023)

2.1. if / else La asignación consiste en vincular un valor a una variable mediante el operador cuyo símbolo es “=”. Por ejemplo, al escribir:


📌 Sentencias de decisión

Una sentencia de decisión, en términos generales, es una estructura en un lenguaje de programación que permite tomar decisiones basadas en ciertas condiciones. Estas condiciones pueden ser simples o complejas, y dependiendo de si se cumplen o no, se ejecutará un conjunto específico de instrucciones. En la Figura 3 detallamos las principales diferencias entre las sentencias de decisión del lenguaje de programación Python: if / else y de if / elif / else.

Figura 3. Comparación entre if / else y if / elif / else para la evaluación de Figura 3. Comparación entre if / else y if / elif / else para la evaluación de

condiciones simples y múltiples Fuente: OpenAI (2023)

2.2. if / elif / else Permite evaluar múltiples condiciones. Se ejecuta la primera condición verdadera. Por ejemplo: Si se desea asignar descuentos según la edad, podríamos tener el siguiente código: si la edad es menor de 18, se otorga un “Descuento 10 %”; si la edad es igual o mayor a 60, se aplica un “Descuento 20 %”; y si no se cumple ninguna de estas condiciones, simplemente se muestra “Sin descuento”. Con esta estructura, el programa puede tomar decisiones más complejas y precisas, lo que resulta fundamental para desarrollar algoritmos funcionales y realistas.

Figura 4. Ejemplo de estructura if / else en Python Figura 4. Ejemplo de estructura if / else en Python

Figura 5. Ejemplo de estructura if / elif / else en Python Figura 5. Ejemplo de estructura if / elif / else en Python


📌 Sentencias de iteración

Una sentencia de iteración en Python es una estructura de control que permite repetir un bloque de código varias veces, con cada repetición ejecutando el bloque con diferentes valores. En Python, las principales sentencias de iteración son for y while. En la Figura 6 destacamos las principales diferencias entre while y for.

Figura 6. Comparación entre while y for Figura 6. Comparación entre while y for

3.1. Bucle while La estructura while ejecuta un bloque de código mientras una condición sea verdadera. Es ideal cuando no se conoce de antemano cuántas veces debe repetirse la acción. Por ejemplo, en el siguiente código:

Se utiliza un bucle while para pedir al usuario que ingrese nombres, repitiendo la acción mientras la respuesta sea “sí”. La variable respuesta se inicializa con el valor “sí”, y mientras se mantenga ese valor, el programa solicita un nombre con input (“Ingrese su nombre: “) y luego vuelve a preguntar si desea ingresar otro usuario. Si la persona responde nuevamente “sí”, el ciclo continúa; si responde cualquier otra cosa, el ciclo termina. Esta estructura permite automatizar repeticiones de forma flexible y controlada, adaptándose a la voluntad del usuario. Se utiliza un bucle for para imprimir cinco turnos numerados. La instrucción for i in range(5): indica que la variable i tomará los valores del 0 al 4, uno por uno, y por cada valor se ejecutará la instrucción print(f“Turno {i+1}”). Esto imprimirá en pantalla “Turno 1”, “Turno 2”, y así hasta “Turno 5”. Se suma 1 al valor de i porque range(5) comienza desde 0, pero en este caso se desea que los turnos empiecen desde 1. Gracias a esta estructura, el código se vuelve más compacto, legible y eficiente, ya que no es necesario escribir manualmente cada instrucción repetida.

Figura 7. Ejemplo de bucle while en Python Figura 7. Ejemplo de bucle while en Python

3.2. Bucle for La estructura for permite recorrer una secuencia de valores. Es especialmente útil para iterar sobre listas o rangos numéricos. Por ejemplo, en el código mostrado a continuación:

Figura 7. Ejemplo de bucle for en Python Figura 7. Ejemplo de bucle for en Python

4.1. Implementación en Python En este ejemplo se muestra un programa completo que integra múltiples conceptos fundamentales de la programación estructurada y orientada a objetos en Python. Se pueden ingresar múltiples usuarios.


🛠️ Caso de estudio: descuento por edad y membresía

Se debe calcular el descuento de una persona con base en su edad y si posee membresía activa. Reglas de negocio:

Edad < 18: 10 %

Edad ≥ 60: 20 %

Membresía activa: +5 %

Figura 8. Ejemplo completo de clase, métodos y bucles en Python Figura 8. Ejemplo completo de clase, métodos y bucles en Python (Fuente: OpenAI (2023))

A continuación, se encuentra el código paso a paso para que lo puedan probar en su computador: class Usuario: #define la clase Usuario def init(self, nombre, edad, tiene_membresia): self.nombre = nombre self.edad = edad self.tiene_membresia = tiene_membresia def calcular_descuento(self): descuento = 0 if self.edad < 18: descuento = 10 elif self.edad >= 60: descuento = 20 if self.tiene_membresia: descuento += 5 return descuento def imprimir(self): print(f”{self.nombre} tiene un descuento total de {self.calcular_descuento()}%“) # Bucle de ingreso while True: nombre = input(“Nombre: “) edad = int(input(“Edad: “)) membresia = input(”¿Tiene membresía activa? (sí/no): “).lower() == “sí” usuario = Usuario(nombre, edad, membresia) usuario.imprimir() seguir = input(“¿Desea ingresar otro usuario? (sí/no): “).lower() if seguir != “sí”: break

Durante esta semana, los y las estudiantes han comprendido y aplicado estructuras fundamentales del pensamiento computacional: la toma de decisiones y la repetición de instrucciones. Estas estructuras les permiten desarrollar soluciones más automatizadas y eficientes. Conocer los elementos del lenguaje, las sentencias condicionales y los bucles permite formular soluciones computacionales adaptadas a diversos contextos y necesidades. El caso práctico sirvió para conectar la lógica con necesidades reales, mientras que el uso de clases afianza la comprensión de los objetos en programación. Las actitudes de eficiencia y respeto se evidencian en el trabajo colaborativo y cuidado del código. Dominar estos conceptos no solo habilita la resolución de problemas prácticos, sino que también estimula el pensamiento lógico, una competencia transversal altamente valorada en el ámbito profesional.


💡 Conclusión



🚀 Potencia tus proyectos tecnológicos con Proyecto Luna

En Proyecto Luna desarrollamos arquitectura de software de alto rendimiento, optimización de bases de datos críticas y soluciones aplicadas de inteligencia artificial y automatización para empresas y profesionales.

  • 💼 Soluciones de ingeniería: Conoce nuestras capacidades y casos de estudio en proyectoluna.com/work/.
  • 🛡️ Seguridad y auditoría: Orientación técnica y respuesta ante incidentes en ¿Te han hackeado?.
  • 📩 Contacto directo: Escríbenos a través de nuestro formulario de contacto o a contacto@proyectoluna.com.

📚 Fuentes y lecturas recomendadas

Chazallet, M. (2020). Programación orientada a objetos en Python. Ediciones Informáticas. https://www-eni-training-com.santotomas.idm.oclc.org/portal/client/mediabook/ho me

Marzal, M., y García, R. (2011). . Pearson. https://elibro.net/es/lc/santotomas/titulos/51760

OpenAI. (2023). ChatGPT (Mar 14 version) [Modelo de lenguaje modelado]. https://chat.openai.com/chat.

Python Software Foundation. (2023). The Python Language Reference. https://docs.python.org

CONTINÚA EXPLORANDO

ARTÍCULOS SUGERIDOS

Dilema ético en la toma de decisiones tecnológicas e informáticasInformática

Actos Humanos, Libertad y Dilemas Éticos en la Tecnología

Análisis de decisiones éticas: actos del hombre vs actos humanos voluntarios, consentimiento, privacidad de datos y dilemas en algoritmos de IA.

Representación conceptual de la dignidad de la persona y la ética del trabajoInformática

Dignidad de la Persona, Ética de las Virtudes y Excelencia Profesional

La persona como centro de la actividad técnica: dignidad intrínseca, virtudes cardinales y búsqueda de la excelencia en el ejercicio del trabajo.

Representación simbólica de la balanza de la justicia y la éticaInformática

Fundamentos de la Ética: Moral, Leyes y Responsabilidad Social

Distinción conceptual entre ética y moral: el origen de las normas de convivencia, relación con el ordenamiento jurídico y responsabilidad ciudadana.

VER TODOS LOS RECURSOS →

HABLEMOS DE TU CASO

¿Necesitas ayuda? Contáctanos y te contestamos!

SERVICIOS →