Está en la página 1de 46

U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.

CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

UNIDAD I: ANLISIS DE PROBLEMAS Y


DISEO DE ALGORITMOS

1. ALGORITMOS
2. TIPOS DE DATO
3. IDENTIFICADORES
4. VARIABLES / CONSTANTES
5. OPERADORES
6. CONSTRUCCIN Y EVALUACIN DE EXPRESIONES
7. INSTRUCCIONES BSICAS
8. ABSTRACCIN DE DATOS
9. USOS DE VARIABLES
10. CONCEPTOS VARIOS
11. TCNICAS DE PROGRAMACIN
12. EJERCICIOS TPICOS RESUELTOS
13. EJERCICIOS PROPUESTOS
14. REFERENCIAS
U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

1. ALGORITMOS
La palabra algoritmo se deriva del nombre del gran matemtico rabe Mohamed Ibn al-Khwarizmi, que
vivi durante el siglo IX y alcanz gran reputacin por el enunciado de las reglas para sumar, restar,
multiplicar y dividir nmeros decimales; la traduccin al latn del apellido de la palabra algorismus deriv
posteriormente en algoritmo.
Problema Algoritmo Programa

DEFINICIN
Un algoritmo es la descripcin de los pasos a seguir para la solucin de un problema. Todo algoritmo
debe ser:
 P R E C I S O : cada instruccin debe indicar de forma inequvoca que se tiene que hacer.
 FINITO: debe tener un nmero limitado de pasos.
 D E F I N I D O : debe producir los mismos resultados para las mismas condiciones de entrada.
ROBUSTEZ DE UN ALGORITMO
Cada algoritmo debe contemplar todas las posibles facetas del problema que se desea resolver. Al
elaborar el algoritmo no se debe escapar ningn detalle que provoque un mal funcionamiento.

TIPOS DE ALGORITMOS

COMPUTACIONAL NO COMPUTACIONAL
 algoritmo que puede ser ejecutado por un  algoritmo que NO puede ser ejecutado por
computador. Ejemplo: Calculo de n! un computador. Ejemplo: Receta de cocina

PARTES DE UN ALGORITMO
Todo algoritmo puede ser descompuesto en tres partes:
 E S P E C I F I C A C I N D E E N T R A D A : Que informacin se requiere. Que se tiene?
 P R O C E S O : Pasos a seguir para resolver el problema. Como lograrlo?
 E S P E C I F I C A C I N D E S A L I D A : Resultados esperados. Que se pide?

REPRESENTACIN DE ALGORITMOS
Los lenguajes algortmicos representan los smbolos y reglas que se utilizan para describir de manera
explicita al algoritmo; pueden representarse de las siguientes maneras:
 E S C R I T A : Descripcin no grafica expresada en lenguaje natural. Por ejemplo: Para sumar
dos nmeros podran escribirse los siguientes algoritmos:
VERSIN 1 VERSIN 2 VERSIN 3
Sumar dos valores ledos Dados dos valores ledos, su- Imprimir el resultado de
e imprimir resultado. marlos e imprimir resultado. sumar dos valores ledos.

VERSIN 4 Distinguiendo V E R S I N 5 : Jerarquizando V E R S I N 6 : Resaltando


las acciones acciones acciones
1. leer dos valores 1. leer A, B 1. leer A, B
2. sumarlos 2. calcular C como A + B 2. calcular C como A + B
3. imprimir resultado 3. imprimir C 3. imprimir C
MATERIAL DE AP O Y O A CLASES PGINA 2 DE 46
U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

 P S E U D O C D I G O : Descripcin no grafica expresada VERSIN 1


en lenguaje natural pero con forma de
programa; se requiere tener Inicio
conocimiento de algn lenguaje de leer A, B;
programacin C = A + B;
imprimir C;
Fin.
 D I A G R A M A D E F L U J O : Representacin grfica de
un algoritmo. Ventaja: es INDEPENDIENTE I inicio
del lenguaje de programacin.

A, B leer

C  A + B calcular

C imprimir

F fin

VERIFICACIN
Todo algoritmo debe ser verificado para que funcione correctamente presentando una solucin al
problema a tratar y cumple con todos lo requerimientos especificados. Los mtodos de verificacin son:

 C O R R I D A E N F R I O [ T R A Z A ] : P R U E B A E X H A U S T I V A : Llevar record de los valores de


las variables mientras se ejecuta instruccin por instruccin. Los datos deben considerar
valores en frontera del rango de los datos a usar. Por ejemplo para el Diagrama de Flujo
arriba:

CORRIDA EN FRO 1 CORRIDA EN FRO 2 CORRIDA EN FRO 3

A B C A B C A B C

4 5 9 -4 5 1 0 -5 -5

 P R E Y P O S T C O N D I C I O N E S : V E R I F I C A C I O N M A T E M A T I C A : Toda instruccin tiene


una precondicin y poscondicin. Precondicin se refiere a los valores de las variables y
estado del programa ANTES de ejecutar la instruccin. Poscondicin se refiere al valor
obtenido por la variable o estado del programa DESPUES de ejecutar la instruccin. En el
caso del algoritmo arriba: Para la instruccin: calcular A+B
PRECONDICION: Las variables A y B han sido ledas
POSCONDICION: La variable C es el resultado de A + B
PROBLEMAS PROPUESTOS
1. Escriba el algoritmo para cambiar el caucho delantero de un automvil.
2. Escriba el algoritmo para expresar en centmetros y pulgadas una cantidad dada en metros.

MATERIAL DE AP O Y O A CLASES PGINA 3 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

2. TIPOS DE DATO

Los datos que manejan los lenguajes de programacin se clasifican segn la figura. La asignatura
Computacin 1 se dedica a cubrir los tipos elementales o base de un lenguaje de programacin:

TIPOS DE DATO
TIPO DE DATO
ESTTICO
ESTATICOS DINAMICOS
Un tipo de D A T O E S T T I C O
se refiere a que no es
posible cambiar el tipo de SIMPLES ESTRUCTURADOS  Apuntadores
una variable durante la  Tipos de datos
ejecucin de un programa. ORDINALES abstractos
 alfanumricos:
Por ejemplo si una variable  numricos: enteros  listas
cadena de
se declara numrica  alfanumrico: carcter enlazadas
caracteres
 lgicos: boolean  rboles
entera, no es posible
 grafos
convertirla a una variable  archivos
 definidos por usuario
de tipo cadena de  subrango  arreglos
caracteres, numrico real,  enumerados  registros
arreglo o cualquier otro
tipo durante la ejecucin
NO ORDINALES
de un programa.
 numricos: reales
TIPO DE DATO SIMPLE
Se refiere a que no es posible almacenar ms de un valor a la vez; este tipo tambin se conoce como
tipo de dato base.
TIPO DE DATO ORDINAL:
Tomando como referencia el lenguaje de programacin Pascal [versin freePascal] se puede afirmar que
todos los tipos base [simples] exceptuando al tipo numrico real y al tipo entero especfico int64 son
ORDINALES que cumplen con las siguientes caractersticas:
1. Los ordinales son contables y ordenables. i.e. es posible contarlos uno a uno en un orden
especfico. i.e. a, b, c, , z o 1, 2, 3
2. Se define como sucesor el siguiente valor ordinal segn su orden, y antecesor el valor inmediato
anterior. Todo valor ordinal tiene un sucesor y un antecesor bien definido, i.e. el numero 4 tiene
como antecesor el numero 3 y como sucesor el numero 5; la letra s tiene como antecesor la
letra r y como sucesor la letra t
3. El mnimo valor ordinal NO tiene un antecesor
4. El mximo valor ordinal NO tiene un sucesor
TIPOS PRINCIPALES POSIBLES VALORES TAMAO
A continuacin se presenta una tabla con los tipos de dato mas frecuentemente usados, sus posibles
valores y su tamao [espacio en memoria requerido para almacenar valores de este tipo]
 TIPO DE DATOS ALFANUMRICO:

TIPO POSIBLES VALORES TAMAO


Carcter [Un carcter] Definidos en tabla de caracteres ASCII 1 byte
Cadena de caracteres Combinacin de caracteres ASCII Nro de Bytes = Nro de
caracteres

MATERIAL DE AP O Y O A CLASES PGINA 4 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

 TIPO DE DATOS NUMRICO:  TIPO DE DATOS BOOLEANO:


DIGITOS TIPO POSIBLES VALORES VALOR
TIPO POSIBLES VALORES TAMAO
SIGNIFICATIVOS ORDINAL
Byte 0 .. 255 1 PARA
Shortint -128 .. 127 1 VERDADERO
Integer -32768 .. 32767 2 Boolean 0, 1 1
Word 0 .. 65535 2 false, true
Longint -2147483648..2147483647 4 falso-verdadero
Real platform dependant ??? 4o8
Single 1.5E-45 .. 3.4E38 7-8 4
Double 5.0E-324 .. 1.7E308 15-16 8

3. IDENTIFICADORES

Todo elemento definido por el usuario, sea una variable, constante, programa, tipo o subprograma se
identifica por un nombre. Este nombre debe cumplir las siguientes normas:
1. El primer carcter debe ser alfabtico o smbolo de subrayado,
2. Puede usarse cualquier carcter alfabtico, numrico o el smbolo de subrayado
[ no acepta caracteres especiales ]
3. Su mximo tamao es 255 caracteres

IDENTIFICADORES VALIDOS IDENTIFICADORES INVALIDOS

Hola _hola Est_2 MayorProm 2_est a+b Mayor Prom

4. VARIABLES / CONSTANTES

VARIABLES:
Una variable es un espacio para guardar informacin la cual se
Nombre de variable puede recuperar ms tarde. Las variables tienen tres
componentes: el N O M B R E de la variable; el V A L O R almacenado
tipo y el T I P O permitido para ese valor. El N O M B R E de la variable
valor debe respetar las normas para formar identificadores. Toda
variable tiene la capacidad de cambiar su V A L O R durante la
ejecucin de un programa. Una variable debe declararse en
programas o algoritmos indicando su N O M B R E y el T I P O que
maneja.
CONSTANTES:
Son valores que no cambian durante la ejecucin del programa. Por ejemplo:

Numrico Carcter Cadena de Lgicas


Caracteres
4 -58 0.335 a B 4 + hola 45 verdadero falso

MATERIAL DE AP O Y O A CLASES PGINA 5 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

5. OPERADORES

A menudo los programas, aparte de almacenar y recuperar valores de la memoria requieren manipular
valores con el fin de obtener resultados; por ello se crean expresiones que pueden ser de distinto tipo:
Aritmticas, relacionales y lgicas. En dichas expresiones intervienen dos elementos fundamentales
OPERANDOS y OPERADORES.

Las expresiones son combinaciones de constantes, variables, smbolos de operacin (operadores) y


