algoritmos y diagramas de flujo

12
UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO. PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 1 Objetivo Presentar los elementos de la programación estructurada para que el estudiante sea capaz de diseñar algoritmos que le permiten resolver problemas diversos. Introducción Dentro de lo que es el capitulo de algoritmos, a veces en forma pedagógica, es un poco difícil dar este tema, la razón se fundamenta en el hecho de que el alumno no esta acostumbrado a “pensar con lógica”, desgraciadamente durante la formación del alumno desde niveles básicos de educación no se le a enseñado a crear un conocimiento significativo por lo que su mente no está acostumbrada a razonar. El problema de la implementación de algoritmos reside en esta situación. Cuando yo le digo al alumno ¿Cuanto es 12 * 2? Contesta automáticamente 24. Todo parecería estar bien pero lo hizo de forma automática y no hizo la operación siguiendo las reglas de la multiplicación. Para poder desarrollar algoritmos es necesario seguir todas esas reglas por que al momento de codificar un programa se debe de hacer de tal manera que no exista una falla en estos pasos, por que habrá que recordar que una computadora no piensa, y solo sigue las instrucciones que el programador le ha implantado al desarrollar el algoritmo. Metodología de la programación estructurada. La realización de un programa sin seguir un método de programación riguroso, aunque funcione, a la larga no será mas que un conjunto mas o menos grande de instrucciones con falta de fiabilidad y flexibilidad; evitar estas características y buscar modos de minimizar la probabilidad de error en el proceso de programación son básicamente los objetivos de la Programación Estructurada. Por lo tanto, definimos a la Programación Estructurada como un conjunto de técnicas de construcción de programas que utilizan al máximo los recursos del lenguaje, limita el conjunto de estructuras aplicables a leer y presenta una serie de reglas que coordinan adecuadamente el desarrollo de las diferentes fases de programación. La Programación Estructurada se basa en los siguientes principios: o Recursos abstractos o Estructuras básicas de control o Diseño descendente “arriba – abajo” (top – down) Entonces podemos concluir que la Programación Estructurada es una filosofía para la implantación de algoritmos a través de un conjunto finito de estructuras bien organizadas. RECURSOS ABSTRACTOS. Cuando se comienza a diseñar el algoritmo con el cual se resolverá un problema determinado, muchos analistas y otros tantos programadores caemos en la terrible tentación de querer tener todos los detalles de la implantación aún antes de escribir la primera línea del código. Por ejemplo si se desea implantar un programa graficador, mas de uno se sentirá tentado a pensar en los grandes problemas que representará para la rutina de despliegue el contemplar todos los tipos de monitores disponibles en el mercado, ¿Quien dijo que la rutina de despliegue debe contemplar el tipo de monitor existente en el mercado? Mejor aún, ¿Quien nos asegura que existirá una rutina de despliegue? Encontrar el algoritmo ó implantarlo requiere de la abstracción de las partes mas importantes y características del problema . Los detalles deben ser omitidos hasta donde sean posible. PROGRAMACION MODULAR. Este tipo de lenguaje constituye una primera herramienta al servicio del programador y de hecho sucedió así históricamente. No obstante es fácil intuir que esta herramienta nos conducirá a buenos resultados para problemas de pequeña o mediana complejidad, pero cuando la complejidad aumenta llevará consigo: Un aumento del tamaño físico del algoritmo Un aumento de la complejidad de sus relaciones (crecimiento anárquico) Para evitar algunos inconvenientes, aparecen dos criterios de programación que lejos de ser contrapuestos o representar soluciones paralelas, creemos que son complementarios: LA PROGRAMACIÓN MODULAR es un método de diseño y tiende a dividir el problema total en partes perfectamente diferenciadas que pueden ser analizadas, programadas y puestas a punto por separado. LA PROGRAMACIÓN ESTRUCTURADA corresponde a un método de programación, o forma de programar, y se basa simplemente en limitar el conjunto de estructuras posibles de un algoritmo a unas pocas estructuras privilegiadas que, tienden a estructurar el programa, procurando que su texto corresponda a su orden de ejecución. Al atacar el análisis de un problema podremos utilizar criterios de programación modular para dividirlo en partes independientes, utilizando métodos estructurados en la programación de cada modulo, probándolos por separado y realizando luego su montaje ascendente. ESTRUCTURAS BÁSICAS DE CONTROL. El teorema de la estructura fue enunciada por Bohm y Jacopini. En el se establece que se requieren tres bloques para construir cualquier programa: Una caja de proceso. Una decisión binaria. Un mecanismo de repetición.

Upload: alejandro-rodriguez-lorenzana

Post on 28-Oct-2014

50 views

Category:

Documents


0 download

DESCRIPTION

