Post on 03-Jul-2015
Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Informática
PHM/DCP
18/04/2008
[PAUTA] Certamen I – Informática 1 (INF 140)
Nombre:
1.- Verdadero – Falso. (16 puntos)
Instrucciones: Indicar, en cada caso, si el enunciado presentado es Verdadero o Falso. Si la respuesta es Falso, es
requerido justificar claramente el por qué. La negación simple no es admisible como respuesta. Cada respuesta correcta
equivale a 4 puntos.
a) La ventaja de utilización de una variable sobre una constante, es que la primera permite recibir diferentes tipos
de valores durante el funcionamiento de un algoritmo.
Falso. Una variable definida de un cierto tipo sólo puede tomar valores de ese tipo (puede tomar diferentes valores, pero
siempre que correspondan al tipo de variable que se ha definido).
b) Un Intérprete ofrece un rendimiento ampliamente superior a un Compilador, pues los intérpretes trabajan
directamente con código máquina.
Falso. Un Intérprete es más lento que un compilador, pues procesa una línea de código fuente a la vez. Asimismo, no
trabaja directamente con código máquina, sino que traduce cada línea leída a código máquina.
c) El Lenguaje Ensamblador es un lenguaje funcionalmente similar al Lenguaje Máquina. Esta similitud otorga
una gran ventaja al programador, pues las instrucciones codificadas en Lenguaje Ensamblador son
directamente utilizables por un computador.
Falso. Si bien el Lenguaje Ensamblador es funcionalmente similar al Lenguaje Máquina, las instrucciones codificadas en él
deben ser traducidas a código máquina. Esta tarea es realizada por un Ensamblador, el que además, incorpora bibliotecas
preexistentes si es que son necesarias.
d) En la resolución de problemas, la ventaja de utilizar un enfoque Top Down es que permite trabajar desde el
detalle mismo del problema, ascendiendo progresivamente hacia una perspectiva más general del mismo.
Falso. El enfoque Top Down enfrenta un problema comenzando desde una perspectiva general, y progresivamente
incorpora detalles (el enfoque contrario se conoce como Bottom Up).
Profesores: Pamela Hermosilla Monckton Ayudantes: Daniel Gómez Cornejo
Daniel Cabrera Paniagua Enrique Urra Coloma
Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Informática
PHM/DCP
18/04/2008
2.- Desarrollo de algoritmos. (44 puntos)
Instrucciones Generales
� Indicar cualquier suposición que exista en el desarrollo de los problemas. Recordar que estos supuestos
no deben cambiar la orientación de ellos.
� Responder en forma ordenada y con letra legible. Los desarrollos que no cumplan con esta condición no
serán considerados en la corrección.
� Los algoritmos deben implementarse de forma completa, ya sea en pseudolenguaje ó notación de
diagramas de flujo, según sea el caso.
� Además, se debe incluir la estrategia utilizada para enfrentar el desarrollo del problema (Análisis).
a) [24 Puntos] En una importante industria del país, se manufacturan ciertos productos en base a una cadena de producción
sofisticada. Los productos cuentan con características muy diversas, esto gracias a los diferentes procesos de producción
existentes para desarrollarlos. Conforme un producto avanza en la cadena de producción, pasa por distintas estaciones en
donde se van modificando sus características, lo que repercute directamente en su valor agregado.
En la cadena de producción, los productos parten con un valor base que dependerá de la línea a la cual pertenecen. La
siguiente tabla muestra esta correspondencia:
Línea del producto Valor base
Básico (B) 1000
Intermedio (I) 2500
Avanzado (A) 5000
Cada producto tiene asociado un código de producción, que corresponde a un número entero que tiene un largo entre 5 y 10
dígitos. Este código describe el orden que debe seguir el producto en la cadena de producción, en donde cada dígito indica
una estación que visitará. La lectura del orden de las estaciones es desde el último dígito del código al primero. Por ejemplo,
el código 59274 indica que el producto seguirá la siguiente secuencia de estaciones: 4-7-2-9-5. De acuerdo al número de la
estación en donde se encuentre el producto, se aplican cambios al valor que lleve hasta ese momento. La siguiente tabla
describe estas modificaciones al valor de un producto:
Número de estación Modificación al valor
Número par Se multiplica el número de estación por 10, y se suma al valor que lleva hasta
ese momento el producto.
0 Sólo es una Estación de Registro, por lo que el valor del producto no cambia.
1 y 9
Se multiplica un tercio del valor que lleve el producto hasta ese momento por el
número de la estación en la que se encuentra, y el resultado se suma al valor del
producto.
3, 5 y 7
La cantidad de estaciones visitadas hasta el momento es multiplicada por el
número de la estación (se incluye la actual estación). Luego, el resultado se
multiplica por 10. El resultado obtenido se suma al valor del producto.
Para automatizar la cadena productiva, se le solicita desarrollar un algoritmo en pseudolenguaje que permita seguir la
cadena de producción de un producto, para el cual se especifica su línea de producto y un código de producción. En base a
estos datos, se debe obtener el valor final del producto, después de pasar por todas las estaciones que el código especifique.
b) [20 Puntos] En una importante empresa del retail de nuestro país, se observa un proceso que permite vender a los
clientes diferentes productos disponibles en la sala de ventas. El proceso comienza cuando un cliente se acerca a una caja,
en donde se inicia el registro de cada producto. El proceso de registro y cálculo de precio de cada producto se mantiene
mientras existan productos que el cliente desee comprar. Una vez terminado esto, el cliente posee dos alternativas para
pagar el valor de los productos: efectivo, y tarjeta de crédito. En el caso de pago con efectivo, se debe entregar el vuelto
resultante al cliente (en efectivo). Para lo anteriormente descrito, desarrollar:
• Diagrama de Flujo [10 Puntos].
• Diagrama de Nassi – Schneiderman [10 Puntos].
Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Informática
PHM/DCP
18/04/2008
Desarrollo (Pregunta 2a):
Algoritmo Calcular_Precio_Producto
Var real: valor_base, valor_auxiliar
entero: cod_produccion, num_estacion, tipo_estacion, contador_estaciones
caracter: linea_producto
Inicio
escribir ("Ingrese la línea de producto: ‘B’ para Básico; ‘I’ para Intermedio; ‘A’ para Avanzado")
leer (linea_producto)
escribir ("Ingrese código de producción")
leer (cod_produccion)
segun_sea linea_producto hacer
'B': valor_base <- 1000
'I': valor_base <- 2500
'A': valor_base <- 5000
fin_si
contador_estaciones <- 0
repetir
num_estacion <- cod_produccion MOD 10
cod_produccion <- cod_produccion DIV 10
contador_estaciones <- contador_estaciones + 1
si num_estacion MOD 2 = 0 entonces
tipo_estacion = 1
fin_si
si num_estacion = 0 entonces
tipo_estacion = 2
fin_si
si num_estacion = 1 ν num_mod = 9 entonces
tipo_estacion = 3
fin_si
si num_estacion = 3 ν num_estacion = 5 ν num_estacion = 7 entonces
tipo_estacion = 4
fin_si
segun_sea tipo_estacion hacer
'1': valor_auxiliar <- num_estacion * 10
valor_base <- valor_base + valor_auxiliar
'2': escribir ("Estación de Registro, por lo que no se altera el valor del producto")
'3': valor_base <- valor_base + (valor_base / 3) * num_estacion
Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Informática
PHM/DCP
18/04/2008
'4': valor_auxiliar <- contador_estaciones * num_estacion *10
valor_base <- valor_base + valor_auxiliar
fin_si
hasta_que (cod_produccion = 0)
escribir ("El valor final del producto es: ", valor_base)
Fin
Desarrollo (Pregunta 2a):
Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Informática
PHM/DCP
18/04/2008
Desarrollo (Pregunta 2b):