Módulo II

Algoritmos y representación de soluciones

Curso de Inducción
Facultad de Informática Culiacán · UAS

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Recapitulando el módulo I

  • Organizamos información con conjuntos y diagramas de Venn.
  • Conocimos los cuatro pilares del pensamiento computacional.
  • El "diseño de procedimientos" nos llevó, de forma natural, al concepto que hoy formalizaremos: el algoritmo.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Ruta del módulo

Bloque Tema
1 Algoritmos como procedimientos para resolver problemas
2 Representación de soluciones
3 Datos, entradas, procesos y resultados
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Tema 5

Algoritmos como procedimientos para resolver problemas

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Concepto de algoritmo

Un algoritmo es una secuencia finita y ordenada de pasos que permite alcanzar un objetivo o resolver un problema.

No es un concepto exclusivo de la programación: todos usamos algoritmos constantemente, incluso sin llamarlos así.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Algoritmos en actividades cotidianas

Actividad ¿Por qué es un algoritmo?
Una receta de cocina Tiene pasos ordenados que llevan a un platillo terminado
Instrucciones para armar un mueble Secuencia de acciones con un resultado final claro
El manual de uso de una lavadora Pasos precisos para lograr ropa limpia
Sacar dinero de un cajero automático Secuencia fija de acciones con un objetivo concreto
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Relación entre problema, solución y algoritmo

   PROBLEMA           SOLUCIÓN              ALGORITMO
  (lo que hay        (la idea de           (los pasos
  que resolver)  →   cómo resolverlo) →    concretos para
                                            lograrlo)

Ejemplo:

  • Problema: "no sé cómo llegar a la Facultad desde mi casa"
  • Solución: "usar la aplicación de mapas para encontrar la mejor ruta"
  • Algoritmo: los pasos concretos: abrir la aplicación de mapas, escribir el destino, seguir las indicaciones, paso a paso
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Características de un procedimiento algorítmico

Característica Significa que...
Ordenado Los pasos siguen una secuencia definida
Claro Cada paso se entiende sin ambigüedad
Preciso Cada paso indica exactamente qué hacer
Finito El procedimiento termina en algún momento
Estas cuatro características son el criterio que usaremos a lo largo del curso para evaluar si un procedimiento está bien diseñado.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Ejemplo: un procedimiento con problemas

1. Prepara el sándwich.
2. Cómelo.

¿Qué le falta?

  • No es preciso: "prepara el sándwich" no dice qué ingredientes usar ni en qué orden.
  • No es claro: alguien que nunca ha hecho un sándwich no podría seguirlo.
Un algoritmo ambiguo puede producir resultados distintos cada vez que se ejecuta algo inaceptable en un sistema informático.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Identificación de pasos necesarios

Actividad guiada: para el objetivo "enviar un correo electrónico con un archivo adjunto", identifiquen todos los pasos necesarios, sin saltarse ninguno.

1. Abrir el correo electrónico
2. Hacer clic en "nuevo mensaje"
3. Escribir el destinatario
4. Escribir el asunto
5. Adjuntar el archivo
6. Escribir el cuerpo del mensaje
7. Enviar

Si a alguien que nunca ha usado el correo le faltara un paso, no podría completar la tarea.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Secuencia de acciones

El orden de los pasos no es arbitrario: alterarlo puede cambiar el resultado o hacerlo imposible.

Ejemplo con orden incorrecto:

1. Enviar el correo
2. Escribir el mensaje
3. Adjuntar el archivo
Si envías el correo antes de escribirlo, el resultado no será el esperado. El orden forma parte del significado del algoritmo.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Identificación de decisiones dentro de un procedimiento

Muchos procedimientos no son 100% lineales: incluyen puntos donde se decide entre caminos distintos.

Ejemplo:

1. Revisa si tienes saldo en tu tarjeta de transporte.
2. Si tienes saldo, aborda el camión.
3. Si no tienes saldo, recarga la tarjeta antes de abordar.
4. Aborda el camión.
Los pasos 2 y 3 dependen de una condición: esto es una decisión dentro del procedimiento.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Detección de ambigüedades y errores en instrucciones

Ejercicio: identifiquen el problema en cada instrucción.

A) "Agrega un poco de sal."
B) "Espera un rato antes de continuar."
C) "Presiona el botón correcto."
Los tres son ambiguos: "un poco", "un rato" y "el botón correcto" no son instrucciones precisas. Un algoritmo requiere valores y referencias concretas.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Mejora de procedimientos mediante revisión

Un buen algoritmo casi nunca sale perfecto al primer intento: se revisa y mejora.

Antes:

1. Agrega un poco de sal.

Después de revisar:

1. Agrega media cucharadita de sal.

La revisión de procedimientos es una práctica profesional constante: los programas también se depuran y mejoran después de su primera versión.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Actividad práctica: auditoría de instrucciones

