Ejercicio: 3Eva2016TI_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)