Está en la página 1de 18

LABORATORIO NO.

4
TEMA: ARREGLOS UNIDIMENSIONALES Y BIDIMENSIONALES

ANGIE TATIANA RODRÍGUEZ DUQUE – 1625922

Diana Patricia Lozano

UNIVERSIDAD DEL VALLE


FACULTAD DE INGENIERÍA
ALGORITMIA Y PROGRAMACIÓN – GRUPO 02
SANTIAGO DE CALI
2016
Introducción

En el siguiente trabajo se presentará el desarrollo de los problemas planteados en


el laboratorio número 4 de la asignatura algoritmia y programación, cada uno con
su debido análisis de problema, diseño de pseudocódigo y prueba de escritorio
realizada.
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
Desarrollo de ejercicios
Problema 1.

Prueba de escritorio
x= 0 j= 0 y= “ “

Para i = 0 hasta 3; incrementar i en 1


j=0
mientras(0< 3)Haga
si(0 >= 0)entonces
y = “ “ + convertir a texto(m[0][0])+" "
=> y = “ 8 ”

j = 0+1
=> j= 1
Posición 0 1 2
0 8 2 1
1 2 3 6
2 1 7 5
Para i = 0 hasta 3; incrementar i en 1
j=1
mientras(1< 3)Haga
si(1 >= 0)entonces
y = “ “ + convertir a texto(m[0][1])+" "
=> y = “ 8 ” “ 2 ”

j = 1+1
=> j= 2
Posición 0 1 2
0 8 2 1
1 2 3 6
2 1 7 5

Para i = 0 hasta 3; incrementar i en 1


j=2
mientras(2< 3)Haga
si(2>= 0)entonces
y = “ “ + convertir a texto(m[0][2])+" "
=> y = “ 8 ” “ 2 “ “ 1 “

j = 2+1
=> j= 3
Posición 0 1 2
0 8 2 1
1 2 3 6
2 1 7 5

Para i = 1 hasta 3; incrementar i en 1


j=0
mientras(0< 3)Haga
si(0>= 1)entonces
sino
x=0+1
=> x= 1
m[0][1] = 1

j = 0+1
=> j= 1
Posición 0 1 2
0 8 1 1
1 2 3 6
2 1 7 5
Para i = 1 hasta 3; incrementar i en 1
j=1
mientras(1< 3)Haga
si(1 >= i)entonces
y = “ 8 ” “ 2 “ “ 1 “ + convertir a texto(m[1][1])+" "
=> y= “ 8 ” “ 2 “ “ 1 “ “ 3 “

j = 1+1
=> j= 2
Posición 0 1 2
0 8 1 1
1 2 3 6
2 1 7 5

Para i = 1 hasta 3; incrementar i en 1


j=2
mientras(2< 3)Haga
si(2 >= i)entonces
y = “ 8 ” “ 2 “ “ 1 “ + convertir a texto(m[1][2])+" "
=> y= “ 8 ” “ 2 “ “ 1 “ “ 3 “ “ 6 “

j = 2+1
=> j= 3
Posición 0 1 2
0 8 1 1
1 2 3 6
2 1 7 5

Para i = 2 hasta 3; incrementar i en 1


j=0
mientras(0< 3)Haga
si(0 >= 2)entonces
sino
x=1+1
=> x= 2
m[0][2] = 2
j = 0+1
=> j= 1
Posición 0 1 2
0 8 1 2
1 2 3 6
2 1 7 5
Para i = 2 hasta 3; incrementar i en 1
j=1
mientras(1< 3)Haga
si(1 >= 2)entonces
sino
x=2+1
=> x= 3
m[1][2] = 3
j = 1+1
=> j= 2
Posición 0 1 2
0 8 1 2
1 2 3 3
2 1 7 5

Para i = 2 hasta 3; incrementar i en 1


j=2
mientras(2< 3)Haga
si(2 >= 2)entonces
y = “ 8 ” “ 2 “ “ 1 “ + convertir a texto(m[2][2])+" "
=> y= “ 8 ” “ 2 “ “ 1 “ “ 3 “ “ 6 “ “ 5 “

