lunes, 13 de abril de 2026

EJERCICOS RESUELTOS DE LISTAS TUPLAS Y MATRICES

1. LISTAS – Promedio de materias

Objetivo:

Calcular el promedio de una lista de notas y determinar si el estudiante aprueba o reprueba.

Código:

notas = [3.5, 4.0, 2.8, 3.2, 4.5]

# Calcular promedio
promedio = sum(notas) / len(notas)

print("Promedio:", promedio)

# Verificar si aprueba
if promedio >= 3.5:
print("El estudiante aprueba")
else:
print("El estudiante reprueba")

Explicación:

  • Se crea una lista llamada notas con cinco calificaciones.
  • La función sum(notas) suma todas las notas.
  • La función len(notas) cuenta cuántas notas hay.
  • El promedio se obtiene dividiendo la suma entre la cantidad de notas.
  • Luego se usa una condición para verificar si el promedio es mayor o igual a 3.5.

Resultado esperado:

Promedio: 3.6
El estudiante aprueba

2. TUPLAS Y LISTAS – Registro de estudiantes

Objetivo:

Guardar estudiantes y sus notas usando tuplas dentro de una lista, y determinar quién aprueba o reprueba.

Código:

estudiantes = [
("Ana", 3.5),
("Luis", 2.8),
("Carlos", 4.2)
]

for estudiante in estudiantes:
nombre = estudiante[0]
nota = estudiante[1]

print("Estudiante:", nombre)

if nota >= 3.5:
print("Aprueba")
else:
print("Reprueba")

print()

Explicación:

  • Se crea una lista llamada estudiantes.
  • Cada estudiante se guarda como una tupla con:
    • el nombre
    • la nota
  • Con un ciclo for, se recorre cada estudiante.
  • estudiante[0] obtiene el nombre.
  • estudiante[1] obtiene la nota.
  • Se evalúa si la nota es mayor o igual a 3.5.

Resultado esperado:

Estudiante: Ana
Aprueba

Estudiante: Luis
Reprueba

Estudiante: Carlos
Aprueba

3. MATRICES – Promedio por estudiante

Objetivo:

Calcular el promedio de varios estudiantes usando una matriz, donde cada fila representa las notas de un estudiante.

Código:

notas = [
[3.0, 4.0, 3.5],
[2.5, 3.0, 2.8],
[4.5, 4.0, 4.8]
]

# Recorrer cada estudiante
for i in range(len(notas)):
suma = sum(notas[i])
promedio = suma / len(notas[i])

print("Estudiante", i + 1)
print("Promedio:", promedio)

if promedio >= 3.0:
print("Aprueba")
else:
print("Reprueba")

print()

Explicación:

  • Se crea una matriz, donde cada fila contiene las notas de un estudiante.
  • notas[i] representa las notas del estudiante actual.
  • Se calcula la suma y el promedio de cada fila.
  • Luego se verifica si el promedio es mayor o igual a 3.0.
  • i + 1 se usa para mostrar el número del estudiante comenzando desde 1.

Resultado esperado:

Estudiante 1
Promedio: 3.5
Aprueba

Estudiante 2
Promedio: 2.7666666666666666
Reprueba

Estudiante 3
Promedio: 4.433333333333334
Aprueba

Conclusión

Estos ejercicios permiten comprender cómo usar:

  • Listas para almacenar conjuntos de datos.
  • Tuplas para guardar información fija como nombre y nota.
  • Matrices para manejar múltiples registros de notas.

Además, se refuerzan conceptos como:

  • sum()
  • len()
  • ciclos for
  • estructuras condicionales if

EJERCICIOS EN CLASE (LISTAS -TUPLAS - MATRICES)

 EJERCICIOS EN CLASE (LISTAS -TUPLAS - MATRICES)


Escriba en su cuaderno los siguientes ejercicios, resuelvalos en la plataforma haciendo clic aqui


1. Ejercicio con LISTAS – Promedio de materias

Contexto: Un estudiante tiene varias notas en una materia.

Enunciado:
Crea una lista llamada
notas con 5 calificaciones (números).
Luego:

  • Calcula el promedio de las notas
  • Muestra el promedio en pantalla
  • Indica si el estudiante aprueba (≥ 3.5) o reprueba

Pista: Puedes usar sum() y len()


 2. Ejercicio con TUPLAS y LISTAS – Registro de estudiantes

Contexto: El profesor guarda la información de varios estudiantes.

Enunciado:
Crea una lista llamada
estudiantes que contenga 3 tuplas.
Cada tupla debe tener:

  • Nombre
  • Nota final