ejemplos y definiciones de algoritmos

TRANSCRIPT

Page 1: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 1

Objetivo

Presentar los elementos de la programación estructurada para que el estudiante sea capaz de diseñar algoritmos que le permiten

resolver problemas diversos.

Introducción

Dentro de lo que es el capitulo de algoritmos, a veces en forma pedagógica, es un poco difícil dar este tema, la razón se

fundamenta en el hecho de que el alumno no esta acostumbrado a “pensar con lógica”, desgraciadamente durante la formación del

alumno desde niveles básicos de educación no se le a enseñado a crear un conocimiento significativo por lo que su mente no está

acostumbrada a razonar. El problema de la implementación de algoritmos reside en esta situación. Cuando yo le digo al alumno

¿Cuanto es 12 * 2? Contesta automáticamente 24.

Todo parecería estar bien pero lo hizo de forma automática y no hizo la operación siguiendo las reglas de la multiplicación. Para

poder desarrollar algoritmos es necesario seguir todas esas reglas por que al momento de codificar un programa se debe de hacer

de tal manera que no exista una falla en estos pasos, por que habrá que recordar que una computadora no piensa, y solo sigue las

instrucciones que el programador le ha implantado al desarrollar el algoritmo.

Metodología de la programación estructurada.

La realización de un programa sin seguir un método de programación riguroso, aunque funcione, a la larga no será mas que un

conjunto mas o menos grande de instrucciones con falta de fiabilidad y flexibilidad; evitar estas características y buscar modos de

minimizar la probabilidad de error en el proceso de programación son básicamente los objetivos de la Programación Estructurada.

Por lo tanto, definimos a la Programación Estructurada como un conjunto de técnicas de construcción de programas que utilizan

al máximo los recursos del lenguaje, limita el conjunto de estructuras aplicables a leer y presenta una serie de reglas que

coordinan adecuadamente el desarrollo de las diferentes fases de programación.

La Programación Estructurada se basa en los siguientes principios:

o Recursos abstractos

o Estructuras básicas de control

o Diseño descendente “arriba – abajo” (top – down)

Entonces podemos concluir que la Programación Estructurada es una filosofía para la implantación de algoritmos a través de un

conjunto finito de estructuras bien organizadas.

RECURSOS ABSTRACTOS.

Cuando se comienza a diseñar el algoritmo con el cual se resolverá un problema determinado, muchos analistas y otros tantos

programadores caemos en la terrible tentación de querer tener todos los detalles de la implantación aún antes de escribir la

primera línea del código. Por ejemplo si se desea implantar un programa graficador, mas de uno se sentirá tentado a pensar en los

grandes problemas que representará para la rutina de despliegue el contemplar todos los tipos de monitores disponibles en el

mercado, ¿Quien dijo que la rutina de despliegue debe contemplar el tipo de monitor existente en el mercado? Mejor aún,

¿Quien nos asegura que existirá una rutina de despliegue?

Encontrar el algoritmo ó implantarlo requiere de la abstracción de las partes mas importantes y características del problema. Los

detalles deben ser omitidos hasta donde sean posible.

PROGRAMACION MODULAR.

Este tipo de lenguaje constituye una primera herramienta al servicio del programador y de hecho sucedió así históricamente. No

obstante es fácil intuir que esta herramienta nos conducirá a buenos resultados para problemas de pequeña o mediana

complejidad, pero cuando la complejidad aumenta llevará consigo:

Un aumento del tamaño físico del algoritmo

Un aumento de la complejidad de sus relaciones (crecimiento anárquico)

Para evitar algunos inconvenientes, aparecen dos criterios de programación que lejos de ser contrapuestos o representar soluciones

paralelas, creemos que son complementarios:

LA PROGRAMACIÓN MODULAR es un método de diseño y tiende a dividir el problema total en partes

perfectamente diferenciadas que pueden ser analizadas, programadas y puestas a punto por separado.

LA PROGRAMACIÓN ESTRUCTURADA corresponde a un método de programación, o forma de programar, y se

basa simplemente en limitar el conjunto de estructuras posibles de un algoritmo a unas pocas estructuras

privilegiadas que, tienden a estructurar el programa, procurando que su texto corresponda a su orden de ejecución.

Al atacar el análisis de un problema podremos utilizar criterios de programación modular para dividirlo en partes independientes,

utilizando métodos estructurados en la programación de cada modulo, probándolos por separado y realizando luego su montaje

ascendente.

ESTRUCTURAS BÁSICAS DE CONTROL.

El teorema de la estructura fue enunciada por Bohm y Jacopini. En el se establece que se requieren tres bloques para construir

cualquier programa:

Una caja de proceso.

Una decisión binaria.

Un mecanismo de repetición.

Page 2: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 2

