Top Banner
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA UPSE Fundamentos y Lenguaje C Docente : Ing. Alexis Rocha Haro, MGTI Ingeniero en Sistemas Computacionales Magíster en Gerencia de Tecnologías de la Información Email: [email protected] [email protected] La Libertad, Santa Elena, Ecuador Fundamentos de Programación
37

Fundamentos de Programación - CAP4 - Diagramas de Flujo

Apr 04, 2023

Download

Documents

Marco Campana
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Fundamentos de Programación - CAP4 - Diagramas de Flujo

LOGO UNIVERSIDAD ESTATALPENÍNSULA DE SANTA ELENA

UPSE

Fundamentos y Lenguaje C

Docente:Ing. Alexis Rocha Haro, MGTI

Ingeniero en Sistemas ComputacionalesMagíster en Gerencia de Tecnologías de la Información

Email: [email protected]@hotmail.com

La Libertad, Santa Elena, Ecuador

Fundamentos de Programación

Page 2: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Bibliografía

Bibliografía Básica:Joyanes Aguilar Luis (2008). Fundamentos de Programación: Algoritmos, Estructuras de Datos y Objetos (4ta. Edición) Madrid. Editorial: McGraw Hill. Páginas: 127 – 155, 157 – 198.

Bibliografía Recomendada:Corona Nakamura María Adriana, Ancona Valdez María de los Ángeles (2011). Diseño de algoritmos y su codificación en lenguaje C (1era. Edición) México. Editorial: McGraw Hill. Páginas: 27 – 127, 285 – 290.

Cairó Battistutti Osvaldo (2006). Fundamentos de Programación: Piensa en C (1era. Edición) México. Editorial: PEARSON Educación. Páginas: 49 – 84, 89 – 128.

Page 3: Fundamentos de Programación - CAP4 - Diagramas de Flujo

¿Qué se quiere aprender al finalizar el Capítulo 4?

Conocer los diagramas utilizados en la programación básica con su respectiva simbología.

Conocer los operadores de asignación y comparación, así como los conceptos de contador, acumulador y banderas, herramientas utilizadas en la programación.

Realizar ejercicios con diagramas de flujo y dominar la sintaxis para las respectivas codificaciones.

Page 4: Fundamentos de Programación - CAP4 - Diagramas de Flujo

LOGO Capítulo 4

Page 5: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Unidad 4 – Diagramas de Flujo

CONTENIDOS4.1. Diagramas de Flujo y Diagramas Nassi – Schneidermann.4.2. Símbolos Básicos para los Diagramas de Flujo.4.3. Operadores de Asignación y Comparación.4.4. Conceptos de Contador, Acumulador y Bandera (Flags).4.5. Ejercicios de Aplicación.4.6. Evaluación de la Unidad.

Page 6: Fundamentos de Programación - CAP4 - Diagramas de Flujo

4.1. Diagramas de Flujo y Diagramas Nassi - Schneidermann

Diagramas de Flujo Un Diagrama de Flujo representa la

esquematización gráfica de un algoritmo, muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un determinado problema.

Su correcta construcción es importante, ya que a partir del mismo se escribe un programa en algún lenguaje de programación.

Si el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo.

Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de Inicio y Fin del proceso.

Page 7: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Reglas de los Diagramas de Flujo

1) Todo diagrama de flujo tiene un Inicio y un Final.2) Utilizar simbología adecuada.3) Seguir un diseño TOP-DOWN (Arriba - Abajo).4) No deben haber flujos cruzados, utilicen en forma

horizontal o vertical.5) No utilizar palabras reservadas de un lenguaje de

programación.6) Cuando existan diagramas de flujo muy extensos,

utilice los respectivos conectores.7) Empiece a diseñar de arriba hacia abajo y de

izquierda a derecha.8) Para hacer la lectura, hágalo de arriba hacia abajo

y de izquierda hacia derecha.

Page 8: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Ventajas de los DFD(Diagramas de Flujo de Datos)

Favorecen la comprensión del proceso al mostrarlo como un dibujo. El cerebro humano reconoce muy fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.

Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos, los flujos de los re-procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.

Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.

Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.

Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de algoritmos de programación puede ser ejecutado en un ordenador, con un IDE como Free DFD.

Page 9: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Diagramas Nassi - Schneidermann Un Diagrama Nassi-Schneidermann (NSDs) es una representación gráfica de un algoritmo para programación estructurada, desarrollado en 1972 por Isaac Nassi y Ben Schneidermann, estos diagramas son conocidos como Estructogramas debido a que muestran las estructuras de un programa.

Siguiendo un diseño TOP-DOWN, el problema es reducido en subproblemas cada vez menores, hasta que sólo comandos y estructuras permanecen, estos diagramas reflejan una descomposición de una forma clara y simple, usando cajas anidadas para representar subproblemas.