j = 2+1
=> j= 3
Posición 0 1 2
0 8 1 2
1 2 3 6
2 1 7 5

a) ¿Qué valores se imprimen?

R/=
x= 3
y= “ 8 ” “ 2 “ “ 1 “ “ 3 “ “ 6 “ “ 5 “

b) ¿Con qué valores queda el arreglo bidimensional al finalizar el algoritmo?

R/= Los valores del arreglo bidimensional al finalizar el algoritmo son:

m= [ [ 8, 1, 2 ] , [ 2, 3, 6 ] , [ 1, 7, 5 ] ]
Problema 2. ARREGLO UNIDIMENSIONAL
1. Análisis del problema

• Palabra a encriptar
Entradas • Valor de n

•Creación de funciones

•1-SepararPalabra: Recibir palabra,


separar por letras, almacenar cada letra
en un arreglo unidimensional de tipo
texto y retornar éste
Proceso •2-VersionEncriptada: Recibir arreglo
anterior, leer valor de n, generar arreglo
con versión encriptada y retornar éste

•3-ImprimirArreglos: Impresión de ambos


arreglos (1 y 2)

• Arreglo palabra normal


Salidas
• Arreglo palabra encriptada

2. Pseudocódígo
Declaración de Funciones:
Inicio SepararPalabra (palabra):

tam= len (palabra)

letras= [None] * tam

Para i=0 hasta tam, incrementar i en 1 Hacer

letras [i]= palabra.lower () [i]

retornar (letras)

Fin SepararPalabra
Inicio VersionEncriptada (letras, n):

tam=len(letras)

ve=[None]*tam

h=0

i=0

Mientras i<=tam Hacer

j=0

Si ((letras[i])==(abc[h])) Entonces

p=h+n

Si (p>26) Entonces

Mientras (j<=n) Hacer

j=j+1

Para a=0 hasta 27 Hacer

abc.append(abc[a])

ve[i]=(abc[p])

h=0

i=i+1

Si no Entonces

ve[i]=(abc[p])

h=0

i=i+1

Si no Entonces

h=h+1

Si (i==tam) Entonces

i=i+tam

retornar (ve)

Fin VersionEncriptada
Inicio ImprimirArreglos (letras,ve):

imprimir ("Arreglo palabra normal: " "\n" , letras)

imprimir ("Arreglo palabra encriptada: " "\n" , ve)

Fin ImprimirArreglos

Programa Principal
Inicio
palabra= texto

n= entero

letras= cadena de caracteres

ve= cadena de caracteres

abc= ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z"]

palabra= leer ("Ingrese la palabra que desea encriptar: ")

n= leer ("Ingrese el valor de n para las posiciones a adelantar: ")

letras= SepararPalabra (palabra)

ve=VersionEncriptada (letras, n)

ImprimirArreglos (letras,ve)

Fin
3. Prueba de escritorio
Teniendo en cuenta:

a b c d e f g h i j k l m n ñ o p q r s t u v v x y z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Etc

… … … … … … … … … … … … … … … … … … … … … … … … … … …

PROGRAMA ENCRIPTAR PALABRAS

Ingrese la palabra que desea rodriguez


encriptar:

Ingrese el valor de n para las 2


posiciones a adelantar:

r r = 18 18 + 2 = 20 20 = t

o o = 15 15 + 2 = 17 17 = q

d d=3 3+2=5 5=f

r r = 18 18 + 2 = 20 20 = t

i i=8 8 + 2 = 10 10 = k

g g=6 6+2=8 8=i

u u = 21 21 + 2 = 23 23 = w

e e=4 4+2=6 6=g

z z = 26 26 + 2 = 28 28 = b

Arreglo palabra normal: [ “r” , “o” , “d” , “r” , “i” , “g” , “u” , “e” , “z” ]

Arreglo palabra encriptada: [ “t” , “q” , “f” , “t” , “k” , “i” , “w” , “g” , “b” ]
PROGRAMA ENCRIPTAR PALABRAS