El enunciado fue hecho en el artículo de Diagramas de flujo, Máquinas de Turing y Lenguajes con solo dos reglas de formulación

publicado en italiano en 1965.

ALGORITMO.

El algoritmo es una secuencia ordenada y cronológica de pasos que llevan a la solución de un problema o a la ejecución de una

tarea. Los pasos deben ser simples, claros y exactos, seguir un orden lógico y además tener un principio y un fin.

Son ejemplo de algoritmos las señas para encontrar una calle, las recetas de cocina, los planos de construcción y las instrucciones

para armar un juguete. Los elementos que integran la estructura de un algoritmo son los siguientes:

1. Encabezado: Todo algoritmo debe tener un encabezado como identificador, el cual debe empezar con la palabra

algoritmo seguida de una descripción apropiada. Ejemplo:

Algoritmo CALCULAR SUELDO DE UN EMPLEADO

2. Definición de variables: El primer paso para crear un algoritmo consiste en definir las variables (estructura de datos)

que se necesitan; asignarles un nombre, identificar el uso que tendrán y determinar sus tipos de datos. Ejemplo:

NOMBRE: Alfabético [30]

HRSTRAB: Entero

CUOTAHR: Real

SUELDO: Real

3. Leer, calcular e imprimir: El segundo paso de un algoritmo consiste en leer, calcular e imprimir tantas veces se requiera

y en el orden que se necesite.

Lectura de datos: En este punto se empiezan a introducir los datos disponibles como materia prima, mediante

una operación de lectura precedida por una solicitud de datos. Ejemplo:

Leer NOMBRE, HRSTRAB, CUOTAHR

Cálculos: El siguiente paso es procesar la entrada para producir la salida, mediante la ejecución de cálculos

basadas en expresiones matemáticas. Ejemplo:

Calcular SUELDO = HRSTRAB*CUOTAHR

Salida (impresión) de datos: El último paso estriba en dar salida a la información requerida, imprimiendo las

variables que la contienen. Ejemplo.

Imprimir NOMBRE, SUELDO

4. Fin del algoritmo: El último paso del algoritmo consiste en incluir la indicación de fin.

Fin

BLOQUE DE PROCESO DECISIÓN BINARIA CICLO DE REPETICIÓN

ESTRUCTURAS DE CONTROL BÁSICAS.

Page 3: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 3

Algoritmo con la estructura de control secuencial.

De ejemplo podemos retomar el ejemplo descrito en el subtema de algoritmo, para hacer nuestro primer algoritmo.

Algoritmo CALCULAR SUELDO DE UN EMPLEADO (PROGRAMA DE ALGORITMO 1)

1. Definir variables.

NOMBRE: Alfabético [30]

HRSTRAB: Entero

CUOTAHR: Real

SUELDO: Real

2. Solicitar el nombre del empleado, número de horas trabajadas y cuota por hora.

3. Leer NOMBRE, HRSTRAB,CUOTAHR

4. Calcular SUELDO = HRSTRAB*CUOTAHR

5. Imprimir NOMBRE, SUELDO

6. Fin En forma de diagrama de flujo.

Estructura secuencial

EJERCICOS PROPUESTOS.

1.- HACER UN ALGORITMO PARA OBTENER EL AREA, PERIMETRO DE UN TRIANGULO.

2.- HACER UN ALGORITMO QUE OBTENGA E IMPRIMA EL VALOR DE Y A PARTIR DE LA ECUACIÓN Y = 3X2 + 7X – 15.

INICIO

DAME EL NOMBRE DEL EMPLEADO.

NÚMERO DE HORAS TRABAJADAS Y CUOTA POR HORA

NOMBRE, HRSTRAB,CUOTAHR

SUELDO = HRSTRAB*CUOTAHR

NOMBRE, SUELDO

FIN

Page 4: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 4

3.- HACER UN ALGORITMO QUE CONVIERTA UN NÚMERO DADO DE SEGUNDOS EN MINUTOS Y QUE IMPRIMA EL

RESULTADO.

4.- UNA TEMPERATURA EN GRADOS CENTÍGRADOS SE PUEDE CONVERTIR A SU EQUIVALENTE EN GRADOS

FAHRENHEIT CON LA FÓRMULA OF =

5

9 + 32..

HACER UN ALGORITMO QUE LEA UNA TEMPERATURA EN GRADOS CENTÍGRADOS Y OBTENGA E IMPRIMA LA TEMPERATURA FAHRENHEIT EQUIVALENTE.

5.- EL SIGUIENTE SISTEMA DE ECUACIONES LINEALES:

ax + by = c dx + ey = f

SE PUEDE RESOLVER CON LAS FÓRMULAS:

X =

bdae

bfce

Y =

bdae