Page 10: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Comandos NS (Nassi - Schneidermann)Existen 3 tipos: Comando Normal: Cuando se asigna un valor a una

variable (c=a + b) o (nombre=‘’Juanita Pérez’’). El signo = es usado para asignación, para preguntas se usa el == (doble igual).

Comando Leer: Usado cuando se requiere que ingrese un número o un texto, estos comandos asignan el valor que el usuario ingresa a una variable. Ej.: Leer X, luego la variable X contiene el valor ingresado por el usuario.

Comando Escribir: Solo muestra el valor de la variable en pantalla al usuario.

Page 11: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Tipos de Diagramas NSD’s Todo algoritmo se representa de la siguiente forma:

Page 12: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Existe una representación para cada tipo de estructura algorítmica en la programación estructurada, existen 5 tipos: Secuenciales o Simples (IF, IF Anidados): Podemos

tener declaración de variables (tipo: nombre_variable), asignación (nombre_variable = valor), lectura (Leer <lista de variables>) y escritura de datos (Escribir <lista de constantes y variables>).

Page 13: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Condicionales, Selectivas o Alternativas (IF, SWITCH o CASE):

Page 14: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Cíclicas o Repetitivas (WHILE, DO WHILE, FOR):

Page 15: Fundamentos de Programación - CAP4 - Diagramas de Flujo

CASOS ESPECIALES DE LAS ESTRUCTURAS ANIDADAS: Alternativas Anidadas: Consta de una serie de

estructuras IF, unas interiores a otras; a su vez, dentro de cada estructura pueden existir diferentes acciones, se utiliza para diseñar estructuras que contengan más de 2 alternativas (IF ANIDADOS).

Iterativas Anidadas: Consta en anidar un ciclo dentro de otro, en este caso, la estructura interna debe estar incluida totalmente dentro de la externa (WHILE, DO WHILE, FOR).

Ver ejemplos (4/10)

Page 16: Fundamentos de Programación - CAP4 - Diagramas de Flujo

4.2. Símbolos Básicos para los Diagramas de Flujo

Símbolos Básicos para los Diagramas de Flujo

Page 17: Fundamentos de Programación - CAP4 - Diagramas de Flujo
Page 18: Fundamentos de Programación - CAP4 - Diagramas de Flujo
Page 19: Fundamentos de Programación - CAP4 - Diagramas de Flujo
Page 20: Fundamentos de Programación - CAP4 - Diagramas de Flujo

4.3. Operadores de Asignación y Comparación

Operadores de Asignación Un operador de asignación asigna un valor a su operando izquierdo basándose en el valor de su operando derecho.

El operador básico de asignación es el igual (=), el cual asigna el valor de su operador derecho a su operador izquierdo, esto es, X=Y asigna el valor de Y a X.

Page 21: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Operadores Aritméticos

Page 22: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Operadores de Comparación

Page 23: Fundamentos de Programación - CAP4 - Diagramas de Flujo

4.4. Conceptos de Contador, Acumulador y Bandera (Flags)

Estructuras de Control Iterativas Las estructuras de control iterativas se utilizan para resolver problemas donde sea necesario repetir un determinado número de veces un conjunto de instrucciones llamados Bucles, también se conocen como Estructuras Repetitivas.

Al igual que en las Estructuras Selectivas, se requiere definir la condición con la que se evaluará y decidirá qué acciones se llevarán a cabo, recordemos que para construir las condiciones es necesario utilizar los operadores relacionales (de comparación) y los operadores booleanos (lógicos).

EJEMPLO: (Calificacion > = 6) and (Sexo == ‘F’)

Page 24: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Las Estructuras de Control Iterativas se clasifican en: While, Do While y For

Para poder trabajar con estas estructuras es importante comprender el concepto de: Contador = Contador + Constante Sumador = Sumador + (Variable o Expresión) Acumulador = Acumulador + Variable Acumulador = Acumulador * (Variable, Constante o Expresión)

Page 25: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Contador Una Variable es un espacio de memoria que se

reserva en la PC, cuyo contenido puede cambiar a lo largo de la ejecución de un programa, entonces, un contador es un tipo de variable que incrementa o decrementa su contenido en un valor constante.

‘’Incrementar’’ significa que estamos sumando.

Como puedes observar, la variable veces, se está incrementando un valor constante (1), es decir, a su contenido le suma el valor y se vuelve a guardar en la misma variable.

’Decrementar’’ significa que estamos restando.

Como puedes observar, la variable total, se está decrementando un valor constante (3), es decir, a su contenido le resta el valor y se vuelve a guardar en la misma variable.

EJEMPLO: veces = veces + 1

EJEMPLO: total = total - 3

Page 26: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Es importante que se inicialice siempre los contadores:

El valor con el que se inicie el contador, dependerá del problema a resolver.

