Post on 09-Aug-2015
Tecnologías de Información (TIC)
Introducción a la programación
MODULO O1:
IINNTTRROODDUUCCCCIIÓÓNN AALL DDEESSAARRRROOLLLLOO DDEE AALLGGOORRIITTMMOOSS
ELABORADO POR PROFESORA:
Ing. Gloriana Peña Ramírez
I, Cuatrimestre 2013
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
2
CONTENIDO
Introducción 3 Introducción al desarrollo de algoritmos 4
Concepto de algoritmo 4 Características de un algoritmo 4 Fases para la resolución de un problema informático
Definición del problema 4 Análisis del problema 4 Diseño de la solución 5 Codificación 5 Compilación y ejecución 5 Verificación y pruebas 5 Depuración 5 Documentación 5 Capacitación 5 Implantación o implementación del sistema 6 Mantenimiento 6
Componentes de un algoritmo Tipos de datos 6 Constantes 6 Expresiones 7 Operadores aritméticos 7 Operadores relacionales 7 Operadores lógicos 8 Prioridad de operadores 8 Sentencias de asignación 9 Identificadores 9 Variables 9
Pseudocódigo 10 Ejemplo del uso del pseudocódigo 10
Diagramas de flujo Características y ventajas del diagrama de flujo 10 Reglas para dibujar un diagrama de flujo 11 ¿Qué es DFD? 11 Objetos en DFD 12
Ejemplos y práctica de diagramas de flujos secuenciales 15 La estructura de selección if 19 La estructura de selección if/else 19 Las estructuras if/else anidadas 20 Ejemplos y práctica de diagramas de flujos con estructuras de selección
if, if/else, if/else anidadas 21 La estructura de repetición while 24 La estructura de repetición for 25 La estructura de repetición do/while 29 Ejemplos y práctica de diagramas de flujo compuestos 30 Ejercicios extras de diagramas de flujos 36 Bibliografía 38
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
3
MÓDULO I: INTRODUCCIÓN AL DESARROLLO DE ALGORITMOS ALGORITMO
Un 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 algoritmo Todo 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ático 1. 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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
4
3. Diseño de la solución Una 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ón
Compilació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 pruebas
Revisar 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ón
Corregir 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ón
Son 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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
5
10. Implantación o implementación del sistema Hay 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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
6
Constantes declaradas con nombre Las constantes simbólicas o con nombre, se identifican por su nombre y el valor asignado. Ejemplos: Ejemplo:
Pi = 3.141592 Min = 0 Max = 99 Saludo = “Hola”;
Constantes Literales Una 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’ Expresiones Una 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éricas Los 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.
Constante literal
Constante literal
Constante literal
Constante literal
Constante literal
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
7
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 = 64
div Cociente de la división entera 5 div 2 = 2
mod Residuo de la división entera 5 mod 2 = 1
Expresiones Booleanas Su 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ógicos A B NO A A Y B A O B
falso falso verdadero falso falso
falso verdadero verdadero falso verdadero
verdadero falso falso falso verdadero
verdadero verdadero falso verdadero verdadero
Prioridad de operadores Operadores con la misma prioridad se evalúan de izquierda a derecha.
Prioridad Operador
1 ^
2 ( )
3 No
4 *, /, div, mod y
5 o, +, -
6 <, >, >=, <=, =, !=
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
8
Sentencia de asignación
Se 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’ Identificadores Identificadores 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.
Variables Concepto: 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
edad
12
altura
77.7
nombre
'Keysha'
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
9
PSEUDOCÓDIGO El 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ódigo 1. Genere un algoritmo que solicite dos números enteros y muestre el resultado de la suma
1. Inicio 2. 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. Inicio 2. 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:
3
2BA
R
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
10
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 Diagramas 1 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 conectar 5 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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
11
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 DFD Objeto 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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
12
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.
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
13
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.
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.
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
14
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.
'Digite su edad: '
meses←edad*12
'Ud. tiene: ', meses, 'meses.'
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
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
15
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.
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 PRESUPUESTO
Ginecología 40%
Traumatología 35%
Pediatría 25%
Area = ancho * largo Perimetro = (2*ancho) + (2*largo)
area=PI*(radio2) perímetro=2*PI*radio
PI constante
Declaración e inicialización de Las variables radio, perímetro, área. PI es una constante
Lectura del dato de entra edad
Proceso. Calcular el área y el perímetro del rectángulo.
Impresión de los datos de salida
Solicitud de datos al usuario
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
16
Dibuje un D-F que permita obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal.
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.
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
17
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)]
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 normal b. 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].
9/5 → constante literal
9/5*(centigra+32)
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
18
La estructura de selección if Una 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 70 Imprima “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/else La 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 70 Imprima “Aprobado” else Imprima “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.
nota>=70 Imprima “Aprobado” Verdadero
Falso
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
19
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 anidadas Las 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” Else If(nota>=80) Imprima “B”
Else If(nota>=70) Imprima “C”
Else If(nota>=60) Imprima “D”
else Imprima “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.
nota>=70 Imprima “Aprobado” Verdadero Falso
Imprima “Reprobado”
nota>=90 Imprima “A”
Verdadero
Falso
nota>=80 Imprima “B” Verdadero
Falso
nota>=70 Imprima “C” Verdadero
Falso
nota>=60 Imprima “D” Verdadero
Falso Imprima “F”
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
20
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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
21
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 entonces
Escriba “la jubilación es por antigüedad joven”
si no
Escriba “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 UTILIDAD
Menos de 1 año 5 % del salario
1 año o más y menos de 2 años 7% del salado
2 años o más y menos de 5 años 10% del salario
5 años o más y menos de 10 años 15% del salario
10 años o mas 20% del salado
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
22
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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
23
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ódigos
a. CÓDIGO = 1 para un automóvil nuevo b. CÓDIGO = 2 para un automóvil usado c. 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 While Una 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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
24
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”.
Comprar elemento
Tachar elemento
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
25
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:
A A+2 A+4 A+6
3 5 7 9 6 8 10 12 9 11 13 15 12 14 16 18 15 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
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
26
Lo esencial de la repetición
La 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 contador 2. 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.
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
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
27
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 contador
La 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 control 3. 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 for La 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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
28
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
nombre, ' su promedios es: ', prom
nombre, ' su promedios es: ', prom
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
29
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
cubo←num*num*num cuarta←cubo*num control←control+1
cubo←num*num*num cuarta←cubo*num
'Cubo: ', cubo, ' Cuarta: ', cuarta 'Cubo: ', cubo, ' Cuarta: ', cuarta
El control de las repeticiones es por medio de la variable control
Cuarta ← 0
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
30
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
'Positivos: ', pos, ' Negativos: ', neg
'Positivos: ', pos, ' Negativos: ', neg
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
31
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 EDAD
Niños 0 – 12
Jóvenes 13 – 29
Adultos 30 – 59
Viejos 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 gallina Numero de huevos que pone
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
32
Finalmente para fijar la categoría de la gallina según la calidad obtenida se cuenta con la siguiente tabla:
CALIDAD CATEGORÍA DE CALIDAD
mayor o igual que 15 ALTA
mayor 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
do
While(condición)
Enunciado 1
Enunciado 2
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
33
á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 salas
SALA CAMAS POR SALA
1 14
2 7
3 6
4 6
5 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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
34
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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
35
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 COLOR
1 ó 2 Amarilla
3 ó 4 Rosada
5 ó 6 Roja
7 ó 8 Verde
9 ó 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 HUEVO
Mayor o igual que 15 1.2 * promedio de calidad
Mayor que 8 y menor que 15 1.00 * promedio de calidad
Menor 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 diaria
1 $120.00
2 $155.00
3 $210.00
4 $285.00
Modulo 01: Introducción al desarrollo de algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
36
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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
37
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 algoritmos
Introducción a la programación, Prof. Ing. Gloriana Peña R.
38
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