You are on page 1of 10

Universidad de Santiago de Chile

Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin

Taller N2 Invierno 2016


Nombr
es
Fecha

Puntaje total
Porcentaje de
logro
Puntaje real
Calificacin

30
60
%

Aprendizajes esperados a evaluar: Implementar algoritmos


utilizando estructuras de control, siguiendo la sintaxis del lenguaje
de programacin utilizado
DESCRIPCIN DE LA ACTIVIDAD E INSTRUCCIONES GENERALES

Para el problema enunciado construya un programa utilizando el lenguaje


de programacin Python que implemente un algoritmo que permita
resolver el problema para cualquier entrada.

indique cuales son las entradas y salida o salidas del problema y de cada
funcin.

Construya un algoritmo en lenguaje natural que permita resolver el


problema, indicando las condiciones de bifurcaciones y ciclos, as como los
llamados a funciones y los algoritmos de cada funcin.

Implemente el algoritmo en el lenguaje de programacin, siguiendo las


buenas prcticas de programacin indicadas en clases.

Realice una traza de su algoritmo. Describa algn error que haya detectado
al realizar la traza y la correccin de aquel error en el cdigo. Por cada
llamado a funcin haga una traza distinta

Los desarrollos deben ser entregados mximo a las 00:00 hrs. del 27 de
Julio de 2016. Enviar el desarrollo en este mismo archivo, con el formato
<Apellidos integrantes>-Taller2.docx. Adicionalmente puede incluir los
cdigos en archivos .py en un archivo comprimido, junto a este documento.
El formato del nombre se mantiene igual. Enviar al correo
javier.salazar.l@usach.cl. Se descontar 0,5 puntos por cada 15 minutos de
retraso en la entrega,

El taller debe resolverse en grupos de mximo 4 personas.

Al final de este documento se encuentra la rbrica de evaluacin.

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
Este trabajo tiene por objeto evaluar el trabajo en diferentes dimensiones,
las instrucciones especficas para cada una de ellas se encuentra a
continuacin, tenga en consideracin dichas instrucciones al momento de
resolver el taller.

Dimensin I
Abstraccin
Instrucciones:
1. Indique las entradas y salidas del problema en general
2. Indique las entradas y salidas del problema
3. Construya el diagrama de abstraccin que solucione el problema. Indique
los nombres de cada proceso. Adems indique los datos que van de un
proceso a otro y el tipo de dato a los que corresponden
Dimensin II
Construccin de Algoritmo
Instrucciones:
1. Enumere los pasos que se deben realizar para resolver el problema.
2. Cada paso debe ser los ms conciso posible. Cuide que cada paso del
algoritmo implique una y solo una operacin, de esta forma facilita su
implementacin en el lenguaje de programacin. Si un paso resulta muy
complejo, divdalo en pasos ms sencillos.
3. Cuide que los pasos del algoritmo se realicen en un orden lgico
Dimensin III
Estructuras de Control
Instrucciones:
1. Defina las condiciones para bifurcaciones y ciclos de forma que no sean
tautologas
2. Cuide la correcta sintaxis de las estructuras de control
3. Verifique que los ciclos se realicen la cantidad exacta de veces que
requiere el problema, considere especialmente los valores de inicio y
condicin de trmino del ciclo. Ponga tencin en que el uso de iteradores y
acumuladores se vayan modificando correctamente en el interior del ciclo.
Dimensin IV
Implementacin del algoritmo
Instrucciones:
1. Implemente el algoritmo en el lenguaje de programacin trabajado
durante las clases.
2. Intente que cada paso del algoritmo se corresponda con solo una lnea de
cdigo. Para simplificar esto, escriba como comentarios los pasos del

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
algoritmo y luego vaya traduciendo al lenguaje de programacin lnea por
lnea. De ser necesario, vaya tambin modificando el algoritmo para que se
corresponda con una y solo una lnea de cdigo.
3. Para cada variable creada en su cdigo siga las convenciones y buenas
prcticas de programacin indicadas durante el curso.
4. Para adecuarse a la estructura de programa trabajada en clases, seale,
usando comentarios, las secciones del cdigo de entrada, procesamiento y
salida, y clasifique los pasos de su algoritmo en estas secciones.
5. Cuide que la sintaxis de las distintas secciones del cdigo sea acorde a lo
indicado en las clases.
Dimensin V
Traza del algoritmo
Instrucciones:
1. Indique en una tabla cada variable creada, y los distintos valores que van
almacenando a lo largo de la ejecucin del cdigo. Considere todas las
variables, incluso los iteradores usados en los ciclos.
2. A la vez, incluya los resultados de las evaluaciones de operaciones
booleanas de condicionales y ciclos.
3. Describa al menos un error de implementacin que haya detectado al
utilizar la traza e indique la forma de corregir aquel error. Si detecta ms
errores es tambin puede describirlos

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
ENUNCIADOS DE PROBLEMAS
1. En el antiguo Imperio Romano se desarroll un sistema de numeracin
basado en Letras maysculas. La correspondencia de letras y sus
respectivos valores se observa en la tabla 1. Para construir un nmero
romano, existen una serie de reglas las que son descritas a continuacin
(Fuente: Wikipedia):