En equipos: escriban una lista de instrucciones detalladas para que una máquina realice una tarea paso a paso (por ejemplo: "Cómo debe operar un cajero automático para entregar $500 pesos en efectivo"). El equipo receptor debe:

  1. Detectar pasos ambiguos o faltantes.
  2. Verificar si el orden es correcto.
  3. Proponer una versión mejorada.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Síntesis: algoritmos

Un algoritmo es una secuencia finita, ordenada, clara y precisa de pasos para resolver un problema. No requiere una computadora para existir, pero es la base conceptual de todo programa.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Tema 6

Representación de soluciones

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

¿Por qué representar una solución antes de implementarla?

Escribir directamente código sin haber representado la solución es como construir una casa sin planos: es fácil perderse, cometer errores costosos o dejar huecos en la lógica.

Representar la solución permite revisarla, corregirla y comunicarla antes de invertir tiempo en programarla.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Formas de representar una solución

Forma Descripción
Lenguaje natural Descripción con palabras, como una receta
Pseudocódigo Descripción estructurada, cercana al lenguaje de programación pero sin su sintaxis exacta
Diagrama de flujo Representación gráfica con símbolos estandarizados
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Descripción mediante lenguaje natural

Ejemplo: determinar si un estudiante aprobó una materia:

Preguntar la calificación del estudiante.
Si la calificación es mayor o igual a 6, decir "Aprobado".
En caso contrario, decir "No aprobado".

Es la forma más accesible, pero puede volverse ambigua en procedimientos más largos o complejos.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Introducción al pseudocódigo

El pseudocódigo es una forma de describir un procedimiento con una estructura más ordenada, usando palabras clave, pero sin la sintaxis estricta de un lenguaje de programación real.

INICIO
    Leer calificación
    SI calificación >= 6 ENTONCES
        Mostrar "Aprobado"
    SI NO
        Mostrar "No aprobado"
    FIN SI
FIN
El pseudocódigo aquí es una herramienta de comunicación, no de compilación.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Introducción a los diagramas de flujo

Un diagrama de flujo representa un procedimiento usando figuras geométricas estandarizadas conectadas por flechas que indican el orden de ejecución.

Es una representación visual: permite "ver" el camino completo de la solución de un vistazo.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Elementos y simbología básica

Símbolo Figura Significado
Óvalo Inicio / Fin
Rectángulo Acción o proceso
Rombo Decisión
Flecha Dirección del flujo
Esta es la simbología básica. No se profundizará en símbolos adicionales (subrutinas, conectores múltiples, E/S especializada), reservados para asignaturas posteriores.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Inicio y fin de un procedimiento

Todo diagrama de flujo comienza y termina con un símbolo de óvalo, que marca claramente los límites del procedimiento.

   ┌─────────┐
   │  INICIO │
   └────┬────┘
        │
       ...
        │
   ┌────┴────┐
   │   FIN   │
   └─────────┘

Un procedimiento sin un fin claramente definido no cumple la característica de ser finito.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Representación de acciones

Cada acción del procedimiento se representa con un rectángulo.

   ┌─────────┐
   │  INICIO │
   └────┬────┘
        │
   ┌────┴─────────────┐
   │ Leer calificación│ 
   └────┬─────────────┘
        │
       ...
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Representación básica de decisiones

Una decisión se representa con un rombo, con dos salidas posibles: normalmente "Sí" y "No".

        ┌──────────────────────┐
        │ ¿Calificación >= 6?  │
        └──────┬─────────┬─────┘
             Sí│         │No
   ┌────────────┐   ┌──────────────┐
   │  Aprobado  │   │ No aprobado  │
   └────────────┘   └──────────────┘
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Diagrama de flujo completo — ejemplo

           ┌──────────┐
           │  INICIO  │
           └────┬─────┘
                │
      ┌─────────┴──────────┐
      │ Leer calificación  │
      └─────────┬──────────┘
                │
      ┌─────────┴──────────┐
      │ ¿Calificación >=6? │
      └────┬────────────┬──┘
          Sí│            │No
      ┌─────┴──┐    ┌────┴──────┐
      │Aprobado│    │Reprobado  │
      └─────┬──┘    └────┬──────┘
            │            │
            └─────┬──────┘
                  │
             ┌────┴─────┐
             │   FIN    │
             └──────────┘
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Lectura e interpretación de procedimientos representados

Ejercicio: interpreten el siguiente pseudocódigo y describan, en lenguaje natural, qué hace.

INICIO
    Leer temperatura
    SI temperatura > 38 ENTONCES
        Mostrar "Tienes fiebre, consulta a un médico"
    SI NO
        Mostrar "Temperatura normal"
    FIN SI
FIN
Leer e interpretar procedimientos ya representados es tan importante como saber construirlos: en tu carrera, con frecuencia trabajarás sobre código o diseños hechos por otros.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Construcción de soluciones sencillas

Actividad práctica: para el problema "determinar si un número es par o impar", construyan:

  1. La descripción en lenguaje natural.
  2. El pseudocódigo.
  3. El diagrama de flujo.
Recuerden: el objetivo es comunicar la solución con claridad, no dominar una notación formal completa.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Síntesis: representación de soluciones