parntesis. Por ejemplo: a + (b + 3) / c
Cada expresin toma un valor, que se determina tomando los valores de las variables y constantes
implicadas; y realizando la ejecucin de las operaciones indicadas.
Segn el tipo de datos que se generan, los operadores se clasifican en: A R I T M T I C O S , R E L A C I N A L E S ,
L G I C O S . El resultado de la expresin aritmtica es de tipo numrico; el resultado de la expresin
relacional y de la expresin lgica es de tipo lgico/boleano.
OPERANDOS
El tipo de operando determinar, que una expresin sea o no correcta, y pueda ser evaluada para
obtener un resultado. El tipo de dato determina la cantidad de celdas de memoria a utilizar, as como la
estructura de la informacin de cada celda y su interpretacin.
OPERADORES
Son elementos que relacionan de forma diferente, los valores de una o ms variables y/o constantes. Es
decir, los operadores nos permiten manipular valores.
Segn el nmero de operandos a los que se aplica un operador, estos pueden clasificarse como
U N A R I O S , que actan sobre un solo operando o B I N A R I O S , cuando lo hacen sobre dos. A continuacin
se presenta la Sintaxis de las operaciones unarias y binarias:

Operando 1 Operando 1 Operando 2


(Operador) (Operador)
(Constante o Variable) (Constante o Variable) (Constante o Variable)

Resultado
Resultado

Operacin Unaria Operacin Binaria

TIPO DE OPERADORES

Aritmticos
Operadores Relacionales
Lgicos / Bolanos

OPERADORES ARITMTICOS
Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores (variables
y constantes).
Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros,
el resultado es entero; si alguno de ellos es real, el resultado es real.

MATERIAL DE AP O Y O A CLASES PGINA 6 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

Operadores Aritmticos
Cambio de Signo Menos unitario
(Operador unario) -
Suma +
Resta -
Multiplicacin *
Divisin /
Cociente de Divisin Entera de dos enteros DIV
Residuo de Divisin Entera de dos enteros MOD

Conviene observar lo siguiente:


1. Cuando los dos operandos sean del tipo E N T E R O , el resultado ser de tipo E N T E R O .
2. Cuando uno de los dos operandos, o ambos, sean del tipo R E A L , el resultado ser de tipo R E A L .
3. La operacin divisin (/) siempre presenta un resultado de tipo R E A L .
4. Los operandos en caso de DIV y MOD tienen que ser E N T E R O S .
En las operaciones aritmticas, debe asegurarse que el resultado de sumar, restar o multiplicar dos valores,
no produzca un resultado fuera de los rangos definidos, para los diferentes tipos.

OPERADORES RELACIONALES

Una RELACIN consiste de dos operandos separados por un operador R E L A C I O N A L . Si la relacin es


satisfecha, el resultado tendr un valor boleano T R U E ; si la relacin no se satisface, el resultado tendr un
valor F A L S E . Los operandos deben ser del mismo tipo.
Tienen el mismo nivel de prioridad en su evaluacin y esta est por debajo de los operadores aritmticos.

Operadores de Relacin
Igual =
Diferente de <>
Mayor >
Mayor o igual >=
Menor <
Menor o Igual <=

OPERADORES LGICOS
Estos operadores se utilizan para establecer relaciones entre valores lgicos, los cuales pueden ser el
resultado de una expresin relacional.

Operadores Lgicos/Boleanos
Negacin
(Operados Unario)
NOT
--- y --- AND
--- --- OR

MATERIAL DE AP O Y O A CLASES PGINA 7 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

Las definiciones de las operaciones Negacin, And y Or, se resume en las siguientes tablas, conocidas
como tablas de la verdad:

Operador: Operador: Operador:

NOT Operando-1
AND Operando-2
OR Operando-2
T F T F T F

Operando-1

Operando-1
T F T T

T
F T

F F T F

F
6. CONSTRUCCIN Y EVALUACIN DE EXPRESIONES

Las expresiones son secuencias de constantes y/o variables separadas por operadores vlidos. Se puede
construir una expresin vlida por medio de:
1. Una sola constante o variable, la cual puede estar precedida por un signo + - .
2. Una secuencia de trminos (constantes, variables, funciones) separados por operadores.
Toda variable utilizada en una expresin debe tener un valor almacenado para que la expresin, al ser
evaluada, d como resultado un valor.
Cualquier constante o variable puede ser reemplazada por una llamada a una funcin.
Las expresiones se evalan de acuerdo a la J E R A R Q U A D E O P E R A D O R E S . La siguiente tabla muestra la
jerarqua de los operadores:

Prioridad Operadores
0 ()
1 -Unitario, Not
2 * , / , AND, DIV, MOD
3 + , - , OR
4 = , <> , > , >= , < , <=
5  [asignacin]

REGLAS DE EVALUACIN PARA LAS EXPRESIONES


1. Las operaciones encerradas entre parntesis se evalan primero. Si existen parntesis anidados, las
expresiones ms internas se evalan primero.
2. Las operaciones dentro de una expresin siguen el orden de prioridad especificado.
3. En caso de coincidir varios operadores de igual prioridad en una expresin, el orden de evaluacin de
las operaciones es de izquierda a derecha.
4. Las expresiones enlazadas con un operador lgico AND, OR NOT, deben estar entre parntesis.

MATERIAL DE AP O Y O A CLASES PGINA 8 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

EJEMPLOS DE EVALUACIN DE EXPRESIONES

LEYENDA: E representa un valor numrico entero [4]


R representa un valor numrico real [ 4.53 ]
B representa un valor lgico / boleano [ True, False ]

A ( B * 2 + Z / 2 * 3. > 0)or ( Z = 9)
E E 1 E E E R E E E
2
E R 3
4 R
R 5
B 6
7 B
8 B
B
Error al asignar por incompatibilidad de tipos

Ejemplo 1 Ejemplo 2
4 + 2 * 5 23 * 2 / 5
Se evala primero Se evala primero

10 46
Se evala en segundo Se evala en segundo
lugar lugar

14 9.2

Ejemplo 3 Ejemplo 4
7 DIV 2 MOD 5 3.5 + 5.09 - 14.0 / 4
3 MOD 5 3.5 + 5.09 - 3.5
3 8.59 - 3.5
5.09

Ejemplo 5 Ejemplo 6
Si a = 10 b = 20 c = 30 Si a = 10 b = 20 c = 30
(a < b) AND (b < c) a + b >c
(10 < 20) AND (20 < 30) 10 + 20 > 30
30 > 30
True True False

Ejemplo 7
True 23 * 2 DIV 5
46 DIV 5
9

MATERIAL DE AP O Y O A CLASES PGINA 9 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

7. INSTRUCCIONES BSICAS

Lenguaje Algortmico
Estructuras Secuenciales
Pseudocdigo Diagrama de Flujo

ACCIN:
Lectura de informacin a,b,c
leer
DESCRIPCIN:
Interaccin entre el mundo exterior [usuario] y el programa

ACCIN:
Presentar resultados a,b,c
imprimir
DESCRIPCIN:
Interaccin entre el programa y el mundo exterior [usuario]

ACCIN:
Asignar valores

DESCRIPCIN: asignar
Almacena valores constantes, resultados de la evaluacin A 58+2
de expresiones y/o copia valores de otras variables. Debe
tenerse en cuenta una compatibilidad de tipos entre la
variable que recibe la asignacin y el valor asignado.
seudos
Constante
VARIABLE expresin
valor almacenado en otra variable

Lenguaje Algortmico
Estructuras Selectivas
Pseudocdigo Diagrama de Flujo

ACCIN: Preguntar:
Seleccin simple NO SI
Si condicin es cond
DESCRIPCIN: verdadera:
Caso: Cuando solo existen dos elecciones posibles.  entonces Accin 2 Accin 1
Determina cual de las dos acciones debe ejecutarse ACCION 1
dependiendo del resultado de la evaluacin de una
 sino
condicin. La condicin puede ser una expresin de
relacin o una expresin lgica. ACCION 2

ACCIN:
Segn sea variable
Seleccin mltiple
variable hacer:
DESCRIPCIN: E1 : ACCION 1
Caso: Cuando existen mas de dos elecciones posibles. E2 : ACCION 2
A1 A2 ... An A
Determina accin a ejecutarse dependiendo del valor que : :
tome la variable.
E representa ELECCION En : ACCION n
A representa ACCION sino ACCION

MATERIAL DE AP O Y O A CLASES PGINA 10 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

Lenguaje Algortmico
Estructuras Repetitivas
Pseudocdigo Diagrama de Flujo
ACCIN:
Iteracin tipo mientras
Mientras cond
DESCRIPCIN:
 Mientras se cumple la condicin, se ejecuta la accin
 NO se conoce el numero de veces que se ejecuta

ACCION
 Funcionamiento:
Se evala la condicin:
 si el resultado es VERDADERO se ejecuta el cuerpo del
Mientras cond
ciclo. Este proceso se repite mientras que la condicin
hacer:
sea VERDADERA
ACCION Fin Mientras
 si el resultado es FALSO se ejecuta la primera instruccin
fuera del ciclo y continua
Nota:
Condicin, puede ser una expresin de relacin o una
expresin lgica. Las variables asociadas a la condicin
deben modificarse durante la ejecucin de la accin para
garantizar un fin de ejecucin del ciclo. SI
Cond Accin 1
 Observacin:
Cabe la posibilidad de que NO se cumpla la condicin la
NO
primera vez que se evala, en cuyo caso NO entra en el
ciclo, que nunca deje de cumplirse por lo que el
proceso no se detiene y se conoce como CICLO INFINITO.
ACCIN:
Iteracin tipo repita Repetir
DESCRIPCIN:
 Repetir la accin hasta que se cumpla una condicin

ACCION
 NO se conoce el numero de veces que se ejecuta
 Funcionamiento:
Se ejecuta la accin
Se evala la condicin:
 si el resultado es VERDADERO se ejecuta la primera
instruccin fuera del ciclo y continua Repita Hasta cond
 si el resultado es FALSO se ejecuta el cuerpo del ciclo. ACCION
Este proceso se repite hasta que la condicin sea Hasta cond
VERDADERA
Nota:
Condicin puede ser una expresin de relacin o una Accin 1
expresin lgica. Las variables asociadas a la condicin
deben modificarse durante la ejecucin de la accin para
garantizar un fin de ejecucin del ciclo.
NO
 Observacin: Cond
Como verifica despus de ejecutar la accin toda
iteracin tipo repita se ejecuta al menos una vez, en caso SI
de que la condicin nunca se cumpla el proceso no se
detiene y se conoce como CICLO INFINITO.

MATERIAL DE AP O Y O A CLASES PGINA 11 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

Lenguaje Algortmico
Estructuras Repetitivas
seudos cdigo Diagrama de Flujo
ACCIN:
Iteracin tipo desde
DESCRIPCIN:
 Ejecutar la accin un numero determinado de veces
