You are on page 1of 10

Objetivos de la Practica

La práctica desarrollada a continuación persigue una serie de objetivos, dentro de los cuales
figuran:

1. Practicar con cada uno de los problemas donde es necesaria la implementación de los
conocimientos obtenidos a cerca de arreglos bidimensionales o matrices. Para desarrollar los
programas de esta práctica, el alumno debe crear distintos archivos y obtener los ejecutables.
(Acompañados de una memoria escrita)

2. Introducirse en los conceptos básicos relacionados con matrices, en el lenguaje Python de


programación.

3. Implementar las recomendaciones y estándares de programación, aprendidos a lo largo del


trimestre Agosto - octubre 2016

Para ello, nos centraremos en programas independientes que manejan matrices. Los problemas
que se proponen requieren ser realizados de la manera más eficiente, eficaz y estándar posible.
#3-) multiplicar matriz

def main():

MatrizA = []
MatrizB = []
MatrizR = []

filasA = int(raw_input("Introduzca el numero de filas de la


matriz A: "))
columnasA = int(raw_input("Introduzca el numero de columnas
de la matriz A: "))
filasB = int(raw_input("Introduzca el numero de filas de la
matriz B: "))
columnasB = int(raw_input("Introduzca el numero de columnas
de la matriz B: "))

if columnasA != filasB:
print "Operacion sin Solucion"
else:
print "**** Matriz A ****"
for i in range (filasA):
MatrizA.append ([0]*columnasA)
for f in range (filasA):
for c in range (columnasA):
MatrizA[f][c] = int(raw_input("Elemento %d,%d: "
% (f,c)))

print "**** Matriz B ****"


for i in range (filasB):
MatrizB.append ([0]*columnasB)
for f in range (filasB):
for c in range (columnasB):
MatrizB[f][c] = int(raw_input("Elemento %d,%d: "
% (f,c)))

print "**** Matrices ****"


print "Matriz A"
print MatrizA
print "Matriz B"
print MatrizB

print "**** Multiplicar Matrices ****"

for k in range(filasA):
MatrizR.append([0]*columnasB)
for i in range(columnasB):
MatrizR[k][i] = 0

for i in range(filasA):
for j in range(columnasA):
for k in range(columnasB):
MatrizR[i][k] = MatrizR[i][k] +
(MatrizA[i][j] * MatrizB[j][k])

print MatrizR

main()
#4-) mover los elementos de una matriz a otra

def main():

MatrizA = []
MatrizB = []

filasA = int(raw_input("Introduzca el numero de filas de la


matriz A: "))
columnasA = int(raw_input("Introduzca el numero de columnas
de la matriz A: "))
filasB = filasA
columnasB = columnasA

print "**** Matriz A ****"


for i in range (filasA):
MatrizA.append ([0]*columnasA)
for f in range (filasA):
for c in range (columnasA):
MatrizA[f][c] = int(raw_input("Elemento %d,%d: " %
(f,c)))

MatrizB = MatrizA

print " La matriz con los elementos movidos es", MatrizB

main()
#5-) volver nulos o ceros todos los elementos de una matriz

import random

def matrizcero(fil,col): #crea la matriz


matriz = []
for i in range (fil):
matriz.append([5]*col)#se llena la matriz completa de 5

for i in range (fil):# recorre las filas


for p in range (col):# recorre las columnas
matriz[i][p]= 0 #vuelve todos los elementos 0 de la
matriz
return matriz

def imprimir_matriz(matriz,fil,col):
for i in range(fil):
for p in range(col):
print matriz[i][p]
def main():
fil= random.randrange(1,8)#genera un numero aleatorio de 1
al 8
col= random.randrange(1,8)
matriz= matrizcero(fil,col)
imprimir_matriz(matriz,fil,col)#otra forma de imprimir la
matriz
print matrizcero(fil,col)#este es una forma de imprimir la
matriz

main()
#6-) imprimir una matriz o vector

import random
def vecto(x):#crea y llena el vector de elementos

vector= []#se declara vector vacio


for i in range(x):#recorre el vector
n= random.randrange(0,100)#numero aleatorio de 1 a 100
vector.append(n)#se le a?ade el numero aleatorio
generado al vector

return vector

def imprimir(vector,x):
for i in range (x):
print vector[i]#imprime cada elemento del vector

def main():
x= random.randrange(2,20)
vector1= vecto(x)
imprimir(vector1,x)

main()
#7-) intercambiar dos filas

def intercambiarFilas(matriz, m, n):


p=int(raw_input("fila a intercambiar (0-" + str(m-1) +
str(")")))
q=int(raw_input("fila a intercabiar (0-" + str(m-1) +
str(")")))
if p < m and q < m:
for j in range(n):
a = matriz[q][j]
matriz[q][j] = matriz[p][j]
matriz[p][j] = a

print "intercambio filas \n"


printMatrix(matriz, m, n)

else:
print "Solo son", m,"filas"

return
#8-) intercambiar dos columnas

def intercambiarColumnas(matriz,m , n):


p=int(raw_input("columna a intercambiar (0-" + str(n-1) +
str(")")))
q=int(raw_input("columna a intercabiar (0-" + str(n-1) +
str(")")))

if (p < n) and (q < n):


for i in range(m):
a = matriz[i][p]
matriz[i][p] = matriz[i][q]
matriz[i][q] = a

print "intercambio columnas \n"


printMatrix(matriz, m, n)

else:
print "La matriz solo consta de", n, "columnas"

return
#9-) calculo de determinante

def determinanteGauss(matrix, m, n):


if m == n:
ver = 0
for i in range(n):
for j in range (n):
if matrix[i][j] == 0:
ver = ver + 1
if ver == (n * n):
print "EL determinante es 0"

else:
c = 0
l = 0
k = 0

if matrix[k][k] == 0:
l = k + 1
c = 1

while matrix[l][k] == 0:
l = l + 1

i = 0
for j in range(n):
a = matrix[i][j]
matrix[i][j] = matrix[l][j]
matrix[l][j] = a

for k in range(n):
for i in range(k + 1, n):
if matrix[k ][k ] == 0:
print "No se puede realizar por este
método "
break
else:
m = (matrix[i][k] / matrix[k][k])
for j in range(n):
matrix[i][j] = matrix[i][j] - m *
matrix[k][j]

if c == 1:
d = -1.0
else:
d = 1.0
printMatrix(matrix, n, n)
for p in range(n):
d *= matrix[p][p]
print d
else:
print "Solo se aceptan matrices cuadradas"

return

You might also like