cdaf

SI ae-bd 0.

ELABORAR UN ALGORITMO QUE LEA LOS COEFICIENTES a,b,c,d,e y f, Y QUE IMPRIMA LOS VALORES DE X y Y.

6.- HACER UN ALGORITMO QUE LEA UN NÚMERO EN PIES Y CALCULE E IMPRIMA SU EQUIVALENTE EN YARDAS,

PULGADAS, CENTÍMETROS Y METROS, DE ACUERDO CON LAS SIGUIENTES EQUIVALENCIAS: 1 pie=12 pulgadas, 1

yarda=3pies. 1 pulgada=2.54cm.

1 metro=100cm.

Algoritmo con la estructura de control de selección doble (IF-THEN-ELSE).

Del ejemplo anterior, ahora vamos a suponer que si el número de horas trabajadas es mayor que 40, el excedente de 40 se paga al

doble de la cuota por hora, en caso de no ser mayor de 40 se para la cuota normal por hora.

Algoritmo CALCULAR SUELDO DE UN EMPLEADO (PROGRAMA DE ALGORITMO 2)

1 Definir variables.

NOMBRE: Alfabético [30]

HRSTRAB: Entero

CUOTAHR: Real

SUELDO: Real

2 Solicitar el nombre del empleado, número de horas trabajadas y cuota por hora.

3 Leer NOMBRE, HRSTRAB,CUOTAHR

4 IF HRSTRAB > 40 THEN

SUELDO = (CUOTAHR*40) + ((HRSTRAB-40) * (CUOTAHR*2))

5 ELSE

SUELDO = HRSTRAB*CUOTAHR

6 ENDIF

7 Imprimir NOMBRE, SUELDO

8 Fin

EJERCICOS PROPUESTOS.

7.- UNA ESCUELA APLICA DOS EXAMENES A SUS ASPIRANTES, POR LO QUE CADA UNO DE ELLOS OBTIENE DOS

CALIFICACIONES DENOTADAS COMO C1 Y C2. EL ASPÍRANTE QUE OBTENGA LAS CALIFICACIONES MAYORES

QUE 80 EN AMBOS EXAMENES ES ACEPTADO; EN CASO CONTRARIO ES RECHAZADO. HACER UN ALGORITMO PARA DETERMINAR LOS ALUMNOS ACEPTADOS.

Page 5: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 5

Algoritmo con la estructura de control de selección sencilla (IF-THEN).

Siguiendo con nuestro ejemplo: supongamos que ahora se otorga un incentivo del 5% si el empleado trabajo mas de 40 horas, esto

se agrega independientemente del cálculo del sueldo.

Algoritmo CALCULAR SUELDO DE UN EMPLEADO (PROGRAMA DE ALGORITMO 3)

1 Definir variables.

NOMBRE: Alfabético [30]

HRSTRAB: Entero

CUOTAHR: Real

SUELDO: Real

2 Solicitar el nombre del empleado, número de horas trabajadas y cuota por hora.

3 Leer NOMBRE, HRSTRAB,CUOTAHR

4 IF HRSTRAB > 40 THEN

SUELDO = (HRSTRAB*CUOTAHR)*1.05

5 ENDIF

6 Imprimir NOMBRE, SUELDO

7 Fin

Algoritmo con la estructura de control de selección múltiple (CASE). (PROGRAMA DE ALGORITMO 4)

Ejemplo: Elabore un algoritmo que lea un valor entre 1 y 7 y despliegue “DOMINGO” si es 1, “MARTES” si es 2........,

“SABADO” si es 7.

Algoritmo DIAS DE LA SEMANA

1 Definir variables.

NUM_DIA: Entero

2 Solicitar el número de día

3 Leer NUM_DIA

4 CASE(1,2,3,4,5,6,7) NUM_DIA

1: Imprimir “DOMINGO”

2: Imprimir “LUNES”

3: Imprimir “MARTES”

4: Imprimir “MIÉRCOLES”

5: Imprimir “JUEVES”

6: Imprimir “VIERNES”

7: Imprimir “SABADO”

5 ELSE

Imprimir “NO ESTA ENTRE 1 Y 7”

6 ENDCASE

7 Fin EJERCICOS PROPUESTOS.

8.- REPETIR EL ÚLTIMO ALGORITMO PERO USANDO LAS ESTRUCTURAS IF-ELSE. 9.- ELABORAR UN ALGORITMO PARA CALCULAR LA CALIFICACIÓN FINAL DE UN ALUMNO, TENIENDO COMO DATOS

CUATRO CALIFICACIONES PARCIALES. IMPRIMIR NOMBRE, LA CALIFICACIÓN FINAL Y UN COMENTARIO DE