Lenguaje natural, pseudocódigo y diagramas de flujo son tres formas, cada una con distinto nivel de formalidad de representar y comunicar una solución antes de programarla.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Tema 7

Entradas, procesos y resultados

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Los tres elementos de toda solución

   ENTRADA   →   PROCESO   →   SALIDA (RESULTADO)
  (datos que      (transformación      (información
   se reciben)      de los datos)         producida)

Ejemplo: una calculadora recibe dos números (entrada), realiza la suma (proceso) y muestra el resultado (salida).

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Información de entrada

Son los datos que el procedimiento necesita para poder ejecutarse.

Ejemplo: para calcular el promedio de calificaciones de un estudiante, la entrada son las calificaciones individuales.

Sin datos de entrada suficientes y correctos, ningún procedimiento puede producir un resultado confiable, por eso identificar bien las entradas es un paso crítico del diseño.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Procesamiento o transformación de la información

Es lo que el procedimiento hace con los datos de entrada para obtener el resultado.

Ejemplo:

Entrada:  calificaciones = 8, 9, 7
Proceso:  sumar las calificaciones y dividir entre la cantidad
Salida:   promedio = 8
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Resultados o información de salida

Es lo que el procedimiento entrega una vez terminado el proceso: la respuesta al problema planteado.

Una salida clara y bien definida es indispensable: si no sabes qué esperar como resultado, tampoco sabrás si el procedimiento funcionó correctamente.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Identificación de datos necesarios para una solución

Actividad guiada: para el problema "decidir si puedo entrar al cine con el dinero que tengo", identifiquen:

  • Entradas: dinero disponible, precio del boleto, precio de los alimentos deseados.
  • Proceso: sumar los gastos y compararlos con el dinero disponible.
  • Salida: "sí puedo entrar" / "no puedo entrar" (y cuánto faltaría, en su caso).
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Datos que pueden cambiar durante la resolución

Algunos datos permanecen fijos durante todo el procedimiento, otros cambian conforme el procedimiento avanza.

Ejemplo: en un procedimiento que cuenta cuántos estudiantes aprobaron un examen, el "contador de aprobados" cambia cada vez que se revisa una nueva calificación.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Concepto intuitivo de variable

Una variable es un espacio con nombre que almaneca un valor, y ese valor puede cambiar durante el procedimiento.

Ejemplo:

contador_aprobados = 0      (valor inicial)
... se revisa una calificación aprobatoria ...
contador_aprobados = 1      (el valor cambió)
No se abordará la declaración formal de variables ni tipos de datos: solo la idea intuitiva de "una casilla con nombre que almacena un valor que puede cambiar".
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Relación entre variable y valor

Variable Valor en un momento dado
edad 18
nombre_estudiante "Karla"
promedio 8.7

El nombre de la variable no cambia, el valor que contiene sí puede cambiar conforme avanza el procedimiento.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Operaciones aritméticas sencillas como parte de un procedimiento

Muchos procedimientos requieren cálculos básicos como parte del proceso:

INICIO
    Leer calificacion1, calificacion2, calificacion3
    promedio = (calificacion1 + calificacion2 + calificacion3) / 3
    Mostrar promedio
FIN
Usamos operaciones aritméticas simples (suma, resta, multiplicación, división) únicamente como parte natural de un procedimiento, sin profundizar en estructuras de control o funciones.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Relación entre datos, procedimiento y resultado

     DATOS                PROCEDIMIENTO             RESULTADO
  (entrada + variables) →  (pasos ordenados)   →   (salida esperada)
Diseñar una solución significa decidir con claridad: ¿qué datos necesito?, ¿qué pasos aplico sobre ellos?, ¿qué resultado espero obtener al final?
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Actividad integradora del día

En equipos, para el problema "calcular el costo total de una compra con descuento por ser estudiante":

  1. Identifiquen las entradas necesarias.
  2. Describan el proceso en lenguaje natural.
  3. Escriban el pseudocódigo.
  4. Dibujen el diagrama de flujo.
  5. Identifiquen qué variables cambian durante el procedimiento.
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Síntesis del Módulo II

Hoy conectamos tres ideas: un algoritmo es un procedimiento ordenado, claro, preciso y finito, puede representarse en lenguaje natural, pseudocódigo o diagrama de flujo y toda solución puede analizarse en términos de entradas, procesos y resultados.

Esta base te preparará directamente para tu primera asignatura de programación.

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Actividad de cierre: bitácora del módulo II

  1. Diseña el pseudocódigo y el diagrama de flujo de un procedimiento cotidiano de tu elección.
  2. Identifica sus entradas, su proceso y su salida.
  3. ¿Qué parte de representar soluciones te pareció más natural: el lenguaje natural, el pseudocódigo o el diagrama de flujo? ¿Por qué?
Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS

Fin del módulo II

Continúa: Módulo III Infraestructura, sistemas y conectividad

Facultad de Informática Culiacán · UAS

Módulo II · Curso de Inducción · Facultad de Informática Culiacán · UAS