controlado por una variable de control vc desde un valor
inicial vi hasta un valor final vf con un incremento inc igual a vc vi, vf, inc
+1 o -1
 SI se conoce el numero de veces que se ejecuta

ACCION
 Funcionamiento:
Ejecuta la accin un nmero especfico de veces y
AUTOMTICAMENTE controla el nmero de iteraciones. El
proceso automtico consta de:
Desde vc vi
 Inicializar la variable de control en el valor inicial hasta vf con
 Verificar la condicin: variable de control es <= que valor incremento inc
hacer: Fin del ciclo
final si el inc es +1 o si variable de control es >= que valor
final si el inc es 1. ACCION
Si el resultado es VERDADERO:
 se ejecuta el cuerpo del ciclo
 se incrementa la variable de control en inc
 se transfiere el control al inicio del ciclo para verificar
otra vez
Si el resultado es FALSO:
 se ejecuta la primera instruccin fuera del ciclo y
contina.
Nota:
Cuando inc = +1: si vi > vf NO entra en el ciclo
inc = -1: si vi < vf NO entra en el ciclo

MATERIAL DE AP O Y O A CLASES PGINA 12 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

8. ABSTRACCIN DE DATOS

LISTAS SIMPLES
Se entiende por una lista de datos a la organizacin o representacin de los datos segn uno o ms
criterios. Una lista es, entonces, aquella representacin de datos que tiene un solo criterio de
organizacin. Por ejemplo: la informacin de los estudiantes de una seccin que puede constar de:
Cedula de Identidad, Nombre del Estudiante, Notas, Escuela a la que pertenece.
La abstraccin de los datos consta de su representacin, generalmente la informacin de un tem de
informacin por lnea de representacin. En el caso de los estudiantes, toda la informacin asociada a un
estudiante aparecer en una lnea de los datos.
Las listas simples se clasifican en listas con:
 NUMERO DE DATOS A PROCESAR CONOCIDO: La figura 1 muestra la informacin a organizarse
para ser procesada por un programa. La figura 2 muestra la informacin ya organizada en
una lista. Note que el numero de datos a procesar es el PRIMER dato de la lista
Datos Lista de datos a procesar por el programa

N
Informacin de tem 1 Informacin de tem 1
Informacin de tem 2 Informacin de tem 2
Informacin de tem 3 Informacin de tem 3
N : :
: :
: :
Informacin de tem n Informacin de tem n

Figura 1 Figura 2

A continuacin se presenta un esquema de cmo manipular una lista de este tipo:


Estructura del Programa: ciclo desde 1 a N hacer insts
Forma de Datos
Lectura del tamao de la lista

Inicializaciones para el manejo de una


lista
Ciclo para controlar la lista, en general
N de 1 a N
Informacin de tem 1 Lectura de un tem
Informacin de tem 2
Informacin de tem 3
:
ACCION

: Instrucciones propias de los datos de la


: lista
Informacin de tem n

Fin del Fin de ciclo


ciclo

Totales de una lista

MATERIAL DE AP O Y O A CLASES PGINA 13 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

Estructura del Programa; Ciclo mientras cond hacer insts


Forma de Datos
Similarmente cuando el ciclo es tipo repita insts hasta cond

Lectura del tamao de la lista


Inicializaciones para el manejo de una lista

Inicializacin de contador de datos ledos,

Mientras cond Ciclo mientras para controlar la lista,


N
Informacin de tem 1
Informacin de tem 2 Lectura de un tem
Informacin de tem 3
: Incremento de contador
:
:
Informacin de tem n
ACCION

Instrucciones propias de los datos de la lista

Fin del ciclo Fin de ciclo

Totales de una lista

 NUMERO DE DATOS A PROCESAR DESCONOCIDO: La figura 1 muestra la informacin a


organizarse para ser procesada por un programa. La figura 2 muestra la informacin ya
organizada en una lista. Note que para controlar el ciclo se agrega una variable CENT que se
comporta como un centinela para detectar el fin de datos.

Datos Lista de datos a procesar por el programa


Informacin de tem CENT
Informacin de tem Informacin de tem CENT
Informacin de tem Informacin de tem CENT
Informacin de tem :
? :
:
:
:
: Informacin de tem CENT
Informacin de tem

Figura 1 Figura 2

Es importante hacer notar que un ciclo tipo desde valor inicial a valor final hacer
insts no es implementable para este caso por el mismo hecho que NO se conoce el numero
de datos.

MATERIAL DE AP O Y O A CLASES PGINA 14 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

La variable CENT se comporta como una variable tipo centinela, ya que permite detectar el
final de la lista de datos. El Esta variable debe indicarse claramente que valor toma en cada
uno de locentinela debe definirse cA continuacin se presenta un esquema de cmo
manipular una lista de este tipo:

Forma de Datos Estructura del Programa; Ciclo mientras cond hacer insts

Inicializaciones para el manejo de


una lista

Inicializacin de CENT

Mientras cond Ciclo mientras para controlar la lista


en funcion de CENT
Informacin de tem CENT
Informacin de tem CENT
Lectura de un tem y CENT
Informacin de tem CENT
:

ACCION
:
:
Informacin de tem CENT Instrucciones propias de los datos de
la lista

Fin del ciclo Fin de ciclo

Totales de una lista

Forma de Datos Estructura del Programa; Ciclo repita insts hasta cond

Inicializaciones para el manejo de


una lista
Repita Ciclo repita para controlar la lista

Informacin de tem CENT Lectura de un tem y CENT


Informacin de tem CENT
ACCION

Informacin de tem CENT


:
Instrucciones propias de los datos
:
de la lista
:
Informacin de tem CENT

Hasta cond Fin de ciclo, cond en funcin de


CENT
Totales de una lista

MATERIAL DE AP O Y O A CLASES PGINA 15 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

9. USOS DE VARIABLES

ACUMULADORES
Variables que trabajan sobre si mismas [se modifican a si mismas] que almacenan resultados parciales de
un proceso [clculos sucesivos].
CARACTERSTICAS:
 Estas variables se reconocen porque aparecen en ambos lados de una instruccin de asignacin.
Por ejemplo la asignacin: A A + valor

El nuevo valor de A ser el anterior valor de A mas valor

A A + valor
Donde valor puede ser una variable, constante o resultado de una expresin

 Requieren un valor inicial.


TIPOS:
 S U M A T O R I A S : Aquellas variables que trabajan sobre si mismas para sumar sucesivamente
: Por lo general tienen valor inicial CERO, aunque esto depende del problema. Ejemplo
de aplicacin: calculo de series numricas, calculo de promedios
Contadores: Caso particular de en el que el incremento es constante. Cuando el
objetivo es contar el nmero de veces que ocurre un evento, su incremento puede ser
+1 o 1, en cuyo caso cuenta ascendentemente o descendentemente,
respectivamente. Aplicacin: Variable de control de ciclos, Contar datos procesados
/datos que faltan por procesar por un programa
 P R O D U C T O R I A S : Aquellas variables que trabajan sobre si mismas para multiplicar sucesivamente
: Por lo general tienen valor inicial diferente de CERO. Ejemplo de aplicacin: calculo de
series numricas, calculo de exponenciacin, calculo del factorial

CENTINELAS | BANDERAS | FLAGS


Variables usadas para detectar eventos durante la ejecucin de
un programa. El programador tiene pleno control en variables de True: Se ha procesado el
este uso, es decir, asigna valores iniciales y cambia valor al primer valor negativo
detectar evento. Un evento se detecta por una condicin
durante la ejecucin de un programa.
Si la variable detecta UN solo evento: El tipo apropiado para la
variable es: tipo lgico. El programador debe documentar esta
variable indicando que representan sus posibles valores. Por lo False: No se han
general: false representa que NO ha ocurrido el evento y true que procesado valores
negativos
ha ocurrido.
Si la variable detecta MAS de UN evento: El tipo lgico ya no es
apropiado. El programador debe documentar esta variable indicando que representan sus posibles
valores. Por lo general: se definen de tipo numrico entero y se toma el rango de posibles valores

MATERIAL DE AP O Y O A CLASES PGINA 16 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

apropiado, dependiendo del nmero de eventos a detectar. Por ejemplo: Bandera [nombre de la
variable] toma el valor 0 cuando NO ha ocurrido ningn evento, 1 cuando ocurre el primer evento, 2
cuando ocurre el segundo evento y as sucesivamente.
Ejemplos de aplicacin: Detectar primer mayor de un conjunto de datos, determinar primer, segundo o
tercer valor con una determinada caracterstica [por ejemplo: primer, segundo o tercer impar de un
conjunto de valores]. Detectar el primer valor negativo procesado.

10. CONCEPTOS VARIOS

INTERCAMBIO DE VALORES DE DOS VARIABLES COMPATIBLES


Variables que trabajan sobre si mismas [se modifican
a si mismas] que almacenan resultados parciales de
un proceso [clculos sucesivos]. Aux 3 3 Aux 1
1
Cuando se desea intercambiar los valores
almacenados en dos variables compatibles
A B A B
[de un mismo tipo] se requiere usar una
variable auxiliar para almacenar
temporalmente uno de los valores. Esta 2 2
variable auxiliar debe ser del tipo de las
variables a intercambiar. aux  A aux  B
A  B B  A
B  aux A  aux

CICLO INFINITO
Un ciclo infinito ocurre cuando NUNCA se detiene. Esto sucede en
I estructuras repetitivas de tipo:
 mientras cuando la condicin siempre se cumple y por lo tanto
i 1 no sale del ciclo,
 repita cuando la condicin nunca se cumple y por lo tanto no
sale del ciclo
Mientras i > 0
Por ejemplo:
En el segmento de Diagrama de flujo que se muestra en la figura se
i i+1
puede observar que la variable i es inicializada en 1. Como el valor es
mayor que 0 entra en el ciclo mientras. Dentro del ciclo la nica
Fin mientras instruccin es el incremento en 1 de la variable i. Como i tenia un valor
mayor que 0 inicialmente, y solo se incrementa en 1, siempre tendr un
valor mayor que 0, por lo que la condicin siempre se cumple y no hay
i forma que i sea igual o menor que 0. De todo lo anterior se concluye
entonces que el ciclo mostrado es un ciclo infinito.
F
MATERIAL DE AP O Y O A CLASES PGINA 17 DE 46
U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

11. TCNICAS DE PROGRAMACIN

SUMAS | RESTAS SUCESIVAS


Procesos para emular multiplicacin / divisin de enteros.
 M U L T I P L I C A C I N : Multiplicar N * M se logra sumando N veces el valor M o viceversa.
Por ejemplo: 4*6 = 6 + 6 + 6 + 6 pero tambin es 4*6 = 4 + 4 + 4 + 4 + 4 + 4
 DIVISIN: Dividir N/M se logra restando el valor M de N hasta que el valor resultante de la resta
