56
Tecnologías de Información (TIC) Introducción a la programación MODULO O1: INTRODUCCIÓN AL INTRODUCCIÓN AL DESARROLLO DE DESARROLLO DE ALGORITMOS ALGORITMOS ELABORADO POR PROFESORA: Ing. Gloriana Peña Ramírez

Concepto de Algoritmo (1)

Embed Size (px)

Citation preview

Page 1: Concepto de Algoritmo (1)

Tecnologías de Información (TIC)

Introducción a la programación

MODULO O1:

INTRODUCCIÓN AL DESARROLLO DE ALGORITMOSINTRODUCCIÓN AL DESARROLLO DE ALGORITMOS

ELABORADO POR PROFESORA: Ing. Gloriana Peña Ramírez

I, Cuatrimestre 2012

Page 2: Concepto de Algoritmo (1)

CONTENIDO

Introducción 3Introducción al desarrollo de algoritmos 4

Concepto de algoritmo 4Características de un algoritmo 4Fases para la resolución de un problema informático

Definición del problema 4Análisis del problema 4Diseño de la solución 5Codificación 5Compilación y ejecución 5Verificación y pruebas 5Depuración 5Documentación 5Capacitación 5Implantación o implementación del sistema 6Mantenimiento 6

Componentes de un algoritmoTipos de datos 6Constantes 6Expresiones 7Operadores aritméticos 7Operadores relacionales 7Operadores lógicos 8Prioridad de operadores 8Sentencias de asignación 9Identificadores 9Variables 9

Pseudocódigo 10Ejemplo del uso del pseudocódigo 10

Diagramas de flujoCaracterísticas y ventajas del diagrama de flujo 10Reglas para dibujar un diagrama de flujo 11¿Qué es DFD? 11Objetos en DFD 12

Ejemplos y práctica de diagramas de flujos secuenciales 15La estructura de selección if 19La estructura de selección if/else 19Las estructuras if/else anidadas 20Ejemplos y práctica de diagramas de flujos con estructuras de selección

if, if/else, if/else anidadas 21La estructura de repetición while 24La estructura de repetición for 25La estructura de repetición do/while 29Ejemplos y práctica de diagramas de flujo compuestos 30Ejercicios extras de diagramas de flujos 36Bibliografía 38

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

2

Page 3: Concepto de Algoritmo (1)

MÓDULO I: INTRODUCCIÓN AL DESARROLLO DE ALGORITMOS

ALGORITMOUn algoritmo es un método para resolver un problema, debe presentarse como una

secuencia ordenada de instrucciones que siempre se ejecutan en un tiempo finito y con una cantidad de esfuerzo también finito. En un algoritmo siempre debe haber un punto de inicio y un punto de terminación, estos deben ser únicos y deben ser fácilmente identificables.

Características de un algoritmoTodo algoritmo debe cumplir las siguientes características:Debe ser Preciso; Esto es, debe especificar sin ambigüedad el orden en que se deben ejecutar las instrucciones. Debe estar Definido; Esto es, cada vez que se ejecute bajo las mismas condiciones, la secuencia de ejecución deberá ser la misma proporcionándonos el mismo resultado. Debe ser Finito; Esto es, siempre que sea adecuado se realizarán un número finito de instrucciones, en un tiempo finito y requiriendo una cantidad finita de esfuerzo.

Fases para la resolución de un problema informático1. Definición del problema

Requiere que el problema sea definido y comprendido claramente para que pueda ser analizado con todo detalle.2. Análisis del problema

El propósito del análisis de un problema es ayudar al programador para llegar a una cierta comprensión de la naturaleza del problema. El problema debe estar bien definido si se desea llegar a una solución satisfactoria.Para poder definir con precisión el problema se requiere que las especificaciones de entrada, proceso y salida sean descritas con detalles. Entrada, son todos los datos que hay que ingresar para la resolución del problema. Proceso, son los diferentes procedimientos en los cuales usara los datos proporcionados por el usuario en el paso anterior para resolver el problema. Salida, la resolución del problema.

Una buena definición del problema, junto con una descripción detallada de las especificaciones de entrada y salida, son los requisitos más importantes para llegar a una solución eficaz.

El análisis del problema exige una lectura previa del problema a fin de obtener una idea general de lo que se solicita. La segunda lectura deberá servir para responder a las preguntas:¿Qué información debe proporcionar la resolución del problema?¿Qué datos se necesitan para resolver el problema?

La respuesta a la primera pregunta indicara los resultados deseados o las salidas del problema. La respuesta a la segunda pregunta indicara que datos proporcionan o las entradas del problema.En esta fase debemos aprender a analizar la documentación de la empresa, investigar, observar todo lo que rodea el problema.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

3

Page 4: Concepto de Algoritmo (1)

3. Diseño de la soluciónUna computadora no tiene la capacidad para solucionar más que cuanto se le

proporcionan los sucesivos pasos a realizar. Estos pasos sucesivos que indican las instrucciones a ejecutar por la maquina constituyen, como ya sabemos el algoritmo.La información proporcionada al algoritmo constituye su entrada y la información producida por el algoritmo constituye su salida.Los problemas complejos se pueden resolver más eficazmente con la computadora cuando se rompen en sub-problemas que sean más fáciles de solucionar que el original. La descomposición del problema original en sub-problemas más simples y a continuación dividir estos sub-problemas en otros más simples que puedan ser implementados para su solución en la computadora de denomina diseño descendente (top - down design).Es preciso representar el algoritmo mediante una determinada herramienta de programación: diagramas de flujo o pseudocódigo.

4. Codificación Es el algoritmo traspasado a la computadora a través de un lenguaje de programación,

debe ser escrito de acuerdo a las reglas gramaticales o sintaxis del mismo.Generamos un algoritmo el cual se denomina código, y al pasarlo a un lenguaje de programación se le llama código fuente.

5. Compilación y ejecuciónCompilación, el lenguaje de programación seleccionado revisa que ya no halla errores en

el código fuente.Ejecución, ejecutar el programa después del ser compilado.

6. Verificación y pruebasRevisar que el programa de los resultados que el usuario quiere, hay que revisar si hay

algún error el cual puede ser de tipo lógico, de semántica o ejecución.

7. DepuraciónCorregir los errores encontrados en la etapa anterior, si hubiese algún error se tiene que

regresar hasta la etapa que sea necesaria para que la solución sea la que el usuario requiere.

8. DocumentaciónSon todos los comentarios, referencias desde que se dio el problema hasta que se

encontró la solución.a. documentación interna, es el encabezado, descripción, declaración del problema,

son todos los comentarios que puedan llegar a servir dentro del código fuente.b. documentación externa, son los manuales que se hacen para una mejor ejecución

del programa, ahí se explicara cómo usar el programa.

9. Capacitación Una vez que tenemos lo manuales viene la capacitación de usuarios, como no a todos

les interesa los mismo porque hay diferentes tipos de usuarios, se tienen que dividir de acuerdo a sus conveniencias.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

4

Page 5: Concepto de Algoritmo (1)

10. Implantación o implementación del sistemaHay diferentes formas de implementar el sistema:

Depende del tamaño del sistema. Si existiera un sistema se tiene que poner el nuevo y quitar el que ya estaba.Trabajar primero con el sistema viejo (si existe), y después empezar a trabajar con el nuevo.Sistemas implantados por regiones.Trabajar con el sistema viejo (si existe) y con el sistema nuevo simultáneamente después quitar el sistema viejo.Ir quitando el sistema viejo (si existe) poco a poco e ir implantando el sistema nuevo.