Luego:

  • Recorre la lista e imprime:
    • Nombre del estudiante
    • Si aprobó o no (nota ≥ 3.0)

Ejemplo de estructura:

[
  ("Ana", 3.5),
  ("Luis", 2.8),
  ("Carlos", 4.2)
]


3. Ejercicio con MATRICES – Promedio por estudiante

Contexto: Un docente tiene las notas de varios estudiantes en varias materias.

Enunciado:
Crea una matriz donde:

  • Cada fila representa un estudiante
  • Cada columna una materia

Ejemplo (3 estudiantes, 3 materias):

notas = [
  [3.0, 4.0, 3.5],
  [2.5, 3.0, 2.8],
  [4.5, 4.0, 4.8]
]

Luego:

  • Calcula el promedio de cada estudiante (por fila)
  • Imprime el promedio de cada uno
  • Indica quién aprobó (≥ 3.5)

 


miércoles, 25 de marzo de 2026

LISTAS - TUPLAS - VECTORES - MATRICES

 

LISTAS - TUPLAS - VECTORES - MATRICES


1. Las Listas (list)

Las listas son colecciones de elementos ordenadas y mutables (modificables). Son como una caja donde puedes guardar objetos, quitarlos, cambiarlos o añadir nuevos en cualquier momento. Se definen utilizando corchetes [].

  • Características: Pueden contener diferentes tipos de datos (números, textos, otras listas) y su tamaño puede variar durante la ejecución del programa.

Ejemplo:

frutas = ["manzana", "pera", "plátano"]
frutas.append("naranja")  # Añade un elemento
frutas[0] = "fresa"       # Cambia el primer elemento
print(frutas)             # Resultado: ['fresa', 'pera', 'plátano', 'naranja']

2. Las Tuplas (tuple)

Las tuplas son colecciones ordenadas e inmutables. Una vez que creas una tupla, no puedes cambiar sus elementos, ni añadir ni eliminar nada. Se definen utilizando paréntesis ().

  • Características: Son más rápidas que las listas y se usan para proteger datos que no deben cambiar (como coordenadas geográficas o fechas).

Ejemplo:

punto_gps = (10.5, -45.2)
# punto_gps[0] = 12.0  <-- Esto daría error porque no se pueden cambiar
print(punto_gps[0])    # Resultado: 10.5

3. Vectores y Matrices (Listas anidadas)

En Python "puro" (sin librerías externas), los vectores se representan como listas simples, y las matrices se representan como listas de listas.

  • Vector: Una lista de números (ej. [1, 2, 3]).

  • Matriz: Una estructura de filas y columnas. Para acceder a un dato, necesitas dos índices: el de la fila y el de la columna.

Ejemplo de Matriz (2x2):

matriz = [
    [1, 2],  # Fila 0
    [3, 4]   # Fila 1
]
# Para acceder al número 4:
print(matriz[1][1]) # Fila 1, Columna 1

Ejercicios Sencillos

Aquí tienes un ejercicio básico para cada concepto:

Ejercicio de Listas

Crea una lista llamada colores con tres colores. Luego, cambia el segundo color por "amarillo" e imprime la lista completa.

Ejercicio de Tuplas

Crea una tupla llamada persona que contenga un nombre (string) y una edad (número). Imprime solo la edad accediendo a su posición.

Ejercicio de Matrices (Vectores)

Crea una matriz de 2x2 con los números que quieras. Imprime el primer número de la segunda fila.


Soluciones (para que verifiques):

# Lista
colores = ["rojo", "azul", "verde"]
colores[1] = "amarillo"
print(colores)

# Tupla
persona = ("Juan", 25)
print(persona[1])

# Matriz
m = [[10, 20], [30, 40]]
print(m[1][0])

martes, 24 de marzo de 2026

DIFERENTES TIPOS DE CARROS ROBOTICOS EN ARDUINO

 

DIFERENTES TIPOS DE CARROS 

ROBOTICOS EN ARDUINO


1. Robot Seguidor de Línea (Line Follower)

Es el proyecto base de la robótica móvil. El robot debe seguir un camino marcado (generalmente una línea negra sobre fondo blanco) de forma autónoma.

  • Componentes clave: Sensores infrarrojos (TCRT5000 o arreglos QTR), chasis diferencial, driver de motores (L298N o TB6612FNG).

  • Preguntas para argumentar:

    1. Lógica de Control: ¿Qué ventajas ofrece un algoritmo de Control PID (Proporcional, Integral, Derivativo) frente a una lógica simple de "si/entonces" (encendido/apagado) en las curvas?

    2. Disposición de Sensores: ¿Cómo influye la distancia entre los sensores y el eje de las ruedas en la estabilidad del robot? Argumenta si es mejor tener los sensores muy adelante o cerca del centro.

    3. Contraste: ¿Por qué se utilizan sensores infrarrojos para esta tarea y qué problemas de lectura podrían surgir si la competencia se realiza bajo luz solar directa o focos potentes?