sea menor o igual a M. As que el nmero de veces que se resta es el resultado entero de dividir
N/M, y el valor resultante de la resta representa el residuo de la divisin. No olvide que (0 <= residuo
< divisor). CASO PARTICULAR: Cuando el valor resultante de la resta es CERO, entonces el numero N
es mltiplo de M.
Por ejemplo: 14/3 = ( ( ( 14 - 3 ) - 3 ) - 3 ) - 3 ) Por lo tanto el resultado entero de la divisin
corresponde al resultado entero de dividir N/M. Para N = 14 y M = 3 el resultado entero de la divisin
es 4, ya que cuatro veces se resta el valor 3. El residuo de la divisin es, para este ejemplo, 2. Que
es lo que sobra despus de restar sucesivamente cuatro veces el valor 3.

ESTADSTICAS BSICAS

 PROMEDIO: S e refiere a la sumatoria de los valores que cumplen una condicin entre el
nmero de valores que se sumaron. Al calcular promedios se debe tener en cuenta lo siguiente:
1. Los acumuladores [sumatorias y contadores] deben inicializarse antes de procesar la
informacin, es decir fuera del ciclo que procesa los datos.
2. Es posible que el nmero de valores sumados sea cero, pues puede darse el caso que ningn
valor cumpla la condicin. Por lo tanto es necesario determinar que el denominador sea mayor
que cero.
3. El clculo del promedio debe realizarse al procesar toda la informacin, es decir fuera del ciclo.
 PORCENTAJE: S E refiere a la relacin existente, entre el numero de valores que cumplen una
condicin dividido entre el nmero total de valores procesados y multiplicado por 100. Al calcular
porcentajes debe tener en cuenta lo siguiente:
1. Los acumuladores [contadores] deben inicializarse antes de procesar la informacin, es decir
fuera del ciclo que procesa los datos.
2. Como el porcentaje es relacin entre el total de valores procesados, no tiene sentido que el
nmero de valores a procesarse sea cero. Por lo general no es necesario verificar que el
denominador sea mayor que cero.
3. El clculo del porcentaje debe realizarse al procesar toda la informacin, es decir fuera del
ciclo. En otro sitio del programa no tendra mayor sentido.

MXIMOS Y MNIMOS
El proceso para determinar el mximo o mnimo valor, entre un grupo de valores, consiste en comparar
cada valor procesado con un valor de referencia que almacena en un instante dado el mayor o menor
valor procesado. Al encontrar un valor que sea mayor o menor [segn se busque el mximo o el mnimo
respectivamente] ser guardado como el mayor o menor parcial o temporal.
Para determinar el mayor o menor valor de una lista de datos, debe tenerse en cuenta lo siguiente:
1. TENER LA LISTA DE DATOS. No olvide que la lista puede tener nmero de datos
conocido, o desconocido.
MATERIAL DE AP O Y O A CLASES PGINA 18 DE 46
U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

2. A S I G N A R E L V A L O R I N I C I A L A L V A L O R D E R E F E R E N C I A / C O M P A R A C I O N :
 CUANDO SE CONOCE EL RANGO DE LOS VALORES PROCESADOS:
Se puede utilizar la tcnica de dato falso valor de referencia fuera del rango, que se
refiere a dar como valor inicial de referencia un valor conveniente y fuera del rango de los
posibles valores.
 CUANDO NO SE CONOCE EL RANGO DE LOS VALORES
PROCESADOS: La tcnica a seguir es la dar como valor inicial al valor de referencia
el primer dato ledo. Este mtodo depende, entonces, de conocer N o no, siendo N el
numero de datos a procesar. En el caso de conocer N se puede aprovechar el valor del
contador de datos para detectar el primer dato ledo. En caso se no conocer N se
requiere declarar una variable centinela bandera para detectar el primer dato.
3. DETERMINAR EL MAYOR/MENOR COMPARANDO LOS VALORES LEIDOS CON
E L V A L O R D E R E F E R E N C I A . Es importante destacar que un problema de mximos/mnimos
no se refiere solo a los valores comparados, puede referirse a determinar el primer mximo, ultimo
mximo, numero de veces que el mximo aparece en los datos, informacin asociada al valor
buscado, y muchas otras variantes.

A continuacin se presentan algunos ejemplos de mximos y mnimos:

MTODO DEL CONTADOR: MTODO DEL DATO FALSO VALOR


Ejemplo: Dado un grupo de M valores de X, DE REFERENCIA FUERA DEL RANGO
determine el mayor valor de X. Ejemplo: Dado un grupo de N valores de X
I [-10 < X < 10 ], elabore el Diagrama de
Flujo que determine el mayor valor de
los X ledos.
M
I

I0 N

Repita
Mayor -11
cont 0
X

Repita
NO SI (1er dato)
I=0
X
NO S
X > Mayor I Mayor X
NO SI
Mayor X X > Mayor

Mayor X

II+1
cont cont + 1
Hasta que ( I = M )
Hasta que cont = N
Mayor
Mayor

F
F

MATERIAL DE AP O Y O A CLASES PGINA 19 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

SECUENCIAS Y SERIES
Para los estudiantes de programacin, es interesante la aplicacin de las tcnicas de resolucin de
ejercicios relacionados al clculo de los trminos de una serie o secuencia, por que en ellas se utilizan
todas las tcnicas elementales de programacin, tales como acumuladores, ciclos de diferentes tipos,
banderas y por supuesto expresiones de diferentes tipos.
 S U C E S I N Y S E C U E N C I A : Una sucesin matemtica es una funcin definida sobre los
enteros naturales. Una secuencia es una concatenacin de smbolos obtenidos a partir de una
sucesin. Son semejantes a las sucesiones y se pueden derivar fcilmente de stas.
Por ejemplo, la definicin matemtica de la secuencia de Fibonacci es:

fib (1) = 0 Para n = 1



fib ( n ) fib ( 2 ) = 1 Para n = 2
fib ( n ) = fib ( n 2 ) + fib ( n 1) n > 2

Los primeros 10 trminos de esta secuencia son: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, . . . As, si se
toma como base la secuencia de Fibonacci, es sencillo definir una nueva secuencia para el
alfabeto A = {0,1} segn el siguiente mtodo

1 Si n est en la sucesin de Fibonacci


S (n )
0 En otro caso

que obtendra como resultado un 1 para el numero natural 1, ya que ste est en la secuencia de
Fibonacci; 1 para los nmeros naturales 2 y 3; pero 0 para el numero natural 4, ya que l no
pertenece a la secuencia de Fibonacci. Obtenindose, entonces, la siguiente secuencia de dgitos
binarios: 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 ...

Observe la relacin entre la secuencia de los dgitos binarios generada, la secuencia de Fibonacci: y
los nmeros naturales:

N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
S(n) 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0

 Los ejercicios tpicos para estos casos corresponden a: [1] Determinar los primeros N trminos de
la secuencia, [2] Determinar los trminos de la secuencia menores que N, [3] Determinar los
trminos comprendidos en el rango abierto de N y M. El problema podra referirse a sumar los
trminos calculados, o determinar promedios/porcentajes, etc.
 Para calcular, desde el segundo trmino en adelante, la secuencia de Fibonacci, se requiere
recordar los dos ltimos trminos calculados. El concepto de recordar valores obtenidos de
clculos anteriores, se conoce como un historial y es interesante desde el punto de vista de
programacin, porque requiere el uso de variables auxiliares, asignaciones o cambios de
valores adecuados.

MATERIAL DE AP O Y O A CLASES PGINA 20 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

 S E R I E S : Una serie es la suma de los trminos de una sucesin. Se representa una serie con trminos
an como se muestra a continuacin:

donde N es el ndice final de la serie.


A continuacin se presenta, como ejemplo, la serie para el calculo de: seno de X y eX
X 3 X 5 X 7 X 9 X 11 X 13
SinX = X + + + ...
3! 5! 7! 9! 11! 13!
X2 X3 X4 X5 X6 X7
eX =1+ X + + + + + + ...
2! 3! 4! 5! 6! 7!

En el desarrollo de programas para el clculo de series es muy importante hacer un anlisis previo,
detallado y preciso de [1] cmo el programa generara el trmino en s y [2] cmo se conforman los
trminos de la serie.
Para la generacin de los trminos, el programador puede disear el programa de tal manera que
se trabaje:
a. C O N E L T R M I N O C O M O U N T O D O , en cuyo caso la transicin de los elementos se
realiza sobre una sola variable. Esta variable se comporta como una productoria del
trmino anterior por la transicin para generar el nuevo termino. Esta tcnica no es
apropiada para aquellos casos en que el trmino de la serie conlleva una sumatoria.
b. C O N L O S E L E M E N T O S Q U E C O N F O R M A N E L T R M I N O , en este caso se descompone
el termino en elementos bsicos como sumatorias, productorias, signos alternos, clculos
previos o internos.
Entre los elementos de programacin ms usados en los programas de series, se encuentran:
 CONTADORES: Se usan tpicamente para contar el numero de trminos a calcular, para
calcular pares/impares y definir paridad
 SUMATORIAS: Variables que almacenan el valor de la serie, o de porciones de los trminos
 PRODUCTORIAS: Variables apropiadas para el clculo de factoriales y potencias
 BANDERAS: Variables necesarias para detectar cuando debe cambiarse el signo o invertir los
trminos, o para clculos especiales que requieran la determinacin de un evento
 CALCULOS PREVIOS: Se refiere a los clculos necesarios para obtener el primer termino de la
serie a partir del cual se generaran los siguientes. Tal como el caso de un factorial decreciente
o potencias decrecientes
 CALCULOS INTERNOS: Caso que se presenta cuando no es posible determinar el termino a
generare a partir del anterior. Como por ejemplo el caso de una potencia donde la base
cambia entre trminos.

MATERIAL DE AP O Y O A CLASES PGINA 21 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

FIGURAS GEOMTRICAS
Las Figuras Geomtricas son muy ilustrativas para utilizar las estructuras selectivas, con ellas se estimula el
aprendizaje del uso correcto de las expresiones relacionales y lgicas. En sntesis, este tipo de ejercicio se
basa en establecer las condiciones para que un punto se encuentre o no dentro de un rea marcada,
sombreada o sealada; para ello es conveniente:
1. Dividir la figura en elementos conocidos que al unirlos permitan formar la figura indicada. Por ejemplo:

2. Evaluar si el punto est dentro del rea, para ello debe considerar:
 Si es una figura cerrada, se establecer la expresin que permita determinar si el punto est dentro,
fuera o en el borde del rea encerrada por la figura. Por ejemplo:
y
Ecuaciones que determinan la ubicacin del punto:
1. Sobre la circunferencia x2 + y2 = r 2
2
x
2. Dentro de la circunferencia x + y2 < r 2
2 2 2
3. Fuera de la circunferencia x + y > r

 Si es una recta, se establecer la expresin que permita determinar si el punto se encuentra arriba,
abajo, a la derecha, a la izquierda o sobre la recta estudiada.

