Advertisement
adaptingear

movercuadrantes

Sep 3rd, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.81 KB | None | 0 0
  1. import random
  2. general = [] #DEFINIR ARRAYS MATRIZ GENERAL
  3. p_cuadrante = [] #DEFINIR ARRAYS PRIMER CUADRANTE
  4. s_cuadrante = [] #DEFINIR ARRAYS SEGUNDO CUADRANTE
  5. t_cuadrante = [] #DEFINIR ARRAYS TERCERO CUADRANTE
  6. c_cuadrante = [] #DEFINIR ARRAYS CUARTO CUADRANTE
  7. c = 0 #COLUMNAS
  8. f = 0 #FILAS
  9. par = 1
  10. imp = 1
  11.  
  12. print("----- Creador de matriz -----")
  13. while (par == 1):
  14. f = int(input("Numero de filas: "))
  15. par = f%2 #MODULO PARA SABER SI ES PAR (SI DA0 ES PAR EJ: 2/2 RECIDUO: 0)
  16. if (par==1):
  17. print("Error: Solo numeros PARES") #SI EL RECIDULO DA 1 ERROR
  18.  
  19. while (imp == 1):
  20. c = int(input("Numero de columnas: "))
  21. imp = c%2 #MODULO PARA SABER SI ES PAR (SI DA0 ES PAR EJ: 2/2 RECIDUO: 0)
  22. if (imp==1):
  23. print("Error: Solo numeros PARES") #SI EL RECIDULO DA 1 ERROR
  24.  
  25.  
  26. def generar_matriz(): #FUNCION PARA GENERAR MATRIZ
  27. for i in range (f):
  28. general.append([0]*c) #MULTIPLICO F VECES EL NUMERO PARA GENERAR U CASILLAS
  29. for j in range(c):
  30. general[i][j] = random.randrange(10) #GENERA NUMERO ALEATOREO PARA RELLENAR
  31.  
  32. def imprimir_matriz():
  33. for i in range (c):
  34. print(general[i], "\n") #IMPRIME POR FILAS
  35.  
  36. def primer_cuadrante():
  37. fc1 = f//2
  38. cc1 = c//2
  39. for i in range(fc1):
  40. p_cuadrante.append([0]*fc1)
  41. for j in range(cc1):
  42. p_cuadrante[i][j] = general[i][fc1+j] #SE AGREGA NORAML PERO EN GENERAL SE MUEVE LA CASILLA POR COLUMNA YA QUE SE MUEVE A UN LADO
  43. return p_cuadrante[:]
  44.  
  45. def segundo_cuadrante():
  46. fc1 = f//2 #DIVICION ENTERA PARA OBTENER LA MITAD
  47. cc1 = c//2 #DIVICION ENTERA PARA OBTENER LA MITAD
  48. for i in range(fc1):
  49. s_cuadrante.append([0]*fc1) #SE CREA LA FILA F VECES EN LA LISTA "p_cuadrante"
  50. for j in range(cc1):
  51. s_cuadrante[i][j] = general[i][j] #SE AGREGA LOS VALORES DE LA MATRIZ GENERAL A p_cuadrante
  52. return s_cuadrante
  53.  
  54. def tercer_cuadrante():
  55. fc1 = f//2
  56. cc1 = c//2
  57. for i in range(fc1):
  58. t_cuadrante.append([0]*fc1)
  59. for j in range(cc1):
  60. t_cuadrante[i][j] = general[cc1+i][j] #SE AGREGA NORAML PERO EN GENERAL SE MUEVE LA CASILLA POR FILA YA QUE SE MUEVE HACIA ABAJO
  61. return t_cuadrante
  62.  
  63. def cuarto_cuadrante():
  64. fc1 = f//2
  65. cc1 = c//2
  66. for i in range(fc1):
  67. c_cuadrante.append([0]*fc1)
  68. for j in range(cc1):
  69. c_cuadrante[i][j] = general[cc1+i][fc1+j] #SE AGREGA NORAML PERO EN GENERAL SE MUEVE LA CASILLA POR FILA YA QUE SE MUEVE HACIA ABAJO Y SE MUEVE CASILLA A EL LADO
  70. return c_cuadrante
  71.  
  72. generar_matriz() #SE LLAMAN LAS FUNCIONES
  73. imprimir_matriz() #SE LLAMAN LAS FUNCIONES
  74. primer_cuadrante() #SE LLAMAN LAS FUNCIONES
  75. segundo_cuadrante() #SE LLAMAN LAS FUNCIONES
  76. tercer_cuadrante() #SE LLAMAN LAS FUNCIONES
  77. cuarto_cuadrante() #SE LLAMAN LAS FUNCIONES
  78.  
  79.  
  80. cu = 100
  81. #si elije 1 cuadrante--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  82. while (cu != 0):
  83. print("Escriba '0' para cerrar el programa")
  84. cu = int(input("Que cuadrante desea mover: "))
  85. if(cu == 1):
  86. m = int(input("Mover a: "))
  87. if (cu == m):
  88. print("Error: No se pude cambiar a el mismo")
  89. if(m == 1):
  90. fc1 = f//2
  91. cc1 = c//2
  92. for i in range (fc1):
  93. for j in range (cc1):
  94. general[i][j] = s_cuadrante[i][j]
  95. general[i][cc1 + j] = p_cuadrante[i][j]
  96. for i in range (c):
  97. print(general[i], "\n")
  98. elif (m==3):
  99. fc1 = f//2
  100. cc1 = c//2
  101. for i in range (fc1):
  102. for j in range (cc1):
  103. general[i][cc1 + j] = t_cuadrante[i][j]
  104. general[fc1 + i][j] = p_cuadrante[i][j]
  105. for i in range (c):
  106. print(general[i], "\n")
  107. elif (m ==4):
  108. fc1 = f//2
  109. cc1 = c//2
  110. for i in range (fc1):
  111. for j in range (cc1):
  112. general[i][cc1 + j] = c_cuadrante[i][j]
  113. general[fc1 + i][cc1 + j] = p_cuadrante[i][j]
  114. for i in range (c):
  115. print(general[i], "\n")
  116. #si elije 2 cuadrante--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  117. elif (cu == 2):
  118. m = int(input("Mover a: "))
  119. if (cu == m):
  120. print("Error: No se pude cambiar a el mismo")
  121. if(m == 2):
  122. fc1 = f//2
  123. cc1 = c//2
  124. for i in range (fc1):
  125. for j in range (cc1):
  126. general[i][j] = s_cuadrante[i][j]
  127. general[i][cc1 + j] = p_cuadrante[i][j]
  128. for i in range (c):
  129. print(general[i], "\n")
  130. elif (m==3):
  131. fc1 = f//2
  132. cc1 = c//2
  133. for i in range (fc1):
  134. for j in range (cc1):
  135. general[i][j] = t_cuadrante[i][j]
  136. general[fc1 + i][j] = s_cuadrante[i][j]
  137. for i in range (c):
  138. print(general[i], "\n")
  139. elif (m ==4):
  140. fc1 = f//2
  141. cc1 = c//2
  142. for i in range (fc1):
  143. for j in range (cc1):
  144. general[i][j] = c_cuadrante[i][j]
  145. general[fc1 + i][cc1 + j] = s_cuadrante[i][j]
  146. for i in range (c):
  147. print(general[i], "\n")
  148.  
  149. #si elije 3 cuadrante--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  150. elif (cu == 3):
  151. m = int(input("A que cuadrante desea mover: "))
  152. if (cu == m):
  153. print("Error: No se pude cambiar a el mismo")
  154. if(m == 1):
  155. fc1 = f//2
  156. cc1 = c//2
  157. for i in range (fc1):
  158. for j in range (cc1):
  159. general[i][j] = t_cuadrante[i][j]
  160. general[fc1 + i][j] = p_cuadrante[i][j]
  161. for i in range (c):
  162. print(general[i], "\n")
  163. elif (m==2):
  164. fc1 = f//2
  165. cc1 = c//2
  166. for i in range (fc1):
  167. for j in range (cc1):
  168. general[i][cc1 + j] = t_cuadrante[i][j]
  169. general[fc1 + i][j] = s_cuadrante[i][j]
  170. for i in range (c):
  171. print(general[i], "\n")
  172. elif (m ==4):
  173. fc1 = f//2
  174. cc1 = c//2
  175. for i in range (fc1):
  176. for j in range (cc1):
  177. general[fc1 + i][j] = c_cuadrante[i][j]
  178. general[fc1 + i][cc1 + j] = t_cuadrante[i][j]
  179. for i in range (c):
  180. print(general[i], "\n")
  181. #si elije 4 cuadrante--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  182. elif (cu == 4):
  183. m = int(input("A que cuadrante desea mover: "))
  184. if (cu == m):
  185. print("Error: No se pude cambiar a el mismo")
  186. if(m == 1):
  187. fc1 = f//2
  188. cc1 = c//2
  189. for i in range (fc1):
  190. for j in range (cc1):
  191. general[i][j] = c_cuadrante[i][j]
  192. general[fc1 + i][cc1 + j] = p_cuadrante[i][j]
  193. for i in range (c):
  194. print(general[i], "\n")
  195. elif (m==2):
  196. fc1 = f//2
  197. cc1 = c//2
  198. for i in range (fc1):
  199. for j in range (cc1):
  200. general[i][cc1 + j] = c_cuadrante[i][j]
  201. general[fc1 + i][cc1 + j] = s_cuadrante[i][j]
  202. for i in range (c):
  203. print(general[i], "\n")
  204. elif (m ==3):
  205. fc1 = f//2
  206. cc1 = c//2
  207. for i in range (fc1):
  208. for j in range (cc1):
  209. general[fc1 + i][j] = c_cuadrante[i][j]
  210. general[fc1 + i][cc1 + j] = t_cuadrante[i][j]
  211. for i in range (c):
  212. print(general[i], "\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement