Você está na página 1de 38

Tecnologas de Informacin (TIC)

Introduccin a la programacin


MODULO O1:

I IN NT TR RO OD DU UC CC CI I N N A AL L D DE ES SA AR RR RO OL LL LO O D DE E A AL LG GO OR RI IT TM MO OS S




ELABORADO POR PROFESORA:
Ing. Gloriana Pea Ramrez



I, Cuatrimestre 2013
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
2

CONTENIDO


Introduccin 3
Introduccin al desarrollo de algoritmos 4
Concepto de algoritmo 4
Caractersticas de un algoritmo 4
Fases para la resolucin de un problema informtico
Definicin del problema 4
Anlisis del problema 4
Diseo de la solucin 5
Codificacin 5
Compilacin y ejecucin 5
Verificacin y pruebas 5
Depuracin 5
Documentacin 5
Capacitacin 5
Implantacin o implementacin del sistema 6
Mantenimiento 6
Componentes de un algoritmo
Tipos de datos 6
Constantes 6
Expresiones 7
Operadores aritmticos 7
Operadores relacionales 7
Operadores lgicos 8
Prioridad de operadores 8
Sentencias de asignacin 9
Identificadores 9
Variables 9
Pseudocdigo 10
Ejemplo del uso del pseudocdigo 10
Diagramas de flujo
Caractersticas 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 prctica de diagramas de flujos secuenciales 15
La estructura de seleccin if 19
La estructura de seleccin if/else 19
Las estructuras if/else anidadas 20
Ejemplos y prctica de diagramas de flujos con estructuras de seleccin
if, if/else, if/else anidadas 21
La estructura de repeticin while 24
La estructura de repeticin for 25
La estructura de repeticin do/while 29
Ejemplos y prctica de diagramas de flujo compuestos 30
Ejercicios extras de diagramas de flujos 36
Bibliografa 38

Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
3

MDULO I: INTRODUCCIN AL DESARROLLO DE ALGORITMOS

ALGORITMO
Un algoritmo es un mtodo 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 tambin finito. En un algoritmo siempre debe haber un punto de inicio y
un punto de terminacin, estos deben ser nicos y deben ser fcilmente identificables.

Caractersticas de un algoritmo
Todo algoritmo debe cumplir las siguientes caractersticas:
Debe ser Preciso; Esto es, debe especificar sin ambigedad 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 ejecucin deber ser la misma proporcionndonos el mismo resultado.
Debe ser Finito; Esto es, siempre que sea adecuado se realizarn un nmero finito de
instrucciones, en un tiempo finito y requiriendo una cantidad finita de esfuerzo.

Fases para la resolucin de un problema informtico
1. Definicin del problema
Requiere que el problema sea definido y comprendido claramente para que pueda ser
analizado con todo detalle.
2. Anlisis del problema
El propsito del anlisis de un problema es ayudar al programador para llegar a una
cierta comprensin de la naturaleza del problema. El problema debe estar bien definido si se
desea llegar a una solucin satisfactoria.
Para poder definir con precisin 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 resolucin 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 resolucin del problema.

Una buena definicin del problema, junto con una descripcin detallada de las
especificaciones de entrada y salida, son los requisitos ms importantes para llegar a una
solucin eficaz.
El anlisis 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 informacin debe proporcionar la resolucin 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 documentacin de la empresa, investigar, observar
todo lo que rodea el problema.
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
4

3. Diseo de la solucin
Una computadora no tiene la capacidad para solucionar ms 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 informacin proporcionada al algoritmo constituye su entrada y la informacin producida
por el algoritmo constituye su salida.
Los problemas complejos se pueden resolver ms eficazmente con la computadora cuando se
rompen en sub-problemas que sean ms fciles de solucionar que el original. La
descomposicin del problema original en sub-problemas ms simples y a continuacin dividir
estos sub-problemas en otros ms simples que puedan ser implementados para su solucin en
la computadora de denomina diseo descendente (top - down design).
Es preciso representar el algoritmo mediante una determinada herramienta de programacin:
diagramas de flujo o pseudocdigo.

4. Codificacin
Es el algoritmo traspasado a la computadora a travs de un lenguaje de programacin,
debe ser escrito de acuerdo a las reglas gramaticales o sintaxis del mismo.
Generamos un algoritmo el cual se denomina cdigo, y al pasarlo a un lenguaje de
programacin se le llama cdigo fuente.

5. Compilacin y ejecucin
Compilacin, el lenguaje de programacin seleccionado revisa que ya no halla errores en
el cdigo fuente.
Ejecucin, ejecutar el programa despus del ser compilado.

6. Verificacin y pruebas
Revisar que el programa de los resultados que el usuario quiere, hay que revisar si hay
algn error el cual puede ser de tipo lgico, de semntica o ejecucin.

7. Depuracin
Corregir los errores encontrados en la etapa anterior, si hubiese algn error se tiene que
regresar hasta la etapa que sea necesaria para que la solucin sea la que el usuario requiere.