Veces = 0 total = 33

Page 27: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Sumador o Acumulador Un Acumulador es una variable que incrementa o

decrementa su contenido en cantidades variables.

Cuando decimos ‘’Incrementa’’, estamos sumando.

Como puedes observar, la variable nomina, se está incrementando una cantidad variable, es decir, a su contenido le suma la cantidad y se vuelve a guardar en la misma variable.

Cuando decimos ‘’Decrementar’’ significa que estamos restando.

Como puedes observar, la variable total, se está decrementando una cantidad variable, es decir, a su contenido le resta el valor y se vuelve a guardar en la misma variable.

EJEMPLO: nomina = nomina + sueldo

EJEMPLO: total = total - deuda

Page 28: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Es importante que se inicialice siempre los acumuladores:

El valor con el que se inicie el acumulador, dependerá del problema a resolver.

nomina = 0

total = 350

Page 29: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Bandera (Flags) Una Bandera o Flag es una variable que trabaja

en función de las condiciones o preguntas que se utilizan en las estructuras.

Trabajan en forma de operadores lógicos.

Como puedes observar, la variable opcion, tiene un mensaje donde el usuario tiene que responder si desea que dicho programa continúe o no continúe, donde dicha respuesta (S ó N), se almacene en dicha variable.

EJEMPLO: opcion = “Desea continuar (S-N):”

Page 30: Fundamentos de Programación - CAP4 - Diagramas de Flujo

4.5. Ejercicios de Aplicación

Ejercicios de Aplicación 1ALGORITMOS y DIAGRAMAS NASSI SCHNEIDERMANN1) Diseñar un algoritmo para calcular el área y el perímetro de un

rectángulo. (Área=b*h, Perímetro=2*(b+h))2) Un maestro desea saber que porcentaje de hombres y mujeres hay

en un grupo de estudiantes.3) Un profesor prepara 3 cuestionarios para una evaluación final:

A, B y C. Se sabe que se tarda 5 minutos en revisar el cuestionario A, 8 minutos en revisar el cuestionario B y 6 minutos en el C. La cantidad de exámenes de cada tipo se entran por teclado. ¿Cuántas horas y cuántos minutos se tardará en revisar todas las evaluaciones?

4) Se desea realizar un algoritmo para obtener el valor absoluto de un número.

5) Ingresar 3 números y ordenarlos en forma ascendente.6) Una empresa desea calcular los nuevos salarios de sus empleados

de la siguiente forma: Quienes ganan hasta $500 tendrían un incremento del 10%, quienes devengan más de $500 y hasta $800 recibirán un aumento del 8% y los demás del 5%. ¿Cuál será el valor del nuevo sueldo?

7) Una distribuidora de motocicletas tiene una promoción de fin de año que consiste en lo siguiente: las motos marca HONDA tienen un descuento del 5%, las de marca YAMAHA del 8%, las de marca SUZUKI el 10% y las de otras marcas el 2%. Calcular el valor del descuento y el valor a pagar por la motocicleta.

Page 31: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Ejercicios de Aplicación 28) Leer N números y encontrar el valor promedio, el mayor y menor.9) Generar los 10 primeros números de la Serie FIBONACCI.10) Genere los 5 primeros números pares y los 5 primeros números impares.11) Imprimir los números del 1 al 10.12) Imprimir los números del 5 al 50 con intervalos de 5.13) Dado un número N, mostrar los números menores a éste, en orden descendente.14) Ingrese 10 números y muestre la sumatoria, el promedio, el número mayor y el número menor.15) Realizar un programa que ingrese por teclado 3 números enteros en las variables A, B y C, comprendidos entre 0 y 9. Se trata de conformar 2 números en las variables X y Y, compuesto por los dígitos almacenados en A, B y C. Por ejemplo:A=7 B=6 C=3 X=763 Y=367NOTA: La serie Fibonacci comienza con los números: 0, 1, 1, 2, 3, 5, 8, 13, 21, ....

Page 32: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Ejercicios de Aplicación 316) Realizar un programa que permita calcular la suma y el promedio de los números comprendidos entre X y Y, incluidos los números dados. Estos números deben ser ingresados por teclado (X, Y). Al finalizar el programa deberá preguntar al usuario si desea continuar y deberá salir con el dígito 777.17) Calcule y presente la edad actual de una persona en años, meses y días, para ello deberá ingresar la fecha de nacimiento y la fecha actual.18) Desarrollar un programa que calcule y presente la Suma y el Promedio, de las notas (1 a 20 puntos) de N estudiantes a ingresar. Al finalizar el programa deberá consultar al usuario si desea repetir el programa con las siguientes opciones (T = Repetir, F = Salir).19) Desarrollar un programa que permita ingresar una nota y convertir en calificaciones numéricas, según la siguiente tabla: SOBRESALIENTE = 19 y 20 puntos, MUY BUENA = 16, 17 y 18 puntos, BUENA = 13, 14 y 15 puntos, REGULAR = 10, 11 y 12 puntos, INSUFICIENTE = 1 hasta 9 puntos. Se asume que la nota está comprendida entre 1 y 20. Al finalizar el programa, se deberá consultar al usuario si desea repetir ingresando el dígito 123, caso contrario finaliza el programa.