Los nmeros se leen de izquierda a derecha empezando por los smbolos


con mayor valor, o conjunto de smbolos de mayor valor.
Un smbolo seguido de otro de igual o inferior valor, suma (por ejemplo,
XXI = 10+10+1 = 21), mientras que si est seguido de otro de mayor
valor, ambos smbolos forman un conjunto en el cual debe restarse el
valor del primero al valor del siguiente (por ejemplo, XIX = 10+[10-1] =
19).
La unidad (I) y los nmeros con base 10 (X, C y M) pueden repetirse
hasta 3 veces consecutivas como sumandos.
Los nmeros con base 5 (V, L y D), no pueden repetirse seguidos, ya que
la suma de esos dos smbolos tiene representacin con alguno de los
smbolos anteriores.
La unidad y los smbolos de base 10 tambin pueden estar restando
antes de un smbolo de mayor valor, pero con las siguientes normas:
a) Solo pueden aparecer restando sobre los smbolos con base 5 y 10 de valor
inmediatamente superiores, pero no de otros con valores ms altos (por
ejemplo IV y IX, pero no IL ni IC).
b) En el caso de estar restando, no pueden repetirse.
Los smbolos con base 5 no pueden utilizarse para restar (por ejemplo,
45 se escribe XLV y no VL)
Tabla 1: Equivalencia numeros arbigos y romanos.

Arbi
go
Roma
no

1 5

1
0

5
0

10
0

50
0

100
0

Condstruya un programa que reciba una lista de nmeros de valores menores a


4000, ya sean arbigos (0-9) o romanos, detecte de qu tipo se trata, valide
que la entrada sea correcta (avisando del error y pidiendo una nueva entrada
en caso contrario) y entregue por pantalla:
i)

El menor, mayor y promedio (entero) de todos los nmeros. Deben


mostrarse por pantalla con nmeros arbigos y romanos.

ii)

iii)
iv)

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
Las listas de pares e impares, ordenadas de menor a mayor y el
promedio de cada una de esas listas. El promedio debe mostrarse con
nmeros arbigos y romanos
Una lista con todos los nmeros primos dentro de los ingresados
ordenada de mayor a menor
Realice una traza con la lista [153, DCXXIV,LXXIX, 44, CCCXVII]

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
DESARROLLO

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
RBRICA DE EVALUACIN
Criterios

ptimo (3 puntos)

Suficiente (2 puntos)

Insuficiente (1 punto)

Deficiente (0 punto)

1.
Abstraccin

Clasifica correctamente
todas las entradas y
salidas. El diagrama de
abstraccin no incluye
simbologa distinta a
flechas para los datos y
cuadros para los procesos.
Los nombres de procesos y
datos son adecuados.
Incluye el tipo de dato
correspondiente a cada
flecha. El diagrama
permite resolver el
problema,
Enumera pasos que
permitan resolver el
problema. No realiza pasos
duplicados. La secuencia
de pasos es lgica. Las
imprecisiones del
algoritmo no afectan la
lgica de la solucin. El
algoritmo de cada funcin
apunta a resolver lo que
hace la funcin.

El diagrama no incluye
simbologa ajena al
diagrama de
abstraccin. El diagrama
permite resolver el
problema. Hay a lo ms
dos flechas sin nombres
de datos o no incluye
tipos de datos en ms
de cuatro flechas.

El diagrama incluye
simbologa externa al
diagrama de
abstraccin. O, los
nombres de a lo ms
dos procesos no son
representativos. O se
incluyen ms de dos y
hasta cuatro flechas
sin nombre de datos o
ms de cuatro sin tipo
de dato.

El diagrama no
apunta a resolver
el problema. O los
nombres de
procesos no son
representativos. No
incluye tipos de
datos o nombres de
datos en las flechas
del diagrama

Incluye pasos
duplicados. O faltan
pasos del algoritmo que
son implcitamente
incluidos en otros pasos
del algoritmo. Omite a lo
ms una funcin

Para a los ms dos


funciones:
La secuencia de pasos
es incompleta y no
sigue un orden lgico,
aunque se observa
una tendencia a
resolver el problema
obteniendo las salidas
solicitadas.
O, los pasos del
algoritmo resultan
demasiado abstractos,
sin explicitar clculos
claves del algoritmo

La secuencia de
pasos no apunta a
resolver el
problema