8. Documentacin
Son todos los comentarios, referencias desde que se dio el problema hasta que se
encontr la solucin.
a. documentacin interna, es el encabezado, descripcin, declaracin del problema,
son todos los comentarios que puedan llegar a servir dentro del cdigo fuente.
b. documentacin externa, son los manuales que se hacen para una mejor ejecucin
del programa, ah se explicara cmo usar el programa.

9. Capacitacin
Una vez que tenemos lo manuales viene la capacitacin 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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
5

10. Implantacin o implementacin del sistema
Hay diferentes formas de implementar el sistema:
Depende del tamao 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 despus empezar a trabajar con el nuevo.
Sistemas implantados por regiones.
Trabajar con el sistema viejo (si existe) y con el sistema nuevo simultneamente despus 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
actualizacin si el usuario tiene la necesidad de quitar o poner algo; tngase 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 nmeros enteros, cuyo rango o tamao depender del
lenguaje en el que posteriormente se codifique el algoritmo y de la computadora.
- Real:
Subconjunto de los nmeros reales limitado no slo en cuanto al tamao, sino tambin en
cuanto a la precisin.
- Lgico:
Conjunto formado por los valores Verdadero y Falso.
- Carcter:
Conjunto finito y ordenado de los caracteres que la computadora reconoce.
- Cadena: Los datos (objetos) de este tipo, contendrn una serie finita de caracteres, que
podrn ser directamente trados o enviados a/desde consola

Los tipos: entero, real, lgico, carcter y cadena, son tipo predefinidos en la mayora de los
lenguajes de programacin.


Constantes
Una constante es un dato cuyo valor no puede cambiar durante la ejecucin del programa.
Recibe un valor en el momento de la compilacin y este permanece inalterado durante todo el
programa.
Se puede hacer una divisin de las constantes en dos clases:
constantes literales (sin nombre)
constantes declaradas (con nombre)


Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
6

Constantes declaradas con nombre
Las constantes simblicas 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.

Numricas enteras:
En el rango de los enteros. Compuestas por el signo (+, -), seguido por una serie de
dgitos (0..9).
Ej.: Cont Cont + 1

Numricas reales:
Compuestas por el signo (+, -), seguido por una serie de dgitos (0..9) y un punto decimal
(.).
Ej.: Cont Cont + 5.351

Lgicas:
Slo existen dos constantes lgicas: verdadero y falsa
Ej.: Bandera Verdadero

Carcter:
Cualquier carcter del juego de caracteres utilizado, colocado entre comillas simples o
apstrofes. Los caracteres que reconoce la computadora son: dgitos, caracteres
alfabticos, tanto maysculas como minsculas, y caracteres especiales.
Ej.: Letra C

Cadena:
Serie de caracteres vlidos, encerrados entre comillas simples o apstrofes.
Ej.: Nombre Carolina

Expresiones
Una expresin es una combinacin de operadores y operandos. Los operandos podrn ser
constantes, variables y otras expresiones y los operadores de cadena, aritmticos, relacionales
o lgicos.

- Expresiones Numricas
Los operandos que intervienen en ellas son numricos, el resultado es tambin de tipo
numrico y se construyen mediante los operadores aritmticos. Se pueden considerar
anlogas a las frmulas matemticas.


Constante literal
Constante literal
Constante literal
Constante literal
Constante literal
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
7

Operadores aritmticos:
Operador Descripcin Ejemplo
.
Exponenciacin 2 ^ 3 = 8
+ Suma 54 + 10 = 64
- Resta 25 10 = 15
/ Divisin real 25 / 5 = 5.0
* Multiplicacin 2 * 32 = 64
div Cociente de la divisin entera 5 div 2 = 2
mod Residuo de la divisin entera 5 mod 2 = 1

Expresiones Booleanas
Su resultado ser Verdadero o falso. Se construyen mediante los operadores relacionales y
lgicos.

Operadores relacionales:
Operador Significado
> Mayor que
< Menor que
= Igual que
>= Mayor o igual que
<= Menor o igual que
= Diferente de

Operadores lgicos:
- y (.) : Multiplicacin lgica
- o (v) : Suma lgica
- no () : Negacin lgica

Tabla de verdad para operadores lgicos
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 evalan de izquierda a derecha.

Prioridad Operador
1 ^
2 ( )
3 No
4 *, /, div, mod y
5 o, +, -
6 <, >, >=, <=, =, !=



Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
8

Sentencia de asignacin
Se utiliza para asignar valores a las variables, se denota con el smbolo .
Ejemplos:
suma 1 + 3
a b * b * b
band j > 0
cadena Hola
carcter c

Identificadores
Identificadores son los nombres que se dan a las constantes simblicas, variables, u otros objetos que
manipula un algoritmo.

Reglas para la construccin de Identificadores
Debe resultar significativo, sugiriendo lo que representa.
No podr coincidir con palabras reservadas, propias del lenguaje algortmico.
Se admitir un mximo de 32 caracteres.
Comenzar siempre por un carcter alfabtico y los siguientes podrn ser letras, dgitos o el
smbolo subrayado.
Podr ser utilizado indistintamente en mayscula y minscula.

