Logica de programacion,


SUBMITTED BY: Rodmansito

DATE: April 30, 2024, 11:54 p.m.

FORMAT: Python

SIZE: 2.3 kB

HITS: 353

  1. import random
  2. #Realizar un algoritmo en Java o Python para llenar datos de una matriz de orden n*m con
  3. #números enteros aleatorios de más de dos cifras. Si la matriz es orden cuadrática agregar una
  4. #fila caso contrario agregar una columna. Para obtener los datos de la nueva fila o columna
  5. #considerar los índices de cada posición y todas las posiciones adyacentes, si la suma de los
  6. #índices es par el nuevo dato es la suma de los dígitos pares; caso contrario el nuevo dato es #la
  7. #suma de los dígitos impares. Ordenar la matriz por el método de selección. Imprimir los valores
  8. #de la matriz original y ordenada de manera ascendente. Evaluar el tiempo de ejecución del
  9. #método de ordenamiento con 10 tamaños diferentes de la matriz.
  10. def llenar_matriz(n, m):
  11. matriz = []
  12. for i in range(n):
  13. fila = []
  14. for j in range(m):
  15. num = random.randint(10, 99)
  16. fila.append(num)
  17. matriz.append(fila)
  18. if n == m:
  19. nueva_fila = []
  20. for i in range(m):
  21. nueva_fila.append(0)
  22. matriz.append(nueva_fila)
  23. else:
  24. for fila in matriz:
  25. fila.append(0)
  26. return matriz
  27. def imprimir_matriz(matriz):
  28. for fila in matriz:
  29. print(" ".join(map(str, fila)))
  30. def obtener_valor_valido(matriz, i, j):
  31. if 0 <= i < len(matriz) and 0 <= j < len(matriz[0]):
  32. return matriz[i][j]
  33. return 0
  34. def sumar_impares_adiacentes(matriz):
  35. for i in range(len(matriz)):
  36. for j in range(len(matriz[i])):
  37. if matriz[i][j] == 0:
  38. suma = 0
  39. for x in range(-1, 2):
  40. for y in range(-1, 2):
  41. if x != 0 or y != 0:
  42. valor = obtener_valor_valido(matriz, i+x, j+y)
  43. for dígito in str(valor):
  44. if int(dígito) % 2 != 0:
  45. suma += int(dígito)
  46. matriz[i][j] = suma
  47. return matriz
  48. # Ejemplo de uso
  49. n = 3
  50. m = 3
  51. matriz = llenar_matriz(n, m)
  52. print("Matriz original:")
  53. imprimir_matriz(matriz)
  54. print()
  55. print("Matriz con suma de digitos impares en posiciones adyacentes:")
  56. imprimir_matriz(sumar_impares_adiacentes(matriz))

comments powered by Disqus