APROBADO SI OBTIENE 60 O MAS Y REPROBADO EN CASO CONTRARIO. 10.- HACER UN ALGORITMO QUE LEA TRES NÚMEROS Y QUE CALCULE E IMPRIMA EL MAYOR. SE SUPONE QUE SON

NÚMEROS DIFERENTES.

11.- ELABORE UN ALGORITMO QUE LEA EL NÚMERO DE MES ENTRE 1 Y 12 Y QUE IMPRIMA EL NOMBRE DEL MES CORRESPONDIENTE: SI ES 1 “ENERO”, SI ES 2 “FEBRERO”, ETC.

Page 6: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 6

12.- ELABORE UN ALGORITMO PARA CALCULAR E IMPRIMIR EL PRECIO DE UN TERRENO DEL CUAL SE TIENEN LOS

SIGUIENTRES DATOS: LARGO, ANCHO Y PRECIO POR METRO CUADRADO. SI EL TERRENO TIENE MAS DE 400

METROS CUADRADOS SE HACE UN DESCUENTO DEL 10% . 13.- IGUAL QUE EL EJERCICIO ANTERIOR, PERO AHORA SI EL TERRENO TIENE MAS DE 500 METROS CUADRADOS EL

DESCUENTO ES DEL 17% Y SI TIENE MAS DE 1000 EL DESCUENTO ES DEL 25%.

14.- ELABORE UN ALGORITMO QUE IMPRIMA EL COSTO DE UN PEDIDO DE UN ARTICULO DEL CUAL SE TIENE LA DESCRPCIÓN, LA CANTIDAD PEDIDA Y EL PECIO UNITARIO. SI LA CANTIDAD PEDIDA EXCEDE LAS 50 UNIDADES,

SE HACE UN DESCUENTO DEL 15%.

15.- UN CLIENTE ORDENA CIERTA CANTIDAD DE LIBROS, DISCOS Y CUADERNOS; LOS LIBROS TIENEN 20% DE

DESCUENTO Y LOS DISCOS 15%. LOS DATOS QUE SE TIENEN POR CADA TIPO DE ARTICULO SON: LA CANTIDAD

PEDIDA Y EL PRECIO UNITARIO. ADEMÁS SI SE PAGA DE CONTADO TIENE UN DESCUENTO DEL 6%. ELABORAR UN ALGORITMO QUE CALCULE E IMPRIMA EL COSTO TOTAL DE LA ORDEN, TANTO PARA EL PAGO DE

CONTADO COMO PARA EL CASO DE PAGO A CRÉDITO.

16.- UNA LIBRERÍA VENDE LIBROS CON LAS CONDICIONES SIGUIENTES: SI EL CLIENTE ES DEL TIPO 1 SE LE DESCUENTA EL 30%.

SI EL CLIENTE ES DEL TIPO 2 SE LE DESCUENTA EL 20%.

SI EL CLIENTE ES DEL TIPO 3 SE LE DESCUENTA EL 10%. CUANDO EL CLIENTE REALIZA UNA COMPRA SE GENERAN LOS SIGUIENTES DATOS:

NOMBRE DEL CLIENTE.

TIPO DE CLIENTE (1,2,3) CANTIDAD DE LIBROS.

COSTO POR LIBRO.

ELABORE UN ALGORITMO QUE LEA ESTOS DATOS Y QUE IMPRIMA LO SIGUIENTE: NOMBRE DEL CLIENTE.

TOTAL A PAGAR.

DESCUENTO. NETO A PAGAR.

17.- IGUAL QUE EL EJERCICIO ANTERIOR, PERO ADEMÁS:

SI LA CANTIDAD DE LIBROS SOLICITADA ES MAYOR QUE 50, SE HACE UN DESCUENTO ADICIONAL DEL 5%, EN CASO DE SER MAYOR DE 100 EL DESCUENTO ES DEL 10%.

Algoritmo con la estructura de control REPEAT. (PROGRAMA DE ALGORITMO 5)

Retomando el ejemplo de los sueldos. Ahora vamos a calcular el sueldo para varios empleados.

Algoritmo SUELDOS DE VARIOS EMPLEADOS

1 Definir variables.

NOMBRE: Alfabético [30]

HRSTRAB: Entero

CUOTAHR: Real

SUELDO: Real

DESEA: Alfabético [1]

2 REPEAT

Solicitar el nombre del empleado, número de horas trabajadas y cuota por hora.

Leer NOMBRE, HRSTRAB,CUOTAHR

Calcular SUELDO = HRSTRAB*CUOTAHR

Imprimir NOMBRE, SUELDO

Preguntar ¿Desea procesar otro empleado (S/N) ?

Leer DESEA

3 UNTIL DESEA = ´N´

4 Fin