Variables
Concepto: Son un espacio en memoria que se reserva para almacenar informacin. Son definidas por el
programador y adems 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,
nmero o una lista) adentro. Cuando se crea una variable, al mismo tiempo se crea un recipiente y se le
adjudica un valor.








Tipos bsicos de variables
- Contador:
Variable valor se incrementa o se decrementa en un valor constante cada vez que se produce
una determinada accin.
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 alcanca los vueltos.
Ej.: dineroAlcancia dineroAlcancia + vuelto

- Bandera, interruptor o switch :
Variable que slo puede tomar dos valores, verdadero o falso (1 0).
Ej.: bandera verdadero

edad

1
2


altura

77.7

nombre
'Keysha'
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
9

PSEUDOCDIGO
El pseudocdigo es un lenguaje artificial e informal que auxilia a los programadores a
desarrollar los algoritmos. El pseudocdigo es similar al espaol coloquial, es cmodo y
amigable, aunque no se trate de un lenguaje verdadero de programacin de computadoras.
De hecho, los programas en pseudocdigo no son ejecutados sobre computadoras. Ms
bien, slo ayudan al programador a pensar un programa antes de intentar escribirlo en un
lenguaje de programacin.
El pseudocdigo consiste solo de caracteres, por lo que los programadores pueden de
forma cmoda escribir los programas en pseudocdigo en una computadora, utilizando un
programa de edicin.

Ejemplos del uso del pseudocdigo
1. Genere un algoritmo que solicite dos nmeros 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 permetro 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 permetro de un crculo.

5. Construya un algoritmo que calcule la cantidad de das de nacido que tiene una persona.

6. Construya un algoritmo tal que dado los datos A y B, escriba el resultado de la siguiente expresin:
( )
3
2
B A
R
+
=
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
10

DIAGRAMAS DE FLUJO

Un diagrama de flujo de datos es una descripcin grfica de un procedimiento para la
resolucin de un problema. Son frecuentemente usados para describir algoritmos y programas
de computador. Los diagramas de flujo de datos estn 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, ejecutndose 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 caractersticas y ventajas:
- Es una representacin grfica de las secuencias de un proceso, presenta informacin clara,
ordenada y concisa.
- Permite visualizar las frecuencias y relaciones entre las etapas indicadas.
- Se pueden detectar problemas, desconexiones, pasos de escaso valor aadido 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 rpida y amena los procesos.
Reglas para la creacin de Diagramas
1 Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
2 Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que indica la
direccin que fluye la informacin procesos, se deben de utilizar solamente lneas de flujo
horizontal o verticales (nunca diagonales).
3 Se debe evitar el cruce de lneas, 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 lneas de flujo sin conectar
5 Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el uso de
muchas palabras.
6 Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del smbolo
final.
7 Solo los smbolos de decisin pueden y deben tener ms de una lnea de flujo de salida.
8 Los Diagramas de flujo se dibujan generalmente usando algunos smbolos estndares; sin
embargo, algunos smbolos especiales pueden tambin ser desarrollados cuando sean
requeridos.


