Ejercicio: 3Eva_IT2016_T2 sensar cultivos con dron
Propuesta de solución en Python:
# CCPG1001-Fundamentos de Programación - FIEC-ESPOL # 3Eva_IT2016_T2 sensar cultivos con dron import numpy as np import random as rnd def sensarCultivos(posicion): # Solo para generar una matriz que # permita trabajar con el programa valor = int(rnd.random()*10+1) return(valor) def generarplantacion(dimension): n = dimension[0] m = dimension[1] plantacion = np.zeros(shape=(n,m),dtype=int) i = 0 while not(i>=n): j = 0 while not(j>=m): posicion = [i,j] valor = sensarCultivos(posicion) plantacion[i,j] = valor j = j + 1 i = i + 1 return(plantacion) # usa matriz densidad de 1 y 0 para facilitar # el cálculo del literal c def analizarDensidad(plantacion, limite): tamano = np.shape(plantacion) n = tamano[0] m = tamano[1] densidad = np.zeros(shape=(n,m),dtype=int) resultado = [] i = 0 while not(i>=n): fila = [] j = 0 while not(j>=m): if (plantacion[i,j]>=limite): densidad[i,j]=1 fila.append('ALTO') else: fila.append('Bajo') j = j + 1 resultado.append(fila) i = i + 1 return(densidad) def reporteCrecimento(plantacion,densidad): tamano = np.shape(plantacion) n = tamano[0] m = tamano[1] casillas = n*m sumaALTO = 0 sumaBAJO = 0 i = 0 while not(i>=n): j = 0 while not(j>=m): valor = plantacion[i,j] if (densidad[i,j]==1): sumaALTO = sumaALTO + valor else: sumaBAJO = sumaBAJO + valor j = j + 1 i = i + 1 prmALTO = sumaALTO/(np.sum(densidad)) prmBAJO = sumaBAJO/(n*m-np.sum(densidad)) promedio = [prmALTO,prmBAJO] return(promedio)
crear un archivo de funciones para importar si las funciones se crean en otro archivo.
# CCPG1001-Fundamentos de Programación - FIEC-ESPOL import dronescultivos as dron # PROGRAMA # INGRESO , usa datos aleatorios como prueba dimension = (3,4) plantacion = dron.generarplantacion(dimension) #PROCEDIMIENTO limite = 4 densidad = dron.analizarDensidad(plantacion, limite) reporte = dron.reporteCrecimento(plantacion,densidad) #SALIDA print(plantacion) print(densidad) print(reporte)