Título: Matrices (python)
Publicado por: facu_m en 8 Noviembre 2010, 22:45 pm
hola que tal..soy nuevo en la programacion con python y necesito alguna mano para arrancar con un programa que estoy haciendo..necesito ingresar por teclado la cantidad de filas y de columnas de una matriz..y tratar de lograr que cuando termine de poner los valores de la matriz me tire los valores de las diagonales en caso de que sea una matriz cuadrada.. quedaria algo asi Ej. de caso particular. Cumple con la condicion de ser distintos de cero.
Ingrese la cantidad de filas y columnas: 3 3
Valor[0][0]=3
Valor[0][1]=6
Valor[0][2]=9
Valor[1][0]=12
Valor[1][1]=15
Valor[1][2]=18
Valor[2][0]=1
Valor[2][1]=1
Valor[2][2]=1
Resultados 162 3240 1 (estos resultados vienen del producto de los valores de cada fila..la primera fila es 3, 6, 9 y si los multipliamos da 162..lo mismo para las otrsa filas..) La diagonal secundaria es 9 15 1
desde ya agradezco alguna mano para guiarme un poco..!
Título: Re: matrices (python)
Publicado por: Shell Root en 8 Noviembre 2010, 23:22 pm
Podría ser así, # @ Matriz declaration sMatriz = [[3,6,9], [12,15,18], [1,1,1]] def getMain(pMatriz): # Matriz is params for i in range(0,3): sReturn = 1 for j in range(0,3): sReturn = sReturn * pMatriz[i][j] print " ", sReturn def getSecondary(pMatriz): # Matriz is params for i in range(0,3): sReturn = 1 for j in range(0,3): if (i + j == 1 + 1): print " ", pMatriz[i][j] print "Main" getMain(sMatriz) print "" print "Secondary" getSecondary(sMatriz)
alex@shellroot:~/Escritorio$ python PoC.py Main 162 3240 1
Secondary 9 15 1
Título: Re: matrices (python)
Publicado por: Yeison.Eng en 8 Noviembre 2010, 23:30 pm
Sólo porque no tengo nada que hacer, aquí esta lo que podrías necesitar Suerte, comenta si te sirve (solo copia y pega esto en un editor de python y listo) #! /usr/bin/python #-*- coding: utf-8 -*- #---------------------------------------------------------------------- def Pedir_Tamanio(): filas=raw_input("Cantidad de filas: ") columnas=raw_input("Cantidad de columnas: ") fila=int(filas) columna=int(columnas) return fila, columna #---------------------------------------------------------------------- def Producto_lista(lista): contador=0 producto=1.0 while contador<len(lista): producto*=float(lista[contador]) contador+=1 return producto ######################################################################## class Trabajar_con_matriz: """""" #---------------------------------------------------------------------- def __init__(self, fila, columna): self.fila=fila self.columna=columna #---------------------------------------------------------------------- def Llenar_matriz(self): self.matriz=[] i=0 while i<self.fila: inter_matriz=[] j=0 while j<self.columna: valor=raw_input("Valor [%d][%d]: " %(i, j)) inter_matriz.append(float(valor)) j+=1 i+=1 self.matriz.append(inter_matriz) return True #---------------------------------------------------------------------- def Calcular_productos_por_fila(self): i=0 while i<self.fila: producto=Producto_lista(self.matriz[i]) print "Producto fila %d: %f" %(i+1, producto) i+=1 return True #---------------------------------------------------------------------- def Optener_diagonal_secundaria(self): if self.fila==self.columna: j=self.columna-1 i=0 print "Diagonal inversa:" while j>=0: print self.matriz[i][j] i+=1 j-=1 return True else: print "No es una matriz cuadrada" return False fila, columna =Pedir_Tamanio() Matriz=Trabajar_con_matriz(fila, columna) Matriz.Llenar_matriz() print "\n\n" Matriz.Calcular_productos_por_fila() print "\n\n" Matriz.Optener_diagonal_secundaria() raw_input()
|