Ecuaciones que determinan la ubicacin del punto:


1. Sobre la recta y=x
x 2. y<x
Por encima de la recta a la izquierda
3. Por debajo de la recta o a la derecha y > x

Recta

MATERIAL DE AP O Y O A CLASES PGINA 22 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

12. EJERCICIOS RESUELTOS

1. Dadas las tarifas de consumo elctrico: R, S, y T, donde los primeros 100 KWH se facturaran a R Bs/KWH
los siguiente KWH hasta 500 KWH a S Bs/KWH y lo que pase de 500 KWH a T Bs/KWH. Dado el consumo
de un suscriptor, elaborar el Diagrama de Flujo de un programa que determine el monto a pagar del
suscriptor.

QUE SE TIENE?

Tarifas de consumo y consumo del suscriptor

TABLA DE VARIABLES: COMENTARIO:


R, S, T tarifas por rangos de KWH
Note que la solucin del problema se ajusta a
CONSUMO consumo de KWH de un suscriptor
cualquier tarifa ya que son valores ledos.
Bs monto a facturar A, B, y C son variables que almacenan una parte
A, B, C auxiliares para determinar consumo del consumo segn la distribucin de tarifas.
correspondiente a cada tarifa Este ejercicio solo procesa un suscriptor, que
modificaciones tendra que realizar para procesar
N suscriptores?
QUE SE PIDE? i

CONSUMO

Monto a facturar para el suscriptor procesado


No Si
X>0

No Si
X>0
A CONSUMO 500
COMO LOGRARLO? B 400
A 0 A 0 C 100
a.- lectura de valores B 0 B CONSUMO 100
b.- calcular y guardar en A, B y C la porcin del C CONSUMO C 100
consumo correspondiente a cada tarifa
c.- calcular monto a pagar segn tarifa
d.- imprimir: consumo y monto de factura
f.- fin del proceso.
BS C * 2.0 + B * 1.0 + A * 0.50

CONSUMO , BS

Fin

MATERIAL DE AP O Y O A CLASES PGINA 23 DE


46
U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

2. Dados N valores numricos, elaborar el Diagrama de Flujo de un programa que calcule el promedio
de los valores positivos.

QUE SE TIENE?

Conjunto de N valores de a procesar X

TABLA DE VARIABLES: COMENTARIO:


N numero de valores de X a procesar
Cabe destacar que la variable NP no siempre
X valor ledo a procesar coincide con el nmero de datos N ya que los
valores de X pueden ser negativos. Adems, debe
NP contador de valores positivos de X
tomarse en cuenta que el valor de NP no sea igual
S sumatoria de valores X positivos a cero ya que la divisin por cero causara una
P promedio = S/NP indeterminacin.

QUE SE PIDE? DIAGRAMA DE FLUJO

i
Promedio de los valores positivos ledos. Para ese
calculo se requiere la sumatoria de los valores
positivos ledos y el contador de valores positivos N
ledos
NP 0
S 0
COMO LOGRARLO?
a.- leer N
b.- asignar el valor cero a NP y a S Desde k 1, N ; +1
c.- ejecutar desde K=1 hasta N
c.1.- leer X X
c.2.- preguntar si X es > que 0
c.2.a.- SI: acumular x en S
contar en NP No Si
X>0
c.2.b.- NO: no realizar nada
c.3.- calcular: decrementar N en 1 S S+X
d.- preguntar si NP es igual a 0 NP NP+1
d.1.- SI: imprimir mensaje
d.2.- NO: calcular: P=S/NP e imprimir P
e.- fin del proceso.
Fin Desde

No Si
X>0

No se puede
P S / NP
calcular el Promedio

El Promedio es , P

Fin

MATERIAL DE AP O Y O A CLASES PGINA 24 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

3. En un restaurante muy frecuentado se lleva un registro de las ventas realizadas en un da, anotndose,
para cada cliente la siguiente informacin: Nmero de personas por grupo visitante, Monto de la
cuenta, Tipo de comida: Desayuno, Almuerzo o Cena.
Elabore el Diagrama de Flujo de un programa que determine:
a. Numero total de personas que visitan el c. Monto total de desayunos vendidos
local d. Promedio de personas que vienen
b. Porcentaje de personas que almuerzan juntas a cenar

QUE SE TIENE?
Nmero de Personas, monto de la cuenta y tipo de comida, por cada grupo
TABLA DE VARIABLES: COMENTARIO:
NP numero de personas por grupo visitante
Note que el tipo de comida TC es de tipo carcter
M monto de la cuenta [Bs] representando la letra A o a un Almuerzo, D o
TC tipo de comida d un Desayuno y C o c una cena
No se conoce cuantos datos a procesar por lo que
K centinela para detectar fin de datos se requiere un centinela para detectar el fin de
NT numero total de personas procesadas datos. Los posibles valores del centinela K: 0 hay
mas datos y <> 0 fin de datos
NA numero de personas que almuerzan
NC1 numero total de personas que cenaron DIAGRAMA DE FLUJO
NC2 numero de grupos visitantes a cenar SOLUCIN USANDO SELECCIN MLTIPLE
i
MD suma de montos de desayunos
NT 0 NA 0
PA porcentaje de almuerzos servidos NC1 0 NC2 0
MD 0 K 0
PC promedio de grupos a cenar
Mientras que K=0 Haga
QUE SE PIDE?
NP, M, TC, K

Numero total de personas que visitan el local


NT NT + NP
Porcentaje de personas que almuerzan
Monto total de desayunos vendidos TC
Promedio de personas que vienen juntas a cenar D, d A , a C, c
NC1 NC1 + NP
MD MD + M NA NA + NP
NC2 NC2+1
COMO LOGRARLO?
a.- inicializaciones
b.- mientras hayan mas datos ejecutar Fin Mientras
b.1.- leer un grupo: NP, M, TC
b.2.- segn tipo de comida calcular: PA NA / NT *100

b.2.a.- D o d: suma monto


b.2.b.- A o a: contar total personas Nmero de Personas:, NT
% de personas que almuerzan ,PA
b.2.c.- C o c: contar total personas y Monto Total en desayunos ,MD
contar total grupos
c.- calcular porcentaje personas que almuerzan PA
No Si
d.- imprimir: NT, PA, MD NC2 > 0

e.- preguntar: numero de grupos a cenar = a cero?


PC NC1 / NC2
e.1.- SI: imprimir mensaje No se puede
calcular el Promedio
e.2.- NO: calcular e imprimir PC
f.- fin del proceso. El Promedio de
personas que cenan , P

MATERIAL DE AP O Y O A CLASES PGINA 25 DE 46


Fin
U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

SOLUCIN USANDO DECISIN, SELECCIN SIMPLE

NT 0
NA 0
NC1 0
NC2 0
MD 0
K 0

Mientras que K=0 Haga

NP, M, TC, K

NT NT + NP

(TC=A)
No Si
Or
(TC=a)

No (TC=D)
Si
Or
(TC=d) NA NA + NP

No (TC=C)
Si
Or MD MD + M
(TC=c)

NC1 NC1 + NP
NC2 NC2+1

Fin Mientras

PA NA / NT *100

Nmero de Personas:, NT
% de personas a Almorzar ,PA
Monto Total en desayunos ,MD

No Si
NC2 > 0

No se puede
PC NC1 / NC2
calcular el Promedio

El Promedio de
personas a cenar , P

Fin

MATERIAL DE AP O Y O A CLASES PGINA 26 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

4. Dado un conjunto de pares (X, Y) correspondientes a los puntos ubicados en el plano cartesiano,
elabore el Diagrama de Flujo de un programa que determine:
a. Cuantos puntos caen en el origen
b. Porcentaje de puntos que se encuentran en el primer cuadrante
c. Cuantos puntos caen en los ejes

QUE SE TIENE?

Un conjunto de coordenadas x,y

TABLA DE VARIABLES: COMENTARIO:


X, Y coordenadas del punto Note las preguntas anidadas para determinar la
CP Contador de puntos analizados ubicacin del punto en el plano cartesiano
No se conoce cuantos datos a procesar por lo que
C0 Contador de puntos en el origen
se requiere un centinela para detectar el fin de
C1 Contador de puntos en cuadrante I datos. Los posibles valores del centinela K: 0 hay
CE Contador de puntos en los ejes mas datos y <> 0 fin de datos

P1 Porcentaje de puntos en cuadrante I DIAGRAMA DE FLUJO


i
K centinela para detectar fin de datos
CP 0 C0 0
C1 0 CE 0
QUE SE PIDE? K 0

Cantidad de puntos en origen Mientras que K=0 Haga


Porcentaje de puntos en cuadrante I X,Y,K

Cantidad de puntos en eje


No Si
X=0

COMO LOGRARLO? No Si
Y=0
a.- inicializaciones No Si
Y= 0
b.- mientras hayan mas datos ejecutar (X>0)
No Si
and CE CE + 1
b.1.- leer coordenadas X, Y ( Y >0 ) C0 C0 + 1
b.2.- determinar ubicacin en plano y
contar donde corresponda C1 C1 + 1
CE CE + 1
b.3.- contar punto
c.- calcular porcentaje de puntos en
cuadrante I
d.- imprimir: C0, P1, CE
e.- fin del proceso. CP CP + 1

Fin Mientras

P1 C1/CP*100

Cantidad de pares coordenados en el origen: ,C0,


Porcentaje de pares coordenados en el primer cuadrante: , P1 , % ,
Cantidad de pares coordenados sobre los ejes: , CE

Fin

MATERIAL DE AP O Y O A CLASES PGINA 27 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

5. Un cobrador de peaje tiene a su cargo un Terminal en el cual debe registrar los diferentes vehculos y
la hora en que han pasado por el peaje. Elabore el Diagrama de Flujo de un programa que determine
el tiempo mnimo expresado en segundos entre el paso de un vehiculo y otro, sin importar el tipo de
vehiculo.
CONSIDERACIONES:

La hora viene expresada en formato militar: HH MM SS


El tipo de vehculo representa: 1=Particular; 2= Autobs; 3=Pesado; 0= Fin del turno del cobrador

ANLISIS DEL EJERCICIO:


QUE SE TIENE?

Tipo de vehculo y hora de paso por el peaje

TABLA DE VARIABLES: COMENTARIO:


TIPO TIPO DE VEHCULO Note las preguntas anidadas para determinar la
HH Hora de paso del vehculo ubicacin del punto en el plano cartesiano
No se conoce cuantos datos a procesar por lo
MM Minutos de Paso del Vehculo depende de los datos suministrados por el cobrador
SS Segundos de Paso del Vehculo el fin del proceso.
B Bandera para detectar si el vehiculo es el
primero, el segundo u otro
MT Menor tiempo entre vehculos en
segundos

QUE SE PIDE?

Tiempo mnimo entre vehculos consecutivos, expresado en segundos