Para el caso de que se requiera determinar el número total de empleados y el sueldo total pagado a todos esos empleados se hará

uso de un contador para el número de empleados y un contador para sacar el sueldo total.

Algoritmo SUELDOS DE VARIOS EMPLEADOS (PROGRAMA DE ALGORITMO 6)

1 Definir variables.

NOMBRE: Alfabético [30]

HRSTRAB: Entero

Page 7: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 7

CUOTAHR: Real

SUELDO: Real

DESEA: Alfabético [1]

TOTEMP: Entero

TOTSUELDO: Real

2 Imprimir encabezado

3 TOTEMP=0

4 TOTSUELDO=0

5 REPEAT

Solicitar el nombre del empleado, número de horas trabajadas y cuota por hora.

Leer NOMBRE, HRSTRAB,CUOTAHR

Calcular SUELDO = HRSTRAB*CUOTAHR

Imprimir NOMBRE, SUELDO

TOTEMP=TOTEMP+1

TOTSUELDO=TOTSUELDO+SUELDO

Preguntar ¿Desea procesar otro empleado (S/N) ?

Leer DESEA

6 UNTIL DESEA = ´N´

7 Imprimir TOTEMP,TOTSUELDO

8 Fin EJERCICOS PROPUESTOS.

18.- SE TIENE UN GRUPO DE ALUMNOS. LOS DATOS DE CADA ALUMNO SON:

NOMBRE.

SEXO (M,F). EDAD.

ESTATURA.

PESO. COLOR DE OJOS (1-AZULES. 2-CASTAÑO. 3-LOS DEMÁS).

COLOR DE CABELLO (1-CASTAÑO. 2-RUBIO. 3- LOS DEMAS).

DISEÑAR UN ALGORITMO QUE LEA LOS DATOS DE ENTRADA Y QUE PROPORCIONE UN LISTADO CON LOS NOMBRES DE:

1.- TODAS LAS MUJERES CON CABELLO RUBIO Y OJOS AZULES QUE MIDEN ENTRE 1.65 Y 1.75 METROS Y QUE PESEN MENOS DE 55 KILOGRAMOS.

2.- TODAS LOS HOMBRES DE PELO CASTAÑO Y QUE MIDAN MAS DE 1.70 METROS DE ESTATURA Y QUE PESEN ENTRE 60 Y 70 KILOGRAMOS.

Algoritmo con la estructura de control FOR.

Ejemplo: Elaborar un algoritmo que calcule e imprima la suma de los números del 1 hasta el 100.

Algoritmo SUMA DE NÚMEROS DEL 1 HASTA EL 100 (PROGRAMA DE ALGORITMO 7)

1 Definir variables.

INDICE: Entero

SUMATORIA: Entero

2 FOR INDICE 1,100

SUMATORIA=SUMATORIA+1

3 ENDFOR

4 Imprimir SUMATORIA

Page 8: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 8

5 Fin EJERCICOS PROPUESTOS.

19.- ELABORAR UN ALGORITMO QUE CALCULE E IMPRIMA LA SUMA 1+1/2+1/3+....+1/n.

20.- ELABORE UN ALGORITMO QUE LEA N NUMEROS Y QUE DETERMINE E IMPRIMA EL PROMEDIO DE LA SUMA DE DICHOS NUMEROS.

21.-. ESTIMAR LA POBLACIÓN ESTUDIANTIL PARA EL AÑO 2005 CONSIDERANDO UN CRECIMIENTO ANUAL DEL 12%.

LA POBLACIÓN ACTUAL ES DE 750 ALUMNOS. 22.- HACER UN ALGORITMO QUE LEA UN VALOR N, ENTERO Y POSITIVO Y QUE CALCULE E IMPRIMA SU FACTORIAL.

POR EJEMPLO: SI SE LEE EL 5, SU FACTORIAL ES EL PRODUCTO DE 5*4*3*2*1. EL FACTORIAL DE CERO ES UNO.

23.- ELABORAR UN ALGORITMO QUE LEA UN VALOR N Y QUE IMPRIMA UN TRIANGULO DE ASTERISCOS, COMO SE

MUESTRA A CONTINUACIÓN, SI EL VALOR LEISO ES CINCO.

*

** ***

****

*****. 24.- ELABORAR UN ALGORITMO PARA CALCULAR E IMPRIMIR EL CUADRADO DE LOS NÚMEROS DEL 1 AL 10.

25.- ELABORAR UN ALGORITMO PARA SUMAR N NÚMEROS DE ENTRADA E IMPRIMIR EL TOTAL.

26.- ELABORAR UN ALGORITMO PARA CALCULAR LA CANTIDAD QUE SE TENDRÍA AHORRADA DESPUÉS DE 10 AÑOS SI SE DEPOSITAN MIL PESOS MENSUALMENTE A UNA TASA DE INTERES MENSUAL DEL 3% CAPITALIZABLES