11. Mantenimiento El mantenimiento preventivo es que hagamos lo posible por no caer en errores, la

actualización si el usuario tiene la necesidad de quitar o poner algo; téngase en cuenta que cuando surge mantenimiento tenemos que volver a hacer todos los pasos anteriores revisando que todas la condiciones sean favorables alrededor del sistema.

COMPONENTES DE UN ALGORITMO

Tipos de datos El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le

intenta dar un valor fuera del conjunto se producirá un error. Entero:

Subconjunto finito de los números enteros, cuyo rango o tamaño dependerá del lenguaje en el que posteriormente se codifique el algoritmo y de la computadora.

Real:Subconjunto de los números reales limitado no sólo en cuanto al tamaño, sino también en

cuanto a la precisión. Lógico:Conjunto formado por los valores Verdadero y Falso. Carácter:Conjunto finito y ordenado de los caracteres que la computadora reconoce. Cadena: Los datos (objetos) de este tipo, contendrán una serie finita de caracteres, que

podrán ser directamente traídos o enviados a/desde consola

Los tipos: entero, real, lógico, carácter y cadena, son tipo predefinidos en la mayoría de los lenguajes de programación.

Constantes Una constante es un dato cuyo valor no puede cambiar durante la ejecución del programa.

Recibe un valor en el momento de la compilación y este permanece inalterado durante todo el programa.

Se puede hacer una división de las constantes en dos clases: constantes literales (sin nombre) constantes declaradas (con nombre)

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

5

Page 6: Concepto de Algoritmo (1)

Constantes declaradas con nombreLas constantes simbólicas o con nombre, se identifican por su nombre y el valor asignado.

Ejemplos: Ejemplo:

Pi = 3.141592Min = 0Max = 99Saludo = “Hola”;

Constantes LiteralesUna constante literal es un valor de cualquier tipo que se utiliza como tal.

• Numéricas enteras:En el rango de los enteros. Compuestas por el signo (+, -), seguido por una serie de dígitos (0..9).

Ej.: Cont ¬ Cont + 1

• Numéricas reales:Compuestas por el signo (+, -), seguido por una serie de dígitos (0..9) y un punto decimal

(.). Ej.: Cont ¬ Cont + 5.351

• Lógicas:Sólo existen dos constantes lógicas: verdadero y falsa

Ej.: Bandera ¬ Verdadero

• Carácter:Cualquier carácter del juego de caracteres utilizado, colocado entre comillas simples o apóstrofes. Los caracteres que reconoce la computadora son: dígitos, caracteres alfabéticos, tanto mayúsculas como minúsculas, y caracteres especiales. Ej.: Letra ¬ ‘C’

• Cadena:Serie de caracteres válidos, encerrados entre comillas simples o apóstrofes.

Ej.: Nombre ¬ ‘Carolina’

ExpresionesUna expresión es una combinación de operadores y operandos. Los operandos podrán ser constantes, variables y otras expresiones y los operadores de cadena, aritméticos, relacionales o lógicos.

Expresiones NuméricasLos operandos que intervienen en ellas son numéricos, el resultado es también de tipo numérico y se construyen mediante los operadores aritméticos. Se pueden considerar análogas a las fórmulas matemáticas.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

6

Constante literal

Constante literal

Constante literal

Constante literal

Constante literal

Page 7: Concepto de Algoritmo (1)

Operadores aritméticos:Operador Descripción EjemploÙ Exponenciación 2 ^ 3 = 8+ Suma 54 + 10 = 64- Resta 25 – 10 = 15/ División real 25 / 5 = 5.0* Multiplicación 2 * 32 = 64div Cociente de la división entera 5 div 2 = 2mod Residuo de la división entera 5 mod 2 = 1

Expresiones BooleanasSu resultado será Verdadero o falso. Se construyen mediante los operadores relacionales y lógicos.

Operadores relacionales:Operador

Significado

> Mayor que< Menor que= Igual que

>= Mayor o igual que<= Menor o igual que¡= Diferente de

Operadores lógicos:- y (Ù) : Multiplicación lógica- o (Ú) : Suma lógica- no (Ø) : Negación lógica

Tabla de verdad para operadores lógicosA B NO A A Y B A O Bfalso falso verdadero falso falsofalso verdadero verdadero falso verdaderoverdadero falso falso falso verdaderoverdadero verdadero falso verdadero verdadero

Prioridad de operadoresOperadores con la misma prioridad se evalúan de izquierda a derecha.

Prioridad Operador1 ^2 ( )3 No4 *, /, div, mod y5 o, +, -6 <, >, >=, <=, =, !=

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

7

Page 8: Concepto de Algoritmo (1)

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

8

Page 9: Concepto de Algoritmo (1)

Sentencia de asignaciónSe utiliza para asignar valores a las variables, se denota con el símbolo “¬”.

• Ejemplos: suma ¬ 1 + 3

a ¬ b * b * b band ¬ j > 0 cadena ¬ ‘Hola’ carácter ¬ ‘c’

IdentificadoresIdentificadores son los nombres que se dan a las constantes simbólicas, variables, u otros objetos que manipula un algoritmo.

Reglas para la construcción de Identificadores• Debe resultar significativo, sugiriendo lo que representa.• No podrá coincidir con palabras reservadas, propias del lenguaje algorítmico.• Se admitirá un máximo de 32 caracteres.• Comenzará siempre por un carácter alfabético y los siguientes podrán ser letras, dígitos o el

símbolo subrayado.• Podrá ser utilizado indistintamente en mayúscula y minúscula.

VariablesConcepto: Son un espacio en memoria que se reserva para almacenar información. Son definidas por el programador y además se les asigna un nombre (como una especie de apodo) para poder recordarlas y accesarlas con mayor facilidad.

Se puede comparar una variable con un recipiente que tiene un nombre fuera y un valor (una palabra, número o una lista) adentro. Cuando se crea una variable, al mismo tiempo se crea un recipiente y se le adjudica un valor.

Tipos básicos de variables - Contador:

Variable valor se incrementa o se decrementa en un valor constante cada vez que se produce una determinada acción. Por ejemplo: contar de uno en uno los alumnos de la clase.

Ej.: contador ¬ contador + 1- Acumulador:

Variable cuyo valor va almacenando una cantidad variable. Por ejemplo: guardar en una alcancía los vueltos.

Ej.: dineroAlcancia ¬ dineroAlcancia + vuelto

- Bandera, interruptor o switch : Variable que sólo puede tomar dos valores, verdadero o falso (1 ó 0).

Ej.: bandera ¬ verdadero

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

9

edad

12

altura

77.7

nombre

'Keysha'

Page 10: Concepto de Algoritmo (1)

PSEUDOCÓDIGOEl pseudocódigo es un lenguaje artificial e informal que auxilia a los programadores a

desarrollar los algoritmos. El pseudocódigo es similar al español coloquial, es cómodo y amigable, aunque no se trate de un lenguaje verdadero de programación de computadoras.

De hecho, los programas en pseudocódigo no son ejecutados sobre computadoras. Más bien, sólo ayudan al programador “a pensar” un programa antes de intentar escribirlo en un lenguaje de programación.

El pseudocódigo consiste solo de caracteres, por lo que los programadores pueden de forma cómoda escribir los programas en pseudocódigo en una computadora, utilizando un programa de edición.