Ingrese la palabra que desea angie


encriptar:

Ingrese el valor de n para las 3


posiciones a adelantar:

a a= 0 0+3=3 3=d

n n = 13 13 + 3 = 16 16 = p

g g=6 6+3=9 9=j

i i=8 8 + 3 = 11 11 = l

e e=4 4+3=7 7=h

Arreglo palabra normal: [ “a” , “n” , “g” , “i” , “e” ]

Arreglo palabra encriptada: [ “d” , “p” , “j” , “l” , “h” ]

Problema 3. ARREGLO BIDIMENSIONAL


1. Análisis del problema
•Calificaciones de los sgtes aspectos (7):
•1- Atención de parte de los empleados
•2- Calidad de la comida

Entradas •3- Música adecuada


•4- Iluminación suficiente
•5- Ambiente
•6- Justicia del precio
•7- Decoración

•Creación de funciones:
•matriz: Almacenar en un arreglo las calificaciones
Proceso •calificaciones: Determinar Cal. mayor de cada
aspecto
•promedio: Sumatoria de las calificaciones (por
columna) / n ( #de clientes-encuestados)

•Mayor calificación para cada aspecto


Salidas •Aspecto con menor calificación
•Promedio obtenido en cada uno de los aspectos
2. Pseudocódígo
Declaración de las Funciones
Inicio matriz():
Para f en rango de 0 a 10 Hacer

Imprimir("=======================================================
=======")
Para c en rango de 0 a 7 Hacer
Si c==0 Entonces
Imprimir ("Cliente " + str(f+1) + "--Atención por parte de los empleados: ")
Si no si c==1Entonces
Imprimir ("Cliente " + str(f+1) + "--Calidad de la comida: ")
Si no si c==2 Entonces
Imprimir ("Cliente " + str(f+1) + "--Música adecuada: ")
Si no si c==3 Entonces
Imprimir ("Cliente " + str(f+1) + "--Iluminación suficiente: ")
Si no si c==4 Entonces
Imprimir ("Cliente " + str(f+1) + "--Ambiente(sillas): ")
Si no si c==5 Entonces
Imprimir ("Cliente " + str(f+1) + "--Justicia del precio: ")
Si no si c==6 Entonces
Imprimir ("Cliente " + str(f+1) + "--Decoración del sitio: ")

mat[f][c]= real (leer (""))


Mientras (mat[f][c]<=0)or(mat[f][c]>10) Hacer
Imprimir ("ERROR EN LA ELECCIÓN, POR FAVOR INTENTE DE
NUEVO: ")
mat[f][c]= real (leer (""))

Imprimir ("======================================================")
Imprimir (" \tCALIFICACIONES USUARIOS")
s = ""
Para f en rango de 0 a 10 Hacer
Para c en rango de 0 a 7
s= s + str(mat[f][c])+ "\t"
s += "\n"
Imprimir (s)
retornar (mat)
Fin matriz

Inicio calificaciones (matriz):


arreglo=[]
Para c en rango de 0 a 7 Hacer
m = matriz[0][c]
Para f en rango de 0 a 9 Hacer
Si (m < matriz[f+1][c]) Entonces
m = matriz[f+1][c]
arreglo.append(m)

Para i en rango de 0 a 7 Hacer


Si i==0 Entonces
Imprimir ("Atención por parte de los empleados: \t",arreglo[i])
Si no si i ==1Entonces
Imprimir("Calidad de comida: \t",arreglo[i])
Si no si i==2 Entonces
Imprimir ("Música adecuada: \t",arreglo[i])
Si no si i==3 Entonces
Imprimir ("Iluminación suficiente: \t", arreglo[i])
Si no si i==4 Entonces
Imprimir ("Ambiente (sillas): \t", arreglo[i])
Si no si i==5 Entonces
Imprimir ("Justicia del precio: \t", arreglo[i])
Si no Entonces
Imprimir ("Decoración del sitio: \t", arreglo[i])
Fin calificaciones

Inicio promedio (matriz):


arreglo=[]
Para c en rango de o a 7 Hacer
m1 = 0
Para f en rango de 0 a 10 Hacer
m1 += matriz[f][c]
m1 /= 10
arreglo.append(m1)

Para i en rango de 0 a 7 Hacer


Si i==0 Entonces
Imprimir ("Atención por parte de los empleados: \t",arreglo[i])
Si no si i ==1 Entonces
Imprimir ("Calidad de comida: \t",arreglo[i])
Si no si i==2 Entonces
Imprimir ("Música adecuada: \t",arreglo[i])
Si no si i==3 Entonces
Imprimir ("Iluminación suficiente: \t", arreglo[i])
Si no si i==4 Entonces
Imprimir ("Ambiente (sillas): \t", arreglo[i])
Si no si i==5 Entonces
Imprimir ("Justicia del precio: \t", arreglo[i])
Si no Entonces
Imprimir ("Decoración del sitio: \t", arreglo[i])
Fin Promedio

Programa Principal
Inicio
mayores, prom = real
Imprimir ("CALIFIQUE DE 1 A 10 (1 ES PÉSIMO Y 10 ES EXCELENTE O
INMEJORABLE) LOS SIGUIENTES ASPECTOS: ")
mat=[[0.0 Para c en rango de 7] Para f en rango de 10
matriz()

Imprimir ("======================================================")
Imprimir ("\t ASPECTOS A EVALUAR \t MAYOR CAL.")
mayores = calificaciones(mat)

Imprimir ("======================================================")
Imprimir ("\t ASPECTOS A EVALUAR \tPROMEDIO")
prom = promedio(mat)

Fin
3. Prueba de escritorio
CALIFICACIONES ASPECTOS RESTAURANTE

Aspectos Atención Calidad Música Iluminación Ambiente Precio Decoración

Clientes empleados comida adecuada suficiente (comodidad) justo

#1 4 5.2 10 6.2 3 7 4

#2 3.8 9.3 4.2 4 5.2 2.9 4.5

#3 6.7 4.3 2.5 3 4.7 6.8 5

#4 8.2 5.6 4.1 4.4 10 4 2

#5 3 4.5 9.9 4.8 3 8.3 4.1

#6 4.6 3 5 3 4.3 4 3

#7 3 7.7 2 3 8.4 2 3.6

#8 4 8 3.5 4 4 4.6 4.5

#9 7.1 3 5 4.3 9.1 3.4 3.8

# 10 4.5 9 4.1 3.2 3.5 6.3 4.4

Promedio: 4.89 5.96 5.02 3.99 5.52 4.93 3.88

Mayor 8.2 9.3 10 6.2 10 8.3 5


Calificación:

Aspecto con menor calificación registrada: Precio justo


Conclusión

En conclusión mediante la aplicación de los conceptos vistos y trabajados en clase,


con las temáticas de estructuras de decisión, funciones, estructuras iterativas y
arreglos, podemos decir por un lado que, explorar y familiarizarse con el programa
es de suma importancia, como también lo es, la implementación de una metodología
y una serie de algoritmos para la solución de problemas, identificando y
caracterizando los elementos de éstos, que contribuyen sin duda al desarrollo de
habilidades y a la capacitación del estudiante en su formación académica.

Específicamente con el concepto de arreglos se concluye que es una herramienta


la cual nos brinda la capacidad de hacer muchas operaciones a la vez sobre
grandes conjuntos de datos numéricos de manera eficiente y con ello llevar a cabo
la solución de problemas que requieren manipular grandes secuencias de números.

Referencias

Se toman como referencias las diapositivas enviadas al campus y expuestas de


las temáticas de estructuras de control, métodos y funciones, estructuras de
repetición for y while y principalmente arreglos unidimensionales y bidimensionales

 https://campusvirtual.univalle.edu.co/moodle/pluginfile.php/1097060/mod_resource
/content/0/Clase7_Arreglos.pdf

También podría gustarte