CADA MES, ES DECIR QUE AL CAPITAL SE LE AGREGAN LOS INTERESES.

27.- ELABORAR UN ALGORITMO PARA CALCULAR LA CANTIDAD QUE SE TENDRÍA AHORRADA DESPUÉS DE 15 AÑOS SI SE DEPOSITAN QUINCE MIL PESOS A UNA TASA DE INTERES MENSUAL DEL 3.7 % CAPITALIZABLE CADA MES.

28.- LA EMPRESA TELMEX A DECIDIDO INCREMENTAR LA TARIFA DE LA RENTA MENSUAL POR USO DEL TELEFONO

EN 4% MENSUAL. LA TARIFA DE ABRIL DE 1999 ES DE $27.00. ELABORAR UN ALGORITMO QUE IMPRIMA EL MONTO DE LA RENTA MENSUAL PARA OCTUBRE DEL 2001.

29.- UN TRABAJO X TIENE 30 DÍAS DE DURACIÓN Y PAGAN $10.00 DIARIOS, OTRO TRABAJO TAMBIÉN DURA 30 DÍAS

PERO SE PAGA COMO SIGUE: %1.00 EL PRIMER DÍA, $2.00 EL SEGUNDO DÍA, $3.00 EL TERCER DÍA Y ASÍ SUCESIVAMENTE. ¿CUÁL SERÁ EL MEJOR PAGADO?

30.- ELABORAR UN ALGORITMO PARA ESTIMAR LA POBLACIÓN ESTUDIANTIL QUE SE ESPERA TENER EN UN

DETERMINADO AÑO; LOS DATOS QUE SE TIENEN SON: UNA POBLACIÓN ACTUASL, UN PORCENTAJE DE CRECIMIENTO ANUAL ESPERADO Y SE ESTA EN UN AÑO ACTUAL DETERMINADO. TODOS ESTOS DATOS DEBEN

DE SER LEIDOS PARA IMPRIMIR AL FINAL LO ESTIMADO.

Algoritmo con la estructura de control DO-WHILE (haz-mientras).

Ejemplo: Elaborar un algoritmo que calcule el sueldo de varios empleados y proporcione el siguiente reporte:

NOMINA QUINCENAL

NOMBRE SUELDO

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 99, 999,999.99

Algoritmo SUELDOS DE EMPLEADOS (PROGRAMA DE ALGORITMO 8)

1 Definir variables.

NOMBRE: Alfabético [30]

HRSTRAB: Entero

CUOTAHR: Real

SUELDO: Real

DESEA: Alfabético [1]

2 Preguntar ¿Hay empleado (S/N) ?

4 Leer DESEA

5 DOWHILE DESEA = ´S´

Solicitar el nombre del empleado, número de horas trabajadas y cuota por hora.

Leer NOMBRE, HRSTRAB,CUOTAHR

Calcular SUELDO = HRSTRAB*CUOTAHR

Imprimir NOMBRE, SUELDO

Preguntar ¿Desea procesar otro empleado (S/N)?

Leer DESEA

Page 9: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 9

6 ENDDO

7 Fin

EJERCICOS PROPUESTOS.

31.- ELABORAR UN ALGORITMO PARA ENLISTAR LOS NÚMEROS PARES ENTRE 0 Y 20 (DOWHILE N<=20).

Algoritmo con ARREGLOS UNIDIMENSIONALES.

Ejemplo: Elaborar un algoritmo que lea el nombre de un vendedor y las ventas realizadas durante los 30 días del mes, que las

almacene en un arreglo y que imprima el reporte siguiente.

Nombre del vendedor: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ventas del día 1: 999,999.999

Ventas del día 2: 999,999.999

Ventas del día 30: 999,999.999

Venta total del mes: 9, 999,999.999

Donde la venta total del mes se calcula mediante la suma de las ventas realizadas durante los 30 días.

Algoritmo VENTA DEL MES (PROGRAMA DE ALGORITMO 9)

1 Definir variables.

NOMBRE: Alfabético [30]

VENTAS: Arreglo [30] Real

I: Entero

TOTVENTA: Real

2 Solicitar el nombre del vendedor

3 Leer NOMBRE

4 FOR I=1,30

a. Solicitar la venta del día I

b. Leer VENTAS[I]

ENDFOR

5 TOTVENTA=0

6 Imprimir NOMBRE

7 FOR I=30

a. Imprimir VENTAS[I]

b. TOTVENTA=TOTVENTA+VENTAS[I]

8 ENDFOR

9 Imprimir TOTVENTA

10 Fin