Page 33: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Ejercicios de Aplicación 420) Ingresar 2 números enteros positivos y presentar en pantalla el producto de esos 2 números por sumas sucesivas (4 x 3 = 12, 4+4+4=12)21) Elabore un programa que a partir del ingreso de un número positivo N cualquiera, de como salida el valor de S = 1 + ½ + 1/3 + … + 1/N

Page 34: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Tarea 1 – 1/1 y 1/2 SemestreEjercicio 4:Se desea realizar un programa que calcule y presente por pantalla: el valor absoluto, la raíz cuadrada y la potencia de un número elevado a la N (para todos los casos, ingrese diferentes valores por teclado). Al finalizar el programa deberá repetir con las siguientes opciones (C=Continuar, S=Salir).Ejercicio 6:Una empresa desea calcular los nuevos salarios de sus empleados de la siguiente forma: Quienes ganan hasta $500 tendrían un incremento del 10%, quienes devengan más de $500 y hasta $800 recibirán un aumento del 8% y los demás del 5%. ¿Cuál será el valor del nuevo sueldo del empleado?. El ingreso se lo realiza por cada empleado (Nombres y Apellidos completos, sueldo ganado), de manera que permita el programa ingresar la información de otro empleado. Al finalizar el programa deberá repetir con las siguientes opciones (111=Continuar, 222=Salir).Ejercicio 7:Una distribuidora de motocicletas tiene una promoción de fin de año que consiste en lo siguiente: las motos marca HONDA tienen un descuento del 5%, las de marca YAMAHA del 8%, las de marca SUZUKI el 10% y las de otras marcas el 2%. Calcular el valor del descuento y el valor a pagar por la motocicleta.

Page 35: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Tarea 1 – 1/3 SemestreEjercicio 4:Se desea realizar un programa que calcule y presente por pantalla: el valor absoluto, la raíz cuadrada y la potencia de un número elevado a la N (para todos los casos, ingrese diferentes valores por teclado). Al finalizar el programa deberá repetir con las siguientes opciones (C=Continuar, S=Salir).Ejercicio 6:Una empresa desea calcular los nuevos salarios de sus empleados de la siguiente forma: Quienes ganan hasta $500 tendrían un incremento del 10%, quienes devengan más de $500 y hasta $800 recibirán un aumento del 8% y los demás del 5%. ¿Cuál será el valor del nuevo sueldo del empleado?. El ingreso se lo realiza por cada empleado (Nombres y Apellidos completos, sueldo ganado), de manera que permita el programa ingresar la información de otro empleado. Al finalizar el programa deberá repetir con las siguientes opciones (111=Continuar, 222=Salir).Ejercicio 16:Realizar un programa que permita calcular la suma y el promedio de los números comprendidos entre X y Y, incluidos los números dados. Estos números deben ser ingresados por teclado (X, Y). Al finalizar el programa deberá preguntar al usuario si desea continuar (código 33) y salir (código 77).

Page 36: Fundamentos de Programación - CAP4 - Diagramas de Flujo

Información en la Webhttp://www.slideshare.net/josedavidsia/diagrama-de-flujo-delfinahttp://es.wikipedia.org/wiki/Diagrama_de_flujohttp://www.aiteco.com/que-es-un-diagrama-de-flujo/http://www.fundibeq.org/opencms/export/sites/default/PWF/downloads/gallery/methodology/tools/diagrama_de_flujo.pdfhttp://www.monografias.com/trabajos19/algoritmos/algoritmos.shtmlhttp://eii.ucv.cl/nessi/help/es/nsd.htmlhttp://www.slideshare.net/lopezvictor01/01-diagramas-nassischneidermanhttps://developer.mozilla.org/es/docs/Gu%C3%ADa_JavaScript_1.5/Operadores/Operadores_de_asignaci%C3%B3nhttp://es.wikipedia.org/wiki/Anexo:Operadores_de_C_y_C%2B%2Bhttp://www.slideshare.net/NoraO/contadores-y-acumuladores-3185194http://es.wikipedia.org/wiki/Contador_de_programahttp://www.slideshare.net/luisitops/presentacion-foro-evaluadohttps://sites.google.com/site/tutoriasdeingenieria/algoritmos/anidamiento-en-los-ciclos-de-los-algoritmos-cicle-on-python

Page 37: Fundamentos de Programación - CAP4 - Diagramas de Flujo

LOGO Fundamentos de Programación