COMO LOGRARLO?
a.- inicializaciones
b.- Repita
b.1.- leer tipo de vehculos
b.2.- Si no es el fin del turno del cobrador
b.2.1.- Leer hora de paso del vehculo
b.2.2.- Si es el primer vehculo, Guardar el tiempo en segundos TAN
b.2.2.- Si es el segundo vehculo, Guardar tiempo en segundos,TAC, calcular la diferencia con el
primero y tomar ese tiempo como menor
b.2.3.- A partir del tercer vehculo, determinar la diferencia de tiempo entre vehculos y comparar con
el menor
b.2.4.- Asignar como tiempo anterior el actual para el siguiente clculo
Hasta que termine el turno del operador
c.- imprimir : MT
e.- fin del proceso.

MATERIAL DE AP O Y O A CLASES PGINA 28 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

MATERIAL DE AP O Y O A CLASES PGINA 29 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

6. Dada la siguiente figura geomtrica y un conjunto de M pares (X,Y) correspondientes a los puntos de
un plano. Elabore el Diagrama de Flujo de un programa que determine el Porcentaje de puntos
ubicados dentro del rea sombreada, incluyendo los bordes.

ANLISIS DEL EJERCICIO:

QUE SE TIENE?
x2 + y2 = 9

Tarifas de consumo y consumo del suscriptor M


X Y
X Y
X Y x2 + y2 = 4
M : :
: :
X Y

QUE SE PIDE?

Porcentaje de puntos dentro del rea sombreda (PORC)

COMO LOGRARLO?

Algoritmo:
1 Leer cantidad de pares coordenados a procesar
2 Inicializaciones
3 Procesar datos:
Desde k=1 hasta M haga
 Leer informacin las coordenadas
 Calcular IG de la comunidad
 Determinar si el punto est en el rea sombreada; dentro de la
circunferencia de radio 3, x 2 + y 2 <= 9 y fuera de la circunferencia de
2 2
radio 2, x + y >= 4
 Si es as incrementar contador c
Fin ciclo desde
4 Calcular Porcentaje
5 Imprimir Porcentaje

Tabla de Variables
Variable Tipo Descripcin Uso
M Entero Cantidad de Pares coordenados procesar Entrada
X Real Coordenada X (Abcisa) Entrada
Y Real Coordenada Y (Ordenada) Entrada
C Entero Contador de pares coordenados en el rea Interno
sombreada
PORC Entero Porcentaje de puntos en el rea sombreada Salida

MATERIAL DE AP O Y O A CLASES PGINA 30 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

DIAGRAMA DE FLUJO

Solucin 1 Solucin 2

i
i

M
M

C 0
C 0

Desde k=1, M; +1
Desde k=1, M; +1

X, Y
X, Y

( X2 + y2<=9 )
no si
AND
no si ( X2 + y2>=4 )
X2 + y2<=9
C C+1

no si
X2 + y2>=4

C C+1
Fin Desde

PORC C/M *100

Fin Desde PORC

FIN
PORC C/M *100

PORC

FIN

MATERIAL DE AP O Y O A CLASES PGINA 31 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

7. Dados N y X, desarrollar el Diagrama de Flujo de un programa que calcule y escriba cada trmino de
la serie y la suma de los N primeros trminos.

X X + X2 X + X2 + X3 X + X2 + X3 + X4
S= + + + + ...
3! 5! 7! 9!
Anlisis del ejercicio 2 pto.
Estructura cclica apropiada 1 pto.
Anlisis del ejercicio: Algoritmo 2 ptos

QUE SE TIENE?

Valores N y X leidos. Se asume que N > 0

QUE SE PIDE?

Imprimir los primeros N trminos y sumarlos, al final imprimir la suma

CMO LOGRARLO?

0
S= X X + X2 X + X2 + X3 X + X2 + X3 + X4
3! 5! 7! 9!

CONTADOR DE TRMINOS
I 1 +1
2 +1
3 +1
4 Variable control
de ciclo
Hacer desde i 1 a N haga:

POTENCIA DE X
1
P *X X *X X2 *X X3 *X X4 P P*X

SUMATORIA DE POTENCIA DE X
0
A +X X + X2 X + X2 + X 3 X + X2 + X3 + X 4 X + X2 + X3 + X4 A A+P

FACTORIAL DE IMPARES
1
F *2*3 3! * 4 * 5 5! *6*7 7! *8*9 9! F F * (2*I)
* (2*I+1)

MATERIAL DE AP O Y O A CLASES PGINA 32 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

DIAGRAMA DE FLUJO

S0
P1
A0
F1

N, X

Desde I 1 a N , +1 hacer

PP*X
AA+P
F F * (2*I) * (2*I +1)
Termino A / F
S S + Termino

Termino

Fin de ciclo

Fin

8. Un municipio est dividido en comunidades, cada una de ellas fue evaluada por la Organizacin
Mundial de Desarrollo, obtenindose los ndices de: salud, agua potable, aguas servidas y educacin.
Los valores posibles de los ndices estn entre 1 y 5, siempre enteros. El 5 representa que deberan
invertirse recursos importantes en este ndice y 1 representa que no deben ser invertidos tantos recursos.
El ndice general para cada comunidad, ser el promedio de sus ndices.
Desarrolle el diagrama de flujo de un programa que calcule:
a. Cul es la comunidad con mayor necesidad, segn el ndice general.
b. Qu comunidades en su totalidad necesitan muchos recursos
( Nota: se entiende como muchos recursos cuando el ndice general es mayor a 4 ).
c. Cuntas comunidades tienen un nivel 5 en salud.

Anlisis del ejercicio 3 pto.


Estructura cclica apropiada 1 pto.
Lectura apropiada 1 pto.
Tabla de variables 1 pto.
Clculo de las preguntas a, b y c 1 pto c/u

MATERIAL DE AP O Y O A CLASES PGINA 33 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

Analisis del ejercicio:

QUE SE TIENE?

Centinela de ltimo dato:


Representacin de los datos: 0 Hay ms datos
1 Fin de datos

COM IS IAP IAS IE 0


COM IS IAP IAS IE 0
COM IS IAP IAS IE 0
? :
:
:
:
:
:
:
:
:
:
:
:
COM IS IAP IAS IE 0
COM IS IAP IAS IE 1

QUE SE PIDE?

a. Cul es la comunidad con mayor necesidad, segn el ndice general: CMIG


b. Qu comunidades en su totalidad necesitan muchos recursos: COM ledo cuando IG > 4
c. Cuntas comunidades tienen un nivel 5 en salud: CN5S

CMO LOGRARLO?

Algoritmo:
1.- Inicializaciones Tabla de Variables
2.- Procesar datos: Variable Tipo Descripcin Uso
Repita COM Cadena Nombre de comunidad Entrada
 Leer informacin de una comunidad IS Entero ndice de salud Entrada
 Calcular IG de la comunidad IAP Entero ndice de agua potable Entrada
 Calcular CMIG segn IG: usar IAS Entero ndice de aguas servidas Entrada
bandera para detectar primer IE Entero ndice de educacin Entrada
comunidad procesada para asignar Cent Entero Centinela de ultimo dato Entrada
su IG como el mayor IG Real Indice general [IS+IAP+IAS+IE]/4 Interno
 Determinar comunidades que CMIG Cadena Comunidad de MIG Salida
necesitan muchos recursos: MIG Real Mayor indice general Interno
condicin: IG > 4 PrimerDato Logico Centinela pa detectar el primer Interno
 Contar comunidades con nivel 5 en dato leido.
salud True = no ha leido datos
Hasta cent = 1 False = ya leyo el primer dato
3.- Imprimir resultados: CN5S Entero Contador de comunidades con Salida
nivel de salud = 5

MATERIAL DE AP O Y O A CLASES PGINA 34 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

DIAGRAMA DE FLUJO

PrimerDato true
CN5S 0

Repita

COM, IS, IAP, IAS, IE, Cent

IG ( IS + IAP + IAS + IE )/4

NO SI
IG>4 ?

COM, IG

NO SI
IS=5 ?

CN5S CN5S + 1

NO SI
PrimerDato ?

NO SI
CMIG COM
IG>MIG ? MIG IG
PrimerDato false

CMIG COM
MIG IG

Hasta que cent = 1

CMIG, MIG

CN5S

fin

MATERIAL DE AP O Y O A CLASES PGINA 35 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

13. EJERCICIOS PROPUESTOS

EXPRESIONES

1. INSTRUCCIONES: Escribir las siguientes expresiones algebraicas como expresiones algortmicas

Expresin Algebraica Expresin Algortmica

a.- 5y + z 5 * y+ z
b.- 5( y + z )

c.- 4z 2 2z + 7
d.- ( z + w) 2 ( z + w) 2
5
e.-
y+z
x
f.- ( z + w)
y
x
g.- z+w
y
x+b
h.-
yc
x + t ( z + w)
i.-
y 5
m
+p
n
j.-
r
+q
5

2. INSTRUCCIONES: Escribir las siguientes expresiones algortmicas como expresiones algebraicas

Expresin Algortmica Expresin Algebraica

a.- B*B-4*A*C B 2 4 AC
b.- 3*X*X*X*X-5*X*X*X-X*12-17

c.- (B+D)/(C+4)

d.- (B+D)/C+4

e.- B+D/(C+4)

f.- B+D/C+4

MATERIAL DE AP O Y O A CLASES PGINA 36 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

3. INSTRUCCIONES: Verificar, para cada caso, si la expresin algortmica corresponde a la expresin algebraica. En
caso de no corresponder, cual seria la modificacin necesaria para que le corresponda

Expresin Algortmica y Algebraica Expresin Algebraica

ab
a.- a*b/c Expresin correcta
c
a+b
b.- a*b/c
c
3x + 2 y
c.- 3*x+2*y/2*z
2z
y 2 y1
d.- (y2-y1)/(x2-x1)
x 2 x1

4. INSTRUCCIONES: Dada la expresin algortmica, indicar el orden de evaluacin

Expresin Algortmica Orden de Evaluacin

a*b/c
a.- a*b/c 1
2

b.- a*(b/c)

c.- 3*x+2*y/2*z

d.- 3*(x+2*y)/2*z

e.- 3*(x+2*y/2)*z

f.- a<3*x+2*y/2*z

g.- -3*(x+2*y)>1/2*z

h.- 100 DIV 5 DIV 3 DIV 2

i.- 1485658 DIV 1000 DIV 10 MOD 10

MATERIAL DE AP O Y O A CLASES PGINA 37 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

5. INSTRUCCIONES: Dado un par ordenado (x, y) correspondiente a un punto ubicado en el plano cartesiano, escriba
la expresin lgica para determinar si el punto est ubicado en el rea sombreada de cada una de las siguientes
figuras. Suponga que los crculos son de radio r y los cuadrados son de lado 2L. Note que algunas de las figuras se
forman por composicin de otras ms sencillas.