2.
Construcci
n de
algoritmo
(x2)

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
3. Sintaxis
Hay a lo ms 3 errores de
4 o ms errores de poca
sintaxis de poca
importancia. Sin errores
importancia (variables no
graves
definidas, falta de :,
operador incorrecto como
x en lugar de * o = en
lugar de ==, funciones
nativas mal escritas,
palabras reservadas mal
escritas, tabulacin
incorrecta sin afectar la
lgica, parntesis mal
balanceados sin afectar la
lgica, operaciones
booleanas mal
compuestas, falta de
comas dentro de print,
ausencia de comillas para
definir strings)
4. Buenas
Todas los identificadores se Algunos identificadores
prcticas de construyen siguiendo el
no siguen los formatos
programaci formato establecido en
indicados o algunos no
n
clases y son nombres
son representativos,
representativos, separa
pero separa las
explcitamente las
secciones de cdigo y
secciones de entrada,
agrega comentarios.
procesamiento y salida del O, todos los
cdigo y agrega
identificadores son
comentarios explicativos a correctos, pero no
la implementacin del
separa las secciones de
algoritmo. Indica para cada cdigo o no incluye
funcin entradas, salida y
comentarios.
qu hace como
O, solo incluye entradas
comentarios
y salidas de las

A lo ms 2 ocurrencias
de alguna de los
siguientes errores
graves, uso de
parntesis incorrectos
(curvos en lugar de
cuadrados, u otro),
errores de indentacin
o parntesis
desbalanceados que
afectan la lgica

Alguna de las
siguientes:
Asignaciones
invertidas,
llamados a
funciones sin
asignacin de
retornos, variables
no alcanzables.

Algunos
identificadores no
siguen los formatos
indicados y no son
representativos, pero
separa las secciones
de cdigo y agrega
comentarios.
O, todos los
identificadores son
correctos, pero no
separa las secciones
de cdigo ni incluye
comentarios.
O, no indica que hacen

Identificadores no
son representativos
ni siguen los
formatos, no
separa las
secciones de
cdigo y no incluye
comentarios ni
indica entradas,
salidas y que hace
cada funcin

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
funciones, o slo indica
lo que hace la funcin. O
indica todo o anterior
para slo algunas
funcones.
5.
Las condiciones de
Expresiones booleanas
Expresiones bifurcaciones y ciclos no
no son tautologas.
booleanas
son tautologas, las
Una de las siguientes:
expresiones booleanas
expresiones compuestas
compuestas se forman
son mal construidas o
utilizando operadores
no utiliza correctamente
booleanos, se respeta la
la precedencia de
precedencia de operadores operadores booleanos
booleanos o se modifica
con parntesis.
6.
La implementacin es
La implementacin es
implementa concordante con el
concordante con el
cin de
algoritmo planteado, los
algoritmo, ciclos se
algoritmo
ciclos se realizan la
realizan una cantidad
(x3)
cantidad exacta de veces
incorrecta de veces por
requeridas, las expresiones iteradores mal utilizados
aritmticas son correctas
o condiciones mal
respetando precedencia de planteadas, expresiones
operadores y tipos de
aritmticas son
datos. Las funciones tienen correctas y se respeta
retorno y son llamadas
precedencia, pero no los
adecuadamente
tipos de datos. Existe a
lo ms una funcin sin
retorno.
Define ms de una vez
una funcin y no la
reutiliza.

las funciones y cuales


son sus entradas y
salidas
Expresiones booleanas
no son tautologas,
expresiones
compuestas son mal
construidas y no utiliza
correctamente la
precedencia de
operadores booleanos

Expresiones
booleanas incluyen
tautologas, uso de
break

La implementacin
tiene menos de dos
diferencias con el
algoritmo, ciclos se
repiten un cantidad
incorrecta de veces,
expresiones
aritmticas no
respetan precedencia
ni tipo de datos o son
incorrectas.
Existen a lo ms dos
funciones sin retorno,
o que son llamadas
incorrectamente.
Hay cdigo
inalcanzable en alguna
funcin

La implementacin
no es concordante
con el algoritmo.
Llama funciones
con un nmero
equivocado de
parmetros. No
asigna
correctamente los
retornos de la
funcin.

7. Traza

Total

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica
Fundamentos de Computacin y Programacin
Se incluyen todos los
Incluye todos los valores
valores almacenados por
almacenados y
todas las variables durante considera todas las
la ejecucin del programa, variables, e incluye
se incluyen las
todas las evaluaciones
evaluaciones de
de expresiones
expresiones booleanas,
booleanas, pero no
indica errores detectados y indica errores
forma de solucionarlos si
encontrados cuando
existen.
estos son evidentes en
Se realiza la traza de cada
la traza.
llamado a funcin.
O, indica errores e
incluye evaluaciones de
expresiones booleanas,
pero omite variables o
valores.
Faltan a lo ms dos
trazas de llamados a
funciones.
30

No incluye todos los


valores almacenados o
no considera todas las
variables, y no incluye
todas las evaluaciones
de expresiones
booleanas.
O incluye todos los
valores y variables,
pero no incluye
evaluacin de
expresiones
booleanas.
Faltan ms de dos
trazas e llamados a
funciones.

No incluye
evaluacin de
expresiones
booleanas ni todos
los valores y
variables.
No incluye trazas
de llamados a
funciones

You might also like