Contenido Módulo 2. Estructuras básicas de programación.
Lección 1. Algoritmos, Diagramas de Flujo, Seudocódigo.
Aunque en la actualidad los avances en temas de computación están a la vanguardia, es difícil encontrar medios e información que entreguen la fundamentación básica para iniciarse en el campo de la informática y la programación para la generación de pensamiento crítico, en el desarrollo de soluciones basadas en un algoritmo.
De acuerdo a Cairó (2008), es muy importante facilitarle al alumno el aprendizaje de las estructuras de datos y algoritmos sin asociarlas a un lenguaje de programación en particular y permitir que se concentre en la conceptualización y el modelamiento de datos que permitan el dominio de los conceptos básicos que luego sean replicados en un lenguaje formal al escribir un programa.
¿Qué es un algoritmo?
Es un conjunto de pasos, procedimientos o acciones que permiten realizar o alcanzar un resultado a una situación problemática presentada.
Para lograr la solución de una situación problemática se deben tener en cuenta los pasos descritos en la siguiente gráfica:
Hay tres características que se deben tener en cuenta en el desarrollo de un algoritmo:
Precisión: el procedimiento a seguir debe ser claro y con pasos definidos.
Problema
Análisis Construcción Verificación
Determinismo: Al ingresar datos semejantes debe obtenerse resultados similares.
Finitud: Todo algoritmo debe tener un comienzo y un final independientemente de la complejidad del mismo.
Realizando una analogía de la forma como se soluciona un problema y la forma de desarrollar un algoritmo se puede representar gráficamente de la siguiente manera:
En el esquema la primera fase; datos de entrada se puede asociar al análisis profundo que se realiza de la situación, ya que es el momento en que se conoce la información con la cual se inicia el proceso de solución de la situación problemática.
La segunda fase; el procesamiento de datos está asociado a la construcción del algoritmo porque se realizan las actividades o procesos necesarios para llegar a la solución.
Para finalizar, la impresión de resultados se asocia a la verificación del algoritmo porque es la fase donde se comprueban los resultados y se establece si los resultados concuerdan con los esperados.
¿Qué es un diagrama de flujo?
Es la representación gráfica del algoritmo, es decir es la representación mediante símbolos de cada uno de los pasos a realizar para solucionar la situación problemática.
Su importancia radica en que si su construcción es correcta, se puede realizar el respectivo programa en cualquier lenguaje de programación de forma simple y directa.
Datos de entrada
Procesamiento de datos
Impresión de Resultados
Los símbolos a utilizar deben atender las recomendaciones de la International Organization for Standardization (ISO) y de la American National Standards Institute (ANSI) para la elaboración de los diagramas de flujo.
La figura muestra los símbolos más comunes utilizados en la elaboración de diagramas de flujo de acuerdo a Cairó (2008).
Teniendo en cuenta lo anterior, la utilización de los símbolos para crear un diagrama de flujo básico sería de la siguiente forma:
Reglas para la creación de diagramas de flujo
La correcta aplicación de los pasos o procedimientos mediante los símbolos presentados, permitirá crear una estructura gráfica que se pueda utilizar para la solución de una situación problemática; con lo cual se facilitará la escritura en un lenguaje de programación.
De acuerdo a Cairó (2008) se deben tener en cuenta un conjunto de reglas, para la construcción de diagramas de flujo:
1. Inicio y fin, tomando como base el concepto de finitud en la construcción de un algoritmo.
2. Rectas, horizontales y verticales, no se deben cruzar y no deben ser inclinadas.
3. Las líneas utilizadas para indicar el de flujo de datos, deben estar conectadas y llegar a un símbolo.
4. La construcción del diagrama debe realizarse de arriba hacia abajo y de izquierda a derecha.
5. Notación independiente del lenguaje de programación. 6. Comentarios para entendimiento de lo realizado en tareas complejas.7. Conectores adecuados y numeración de páginas en el evento de ser
necesario.8. Solo una línea de flujo de datos debe llegar a un símbolo.
Conceptos Fundamentales
Tipos de datos
*Simples: Ocupa solo una casilla de memoria y referencia un único valor a la vez
*Estructurados: Son aquellos que ocupan más de un espacio de memoria y regularmente están compuestos por datos simples
Tipos de datos
NuméricosEnteros Simple
Reales Estructurado
AlfanuméricosCaracter Simple
Cadena Estructurado
Lógicos Simple
Datos Numéricos:
*Enteros: Son aquellos que no tienen parte decimal, como ejemplo: 128, -754, 3, -20, 16235, -256897.
*Reales: Son aquellos que poseen parte decimal, ejemplo: 7.5, -1200.12, 16825.235, -12356.33.
Datos Alfanuméricos:
*Caracter: Son datos que pueden contener dígitos, letras del abecedario, o símbolos especiales; ejemplo: `s`, `3`, `_`, `f`.
*Reales: Son aquellos formados por un conjunto de caracteres y se escriben entre comllas; ejemplo: “sheg467”, “Ernesto Solano”, “nicotina*/.98j”.
Datos Alfanuméricos:
Conocidos como booleanos, son aquellos que solo pueden tomar valores de true o false.
Otros Conceptos:
Identificador: Nombre que permite identificar una constante o una variable que se almacenan en una posición de memoria.
Variable: Objetos que cambian su valor en la ejecución de un programa.
Constante: Datos que no cambian en la ejecución de un programa.
Operaciones:
Para realizar estas operaciones es necesario utilizar los operadores aritméticos o lógicos que interactúen con números, constantes o variables, según sea el caso.
El siguiente ejemplo muestra varios casos y la forma de resolver los mismos:
((1580 MOD 6 * 2 ** 7) > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60 * 2 / 4))
((1580 MOD 6 *128) > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60 * 2 / 4))
((2 * 128) > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60 * 2 / 4))
(256 > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60 * 2 / 4))
(256 > (7 + 8 * 81)) > ((15 * 2) = (60 * 2 / 4))
(256 > (7 + 648)) > ((15 * 2) = (60 * 2 / 4))
(256 > 655) > ((15 * 2) = (60 * 2 / 4))
FALSO > ((15 * 2) = (60 * 2 / 4))
FALSO > (30 = (60 * 2 / 4))
FALSO > (30 = (120 / 4))
FALSO > (30 = 30)
FALSO > VERDADERO
FALSO
Nota: Verdadero siempre es mayor que Falso
Seudocódigo (Programas)
Es un conjunto de instrucciones, o pasos que se siguen en un lenguaje no formal, para alcanzar un resultado específico, a partir de un diagrama de flujo diseñado con anterioridad.
Lección 2. Estructuras Básicas de Diagramación.
Construcción de diagramas de flujo:
Desarrollo de diagramas de flujo partiendo de situaciones planteadas, para empezar a desarrollar habilidad y capacidad de razonamiento.
Estructuras Básicas
Se llama estructuras básicas al conjunto de símbolos utilizados para realizar diagramas de flujo que respondan a planteamientos sencillos que no involucren decisiones o repeticiones.
Entre ellas tenemos:
Los símbolos de inicio y fin, con los cuales se inicia y se cierra el diagrama de flujo
El símbolo de lectura de datos que va a permitir la entrada de los mismos para el uso en los procesos del programa
El de procesamiento o asignación es un símbolo utilizado con frecuencia porque con él se realiza el tratamiento de datos y las operaciones básicas entre otros.
Para terminar el símbolo de impresión de resultados que es el que permite mostrar por pantalla el resultado de la ejecución del diagrama de flujo.
Ejemplo 1:
Tenemos el código y 5 calificaciones de un alumno, obtenidas a lo largo del semestre, genere un diagrama de flujo que imprima el código del alumno y la nota definitiva
Entrada: Código (MAT), entero y 5 Calificaciones CAL1, CAL2, CAL3, CAL4, CAL5
Salida: Nota Final (Pro)
Ejemplo 2:
Diseñe un diagrama de flujo de datos para calcular e imprimir el cuadrado y el cubo de un número entero NUM
Entrada: Número (NUM), entero
Salida: Cubo de número (CUB) y el cuadrado (CUA)
CALIFICACIÓN
{Programa que calcula la nota final de una asignatura}
{MAT variable de tipo realCAL1, CAL2, CAL3, CAL4, CAL5 variable de tipo real}
1. Leer MAT, CAL1, CAL2, CAL3, CAL4, CAL5
2. Hacer PRO (CAL1+CAL2+CAL3+CAL4+CAL5)/5
3. Imprimir MAT, PRO
Ejemplo 3:
Elabore un diagrama de flujo para un rectángulo donde su base y altura están dados. Calcular además el perímetro y la superficie de la figura geométrica.
Entrada: Base (BASE), Altura (ALTU) de tipo real
Salida: Superficie (SUP) y el Perímetro (PER) de tipo real
Ejemplo 4:
Diseñe un diagrama de flujo que resuelva el siguiente problema: en una estación de gasolina la medida de tanqueo está dada en galones pero el cobro
CUBO_CUADRADO
{Programa que calcula el cubo y el cuadrado de un número}
{NUM, CUA, CUB variable de tipo entero}
1. Leer NUM
2. Hacer CUA NUM*NUMCUB NUM**3
3. Imprimir CUA, CUB
RECTÁNGULO
{Programa que calcula la superficie y el perímetro de un rectángulo}
{BASE, ALTU, SUP, PER variables de tipo real}
1. Leer BASE, ALTU
2. Hacer SUP BASE*ALTUPER 2*(BASE+ALTU)
3. Imprimir SUP, PER
lo realizan en litros. Se debe calcular el valor que hay que cobrarle al cliente con los datos señalados.
Entrada: Galones (GAL), de tipo real
Salida: Cobro (TOTAL) de tipo real
Tener en cuenta que 1 galón es igual a 3.785 litros, el costo de un litro es de $8.20
Lección 3. Estructuras Condicionales.
Las Estructuras Condicionales son aquellas que se encuentran en el desarrollo de soluciones de problemas en los cuales se debe tomar una decisión para poder continuar y realizar procesos que intervienen en la solución.
El símbolo utilizado para representar la decisión es un rombo en el cual se colocará la condición a evaluar; teniendo en cuenta que en algunas ocasiones se deben tomar decisiones en cascada es decir que se presenta más de una condición para evaluar y puede generar una especie de árbol de decisión para llegar a la solución.
Las estructuras condicionales se pueden clasificar de la siguiente forma:
1. SI ENTONCES (Condicional Simple)2. SI ENTONCES SI/NO (Condicional Doble)3. SI MULTIPLE (Condicional Múltiple)
Estructura Simple:
GASOLINA
{Programa que calcula el costo de cargar gasolina en la estación}
{GAL, TOTAL variables de tipo real}
1. Leer GAL
2. Hacer TOTAL GAL*3.785*8.20
3. Imprimir TOTAL
Permite que el flujo del diagrama siga por un camino específico si se cumple una condición o un conjunto de condiciones. Si la respuesta de la evaluación de la condición es verdadera, se ejecuta el proceso o los procesos señalados, en caso contrario no se realiza nada.
Si condición entoncesHacer operación
{Fin del condicional}
Ejemplo 1:
Hacer el diagrama de flujo para el siguiente caso: Se conoce el sueldo de un trabajador, y se aplicará un aumento del 15% solo si su sueldo es inferior a $1000. Imprima en este caso el nuevo sueldo del trabajador.
Entrada: Sueldo (SUE), de tipo real
Salida: Aumento (AUM), Nuevo Sueldo (NSUE) de tipo real
Estructura Doble:
Esta estructura permite que el flujo se dirija por dos lados diferentes luego de evaluar la condición; si es verdadero se ejecutan las operaciones destinadas para tal fin, de lo contrario se ejecutan otras, luego los dos caminos convergen en un solo punto.
Si condición Entonces Hacer operación 1 Sino Hacer operación 2{Fin del condicional}
SUELDO
{Programa que calcula el aumento de sueldo de un trabajador}
{SUE, AUM, NSUE variables de tipo real}
1. Leer SUE
2. SI SUE < 1000 ENTONCES AUM SUE*0.15 NSUE SUE + AUM
3. Imprimir NSUE
Ejemplo 2:
Hacer el diagrama de flujo para la siguiente situación: Dada una calificación de una asignatura, determine si se aprobó. En caso tal, debe enviar un mensaje que diga “Aprobado”, de lo contrario debe enviar un mensaje de “Reprobado”. 8 es la nota mínima para aprobación de la asignatura.
Entrada: Sueldo (SUE), de tipo real
Salida: Aumento (AUM), Nuevo Sueldo (NSUE) de tipo real
Estructura Múltiple:
Es la estructura que permite que el flujo de datos pueda tomar diferentes caminos, en función del valor del selector, de esta forma se realizan las acciones u operaciones dependiendo del camino tomado.
NOTA_FINAL
{Programa que verifica si un estudiante aprobó o no una asignatura}
{CAL variable de tipo real}
1. Leer CAL
2. Si CAL >= 8 entonces Imprimir “Aprobado”Sino Imprimir “Reprobado”{Fin Si}
Si selector igual Valor 1: Hacer acción 1 Valor 2: Hacer acción 2 . . Valor N: Hacer acción N{Fin del condicional}Hacer Acción N +1
Ejemplo 3:
Realice un diagrama de flujo en el cual se imprima la categoría del trabajador y su nuevo sueldo, teniendo en cuenta el porcentaje de aumento y la categoría, de acuerdo a los datos expresados a continuación:
CATEGORIA AUMENTO
1 15%2 10%3 8%4 7%
Entrada: Sueldo (SUE), de tipo real, Categoría (CATE) de tipo entero
Salida: Aumento (AUM), Nuevo Sueldo (NSUE) de tipo real
AUMENTO
{Programa que realiza el aumento de sueldo de acuerdo a la categoría}
{CATE variable de tipo enteroSUE, NSUE variables de tipo real}
1. Leer CATE, SUE
2. Si CATE igual
1: Hacer NSUE SUE*1.15 2: Hacer NSUE SUE*1.12 3: Hacer NSUE SUE*1.08 4: Hacer NSUE SUE*1.07
{Fin condicional}
3. Escribir CATE, NSUE
Bibliografía
Osvaldo, C. (2003). Metodología de la Programación. México. ALFAOMEGA GRUPO EDITOR SA de CV.
Top Related