2. Robot Evasor de Obstáculos (Obstacle Avoidance)

Un robot diseñado para navegar en entornos desconocidos detectando y rodeando objetos sin chocar.

  • Componentes clave: Sensor de ultrasonido (HC-SR04), servomotor (para girar el sensor), chasis.

  • Preguntas para argumentar:

    1. Tipo de Sensor: Compara el sensor de ultrasonido con uno de infrarrojos (Sharp). ¿En qué escenarios (materiales del obstáculo, distancias) es superior uno sobre el otro?

    2. Estrategia de Giro: Si el robot detecta un obstáculo de frente, ¿cuál es la lógica más eficiente para decidir si girar a la derecha o a la izquierda? Argumenta tu respuesta basándote en la optimización del tiempo.

    3. Limitaciones: ¿Cómo afecta la velocidad del robot a la precisión del sensor de ultrasonido? Explica qué sucedería si el robot se mueve más rápido de lo que el sonido tarda en rebotar y ser procesado.

3. Robot Sumo (Autónomo o RC)

El objetivo es sacar al oponente de un ring circular (Dohyo). Combina fuerza, detección de bordes y detección del oponente.

  • Componentes clave: Sensores de distancia (infrarrojos de largo alcance), sensores de línea (para no salirse), motores de alto torque, peso adicional.

  • Preguntas para argumentar:

    1. Diseño Mecánico: ¿Por qué la mayoría de los robots Sumo tienen una "pala" o rampa frontal que llega hasta el suelo? Argumenta la importancia del centro de gravedad y la fricción en este diseño.

    2. Estrategia de Ataque: ¿Es mejor que el robot busque al oponente moviéndose en círculos o que se quede quieto esperando a detectar algo? Justifica tu táctica defensiva vs. ofensiva.

    3. Tracción: Argumenta por qué en esta categoría se prefieren llantas de goma blanda o silicona de alto agarre sobre llantas de plástico duro, y cómo influye el peso total del robot en la victoria.

4. Robot Velocista (Speedster)

Es una evolución del seguidor de línea, pero diseñado para recorrer un circuito en el menor tiempo posible.

  • Componentes clave: Motores de altas RPM, micro-motores con piñonería metálica, turbinas de succión (opcionales para mayor agarre), baterías LiPo de alta descarga.

  • Preguntas para argumentar:

    1. Aerodinámica y Peso: ¿De qué manera el peso total del robot afecta la inercia en las curvas a alta velocidad? Argumenta por qué los velocistas suelen ser mucho más pequeños y bajos que otros robots.

    2. Adherencia: En competiciones profesionales se usan "turbinas" para succionar aire debajo del chasis. Explica el principio físico detrás de esto y por qué permite tomar curvas más rápido.

    3. Programación de Curvas: ¿Cómo debería cambiar el comportamiento de los motores al detectar una línea recta larga frente a una curva cerrada? Argumenta el uso de perfiles de velocidad en el código.

5. Robot Soccer (Fútbol Robótico)

Dos o más robots compiten por llevar una pelota al arco contrario.[2] Suele ser controlado por Bluetooth o ser autónomo.

  • Componentes clave: Módulo Bluetooth (HC-05), chasis omnidireccional (opcional), mecanismo de "disparo" o solenoide.

  • Preguntas para argumentar:

    1. Tracción Omnidireccional: ¿Qué ventajas tácticas ofrece un robot con ruedas Mecanum o ruedas omni frente a uno de tracción diferencial para jugar fútbol?

    2. Mecanismo de Disparo: Argumenta cuál es el método más efectivo para golpear la pelota (un brazo giratorio, un pistón, o simplemente la inercia del robot). ¿Cuál ofrece mayor control y cuál mayor potencia?

    3. Comunicación: En una modalidad controlada por smartphone, ¿cómo afecta el "lag" o retraso de la señal Bluetooth al desempeño del jugador? Sugiere una forma de programar el robot para que sea más "suave" en sus movimientos.

EJERCICOS RESUELTOS DE LISTAS TUPLAS Y MATRICES

1. LISTAS – Promedio de materias Objetivo: Calcular el promedio de una lista de notas y determinar si el estudiante aprueba o reprueba. Códi...