Expresin

a.-

b.- x

c.-
x

d.- x

e.- x

f.- x

MATERIAL DE AP O Y O A CLASES PGINA 38 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

INSTRUCCIONES BSICAS

INSTRUCCIONES: Escribir el Algoritmo necesario para cada uno de los ejercicios que se presentan a
continuacin, para ello desarrolle el Anlisis del Problema, Diseo del Algoritmo y Verificacin del
Algoritmo.

ESTRUCTURAS DE SECUENCIALES

6. Dado el radio de una esfera calcular el volumen.

ESTRUCTURAS DE DECISIN SIMPLE


7. Dado un nmero entero indicar si: es mayor, menor o igual a cero.
8. Dados tres nmeros determinar el mayor.
9. Dadas cuatro notas obtenidas por un alumno, calcular su promedio e indicar si est aprobado o no.
La condicin de aprobacin es obtener un promedio mayor o igual que 10.
10. Dados tres nmeros, imprimirlos en orden creciente.
11. Dados cinco nmeros, imprimirlos en orden decreciente.

12. Dada la cantidad total de preguntas realizadas por un alumno y la cantidad de respuestas
correctas, determine el nivel obtenido por el alumno, de acuerdo a la siguiente escala: Muy Bueno si
el porcentaje es mayor o igual a 90 %; Bueno si el porcentaje se encuentra entre 70 % y 90 %;
Regular entre 50 % y 70 %; Malo si el porcentaje es menor que 50%.

ESTRUCTURAS DE DECISIN MLTIPLE


13. Dado un mes imprimir la cantidad de das de dicho mes.
14. Dado un nmero que representa el da de la semana, imprimir el nombre del da correspondiente.
15. Dado un nmero que representa un mes, imprimir el nombre del mes correspondiente. Considere
que puede haber error en el nmero dado.
16. Dada una fecha ao, mes y da, determinar si corresponde a una fecha correcta o no.

ESTRUCTURAS DE ITERATIVAS: MIENTRAS O REPITA

17. Dada una serie de nmeros determinar si se encuentran ordenados.


18. Dados dos nmeros enteros K y M, determinar, aplicando restas sucesivas si K es mltiplo de M.
19. Dado un nmero entero determinar si: es primo.
20. Calcular e imprimir los cubos de los 10 primeros nmeros naturales impares y la suma de los mismos.
21. Dado un conjunto de pares ordenados (x, y) correspondientes a un conjunto de puntos ubicados en
el plano cartesiano, determinar para cada punto: si pertenece, es exterior o interior al rectngulo
de coordenadas:
3 x 5, 2 y 3.
22. Dadosa y n, determinar los primeros n mltiplos de a. Realizar 3 versiones, una con el ciclo
mientras, otra con el ciclo repetir y otra con el ciclo para ... desde.
23. Dados a y b enteros, calcular el producto de ambos por el mtodo de sumas sucesivas.

24. Dados a y n enteros, calcular la potencia ensima de a.


MATERIAL DE AP O Y O A CLASES PGINA 39 DE 46
U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

LISTAS SIMPLES

25. Dada una lista de valores reales, obtener el promedio de los valores ledos.

26. Dado un conjunto de pares de valores A y B, determinar, para cada par, el mayor entre A y B. Al final
imprimir el nmero de veces que A es mayor que B y el nmero de veces que B es mayor que A.

27. Dado un conjunto de pares ordenados (x, y) correspondientes a un conjunto de puntos ubicados en
el plano cartesiano, determinar el porcentaje de puntos que caen en el origen, el porcentaje que
cae en los cuadrantes (I, II, III, IV) y el porcentaje que cae sobre los ejes.

28. Dado un conjunto de valores, determinar el mayor de ellos y el nmero de veces que se repite.

FIGURAS GEOMTRICAS

29. Dada la siguiente figura geomtrica y un conjunto de W pares (X, Y), correspondientes a los puntos
ubicados en el plano cartesiano, determinar e imprimir:
a. Porcentaje de puntos ubicados dentro de ambas figuras (Circunferencia y tringulo)
b. Cantidad de puntos ubicados dentro de la circunferencia pero fuera del tringulo.

y (1,2)
(X-1)2+(Y-1)2 = 1

1 ( 2,1)

x
30. Dada la siguiente figura geomtrica y un conjunto de S pares (X, Y) correspondientes a los puntos
ubicados en el plano cartesiano, determinar e imprimir:
a. Porcentaje de puntos dentro de la circunferencia y fuera del cuadrado.
b. Cantidad de puntos ubicados sobre el permetro de ambas figuras
y
2

31. Dada la siguiente figura geomtrica cuyo permetro esta compuesto de dos segmentos de
circunferencias simtricos y un conjunto de M pares (X,Y) correspondientes a los puntos ubicados en
el plano cartesiano, determinar e imprimir:
a. Porcentaje de puntos ubicados dentro de la figura
b. Cantidad de puntos ubicados en el permetro de la figura

(X-1)2 + (Y-1)2 = 1

MATERIAL DE AP O Y O A CLASES PGINA 40 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

EJERCICIOS VARIOS

32. Dados dos puntos en el plano cartesiano: (X1,Y1) y (X2,Y2), que definen una recta, y un conjunto de
valores de X, correspondientes a coordenadas x de puntos en el plano, elabore el diagrama de flujo
de un programa que determine la ordenada Y correspondiente a cada valor de abscisa x usando el
mtodo de interpolacin lineal, si se puede.

33. Un caracol cae en un pozo de H metros de profundidad. Durante el da asciende Ld metros y


durante la noche resbala Ln metros. Elabore el diagrama de flujo de un programa que, simulando el
movimiento del caracol, calcule el nmero de das que necesita para salir del pozo.

34. La capacidad de un depsito es de V litros. Mediante una vlvula se introducen Li litros por segundo
y mediante un desage se extraen Ls litros por segundo. Si el depsito tiene inicialmente Lo litros,
elabore el diagrama de flujo de un programa que imprima segundo a segundo el volumen de agua
almacenada e indique, al final, si se rebasa la capacidad de almacenamiento, si siempre es la
misma cantidad o si se vaca.

35. Un reloj se atrasa un minuto por cada cuarto de hora transcurrida. Elabore el diagrama de flujo de
un programa que determine la hora que marca el reloj, transcurridos D das, H roras y M minutos
desde el momento en que comenz a funcionar. Considere: DI horas y MI minutos como valor inicial

36. La parte entera de la raz cuadrada de un nmero puede calcularse como la cantidad de nmeros
impares sucesivos que hay que sumar sin sobrepasar el nmero. Por ejemplo:
20 = 4.47
la parte entera de la raz es 4 y adems los impares 1+3+5+7=16 son 4 impares que al sumarlos no
sobrepasan el nmero 20. Elabore el diagrama de flujo de un programa que dado un valor R,
determine la parte entera de la raz cuadrada por el mtodo descrito.

37. Un jeep puede viajar unos 500 Km con un tanque lleno de gasolina. Desde una posicin inicial,
conteniendo n tanques de gasolina, el mismo jeep puede viajar L Km, los cuales se determinan de
acuerdo a los siguiente:
1 1 1 1
L = 500 (1 + + + + ... ) Km
3 5 7 2n + 1
Estableciendo economa de combustible en una ruta. Elabore el diagrama de flujo de un programa
que dado el valor de n, determine el nmero de Kilmetros L que el jeep puede recorrer.
38. Un objeto se deja caer desde una altura H. Elabore el diagrama de flujo de un programa que
imprima para cada dcima de segundo: la distancia entre el objeto y el suelo; al final imprima el
tiempo necesario en dcimas de segundo para que el objeto toque el suelo. No tome en cuenta la
resistencia del aire, las frmulas de cada libre son:
g t2
v = g t y x=
2
39. Dado un conjunto de fechas representadas como: S, DD, MM, AA en donde:
S = Da de la Semana entre 1 y 7 ( 1= lunes, 2=martes 7=domingo)
DD = Da del mes
MM = Mes entre 1 y 12 (1=enero, 2=febrero, 12=diciembre)
AA = Ao
Elabore el diagrama de flujo de un programa que imprima la fecha en palabras. Por ejemplo: para
los datos 1 10 02 2006, debe imprimir Lunes 10 de Febrero de 2006

MATERIAL DE AP O Y O A CLASES PGINA 41 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

40. Un Ferry de transporte de vehculos, soporta una carga mxima de W toneladas y el canal de
almacenamiento tiene una longitud de L metros. El canal de almacenamiento es estrecho y permite
almacenar nicamente los vehculos alineados uno detrs del otro. Elabore el diagrama de flujo de
un programa que dados los datos de un conjunto de M vehculos, Placa, Peso en toneladas y
Longitud en metros, determine porcentaje de vehculos que podrn ingresar al Ferry y cual es el
vehculo ms largo dentro del Ferry. Considere que para ingresar al Ferry se respeta estrictamente la
cola.

41. Dadas las coordenadas del origen de un plano relativo al plano XY, y un conjunto de pares
ordenados (x, y) correspondientes a un conjunto de puntos ubicados en el plano cartesiano,
elaborar el diagrama de flujo de un programa que determine las coordenadas del punto en el
plano relativo e indique en qu cuadrante de ese plano est ubicado.
Observe el ejemplo: Y Y PLANO XY
Coordenadas Puntos:
P1: [ 6, 2 ]
P2: [-3, -2 ]
-8 O
X PLANO RELATIVO XY

2 - P1 Coordenadas Origen en plano XY: [ 5, 4 ]


2 Coordenadas Origen en plano XY: [ 0, 0 ]
-3 O 6

P2
X Coordenadas y Cuadrante de Puntos en plano XY:
P1: [ 1, -2 ] Cuadrante IV
-2
P2: [-8, -6 ] Cuadrante III

42. El Departamento de Seguridad Pblica y de Trnsito asigna una Dgito Color


calcomana de color a cada vehiculo de una ciudad dependiendo del 12 Amarilla
ultimo digito de la placa, segn se muestra en la tabla a la derecha. 34 Rosa
Dadas las placas de N vehculos que ingresan en la ciudad, elaborar el 56 Roja
78 Verde
diagrama de flujo de un programa que determine, cuantos vehculos
90 Azul
por color de calcomana ingresaron en la ciudad.

43. Dados un conjunto de W valores numricos, desarrolle el Diagrama de Flujo de un programa que
verifique si estn en orden creciente desde el primer valor, en caso de no estar ordenados indique
cuantos valores estaban desordenados. Observe los siguientes ejemplos:

Ejemplo 1 Ejemplo 2 Ejemplo 3


Hay 2 valores desordenados Hay 3 valores desordenados Hay 5 valores desordenados
W=6 W=5 W=5
5 5 Hasta aqu 5 Todos estn
8 9 estn 4 desordenados
10 Hasta aqu 8 ordenados 8
12 estn 12 12
11 ordenados 11 11
14