Qu es Dfd? (FreeDFD 1.1. http://freedfd.freaks-unidos.net/
Dfd es un software diseado para construir y analizar algoritmos. Usted puede crear diagramas
de flujo de datos para la representacin de algoritmos de programacin estructurada a partir
de las herramientas de edicin que para ste propsito suministra el programa. Despus de
haber ingresado el algoritmo representado por el diagrama, podr ejecutarlo, analizarlo y
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
11

depurarlo en un entorno interactivo diseado para ste fin. La interfaz grfica de Dfd, facilita en
gran medida el trabajo con diagramas ya que simula la representacin estndar de diagramas
de flujo en hojas de papel.



Objetos en DFD
Objeto Descripcin
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
descripcin o comentarios acerca del algoritmo.


OBJETO DESCRIPCIN
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
12

Objeto Asignacin:



El objeto Asignacin asigna valores a campos variables. Al ser
ejecutado, puede realizar hasta tres asignaciones.

El cuadro de dialogo del objeto Asignacin contiene espacio
para tres asignaciones, cada asignacin consta de un espacio
para el campo variable situado siempre a la izquierda, el
smbolo de asignacin y un espacio para la expresin situada
siempre a la derecha. Esto indica que al campo variable se le
asigna el resultado de la evaluacin de la expresin. Debe
realizarse por lo menos una asignacin.

Objeto Lectura:

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

El cuadro de dilogo para la edicin 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 evala cada una de las
expresiones que contiene y despliega un cuadro de dilogo
que muestra el valor obtenido en cada una de las expresiones
en su respectivo orden.
El cuadro de dilogo para la edicin del objeto contiene un
espacio para ingresar una lista de expresiones separadas por
comas. Debe existir por lo menos una expresin.

Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
13

Objeto Decisin:


El objeto decisin selecciona el flujo a seguir de acuerdo al
valor lgico de una condicin. La condicin debe ser siempre
una expresin que al ser evaluada de como resultado un valor
de tipo de dato Lgico.
Ejemplo: 3<w , x >0 AND sw = .V. , valor*15 < 300*contador.

El objeto Decisin est asociado a dos bloques de objetos
ubicados a lado y lado de este, y un objeto Cierre Decisin
ubicado a continuacin de ambos bloques.
Si al evaluar la condicin se obtiene el valor lgico .V., se
ejecuta el bloque rotulado con la palabra Si, en caso contrario
se ejecuta el bloque rotulado con No. En ambos casos la
ejecucin contina en el objeto Cierre Decisin.

Objeto Ciclo Mientras:

El objeto Ciclo Mientras tiene como funcin el ejecutar un
bloque de objetos mientras que una condicin sea verdadera.
La condicin debe ser siempre una expresin que al ser
evaluada de como resultado un valor de tipo de dato Lgico.
Ejemplo : 3<W , x >0 AND Sw = .V. , Valor*15 < 300*Contador.

Si al evaluar la condicin se obtiene el valor .F. la ejecucin
del algoritmo continuar a partir del objeto que sigue al
Cierre.

Objeto Ciclo Para:

Su funcin es ejecutar un bloque de objetos mientras que la
variable contadora no alcance el lmite establecido por el
valor final. El contador es siempre una variable de tipo de
dato Real. Contiene adems un valor inicial que ser asignado
al contador al iniciar la ejecucin del ciclo, un valor final y un
valor de incremento. Si el contador excede el valor final, la
ejecucin 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 dilogo 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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea 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 ejecucin de este objeto finaliza la ejecucin del
algoritmo.

Ejemplos y prctica de diagramas de flujos secuenciales:
1. Dibuje un D-F que le pida a una persona los aos que tenga e indique cuntos meses tiene.








'Digite su edad: '
mesesedad*12
'Ud. tiene: ', meses, 'meses.'
Declaracin e inicializacin 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 aos que
tiene una persona
Impresin de los datos de salida
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
15

2. Dibuje un D-F que solicite la informacin de un crculo que pida al usuario el radio del
mismo y le permita conocer su rea y permetro.



























3. Dibuje un Diagrama de flujo que solicite la informacin de un rectngulo, que pida al
usuario el ancho y largo del mismo y le permita al usuario conocer rea y permetro.



4. Dibuje un D-F que calcule el nmero de pulsaciones que una persona debe tener por cada
10 segundos de ejercicio, si la frmula 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. Ginecologa, Pediatra, Traumatologa. El presupuesto
anual del hospital se reparte conforme a la siguiente tabla:
REA PORCENTAJE DE PRESUPUESTO
Ginecologa 40%
Traumatologa 35%
Pediatra 25%
Area = ancho * largo
Perimetro = (2*ancho) + (2*largo)

area=PI*(radio
2
)
permetro=2*PI*radio

PI constante
Declaracin e inicializacin de
Las variables radio, permetro,
rea. PI es una constante
Lectura del dato de entra edad
Proceso. Calcular el rea y el
permetro del rectngulo.
Impresin de los datos de salida
Solicitud de datos al usuario
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
16

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






















7. El dueo de una tienda compra un artculo 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, ms el 20% de comisin de las ventas realizadas en el
mes.

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

11. Construya un D-F que calcule e imprima el nmero de segundos que hay en un determinado
nmero de das indicado por el usuario.

Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
17

12. Disear un diagrama de flujo para convertir de grados centgrados 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.
Disee 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 funcin del nmero 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 artculo 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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
18

La estructura de seleccin if
Una estructura de seleccin se utiliza para elegir entre cursos alternativos de accin. Por
ejemplo suponga que en un examen 70 es la calificacin de aprobado. El enunciado en
pseudocdigo

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

determina si la condicin la nota del estudiante es mayor o igual a 70 es verdadera o falsa. Si
la condicin es verdadera, entonces se imprime Aprobado y el siguiente enunciado en
pseudocdigo en orden se ejecuta. Si la condicin resulta falsa, se ignora la impresin, y se
ejecuta el siguiente enunciado del pseudocdigo en su orden.

El diagrama de flujo de la siguiente figura ilustra la estructura if de una sola seleccin. Este
diagrama de flujo contiene el smbolo de mayor importancia en la diagramacin de flujo el
smbolo del rombo, tambin conocido como smbolo de decisin, y que indica que una decisin
debe ser tomada. El smbolo de decisin contiene una expresin como es una condicin que
puede resultar falsa o verdadera. Dos lneas de flujo parten del smbolo de decisin, una indica
la direccin a tomarse cuando la expresin dentro del smbolo rombo es verdadera; la otra
indica la direccin a tomarse cuando la expresin es falsa.




La estructura de seleccin if/else
La estructura de seleccin if ejecuta una accin indicada cuando la condicin es
verdadera; de lo contrario la accin es pasada por alta. La estructura de seleccin if/else
permite que el programador especifique que se ejecutan acciones distintas cuando la condicin
sea verdadera que cuando la condicin es falsa. Por ejemplo, el enunciado en pseudocdigo

If la nota del estudiante es mayor o igual a 70
Imprima Aprobado
else
Imprima Reprobado

Imprime Aprobado, si la calificacin del alumno es mayor que o igual a 70 e imprime
Reprobado si la calificacin del alumno es menor que 70. En cualquiera de los casos, despus
de haber terminado la impresin, se ejecutar el siguiente enunciado del pseudocdigo la
siguiente instruccin.

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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea 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 pseudocdigo
imprimir A para calificacin 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 dems 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 slo se ejecutar el enunciado o instruccin Imprima A despus de la primera prueba.
Despus 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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
20

Ejercicios con estructura de seleccin if, if/else, if/else anidadas

17. Leer 2 nmeros, 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 nmeros diferentes y escribir el
nmero mayor de los tres.


Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
21

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

20. Obtenga dos nmeros del teclado, y determine y despliegue cul (si alguno) es el mayor de
los dos nmeros. Dibuje un diagrama de flujo que resuelva el enunciado anterior.

21. El IMSS requiere clasificar a las personas que se jubilaran en el ao de 1997. Existen tres
tipos de jubilaciones: por edad, por antigedad joven y por antigedad adulta. Las personas
adscritas a la jubilacin por edad deben tener 60 aos o ms y una antigedad en su
empleo de menos de 25 aos. Las personas adscritas a la jubilacin por antigedad joven
deben tener menos de 60 aos y una antigedad en su empleo de 25 aos o ms. Las
personas adscritas a la jubilacin por antigedad adulta deben tener 60 aos o ms y una
antigedad en su empleo de 25 aos o ms.
Determinar por medio de un diagrama de flujo en qu tipo de jubilacin quedara adscrita
una persona.
Inicio
Leer Edad, Antigedad
Si Edad >= 60 and Antigedad < 25 entonces
Escriba 1a jubilacin es por edad
si no
Si Edad >= 60 and Antigedad > 25 entonces
Escriba la jubilacin es por edad adulta y antigedad
si no
Si Edad < 60 and Antigedad > 25 entonces
Escriba la jubilacin es por antigedad 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 Antigedad en la empresa de acuerdo con la siguiente tabla:

TIEMPO UTILIDAD
Menos de 1 ao 5 % del salario
1 ao o ms y menos de 2 aos 7% del salado
2 aos o ms y menos de 5 aos 10% del salario
5 aos o ms y menos de 10 aos 15% del salario
10 aos o mas 20% del salado

Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea 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 efecta una promocin en la cual se hace un descuento
sobre el valor de la compra total segn 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 fbrica 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
ms se les da un 40% de descuento. El precio de cada computadora es de 230,000.
Determine cunto es el descuento y el total que deber pagar un cliente por su compra.

26. En una llantera se ha establecido una promocin de las llantas marca "Ponchadas", dicha
promocin 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 ms 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 estreos ofrece un descuento del 10% sobre el precio sin IVA, de algn
aparato si este cuesta 2.000 o ms. Adems, independientemente de esto ofrece un 5% de
descuento si la marca es "SONY". Determinar cunto pagara, con IVA incluido, un cliente
cualquiera por la compra de su aparato.

28. Una frutera ofrece las manzanas con descuento segn la siguiente tabla:
NM. DE KILOS COMPRADOS % DESCUENTO
0 2 0%
3 5 10%
6 -10 15%
11 en adelante 20%
Determinar cunto pagar una persona que compre manzanas es esa frutera.
29. El dueo de una empresa desea planificar las decisiones financieras que tomara en el
siguiente ao. La manera de planificarlas depende de lo siguiente
- Si actualmente su capital se encuentra con saldo negativo, pedir un prstamo
bancario para que su nuevo saldo sea de $10 000.
- Si su capital tiene actualmente un saldo positivo pedir un prstamo bancario para
tener un nuevo saldo de $20 000,
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
23

- pero si su capital tiene actualmente un saldo superior a los $20 000 no pedir ningn
prstamo.
Determine que opcin elegir el dueo de la empresa.

30. En un almacn se utilizan los siguientes cdigos
a. CDIGO = 1 para un automvil nuevo
b. CDIGO = 2 para un automvil usado
c. CDIGO = 3 para accesorios aparte
La comisin de un vendedor es la siguiente: el 3% del precio de venta en automviles nuevos,
pero con un mximo de 300.000 de comisin, el 5% del precio de venta en automviles
usados, pero con un mnimo de 75.000 de comisin, el 6% en accesorios. Dibuje un Diagrama
de flujo que reciba como parmetro de entrada el CDIGO y PRECIO y como salida imprima la
COMISIN de cada vendedor.
31. Dado como dato el sueldo de un empleado, aplquele un aumento del 15% si su sueldo es
inferior a 1000 dlares. Imprima en este caso el nuevo sueldo.

32. Dibuje un diagrama de flujo que reciba la calificacin 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 adems que si el
nmero de das de estancia es superior a 7 y la distancia total (ida y vuelta) a recorrer es
superior a 800 km., el billete tiene una reduccin 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
comisin para saber el sueldo a obtener. Debe pedirse el nombre, cdigo de vendedor y
ventas realizadas. Si las ventas son mayores a 50000 se le da una comisin 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 nmeros e
indica que operacin desea realizar (+,-,/,*), el diagrama da como salida el resultado de la
operacin.

La estructura de repeticin While
Una estructura de repeticin le permite al programador especificar que se repita una
accin, en tanto cierta condicin se mantenga verdadera. El enunciado en pseudocdigo

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

Describe la repeticin que ocurre durante una salida de compras. La condicin (Mientras
queden elementos en mi lista de compras) puede ser verdadera o falsa. Si es verdadera,
entonces la accin Adquirir el elemento siguiente y tacharlo de la lista se ejecutar. Esta accin
se ejecutar en forma repetida, en tanto la condicin sea verdadera. El enunciado o enunciados
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
24

contenidos en la estructura de repeticin while constituyen el cuerpo del while que est
delimitado por las lneas 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 condicin 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 repeticin se
termina, y se ejecutar el enunciado en pseudocdigo que sigue de inmediato despus de la
estructura de repeticin.















Tipos de control en repeticiones:
a. Repeticin controlada por contador: Esta tcnica utiliza una variable llamada
contador para definir el nmero de veces que deber ejecutarse un conjunto de
enunciados. La repeticin controlada por contador se conoce a menudo como
repeticin definida porque, antes de que se inicie la ejecucin de ciclo, el nmero de
repeticiones es conocido. Un contador es una variable, utilizada para contar.
b. Repeticin controlada por centinela: Esta tcnica utiliza un valor especial llamado
un valor centinela (tambin conocido como valor seal, 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 algn valor de entrada aceptable, por ejemplo -1, 1 0


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

Comprar
elemento
Tachar
elemento
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea 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 nmeros del 1 al 10, lado a
lado en el mismo regln 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.
sumasuma+
numero
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
26



Lo esencial de la repeticin
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 condicin de continuacin del ciclo. Hemos analizado dos procedimientos de
repeticin:
1. Repeticin controlada por contador
2. Repeticin controlada por centinela

La repeticin controlada por contador se denomina a veces repeticin definida, porque con
anticipacin se sabe con exactitud cuntas veces se ejecutar el ciclo. La repeticin controlada
por centinela a veces se denomina repeticin indefinida, porque no se sabe con anticipacin
cuantas veces el ciclo se ejecutar.
En la repeticin controlada por contador, se utiliza una variable de control para contar el
nmero 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 nmero correcto de repeticiones, se termina el ciclo y la computadora continua
ejecutando el enunciado siguiente al de la estructura de repeticin.
Los valores centinela se utilizan para controlar la repeticin cuando:
1. El nmero preciso de repeticiones, no es conocido con anticipacin, 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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea 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.

Repeticin controlada por contador
La repeticin 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 condicin 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 repeticin for
La estructura de repeticin for maneja de manera automtica todos los detalles de la repeticin
controlada por contador.

Su funcin es ejecutar un bloque de objetos mientras que la variable contadora no alcance el lmite
establecido por el valor final. El contador es siempre una variable de tipo de dato Real. Contiene adems
un valor inicial que ser asignado al contador al iniciar la ejecucin del ciclo, un valor final y un valor de
incremento. Si el contador excede el valor final, la ejecucin 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 dilogo 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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
28

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






































Uso del WHILE Uso del FOR




nombre, ' su promedios es: ', prom
nombre, ' su promedios es: ', prom
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
29


40. Leer 10 nmeros y obtener su cubo y su cuarta, para cada uno.


























Uso del WHILE Uso del FOR


41. Leer 10 nmeros y escribir cuntos son positivos y cuntos son negativos















cubonum*num*num
cuartacubo*num
controlcontrol+1
cubonum*num*num
cuartacubo*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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
30

































42. Leer N nmeros negativos y convertirlos a positivos y escribir en consola dichos nmeros.

43. Dibuje un diagrama de flujo que calcule la suma y promedio de 10 nmeros 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 nmero negativo.

45. Suponga que se tiene un conjunto de calificaciones de un grupo de N alumnos. Realizar un
Diagrama de flujo para calcular la calificacin promedio y ms baja de todo el grupo.

46. Calcular e imprimir la tabla de multiplicar de un nmero cualquiera.
Escriba el multiplicando, el multiplicador y el producto.
5 x 1 = 5
'Positivos: ', pos, ' Negativos: ', neg
'Positivos: ', pos, ' Negativos: ', neg

Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
31

47. Una persona debe realizar un muestreo con 50 personas para determinar el promedio de
peso de los nios, jvenes, adultos y viejos que existen en su zona habitacional. Se
determinan las categoras con base a la siguiente tabla:
CATEGORA EDAD
Nios 0 12
Jvenes 13 29
Adultos 30 59
Viejos 60 en adelante
Imprima como salida el promedio de peso de cada categora.

48. Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirn un 15% de
descuento si compran ms de 10 kilos. Determinar cunto pagar cada cliente, cuanto es el
monto del descuento hecho a todos los clientes y cunto percibir el expendi por esas
compras.

49. En un centro de verificacin de automviles se desea saber el promedio de puntos
contaminantes de los primeros 25 automviles que lleguen. Asimismo se desea saber los
puntos contaminantes del carro que menos contamino y del que ms contamino.

50. Una compaa de seguros tiene contratados a N vendedores. Cada uno hace tres ventas a la
semana. Su poltica de pagos es que un vendedor recibe un sueldo base, y un 10% extra por
comisiones de sus ventas. El gerente de su compaa desea saber cunto 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 ms 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 inters. Cul
ser la cantidad de dinero que esta persona tendr al cabo de, un ao 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 nmeros dados.

56. En una granja se requiere saber alguna informacin para determinar la calidad de una
gallina. La calidad de cada gallina se obtiene segn la siguiente frmula:

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


Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
32

Finalmente para fijar la categora de la gallina segn la calidad obtenida se cuenta con la
siguiente tabla:

CALIDAD CATEGORA 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 Cmara 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 calificacin mnima aprobatoria es de 70.

60. Un grupo de 12 estudiantes presentan un examen de Fsica. Disee un diagrama que lea
por cada estudiante la calificacin obtenida y calcule e imprima,
c. La cantidad de estudiantes que obtuvieron una calificacin menor a 50.
d. La cantidad de estudiantes que obtuvieron una calificacin de 50 o ms pero menor
que 80.
e. La cantidad de estudiantes que obtuvieron una calificacin de 70 o ms pero menor
que 80.
f. La cantidad de estudiantes que obtuvieron una calificacin de 80 o ms.

La estructura de repeticin do/while
La estructura de repeticin do/while es similar a la estructura while. En la estructura
while la condicin de continuacin del ciclo se prueba al principio del ciclo, antes de ejecutarse
el cuerpo del mismo. La estructura do/while prueba la condicin de continuacin del ciclo
despus 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 ejecucin continuar con el enunciado que
aparezca despus de la clausula while.






La estructura del do/while demuestra que la condicin de continuacin de ciclo no se
ejecutar sino hasta despus de que la accin se lleve a cabo al menos una vez. Note que el
do
While(condicin)
Enunciado 1
Enunciado 2
Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
33

mbito o instrucciones pertenecientes al ciclo del do/while estn delimitadas por las lneas
discontinuas del recuadro

Practica diagramas de flujos compuestos

61. Una compaa 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 seccin:
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 seccin y el total del bus. Al reservar se debe verificar si todava quedan campos en la
seccin seleccionada, de no ser as, emitir un mensaje al usuario.

62. En un almacn se utilizan los siguientes cdigos
CDIGO = 1 para un automvil nuevo
CDIGO = 2 para un automvil usado
CDIGO = 3 para accesorios aparte

La comisin de un vendedor es la siguiente: el 3% del precio de venta en automviles nuevos,
pero con un mximo de 300.000 de comisin, el 5% del precio de venta en automviles
usados, pero con un mnimo de 75.000 de comisin, el 6% en accesorios. Dibuje un Diagrama
de flujo que reciba como parmetro de entrada para cada uno de los N vendedores el CDIGO
y PRECIO y como salida imprima la COMISIN de cada uno y el monto total que recibir el
almacn por las ventas.

63. En el Hospital de Nios, la seccin Ciruga 3, se divide en 5 salas
SALA CAMAS POR SALA
1 14
2 7
3 6
4 6
5 8
En esta seccin se internan nios que tienen alguno de los siguientes estados:
Cuidados intermedios (Solamente en la sala 3)
Recuperacin (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 nios: el nombre y el estado (1,2). De
acuerdo al estado, imprima en que nmero de sala queda internado. Si no hubiera campo en
ninguna sala de Ciruga 3 se debe imprimir un mensaje para que se busque en otra seccin del
hospital. Para finalizar imprima:
Cantidad de Nios por sala
Total de nios internados en Ciruga 3

Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
34


64. En las Olimpiadas de Sdney participaron delegaciones de deportistas de muchos pases del mundo.
A cada pas se le ha asignado un valor entero entre 1 y 5, que indica el Continente al que pertenece.
Suponga que se introduce la siguiente informacin para cada uno de los K pases 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 informacin 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: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
35

65. El departamento de Seguridad Pblica y Trnsito, desea saber, de los N carros que entran a
la ciudad de San Jos por un determinado peaje, cuntos entran con calcomanas de cada
color. Conociendo el ltimo dgito de la placa de cada automvil se puede determinar el
color de la calcomana utilizando la siguiente relacin:

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
automviles por el paso del peaje (suponga el mismo costo para todos los carros), y para cada
automvil, el ltimo dgito de la placa. Se quiere como salida la cantidad de carros con cada
color de calcomana y el monto total que por concepto de pago de peaje se recoge.

66. En una granja se requiere saber alguna informacin 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 segn la frmula:

Calidad = peso de gallina * altura de gallina
Nmero 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 nmero 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 informacin de los N huspedes que hicieron
su salida el da de hoy: nombre de la persona, el tipo de habitacin (1, 2, 3, 4) y la cantidad
de das que la ocup. Se hace un descuento del 10% si el cliente se hosped ms de 5 das,
del 15% s se hosped ms de 10 das y del 20% si se hosped ms de 15 das. De acuerdo al
tipo de habitacin se tienen las siguientes tarifas diarias.
Tipo de habitacin Tarifa diaria
1 $120.00
2 $155.00
3 $210.00
4 $285.00


Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
36

Realice el diagrama de flujo que reciba la informacin anterior para cada uno de los N
huspedes que abandonaron el hotel, y como informacin de salida imprima:

Cantidad de clientes que ocupaban habitaciones por cada uno de los cuatro tipos de
habitacin
Monto total obtenido por cada uno de los cuatro tipos de habitacin (Este es el monto
acumulado del monto que debe pagar el husped luego de aplicado el descuento)
Monto total de descuento por cada uno de los cuatro tipos de habitacin
Monto total obtenido por el hotel ese da

68. Se tienen datos de transporte de los dos elevadores de un edificio, por cada uno de los N
viajes, hechos durante el da: numero de elevador (1,2) cantidad de personas, peso de ese
viaje. Elabore un diagrama de flujo que imprima una estadstica del da.
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 nios. De acuerdo con las caractersticas
de cada nio (edad, actividad que desea realizar y si se practic o no examen mdico), es
preciso determinar la actividad que le ser asignada al nio durante el campamento.
Actividad Asignada:
Si el nio tiene 8 ms aos y desea Equitacin, se le asigna Equitacin.
Si el nio desea Natacin y tiene Examen Mdico, se le asigna Natacin.
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 mdica, para cada uno de los N Nios que desean ingresar al campamento, y
como informacin de salida imprima: El nmero de nios que se les asigno la actividad de
Equitacin, Natacin 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 cnyuge y/o a los hijos mayores de edad de cada individuo, segn el
caso.
Cantidad a entregar al cnyuge:
- Si el individuo tiene cnyuge e hijos, al cnyuge le corresponde la mitad de la herencia.
- Si el individuo tiene cnyuge sin hijos, al cnyuge le corresponde toda la herencia.
- Si el individuo no tiene cnyuge, la cantidad es cero.
Cantidad a entregar a cada hijo:
- Si el individuo tiene cnyuge e hijos, a cada hijo le corresponde la mitad de la herencia
dividida entre el nmero de hijos.
- Si el individuo no tiene cnyuge y tiene hijos, a cada hijo corresponde la herencia
dividida entre el nmero de hijos.
- Si el individuo no tiene hijos, la cantidad es cero.

Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
37

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

71. Se tiene la informacin 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 Poblacin, de
acuerdo al criterio siguiente:
- Baja si Densidad de Poblacin es menor a 15
- Media si Densidad de Poblacin es mayor o igual a 15 y menor o igual a 100
- Alta si Densidad de Poblacin 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
ledo especfica el nmero de valores que faltan de introducir. Su diagrama deber leer los nmeros
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 debern ser sumados sin tomar en cuenta el primer
dgito que es el que indica cuantas nmeros se van introducir para sumar. La salida del diagrama en el
ejemplo anterior sera: 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 nmeros 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 nmero 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 nmero N nos diga si es o no perfecto.

77. Un ao es bisiesto si es mltiplo de 4, exceptuando los mltiplos de 100, que slo son bisiestos
cuando son mltiplos adems de 400, por ejemplo el ao 1900 no fue bisiesto, pero el ao 2000 si lo
ser. Hacer un organigrama que dado un ao A nos diga si es o no bisiesto.

78. Hacer un organigrama que dados un da D, un mes M y un ao A, calcule cual es el da siguiente. Se
debe tener en cuenta que en los aos bisiestos Febrero tiene 29 das y en los no bisiestos 28.

79. Hacer un organigrama que lea un nmero N y obtenga las ternas pitagricas (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 pitagrica debe
cumplir que A
2
+B
2
=C
2
.


Modulo 01: Introduccin al desarrollo de algoritmos
Introduccin a la programacin, Prof. Ing. Gloriana Pea R.
38



BIBLIOGRAFA

Principal
Joyanes, Luis. Fundamentos de Programacin. Algoritmos, estructuras de datos y
objetos. Tercera Edicin. McGraw-Hill, 2003.


Complementaria
Deitel, Harvey M. y Deitel, Paul J. Como programar en Java. Quinta Edicin. Pearson
Educatin, Mxico, 2004.

Joyanes, Luis. Programacin en Java 2. McGraw-Hill, 2002.

Rafael Arteaga. FreeDFD 1.1 Editor E Intrpret Manual de Referencia. 2006