Ejemplos del uso del pseudocódigo1. Genere un algoritmo que solicite dos números enteros y muestre el resultado de la suma

1. Inicio2. num1<-0;3. num2<-0;4. resultado<-0;5. Escribir "Ingrese el valor 1";6. Leer num1;7. Escribir "Ingrese el valor 2;8. Leer num2;9. resultado<-num1 + num2;10. Escribir "El resultado de la suma es: ", resultado;11. Fin

2. Genere un algoritmo que determine el área y perímetro de un cuadrado. 1. Inicio2. lado<-0;3. area<-0;4. perimetro<-0;1. Escribir "Ingrese el valor del lado";5. Leer lado;6. area<-lado^2;7. perimetro<-lado*4;8. Escribir "El area del cuadrado es: ",area;9. Escribir "El perimetro del cuadrado es: ",perimetro;10. Fin

3. Genere un algoritmo que calcule la cantidad de segundos que hay en una cantidad determinada de horas.

4. Genere un algoritmo que calcule el área y perímetro de un círculo.

5. Construya un algoritmo que calcule la cantidad de días de nacido que tiene una persona.

6. Construya un algoritmo tal que dado los datos A y B, escriba el resultado de la siguiente expresión:

R=( A+B )2

3

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

10

Page 11: Concepto de Algoritmo (1)

DIAGRAMAS DE FLUJO

Un diagrama de flujo de datos es una descripción gráfica de un procedimiento para la resolución de un problema. Son frecuentemente usados para describir algoritmos y programas de computador. Los diagramas de flujo de datos están conformados por figuras conectadas con flechas. Para ejecutar un proceso descrito por un diagrama de flujo de datos se comienza por el INICIO y se siguen las flechas de figura a figura, ejecutándose las acciones indicadas por cada figura; el tipo de figura indica el tipo de paso que representa.Los diagramas de flujo son frecuentemente usados debido a que pueden suprimir detalles innecesarios y tener un significado preciso, si son usados correctamente.

El diagrama de flujo tiene las siguientes características y ventajas: Es una representación gráfica de las secuencias de un proceso, presenta información clara,

ordenada y concisa. Permite visualizar las frecuencias y relaciones entre las etapas indicadas. Se pueden detectar problemas, desconexiones, pasos de escaso valor añadido etc. Compara y contrasta el flujo actual del proceso contra el flujo ideal, para identificar

oportunidades de mejora. Identifica los lugares y posiciones donde los datos adicionales pueden ser recopilados e

investigados. Ayuda a entender el proceso completo. Permite comprender de forma rápida y amena los procesos.

Reglas para la creación de Diagramas1 Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.2 Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la

dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales).

3 Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se van a utilizar conectores cuando sea estrictamente necesario.

4 No deben quedar líneas de flujo sin conectar5 Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de

muchas palabras.6 Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo

final.7 Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.8 Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin

embargo, algunos símbolos especiales pueden también ser desarrollados cuando sean requeridos.

