[Pauta] [Inf 140] Certamen I

5
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

Transcript of [Pauta] [Inf 140] Certamen I

Page 1: [Pauta] [Inf 140]   Certamen I

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

Page 2: [Pauta] [Inf 140]   Certamen I

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].

Page 3: [Pauta] [Inf 140]   Certamen I

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

Page 4: [Pauta] [Inf 140]   Certamen I

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):

Page 5: [Pauta] [Inf 140]   Certamen I

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):