Elaborar un algoritmo que lea los dos arreglos, cada uno con diez números enteros. Calcular un tercer arreglo sumando los dos

primeros de la siguiente manera: que se sume el elemento 1 del primer arreglo y el primero del segundo arreglo y que el resultado

se almacene en el 1 del tercero y así sucesivamente. Además se requiere que al final imprima los tres arreglos de la siguiente

forma:

Arreglo 1 + Arreglo 2 = Arreglo 3

99 99 999

99 99 999

. . .

99 99 999

Page 10: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 10

Algoritmo SUMA _ ARREGLOS (PROGRAMA DE ALGORITMO 10)

1 Definir variables.

A, B, S: Arreglo [10] Real

I: Entero

2 FOR I=1,10

a. Solicitar I del arreglo A

b. Leer A[I]

c. Solicitar I del arreglo B

d. Leer B[I]

e. Calcular S[I]=A[I]+B[I]

3 ENDFOR

4 Imprimir encabezado

5 FOR I=1,10

a. Imprimir A[I], B[I], S[I]

6 ENDFOR

7 Fin

Algoritmo con ARREGLOS BIDIMENSIONALES.

Ejemplo: Elaborar un algoritmo que lea números enteros para una matriz de 10 x 10 y que al final de cada renglón imprima la

suma de todos los elementos.

Algoritmo SUMA _ ARREGLOS (PROGRAMA DE ALGORITMO 11)

1 Definir variables.

MATRIZ: Arreglo [10,10] Entero

REN, COL, SUMA: Entero

2 FOR REN=1,10

a. FOR COL=1,10

1 Solicitar elemento REN, COL

2 Leer MATRIZ [REN, COL]

b. ENDFOR

3 ENDFOR

4 FOR REN=1,10

a. SUMA=0

b. FOR COL=1,10

1 Imprimir MATRIZ[REN,COL]

2 SUMA=SUMA+MATRIZ[REN,COL]

c. ENDFOR

d. Imprimir SUMA

5 ENDFOR

6 Fin

Page 11: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 11

Algoritmos con la programación modular.

Una vez que ya se hicieron ejemplos sencillos para poder entender las estructuras de control de la programación estructurada.

Ahora procedemos a poner un ejemplo donde se involucre el concepto de la programación estructurada y la programación

modular.

Algoritmo MODULO PRINCIPAL

1 Definir variables.

2 Desplegar el menú:

1.- ALTAS

2.- BAJAS

3.- CAMBIOS

4.- SALIDA

3 Solicitar la opción

4 Leer opción

5 CASE(1)

Llamar ALTAS

CASE(2)

Llamar BAJAS

CASE(3)

Llamar CAMBIOS

CASE(4)

Llamar SALIDA

6 ELSE

Imprimir “NO ESTA TU OPCIÓN”

7 ENDCASE

8 Fin

MODULO PRINCIPAL

MODULO ALTAS MODULO BAJAS MODULO CAMBIOS MODULO SALIDA

POR CLAVE POR CONTRATO

SEMANAL QUINCENAL

Page 12: Algoritmos y Diagramas de Flujo

UNAM-FES ARAGON. INGENIERIA MECÁNICA ELECTRICA

TRABAJO Y EJERCICIOS PROPUESTOS PARA EL TEMA DE ALGORITMOS Y DIAGRAMAS DE FLUJO.

PROFESOR: ING. ALEJANDRO RODRÍGUEZ LORENZANA PAG. 12

Algoritmo MODULO1 ALTAS

1 Definir variables.

2 Desplegar el menú:

1.- POR CLAVE

2.- POR CONTRATO

3 Solicitar la opción

4 Leer opción

5 CASE(1)

Llamar ALTAS POR CONTRATO

CASE(2)

Llamar ALTAS POR CLAVE

6 ENDCASE

7 Fin

Algoritmo ALTAS POR CONTRATO

1 Definir variables.

CLAVE :

2 Solicitar el nombre del empleado y checar si su contrato es semanal o quincenal.

3 Leer CLAVE

4 IF CLAVE=CONTRATOS_SEMANAL THEN

LLAMAR ALTAS POR SEMANA

5 ELSE

LLAMAR ALTAS POR QUINCENA

6 ENDIF

7 Fin

BIBLIOGRAFÍA.

Fundamentos de programación.

Autor. Ernesto Peñalosa Romero.

Edit. U.N.A.M. ENEP-ARAGON. 1994

Programación en Turbo C.

Autor. Herbert, Schildt.

Edit. Mc Graw Hill. 1993.

Programación estructurada.

Un enfoque algorítmico

Autor. Leobardo López R.

Edit. Computec. 1994.

Introducción a la computación

Autor. Jorge Vasconsuelos Santillán.

Ed. Publicaciones Cultural.2006.