¿Qué es Dfd? (FreeDFD 1.1. http://freedfd.freaks-unidos.net/Dfd es un software diseñado para construir y analizar algoritmos. Usted puede crear diagramas de flujo de datos para la representación de algoritmos de programación estructurada a partir de las herramientas de edición que para éste propósito suministra el programa. Después de haber ingresado el algoritmo representado por el diagrama, podrá ejecutarlo, analizarlo y

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

11

Page 12: Concepto de Algoritmo (1)

depurarlo en un entorno interactivo diseñado para éste fin. La interfaz gráfica de Dfd, facilita en gran medida el trabajo con diagramas ya que simula la representación estándar de diagramas de flujo en hojas de papel.

Objetos en DFDObjeto Descripción

Objeto Inicio Es el primer objeto a ejecutar en cualquier algoritmo. Al ser ejecutado, el objeto Inicio transfiere el control al siguiente objeto.El cuadro de dialogo del objeto Inicio contiene un espacio para la descripción o comentarios acerca del algoritmo.

OBJETO DESCRIPCIÓN

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

12

Page 13: Concepto de Algoritmo (1)

Objeto Asignación: El objeto Asignación asigna valores a campos variables. Al ser ejecutado, puede realizar hasta tres asignaciones.

El cuadro de dialogo del objeto Asignación contiene espacio para tres asignaciones, cada asignación consta de un espacio para el campo variable situado siempre a la izquierda, el símbolo de asignación y un espacio para la expresión situada siempre a la derecha. Esto indica que al campo variable se le asigna el resultado de la evaluación de la expresión. Debe realizarse por lo menos una asignación.

Objeto Lectura: El objeto Lectura permite la entrada de valores constantes desde el teclado y se los asigna a campos variables. Podrá ser leída cualquier cantidad de variables utilizando un objeto Lectura. Al ejecutarse, el objeto despliega un cuadro de diálogo por cada variable presente en la lista, este cuadro de diálogo espera que el usuario introduzca un valor constante que será asignado a la respectiva variable.

El cuadro de diálogo para la edición del objeto contiene un espacio para ingresar una lista de variables separadas por comas. Debe existir por lo menos una variable.

Objeto Salida: El objeto Salida muestra valores por pantalla. Puede ser visualizada cualquier cantidad de valores utilizando un objeto Salida. Al ejecutarse, este objeto evalúa cada una de las expresiones que contiene y despliega un cuadro de diálogo que muestra el valor obtenido en cada una de las expresiones en su respectivo orden.El cuadro de diálogo para la edición del objeto contiene un espacio para ingresar una lista de expresiones separadas por comas. Debe existir por lo menos una expresión.

Objeto Decisión: El objeto decisión selecciona el flujo a seguir de acuerdo al valor lógico de una condición. La condición debe ser siempre una expresión que al ser evaluada de como resultado un valor de tipo de dato Lógico.Ejemplo: 3<w , x >0 AND sw = .V. , valor*15 < 300*contador.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

13

Page 14: Concepto de Algoritmo (1)

El objeto Decisión está asociado a dos bloques de objetos ubicados a lado y lado de este, y un objeto Cierre Decisión ubicado a continuación de ambos bloques.Si al evaluar la condición se obtiene el valor lógico .V., se ejecuta el bloque rotulado con la palabra Si, en caso contrario se ejecuta el bloque rotulado con No. En ambos casos la ejecución continúa en el objeto Cierre Decisión.

Objeto Ciclo Mientras: El objeto Ciclo Mientras tiene como función el ejecutar un bloque de objetos mientras que una condición sea verdadera. La condición debe ser siempre una expresión que al ser evaluada de como resultado un valor de tipo de dato Lógico.Ejemplo : 3<W , x >0 AND Sw = .V. , Valor*15 < 300*Contador.

Si al evaluar la condición se obtiene el valor .F. la ejecución del algoritmo continuará a partir del objeto que sigue al Cierre.

Objeto Ciclo Para: Su función es ejecutar un bloque de objetos mientras que la variable contadora no alcance el límite establecido por el valor final. El contador es siempre una variable de tipo de dato Real. Contiene además un valor inicial que será asignado al contador al iniciar la ejecución del ciclo, un valor final y un valor de incremento. Si el contador excede el valor final, la ejecución continuará a partir del objeto que sigue al Cierre. En caso contrario, se ejecutará el cuerpo del ciclo y el contador será incrementado en el valor indicado por el incremento.

El cuadro de diálogo del objeto Ciclo para contiene espacio para la variable contador, valor inicial, valor final y el valor de incremento en su respectivo orden.

Objeto Cierre Ciclo: Este objeto junto con el objeto Inicio, delimita el cuerpo del procedimiento principal. Solo existe un objeto Fin en el diagrama; la ejecución de este objeto finaliza la ejecución del algoritmo.

Ejemplos y práctica de diagramas de flujos secuenciales:1. Dibuje un D-F que le pida a una persona los años que tenga e indique cuántos meses tiene.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

14

Page 15: Concepto de Algoritmo (1)

2. Dibuje un D-F que solicite la información de un círculo que pida al usuario el radio del mismo y le permita conocer su área y perímetro.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

15

'Digite su edad: '

meses←edad*12

'Ud. tiene: ', meses, 'meses.'

area=PI*(radio2)perímetro=2*PI*radio

PI constante

Declaración e inicialización de Las variables edad y meses

Solicitud de los datos de entrada

Lectura del dato de entra edad

Proceso. Calcular la cantidad de meses de acuerdo a los años que tiene una persona

Impresión de los datos de salida

Declaración e inicialización de Las variables radio, perímetro, área. PI es una constante

Solicitud de datos al usuario

Page 16: Concepto de Algoritmo (1)

3. Dibuje un Diagrama de flujo que solicite la información de un rectángulo, que pida al usuario el ancho y largo del mismo y le permita al usuario conocer área y perímetro.

4. Dibuje un D-F que calcule el número de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la fórmula es:

Num_Pulsaciones (220 – edad) / 10

5. Dibuje un D-F que permita calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.

6. En un hospital existen tres áreas. Ginecología, Pediatría, Traumatología. El presupuesto anual del hospital se reparte conforme a la siguiente tabla:

ÁREA PORCENTAJE DE PRESUPUESTOGinecología 40%

Traumatología 35%Pediatría 25%

Dibuje un D-F que permita obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

16

Area = ancho * largoPerimetro = (2*ancho) + (2*largo)

Lectura del dato de entra edad

Proceso. Calcular el área y el perímetro del rectángulo.

Impresión de los datos de salida

Page 17: Concepto de Algoritmo (1)

7. El dueño de una tienda compra un artículo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 30%.

8. Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida.

9. Dibuje un Diagrama de Flujo (D-F) que permita averiguar el salario bruto de un empleado. El salario base es de 120.000 colones, más el 20% de comisión de las ventas realizadas en el mes.

10. Realice un D-F que lea un número e imprima el valor absoluto del mismo.

11. Construya un D-F que calcule e imprima el número de segundos que hay en un determinado número de días indicado por el usuario.

12. Diseñar un diagrama de flujo para convertir de grados centígrados a grados Fahrenheit. El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.

[Farh = 9/5 (centigrados+32)]

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

17

9/5 → constante literal

Page 18: Concepto de Algoritmo (1)

13. En INVENIO, trabajan diferentes profesores para los cursos que se imparten. Los cursos se pagan a ¢90.000 cada uno por mes y su sueldo lo ganan en base a la cantidad de cursos que imparten, de su sueldo se le descuenta el 9% del seguro social, y el 2% del Banco Popular. Diseñe un diagrama de flujo que permita conocer el salario bruto y salario neto de un determinado profesor.

14. Se desea calcular el salario bruto semanal de un trabajador en función del número de horas trabajadas

a. Las primeras 35 horas se pagan a tarifa normalb. Las horas que pasen de 35 se pagan 1,5 veces la tarifa normal

Escribir el nombre, salario bruto

15. Dibuje un DF, que permita intercambiar los valores en dos variables A y B.

16. Emitir la factura correspondiente a una compra de un artículo determinado del que se adquieren una o varias unidades. El IVA a aplicar es 12%. El Total es igual al [precio de venta * cantidad + IVA].

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

18

9/5*(centigra+32)

Page 19: Concepto de Algoritmo (1)

La estructura de selección ifUna estructura de selección se utiliza para elegir entre cursos alternativos de acción. Por

ejemplo suponga que en un examen 70 es la calificación de aprobado. El enunciado en pseudocódigo

If la nota del estudiante es mayor o igual a 70Imprima “Aprobado”

determina si la condición “la nota del estudiante es mayor o igual a 70” es verdadera o falsa. Si la condición es verdadera, entonces se imprime “Aprobado” y el siguiente enunciado en pseudocódigo en orden se “ejecuta”. Si la condición resulta falsa, se ignora la impresión, y se ejecuta el siguiente enunciado del pseudocódigo en su orden.

El diagrama de flujo de la siguiente figura ilustra la estructura if de una sola selección. Este diagrama de flujo contiene el símbolo de mayor importancia en la diagramación de flujo el símbolo del rombo, también conocido como símbolo de decisión, y que indica que una decisión debe ser tomada. El símbolo de decisión contiene una expresión como es una condición que puede resultar falsa o verdadera. Dos líneas de flujo parten del símbolo de decisión, una indica la dirección a tomarse cuando la expresión dentro del símbolo rombo es verdadera; la otra indica la dirección a tomarse cuando la expresión es falsa.

La estructura de selección if/elseLa estructura de selección if ejecuta una acción indicada cuando la condición es

verdadera; de lo contrario la acción es pasada por alta. La estructura de selección if/else permite que el programador especifique que se ejecutan acciones distintas cuando la condición sea verdadera que cuando la condición es falsa. Por ejemplo, el enunciado en pseudocódigo

If la nota del estudiante es mayor o igual a 70Imprima “Aprobado”

elseImprima “Reprobado”

Imprime Aprobado, si la calificación del alumno es mayor que o igual a 70 e imprime Reprobado si la calificación del alumno es menor que 70. En cualquiera de los casos, después de haber terminado la impresión, se ejecutará el siguiente enunciado del pseudocódigo ó la siguiente instrucción.

El diagrama de flujo de la figura siguiente muestra muy bien el flujo de control de la estructura if/else.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

19

nota>=70 Imprima “Aprobado”Verdadero

Falso

Page 20: Concepto de Algoritmo (1)

Se lee como sigue “Si la nota es mayor o igual a 70, entonces imprima Aprobado y si no imprima Reprobado.

Las estructuras if/else anidadasLas estructuras if/else anidadas prueban para muchos casos, colocando estructuras

if/else dentro de estructuras if/else. Por ejemplo, el siguiente enunciado en pseudocódigo imprimirá A para calificación de examen mayores que o iguales a 90, B para calificaciones mayores que o iguales a 80, C para calificaciones mayores que o iguales a 70, D para calificaciones mayores que o iguales a 60, y F para todas las demás calificaciones.

If(nota>=90)Imprima “A”

ElseIf(nota>=80)

Imprima “B”Else

If(nota>=70)Imprima “C”

ElseIf(nota>=60)

Imprima “D”elseImprima “F”

Si la variable nota es mayor que o igual a 90, las primeras cuatro condiciones resultaran ciertas, pero sólo se ejecutará el enunciado o instrucción Imprima “A” después de la primera prueba. Después de que se haya ejecutado ese imprime, la parte else del enunciado” exterior” será pasado por alto.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

20

nota>=70 Imprima “Aprobado”VerdaderoFalso

Imprima “Reprobado”

nota>=90Imprima “A”

Verdadero

Falso

nota>=80 Imprima “B”Verdadero

Falso

nota>=70 Imprima “C”Verdadero

Falso

nota>=60 Imprima “D”VerdaderoFalso

Imprima “F”

Page 21: Concepto de Algoritmo (1)

Ejercicios con estructura de selección if, if/else, if/else anidadas

17. Leer 2 números, si son iguales que los multiplique, sí el primero es mayor que el segundo que los reste y si no que los sume.

18. Leer tres números diferentes y escribir el número mayor de los tres.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

21

Page 22: Concepto de Algoritmo (1)

19. Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a ¢7.000, y en ese caso desea saber cuánto dinero tendrá finalmente en su cuenta. Realice un diagrama de flujo que resuelva el enunciado.

20. Obtenga dos números del teclado, y determine y despliegue cuál (si alguno) es el mayor de los dos números. Dibuje un diagrama de flujo que resuelva el enunciado anterior.

21. El IMSS requiere clasificar a las personas que se jubilaran en el año de 1997. Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años. Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25 años o más. Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o más y una antigüedad en su empleo de 25 años o más.Determinar por medio de un diagrama de flujo en qué tipo de jubilación quedara adscrita una persona.

Inicio Leer Edad, Antigüedad

Si Edad >= 60 and Antigüedad < 25 entonces Escriba “1a jubilación es por edad”

si no Si Edad >= 60 and Antigüedad > 25 entonces

Escriba “la jubilación es por edad adulta y antigüedad” si no

Si Edad < 60 and Antigüedad > 25 entoncesEscriba “la jubilación es por antigüedad joven”

si noEscriba “1a persona no tiene por qué jubilarse"

Fin-si Fin-si

Fin-si Fin

22. Dibuje un D-F que permita calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este se le asigna como un porcentaje de su salario mensual que depende de su Antigüedad en la empresa de acuerdo con la siguiente tabla:

TIEMPO UTILIDADMenos de 1 año 5 % del salario1 año o más y menos de 2 años 7% del salado2 años o más y menos de 5 años 10% del salario5 años o más y menos de 10 años 15% del salario10 años o mas 20% del salado

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

22

Page 23: Concepto de Algoritmo (1)

23. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40. el resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de 8, si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y el resto al triple.

24. En una tienda de descuento se efectúa una promoción en la cual se hace un descuento sobre el valor de la compra total según el color de la bolita que el cliente saque al pagar en caja. Si la bolita es de color blanco no se le hará descuento alguno, si es verde se le hará un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el cliente deberá pagar por su compra. se sabe que solo hay bolitas de los colores mencionados. Realice un D-F que resuelva el problema anterior.

25. En una fábrica de computadoras se planea ofrecer a los clientes un descuento que dependerá de la cantidad de computadoras que compre, si las computadoras son menos de cinco se les dará un 10% de descuento sobre el total de la compra, si la cantidad de compra es mayor o igual a cinco pero menos de diez se le otorga un 20% de descuento; y si son 10 o más se les da un 40% de descuento. El precio de cada computadora es de ¢ 230,000. Determine cuánto es el descuento y el total que deberá pagar un cliente por su compra.

26. En una llantera se ha establecido una promoción de las llantas marca "Ponchadas", dicha promoción consiste en lo siguiente

a. Si se compran menos de cinco llantas el precio es de ¢ 3 000 cada una, b. ¢ 2 500 si se compran de cinco a 10 y de c. ¢ 2 000 si se compran más de 10

Obtener la cantidad de dinero que una persona tiene que pagar por cada una de las llantas que compra y la que tiene que pagar por el total de la compra.

27. Un proveedor de estéreos ofrece un descuento del 10% sobre el precio sin IVA, de algún aparato si este cuesta ¢2.000 o más. Además, independientemente de esto ofrece un 5% de descuento si la marca es "SONY". Determinar cuánto pagara, con IVA incluido, un cliente cualquiera por la compra de su aparato.

28. Una frutería ofrece las manzanas con descuento según la siguiente tabla:NÚM. DE KILOS COMPRADOS % DESCUENTO

0 – 2 0%3 – 5 10%6 -10 15%

11 en adelante 20%Determinar cuánto pagará una persona que compre manzanas es esa frutería.

29. El dueño de una empresa desea planificar las decisiones financieras que tomara en el siguiente año. La manera de planificarlas depende de lo siguiente

Si actualmente su capital se encuentra con saldo negativo, pedirá un préstamo bancario para que su nuevo saldo sea de $10 000.

Si su capital tiene actualmente un saldo positivo pedirá un préstamo bancario para tener un nuevo saldo de $20 000,

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

23

Page 24: Concepto de Algoritmo (1)

pero si su capital tiene actualmente un saldo superior a los $20 000 no pedirá ningún préstamo.

Determine que opción elegirá el dueño de la empresa.

30. En un almacén se utilizan los siguientes códigosa. CÓDIGO = 1 para un automóvil nuevob. CÓDIGO = 2 para un automóvil usadoc. CÓDIGO = 3 para accesorios aparte

La comisión de un vendedor es la siguiente: el 3% del precio de venta en automóviles nuevos, pero con un máximo de ¢ 300.000 de comisión, el 5% del precio de venta en automóviles usados, pero con un mínimo de ¢ 75.000 de comisión, el 6% en accesorios. Dibuje un Diagrama de flujo que reciba como parámetro de entrada el CÓDIGO y PRECIO y como salida imprima la COMISIÓN de cada vendedor.

31. Dado como dato el sueldo de un empleado, aplíquele un aumento del 15% si su sueldo es inferior a 1000 dólares. Imprima en este caso el nuevo sueldo.

32. Dibuje un diagrama de flujo que reciba la calificación de un alumno, y con base en ella defina si él está aprobado, reprobado o tiene derecho al examen extraordinario.

33. Dibuje un diagrama de flujo que calcule el precio del boleto de ida y vuelta en ferrocarril, conociendo la distancia del viaje de ida y el tiempo de estancia. Se sabe además que si el número de días de estancia es superior a 7 y la distancia total (ida y vuelta) a recorrer es superior a 800 km., el billete tiene una reducción del 30%. El precio por km. es de 500 colones.

34. Dibuje un diagrama de flujo que permita manipular las ventas de un dependiente y su comisión para saber el sueldo a obtener. Debe pedirse el nombre, código de vendedor y ventas realizadas. Si las ventas son mayores a 50000 se le da una comisión del 7.5%, sino del 5%. Imprimir su salario final.

35. Dibuje un diagrama de flujo que simule una calculadora sencilla, el usuario introduce dos números e indica que operación desea realizar (+,-,/,*), el diagrama da como salida el resultado de la operación.

La estructura de repetición WhileUna estructura de repetición le permite al programador especificar que se repita una

acción, en tanto cierta condición se mantenga verdadera. El enunciado en pseudocódigo

While(Mientras queden elementos en mi lista de compras)Adquirir el elemento siguiente y tacharlo de la lista

Describe la repetición que ocurre durante una salida de compras. La condición (Mientras queden elementos en mi lista de compras) puede ser verdadera o falsa. Si es verdadera, entonces la acción Adquirir el elemento siguiente y tacharlo de la lista se ejecutará. Esta acción se ejecutará en forma repetida, en tanto la condición sea verdadera. El enunciado o enunciados

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

24

Page 25: Concepto de Algoritmo (1)

contenidos en la estructura de repetición while constituyen el cuerpo del while que está delimitado por las líneas discontinuas en el diagrama de flujo. El cuerpo de la estructura while puede ser un enunciado sencillo o un enunciado compuesto, es decir incluir en el if, if/else, if/else anidados, whiles, etc.

Eventualmente, la condición se hará falsa (cuando se haya adquirido el último elemento de la lista de compras y se haya tachado de la misma). Llegado a este punto, la repetición se termina, y se ejecutará el enunciado en pseudocódigo que sigue de inmediato después de la estructura de repetición.

Tipos de control en repeticiones:a. Repetición controlada por contador: Esta técnica utiliza una variable llamada

contador para definir el número de veces que deberá ejecutarse un conjunto de enunciados. La repetición controlada por contador se conoce a menudo como repetición definida porque, antes de que se inicie la ejecución de ciclo, el número de repeticiones es conocido. Un contador es una variable, utilizada para contar.

b. Repetición controlada por centinela: Esta técnica utiliza un valor especial llamado un valor centinela (también conocido como valor señal, un valor substituto, o un valor bandera) que indicará “fin de la captura de datos”.Claramente el valor centinela deberá ser seleccionado de tal forma que no se confunda con algún valor de entrada aceptable, por ejemplo -1, 1 ó 0

36. Obtenga una serie de números positivos del teclado, y determine y despliegue la suma de los números. Suponga que el usuario escribe el valor centinela -1 para indicar “entrada de fin de datos”.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

25

Comprar elemento

Tachar elemento

Page 26: Concepto de Algoritmo (1)

Este ejemplo del uso del while es controlado por un valor centinela, ya que utiliza un valor especial (-1) que es el que determina el fin del ciclo while.

37. Dibuje un diagrama de flujo que utilice ciclos para imprimir los números del 1 al 10, lado a lado en el mismo reglón con tres espacios entre ellos.

38. Realice un diagrama de flujo que utilice ciclo para producir la siguiente tabla de valores:

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

26

A A+2 A+4 A+6

3 5 7 96 8 10 129 11 13 1512 14 16 1815 17 19 21

El objeto Fin (MQ) delimita el ámbito ó el cuerpo del while, es decir las instrucciones que se repiten.

Nota:Un while puede que no se ejecuta ninguna vez, esto sucede cuando el while sea verdadero.

suma←suma+numero

Page 27: Concepto de Algoritmo (1)

Lo esencial de la repeticiónLa mayor parte de los diagramas de flujo incluyen repeticiones o ciclos. Un ciclo es un

grupo de instrucciones que la computadora ejecuta en forma repetida, en tanto se conserve verdadera alguna condición de continuación del ciclo. Hemos analizado dos procedimientos de repetición:

1. Repetición controlada por contador2. Repetición controlada por centinela

La repetición controlada por contador se denomina a veces repetición definida, porque con anticipación se sabe con exactitud cuántas veces se ejecutará el ciclo. La repetición controlada por centinela a veces se denomina repetición indefinida, porque no se sabe con anticipación cuantas veces el ciclo se ejecutará.

En la repetición controlada por contador, se utiliza una variable de control para contar el número de repeticiones. La variable de control es incrementada (normalmente en 1), cada vez que se ejecuta el grupo de instrucciones. Cuando el valor de la variable control indica que se ha ejecutado el número correcto de repeticiones, se termina el ciclo y la computadora continua ejecutando el enunciado siguiente al de la estructura de repetición.

Los valores centinela se utilizan para controlar la repetición cuando:1. El número preciso de repeticiones, no es conocido con anticipación, y 2. El ciclo incluye enunciados que deben obtener datos cada vez que éste se ejecuta.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

27

El Fin (MQ) delimita el ámbito del while, es decir las instrucciones que se repiten.

Nota:El ciclo se repite mientras el valor de A sea menor o igual a 15. Cuando toma un valor superior finaliza.

A,' ', A+2,' ', A+4,' ', A+6

Page 28: Concepto de Algoritmo (1)

El valor centinela indica “fin de datos”. El centinela es introducido una vez que al diagrama se le han proporcionado todos los elementos normales de datos. Los centinelas deben ser diferentes a los elementos normales de datos.

Repetición controlada por contadorLa repetición controlada por contador requiere:1. El nombre de una variable de control (o contador del ciclo)2. El valor inicial de la variable de control3. El incremento (o decremento) con el cual, cada vez que se termine un ciclo, la variable

de control será modificada.4. La condición que compruebe la existencia del valor final de la variable de control (es

decir, si se debe o no seguir con el ciclo)

La estructura de repetición forLa estructura de repetición for maneja de manera automática todos los detalles de la repetición

controlada por contador.

Su función es ejecutar un bloque de objetos mientras que la variable contadora no alcance el límite establecido por el valor final. El contador es siempre una variable de tipo de dato Real. Contiene además un valor inicial que será asignado al contador al iniciar la ejecución del ciclo, un valor final y un valor de incremento. Si el contador excede el valor final, la ejecución continuará a partir del objeto que sigue al Cierre. En caso contrario, se ejecutará el cuerpo del ciclo y el contador será incrementado en el valor indicado por el incremento.

El cuadro de diálogo del objeto Ciclo para contiene espacio para la variable contador, valor inicial, valor final y el valor de incremento en su respectivo orden.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

28

Page 29: Concepto de Algoritmo (1)

39. Calcular el promedio de un alumno que tiene 7 calificaciones en la materia BSI-030 Programación I

Uso del WHILE Uso del FOR

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

29

nombre, ' su promedios es: ', prom

nombre, ' su promedios es: ', prom

Page 30: Concepto de Algoritmo (1)

40. Leer 10 números y obtener su cubo y su cuarta, para cada uno.

Uso del WHILE Uso del FOR

41. Leer 10 números y escribir cuántos son positivos y cuántos son negativos

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

30

cubo←num*num*numcuarta←cubo*numcontrol←control+1

cubo←num*num*numcuarta←cubo*num

'Cubo: ', cubo, ' Cuarta: ', cuarta 'Cubo: ', cubo, ' Cuarta: ', cuarta

El control de las repeticiones es por medio de la variable control

Cuarta ← 0

Page 31: Concepto de Algoritmo (1)

42. Leer N números negativos y convertirlos a positivos y escribir en consola dichos números.

43. Dibuje un diagrama de flujo que calcule la suma y promedio de 10 números ingresados por el usuario. Utilice una estructura for para este enunciado.

44. Realice un diagrama de flujo que calcule los gastos de un determinado viaje. El ingreso de los mismos finalizará cuando se ingrese un número negativo.

45. Suponga que se tiene un conjunto de calificaciones de un grupo de N alumnos. Realizar un Diagrama de flujo para calcular la calificación promedio y más baja de todo el grupo.

46. Calcular e imprimir la tabla de multiplicar de un número cualquiera. Escriba el multiplicando, el multiplicador y el producto.

5 x 1 = 5

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

31

'Positivos: ', pos, ' Negativos: ', neg

'Positivos: ', pos, ' Negativos: ', neg

Page 32: Concepto de Algoritmo (1)

47. Una persona debe realizar un muestreo con 50 personas para determinar el promedio de peso de los niños, jóvenes, adultos y viejos que existen en su zona habitacional. Se determinan las categorías con base a la siguiente tabla:

CATEGORÍA EDADNiños 0 – 12Jóvenes 13 – 29Adultos 30 – 59Viejos 60 en adelante

Imprima como salida el promedio de peso de cada categoría.

48. Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuánto pagará cada cliente, cuanto es el monto del descuento hecho a todos los clientes y cuánto percibirá el expendió por esas compras.

49. En un centro de verificación de automóviles se desea saber el promedio de puntos contaminantes de los primeros 25 automóviles que lleguen. Asimismo se desea saber los puntos contaminantes del carro que menos contamino y del que más contamino.

50. Una compañía de seguros tiene contratados a N vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuánto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones.

51. En una empresa se requiere calcular el salario semanal de cada uno de los N obreros que laboran en ella. El salario se obtiene de la siguiente forma: Si el obrero trabaja 40 horas o menos se le paga $20 por hora Si trabaja más de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25

por cada hora extra.

52. Obtener el promedio de calificaciones de un grupo de N alumnos.

53. Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de interés. ¿Cuál será la cantidad de dinero que esta persona tendrá al cabo de, un año si la ganancia de cada mes es reinvertida?

54. Calcular el promedio de edades de hombres, mujeres y de todo un grupo de alumnos

55. Encontrar el Mayor y Menor valor de un conjunto de N números dados.

56. En una granja se requiere saber alguna información para determinar la calidad de una gallina. La calidad de cada gallina se obtiene según la siguiente fórmula:

Calidad = peso de la gallina * altura de la gallinaNumero de huevos que pone

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

32

Page 33: Concepto de Algoritmo (1)

do

While(condición)

Enunciado 1

Enunciado 2

Finalmente para fijar la categoría de la gallina según la calidad obtenida se cuenta con la siguiente tabla:

CALIDAD CATEGORÍA DE CALIDADmayor o igual que 15 ALTAmayor que 8 y menor que 15 MEDIA

menor o igual que 8 BAJA

57. En la Cámara de Diputados se levanta una encuesta con todos los integrantes con el fin de determinar qué porcentaje de los N diputados está a favor del Tratado de Libre Comercio, que porcentaje está en contra y que porcentaje se abstiene de opinar.

58. Calcular la suma siguiente:100 + 98 + 96 + 94 + . . . + 0 en este orden

59. Leer 5 calificaciones de un grupo de alumnos. Calcule y escriba el porcentaje reprobados. Tomando en cuenta que la calificación mínima aprobatoria es de 70.

60. Un grupo de 12 estudiantes presentan un examen de Física. Diseñe un diagrama que lea por cada estudiante la calificación obtenida y calcule e imprima,

c. La cantidad de estudiantes que obtuvieron una calificación menor a 50.d. La cantidad de estudiantes que obtuvieron una calificación de 50 o más pero menor

que 80.e. La cantidad de estudiantes que obtuvieron una calificación de 70 o más pero menor

que 80.f. La cantidad de estudiantes que obtuvieron una calificación de 80 o más.

La estructura de repetición do/while

La estructura de repetición do/while es similar a la estructura while. En la estructura while la condición de continuación del ciclo se prueba al principio del ciclo, antes de ejecutarse el cuerpo del mismo. La estructura do/while prueba la condición de continuación del ciclo después de ejecutarse el cuerpo del ciclo y, por lo tanto, el cuerpo del ciclo se ejecutará por lo menos una vez. Cuanto termina do/while, la ejecución continuará con el enunciado que aparezca después de la clausula while.

La estructura del do/while demuestra que la condición de continuación de ciclo no se ejecutará sino hasta después de que la acción se lleve a cabo al menos una vez. Note que el

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

33

Page 34: Concepto de Algoritmo (1)

ámbito o instrucciones pertenecientes al ciclo del do/while están delimitadas por las líneas discontinuas del recuadro

Practica diagramas de flujos compuestos

61. Una compañía de transporte terrestre de lujo tiene divididos los buses en 3 secciones: lujo, fumar y no fumar. Las reservaciones se hacen antes de que el bus vaya a salir. El tiquete de viaje se cobra de acuerdo a la sección:

Lujo: ¢ 5000 (Hay 10 asientos) No Fumar ¢ 3500 (hay 16 asientos) Fumar ¢ 2000 (hay 20 asientos)

Realice un Diagrama de Flujo que indique la cantidad de personas que reservaron en cada una de las tres secciones, así como el monto a recibir por concepto de venta de tiquetes por cada sección y el total del bus. Al reservar se debe verificar si todavía quedan campos en la sección seleccionada, de no ser así, emitir un mensaje al usuario.

62. En un almacén se utilizan los siguientes códigos CÓDIGO = 1 para un automóvil nuevo CÓDIGO = 2 para un automóvil usado CÓDIGO = 3 para accesorios aparte

La comisión de un vendedor es la siguiente: el 3% del precio de venta en automóviles nuevos, pero con un máximo de ¢ 300.000 de comisión, el 5% del precio de venta en automóviles usados, pero con un mínimo de ¢ 75.000 de comisión, el 6% en accesorios. Dibuje un Diagrama de flujo que reciba como parámetro de entrada para cada uno de los N vendedores el CÓDIGO y PRECIO y como salida imprima la COMISIÓN de cada uno y el monto total que recibirá el almacén por las ventas.

63. En el Hospital de Niños, la sección Cirugía 3, se divide en 5 salasSALA CAMAS POR SALA

1 142 73 64 65 8

En esta sección se internan niños que tienen alguno de los siguientes estados: Cuidados intermedios (Solamente en la sala 3) Recuperación (Salas 1, 2, 4 y 5)

Realice un diagrama de flujo que reciba como datos de entrada: la cantidad de camas actualmente ocupadas por sala y para cada uno de los N niños: el nombre y el estado (1,2). De acuerdo al estado, imprima en que número de sala queda internado. Si no hubiera campo en ninguna sala de Cirugía 3 se debe imprimir un mensaje para que se busque en otra sección del hospital. Para finalizar imprima:

Cantidad de Niños por sala Total de niños internados en Cirugía 3

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

34

Page 35: Concepto de Algoritmo (1)

64.

En las Olimpiadas de Sídney participaron delegaciones de deportistas de muchos países del mundo. A cada país se le ha asignado un valor entero entre 1 y 5, que indica el Continente al que pertenece. Suponga que se introduce la siguiente información para cada uno de los K países que ganaron medallas :

Cantidad de medallas de Oro Cantidad de medallas de plata Cantidad de medallas de bronce Continente (1, 2, 3, 4 ,5)

Realice un Diagrama de flujo que reciba como datos de entrada la información anterior e imprima:

Por Continente, cantidad de medallas de oro, plata y bronce Cantidad total de medallas de cada tipo entregadas en las Olimpiadas

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

35

Page 36: Concepto de Algoritmo (1)

65. El departamento de Seguridad Pública y Tránsito, desea saber, de los N carros que entran a la ciudad de San José por un determinado peaje, cuántos entran con calcomanías de cada color. Conociendo el último dígito de la placa de cada automóvil se puede determinar el color de la calcomanía utilizando la siguiente relación:

DIGITO COLOR1 ó 2 Amarilla3 ó 4 Rosada5 ó 6 Roja7 ó 8 Verde9 ó 0 Azul

Realice un diagrama de flujo que reciba como datos de entrada el costo que deben pagar los automóviles por el paso del peaje (suponga el mismo costo para todos los carros), y para cada automóvil, el último dígito de la placa. Se quiere como salida la cantidad de carros con cada color de calcomanía y el monto total que por concepto de pago de peaje se recoge.

66. En una granja se requiere saber alguna información para determinar el precio de venta por kilo de huevos. Es importante determinar el promedio de calidad de las N gallinas que hay en la granja. La calidad de cada gallina se obtiene según la fórmula:

Calidad = peso de gallina * altura de gallina Número de huevos que pone

Finalmente para fijar el precio del kilo de huevos, se toma como base el promedio obtenido con la calidad de cada una de las N gallinas y utilizando para este promedio el siguiente cuadro:

PROMEDIO DE CALIDAD PRECIO DEL KILO DE HUEVOMayor o igual que 15 1.2 * promedio de calidadMayor que 8 y menor que 15 1.00 * promedio de calidadMenor o igual que 8 0.80 * promedio de calidad

Dibuje un diagrama de flujo que reciba como datos de entrada para cada una de las N gallinas (el peso la altura y número de huevos que pone). Como salida indique el precio por kilo de huevos para la granja.

67. En el hotel “Costa Rica”, se tiene la siguiente información de los N huéspedes que hicieron su salida el día de hoy: nombre de la persona, el tipo de habitación (1, 2, 3, 4) y la cantidad de días que la ocupó. Se hace un descuento del 10% si el cliente se hospedó más de 5 días, del 15% sí se hospedó más de 10 días y del 20% si se hospedó más de 15 días. De acuerdo al tipo de habitación se tienen las siguientes tarifas diarias.

Tipo de habitación Tarifa diaria1 $120.002 $155.003 $210.004 $285.00

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

36

Page 37: Concepto de Algoritmo (1)

Realice el diagrama de flujo que reciba la información anterior para cada uno de los N huéspedes que abandonaron el hotel, y como información de salida imprima:

Cantidad de clientes que ocupaban habitaciones por cada uno de los cuatro tipos de habitación

Monto total obtenido por cada uno de los cuatro tipos de habitación (Este es el monto acumulado del monto que debe pagar el huésped luego de aplicado el descuento)

Monto total de descuento por cada uno de los cuatro tipos de habitación Monto total obtenido por el hotel ese día

68. Se tienen datos de transporte de los dos elevadores de un edificio, por cada uno de los N viajes, hechos durante el día: numero de elevador (1,2) cantidad de personas, peso de ese viaje. Elabore un diagrama de flujo que imprima una estadística del día.

Cantidad de personas transportadas por elevador Peso transportado por elevador Promedio de personas por viaje por elevador Promedio de peso por viaje por elevador

69. Se desea simular un campamento de verano para niños. De acuerdo con las características de cada niño (edad, actividad que desea realizar y si se practicó o no examen médico), es preciso determinar la actividad que le será asignada al niño durante el campamento.

Actividad Asignada: Si el niño tiene 8 ó más años y desea Equitación, se le asigna Equitación. Si el niño desea Natación y tiene Examen Médico, se le asigna Natación. Bajo Cualquier otra circunstancia se le asigna Tenis.

Realice el diagrama de flujo que reciba la como datos de entrada: la edad, la actividad, si tiene o no examen médica, para cada uno de los N Niños que desean ingresar al campamento, y como información de salida imprima: El número de niños que se les asigno la actividad de Equitación, Natación y Tenis.

70. Supongamos que se tiene una muestra de N Personas que fallecieron intestadas (es decir, sin haber realizado testamento), y mediante D-F se desea determina la cantidad de dinero que debe heredar el cónyuge y/o a los hijos mayores de edad de cada individuo, según el caso.

Cantidad a entregar al cónyuge: Si el individuo tiene cónyuge e hijos, al cónyuge le corresponde la mitad de la herencia. Si el individuo tiene cónyuge sin hijos, al cónyuge le corresponde toda la herencia. Si el individuo no tiene cónyuge, la cantidad es cero.

Cantidad a entregar a cada hijo: Si el individuo tiene cónyuge e hijos, a cada hijo le corresponde la mitad de la herencia

dividida entre el número de hijos. Si el individuo no tiene cónyuge y tiene hijos, a cada hijo corresponde la herencia

dividida entre el número de hijos. Si el individuo no tiene hijos, la cantidad es cero.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

37

Page 38: Concepto de Algoritmo (1)

Realice el diagrama de flujo que reciba la como datos de entrada: monto herencia, si tiene o no cónyuge, cantidad de hijos, para cada uno de los N Personas que fallecieron intestadas, y como información de salida imprima: El monto que le corresponde al cónyuge y a los hijos si los tiene.

71. Se tiene la información de la densidad de cada una de las 7 Provincias de Costa Rica. Realice un D-F que determine si la provincia presenta Alta, Baja o Media Densidad de Población, de acuerdo al criterio siguiente: Baja si Densidad de Población es menor a 15 Media si Densidad de Población es mayor o igual a 15 y menor o igual a 100 Alta si Densidad de Población es mayor a 100

Ejercicios extras de diagramas de flujos

72. Dibuje un diagrama de flujo que sume una secuencia de enteros. Suponga que el primer entero leído específica el número de valores que faltan de introducir. Su diagrama deberá leer los números que faltan.

Por ejemplo una secuencia de entrada puede ser la siguiente

5 100 200 300 400 500

Donde 5 indica que los 5 valores subsiguientes deberán ser sumados sin tomar en cuenta el primer dígito que es el que indica cuantas números se van introducir para sumar. La salida del diagrama en el ejemplo anterior sería: 1500.

73. Dibuje un diagrama de flujo que calcule e imprima el promedio de varios enteros. Suponga que el valor centinela es el 9999.

74. Dibuje un diagrama de flujo que calcule e imprima la suma de los enteros pares del 2 al 30.

75. Dibuje un diagrama de flujo que calcule e imprima el producto de los enteros impares del 1 al 15.

76. Dados dos números enteros positivos N y D, se dice que D es un divisor de N si el resto de dividir N entre D es 0. Se dice que un número N es perfecto si la suma de sus divisores (excluido el propio N) es N. Por ejemplo 28 es perfecto, pues sus divisores (excluido el 28) son: 1, 2, 4, 7 y 14 y su suma es 1+2+4+7+14=28. Hacer un D-F que dado un número N nos diga si es o no perfecto.

77. Un año es bisiesto si es múltiplo de 4, exceptuando los múltiplos de 100, que sólo son bisiestos cuando son múltiplos además de 400, por ejemplo el año 1900 no fue bisiesto, pero el año 2000 si lo será. Hacer un organigrama que dado un año A nos diga si es o no bisiesto.

78. Hacer un organigrama que dados un día D, un mes M y un año A, calcule cual es el día siguiente. Se debe tener en cuenta que en los años bisiestos Febrero tiene 29 días y en los no bisiestos 28.

79. Hacer un organigrama que lea un número N y obtenga las ternas pitagóricas (A, B, C) en las que A, B y C son todos enteros positivos y menores que N. Para que una terna (A, B, C) sea pitagórica debe cumplir que A2+B2=C2.

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

38

Page 39: Concepto de Algoritmo (1)

BIBLIOGRAFÍA

Principal

Joyanes, Luis. Fundamentos de Programación. Algoritmos, estructuras de datos y objetos. Tercera Edición. McGraw-Hill, 2003.

Complementaria

Deitel, Harvey M. y Deitel, Paul J. Como programar en Java. Quinta Edición. Pearson Educatión, México, 2004.

Joyanes, Luis. Programación en Java 2. McGraw-Hill, 2002.

Rafael Arteaga. FreeDFD 1.1 Editor E Intérpret Manual de Referencia. 2006

Modulo 01: Introducción al desarrollo de algoritmosIntroducción a la programación, Prof. Ing. Gloriana Peña R.

39