MATERIAL DE AP O Y O A CLASES PGINA 42 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

SERIES

44. El matemtico italiano Leonardo Fibonacci present la solucin al problema: Suponiendo que un
par de conejos tiene un par de cras cada mes y cada nueva pareja se hace frtil a la edad de un
mes. Si se dispone de una pareja frtil y ninguno de los conejos muere, cuntas parejas habr
despus de un ao? La serie numrica que se produce es la siguiente: 0 1 1 2 3 5 8 13 21 34, donde
0 representa ninguna pareja y el primer 1 es la primera pareja frtil. Cada nuevo trmino se calcula
como el penltimo ms el ltimo. Elabore para cada uno de los siguientes casos, el diagrama de
flujo de un programa que determine e imprima:
a) La Suma de los trminos de la serie menores a un valor M ledo.
b) La Suma de los N primeros trminos de la serie.
c) La Suma de los trminos de la serie mayores a un valor N y menores a un valor M

45. El valor de la constante PI, se puede obtener a travs de la serie de PI/2, elabore el diagrama de
flujo de un programa que para un valor N, entero positivo, determine a partir de los primeros N
trminos de la serie el valor de aproximado de PI .
2 2 4 4 6 6
= * * * * * *L
2 1 3 3 5 5 7
46. Elabore el diagrama de flujo de un programa que determine la suma de los nmeros impares
comprendidos entre X e Y.

47. Elabore el diagrama de flujo de un programa que determine la productoria de los nmeros impares
comprendidos entre M y N, siendo M < N.

48. Elabore el diagrama de flujo de un programa que determine el factorial de N, siendo N un valor
entero positivo o negativo.

49. Elabore el diagrama de flujo de un programa que determine XA por multiplicacin sucesiva de X,
siendo A un valor entero positivo o negativo.

50. Elabore el diagrama de flujo de un programa que determine la sumatoria de los N primeros trminos
de:
a. S = 1! + 2! + 3! + 4!+ + N!
b. S = 2! + 4! + 6! + 8! +
c. S = 1! + 3! + 5! + 7! +
d. S = N!+ (N 1)! + (N 2)! + (N 3)! +
e. S = X + X2 + X 3 + X 4 +
f. S = X 2 + X 4 + X 6 + X8 +
g. S = X + X3 + X5 + X7 +
h. S = X(N) + X(N-1) + X(N-2) + X(N-3) + X(N-4) +

51. Dada la siguiente serie:


3 5
X X
S = X +
+L +
3! 5!
Elabore el diagrama de flujo de un programa que calcule el valor de S para un valor x ledo.
Detenga el clculo de la serie cuando el ltimo trmino sumado sea menor que un valor EPS,
tambin ledo como dato. El proceso no debe llevar ms de 100 iteraciones.

MATERIAL DE AP O Y O A CLASES PGINA 43 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

52. Elabore el diagrama de flujo de un programa que determine la sumatoria de los N primeros trminos
de:

2 X 3X 2 4 X 3 5X 4 6 X 5
a. S= + + L
2! 3! 4! 5! 6!

X2 X4 X6 X8
b. S= + + L
2! 4! 6! 8!

(2) X ( 2 * 4) X 2 (2 * 4 * 6) X 3 ( 2 * 4 * 6 * 8) X 4 (2 * 4 * 6 * 8 * 12) X 5
c. S= + + L
1! 3! 5! 7! 9!

X *Y N X 2 * Y N 1 X 3 * Y N 2 X 4 * Y N 3
d. S = + + L
N N 1 N 2 N 3

X X4 X9 X 16 X 25
e. S = + + +L
1! 1 * 3 3! 1 * 3 * 5 5!

N ! X 1+ 3 ( N 1)! X 1+ 3 5 ( N 2 )! X 1+ 3 5 + 7 ( N 3)! X 1+ 3 5 + 7 9
f. S = + + + +L
N *Y ( N 2) * Y ( N 4) * Y ( N 6) * Y

N N 1 N 2 N 3
1!* X (1!+ 3! ) X (1!+ 3!+ 5 ! ) X (1!+ 3!+ 5 !+ 7 ! ) X
g. S = (3) +
2
(6)
3
(9 ) +
4
(12 ) L
Y * (2) Y * (2 * 4) Y (2 * 4 * 6) Y (2 * 4 * 6 * 8)

2 3 4 5
(1) X (1 + 3) * X (1 + 3 + 5) * X (1 + 3 + 5 + 7 ) * X (1 + 3 + 5 + 7 + 9 ) * X
h. S = + + L
2 ( 2 + 4 )! ( 2 + 4 + 6) ( 2 + 4 + 6 + 8)! ( 2 + 4 + 6 + 8 + 10 )

3*5 3*5* 7 3*5* 7 *9 3 * 5 * 7 * 9 *11


i. S = 1!+ + 2! + 3!+ + 4! + 5!+ L
2! 4! 6! 8!

53. Dado el valor de N y X, [siendo: N par y X > N], elabore el diagrama de flujo de un programa que,
para los primeros N trminos, calcule el mayor promedio de cada par de trminos de la siguiente
serie:
1 ( X 1)! 3N ( X 3)! 5N ( X 5)! 7N ( X 7)!
S= N
+ N
+ N
+ + ...
X! 2 ( X 2)! 4 ( X 4)! 6 ( X 6)! 8N

Por ejemplo si N es 6 se calculan los siguientes tres promedios:

1 ( X 1 )! 3N ( X 3 )! 5N ( X 5 )!
S = + +
X! 2N ( X 2 )! 4N ( X 4 )! 6N

Promedio 1 Promedio 2 Promedio 3

MATERIAL DE AP O Y O A CLASES PGINA 44 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

54. Dados los valores de T y K, o X e Y, elabore el diagrama de flujo de un programa que genere e
imprima los primeros N trminos de las siguientes serie:
T 4T T4 (4-8)T T7 (4-8+12)T T10
S= - + - + - + - + ...
K! (K+2)! (K+4)! (K+6)! (K+8)! (K+10)! (K+12)!

X2 X2 X4 X2 X4 X6 X2 X4 X6 X8
+ 2 + 2 + 3 + + +
Y Y Y Y Y Y Y Y2 Y3 Y4 ...
S= - + - + -
1! 3! 5! 7!

X3 X3 X5 X3 X5 X7 X3 X5 X7 X9 X3 X5 X7 X9 X11
+ 4 + 4 + 7 + 4 + 7 + 10 + 4 + 7 + 10 + 13
S= - Y + Y Y - Y Y Y + Y Y Y Y - Y Y Y Y Y +
1!+3! 1!+3!-5! 1!+3!-5!+7! 1!+3!-5!+7!-9! 1!+3!-5!+7!-9!+11!

1 1 1 2 N 1 1 1 1 1 1 2 N 3
+ * y + + * y
X 3 * ( N 2 )!

X * N! 3 5 7 3 5 7 9 11
S = + + ...
1 1 2N X 2 * ( N 1)! 1 1 1 1 2 N 2 X 4 * ( N 3 )!
+ * y + + * y
3 5 3 5 7 9

2 4 6 8 10
55. La siguiente serie es evidentemente decreciente, S= + + + +
3! 5! 7! 9! 11!
Una forma de calcular la sumatoria de manera aproximada es sumar tantos trminos como sea
necesario generar, sin que el trmino generado sea menor que un valor conocido EPS. Elabore el
Diagrama de Flujo de un programa que dado un valor EPS, calcule la cantidad de trminos que se
tienen que generar, para determinar la sumatoria de manera aproximada de acuerdo a lo descrito
anteriormente.
56. Para X < Y, el Diagrama de Flujo A, determina la suma de los nmeros naturales entre X y Y, indique si
el Diagrama de Flujo B es equivalente al Diagrama de Flujo A, soporte con argumentos vlidos su
respuesta, de no ser equivalentes realice los cambios, modificaciones o adiciones, que considere
convenientes para hacer ambos algoritmos equivalentes.

Diagrama de Flujo A Diagrama de Flujo B


I I

X, Y X, Y

dX dX
q0 q0

Repetir Mientras que d < Y haga

qq+d dd+1
dd+1 qq+d

Hasta que d > Y Fin Mientras

X, Y, q X, Y, q

F F

MATERIAL DE AP O Y O A CLASES PGINA 45 DE 46


U NI VER SI D AD D E C AR AB O BO . F AC U LT AD DE I NG ENI ER A. DEP AR T AM EN T O DE C OM P UT ACI N.
CTEDRA DE COM PUTACIN I SEGUNDO PERODO LECTIVO DE 2006.

14. REFERENCIAS

El Material de Apoyo correspondiente al Primer Lapso de Evaluacin de la asignatura Computacin 1 es


una recopilacin selectiva del material desarrollado por los miembros de la Ctedra de Computacin 1
adscrita al Departamento de Computacin de los Estudio Bsicos de la Facultad de Ingeniera de la
Universidad de Carabobo. Un agradecimiento especial a los Profesores de la Ctedra: Ing. ngel
Almarza, Ing. Jess Cordero, Ing. Hugo Hernndez, Ing. Lisbeth Pacheco, Ing. Maria Cristina Rodrguez de
Furioni, Ing. Maria Beatriz Serrano. Pedimos disculpas si hemos omitido algn profesor.

Ctedra de Computacin I [2004] Ejercicios Recopilados y Exmenes anteriores.


Departamento de Computacin, Facultad de Ingeniera.
HERNANDEZ M., Ma de Lourdes. (1998). Apuntes de Diseo Estructurado de Algoritmos.
Instituto Tecnolgico de Tuxtepec. Mxico
JOYANES A., Luis. [2003]. Fundamentos de programacin: Algoritmos, Estructuras de Datos y
Objetos. Tercera Edicin. McGraw-Hill.
MANSILLA, Francisco Rus, Aplicacin en C++ URL:
http://polaris.lcc.uma.es/~rusman/docencia/ic/ecuacion2.cpp
PACHECO S., Lisbeth C. [2004] [2006]. Departamento de Computacin. Facultad de
Ingeniera.
SERRANO V., Maria B. [2004] [2006]. Departamento de Computacin, Facultad de
Ingeniera.
Universidad Mayor de San Simn Tutorial: Introduccin a la Programacin. Fecha de
acceso: 20-04-2004. URL: http://www.geocities.com/inf135/index.html
VARGAS, Jos R. [2003]. Programacin Cientfica Bsica. Facultad de Ingeniera. Universidad
Central de Venezuela.
WIKIPEDIA, Sucesin Matemtica, URL:
http://es.wikipedia.org/wiki/Sucesi%C3%B3n_matem%C3%A1tica
WIKIPEDIA, Serie Matemtica, URL: http://es.wikipedia.org/wiki/Serie_matem%C3%A1tica

MATERIAL DE AP O Y O A CLASES PGINA 46 DE 46

También podría gustarte