You are on page 1of 5

Facultad de Ingeniería

Escuela de Ingeniería de Sistemas y Computación


Algoritmia y Programación

NORMAS PARA LA ENTREGA DE LOS LABORATORIOS

● Agregue el nombre de los integrantes del grupo, nombre del profesor, número del grupo de
Algoritmia y número de laboratorio presentado en el encabezado de todos los programas que
realice.

● Guarde una copia del código fuente de todos sus programas, así como la evidencia de la
ejecución. Esto se puede realizar copiando y pegando imágenes del Shell de Python. Incluya las
imágenes en el informe de laboratorio.

● Lugar y Medio de Entrega: Cree un archivo comprimido con los archivos que se soliciten en el
informe (.py y .pdf) y súbalo al campus virtual, utilizando el link correspondiente.

● Plazo: Los estudiantes deben subir los archivos antes del día y la hora establecida por el profesor
en el campus virtual: http://campusvirtual.univalle.edu.co, el vínculo para esta actividad se
deshabilitará automáticamente una vez se cumpla el plazo. No se aceptarán informes de
laboratorio enviados por cualquier medio distinto al campus virtual.

● Informe de Laboratorio: El informe de laboratorio es un documento académico entregado en


formato PDF, el cual deberá contener los siguientes elementos: Portada, introducción, desarrollo
de los ejercicios del laboratorio y referencias.

Laboratorio No. 4
Tema: Arreglos unidimensionales y bidimensionales
Fecha Asignación:11 de Noviembre de 2016
Fecha Entrega: 25 de Noviembre de 2016

Objetivos:

● Aplicar la metodología para la solución de problemas vista en clase.


● Familiarizar al estudiante con el uso de arreglos.
● Familiarizar al estudiante con el uso de matrices.
● Familiarizar al estudiante con uso de ciclos para procesar arreglos y matrices.
● Aplicar el concepto de Arreglos unidimensionales y bidimensionales en la solución de
problemas
Metodología:

El laboratorio debe ser desarrollado en grupos de máximo tres personas.

Siga paso a paso la metodología planteada en el curso y resuelva los ejercicios.

Para los puntos 2 y 3 los entregables son:

1. Análisis del problema ………………………………………..( 15% )


2. Algoritmo en pseudocódigo …………………………………( 30% )
3. Prueba de escritorio……………………………………… ….( 15% )
4. Algoritmo en Python………………………………………….( 30% )
5. Evidencias de ejecución del programa, mediante capturas
de despliegue de pantallas ………………………………… (10%)

Los puntos 1, 2, 3, y 5 de la metodología deberán ir en el informe de laboratorio. El


punto 4 corresponde a los archivos .py

1) PRUEBA DE ESCRITORIO
[10 pts.] Realice la prueba de escritorio para el siguiente segmento de pseudocódigo.
y responda a las preguntas: (La prueba y las respuestas deben estar en el informe).
a) ¿Qué valores se imprimen?
b) ¿Con qué valores queda el arreglo bidimensional al finalizar el algoritmo?

Inicio
m =[[8,2,1],[2,3,6],[1,7,5]], x = 0, j: entero
y = "" :texto
Para i = 0 hasta 3; incrementar i en 1
j = 0
mientras(j < 3)Haga
si(j >= i)entonces
y = y + convertir a texto(m[i][j])+" "
sino
x = x + 1
m[j][i] = x
j = j+1

imprimir(y, x)
Fin

2) ARREGLO UNIDIMENSIONAL

[15 pts.] A través de la historia se han buscado técnicas para ocultar un mensaje
escrito, de tal manera que solo sea descifrado por el destinatario. A esto se le conoce
como criptografía. Una de las técnicas de criptografía más rudimentarias consiste en
sustituir cada uno de los caracteres por otro situado n posiciones más a la derecha.
Por ejemplo: si se quiere ocultar la palabra: casa, y si n = 2, entonces se haría lo
siguiente:
 La letra c, se sustituye por la e,
 La a se sustituye por la c,
 La s por la u, y
 Finalmente la última a por c.

El mensaje encriptado sería: ecuc

Si en nuestro ejemplo estuviera la z, ésta se cambia por la b

Se necesita desarrollar un programa en Python que lea una palabra de cualquier


tamaño y la encripte. Para ello se deben crear las siguientes funciones:

a. Una función que reciba la palabra a encriptar, la separe por letras y almacene
cada letra en un arreglo unidimensional de tipo texto. Esta función debe
retornar el arreglo generado.
b. Una función que reciba el arreglo con la palabra a encriptar, lea el valor de n y
con ello genere un arreglo con la versión encriptada de la palabra. La función
debe retornar el arreglo resultante.
c. Una función que imprima ambos arreglos

A continuación se presenta un ejemplo para las entradas y salidas que debe tener el
programa:

Imagen 1: Ejemplo ingreso de datos

Imagen 2: Ejemplo Salida

Se le entrega el código en Python de la función del inciso a. Usted debe desarrollar las
funciones restantes para dar solución al problema.
def separarPalabra(palabra):
tam = len(palabra)
letras = [None]*tam

for i in range(0,tam):
letras[i] = palabra.lower()[i]
return letras

3) ARREGLO BIDIMENSIONAL

[25 pts.] El dueño de un restaurante entrevista a cinco clientes de su negocio y les


pide que califiquen de 1 a 10 (1 es pésimo y 10 es excelente o inmejorable) los
siguientes aspectos:
 Atención de parte de los empleados
 Calidad de la comida
 Música adecuada?
 Iluminación suficiente?
 Ambiente (muebles cómodos?)
 Justicia del precio (el precio que pagó le parece justo?)
 Decoración

Esta información debe almacenarse en un arreglo bidimensional de tamaño 5 x 7.


Escriba un programa en Python que:

a. Pida las calificaciones de estos aspectos a los cinco clientes y los almacene en
el arreglo bidimensional. Defina una función que lo realice y retorne el arreglo
con dichas calificaciones.

b. Para cada aspecto determine la calificación mayor. Estos resultados deben


imprimirse con el siguiente formato:

LISTADO DE ASPECTOS MEJOR CALIFICADOS

ASPECTO A EVALUAR MAYOR CAL.


Atención de parte de los empleados 9,4
Calidad de la comida 8,1
Música adecuada 8,4
Iluminación suficiente 7,0
Ambiente (sillas) 7,5
Justicia del precio 6,5
Decoración del sitio 8,2

Defina una función, que reciba el arreglo bidimensional con las calificaciones,
y realice lo descrito en este inciso (b.)
c. Calcule el promedio obtenido en cada uno de los aspectos y los muestre con
el siguiente formato:

LISTADO CON LOS PROMEDIOS

ASPECTO A EVALUAR PROMEDIO


Atención de parte de los empleados 8,7
Calidad de la comida 6,4
Música adecuada 7,8
Iluminación suficiente 6,0
Ambiente (sillas) 5,6
Justicia del precio 4,5
Decoración del sitio 6,8