Python - Que tengo malo en este programa?

   
Vista:

Que tengo malo en este programa?

Publicado por xleblack santiaguito.533@hotmail.com (2 intervenciones) el 19/10/2016 02:09:13
Hola es que estoy creando un programa con el siguiente enunciado Calcule el coseno del promedio de la raiz cúbica de las areas de los triangulos equilateros de lado 5L siendo L los números múltiplos de 7 comprendidos entre 3713 y 4724 (incluyendo ambos extremos).Escriba la respuesta aproximada a seis (6) cifras decimales.
y este es el codigo que tengo pero no se que tengo malo

1
2
3
4
5
6
7
8
9
10
11
12
13
import math
cont = 0
prom = 0
for l in range (3713,4725):
    if l%7==0:
        L = 5*l
        area = (L*L/2)
        prom += area
        cont += 1
promedio = prom / cont
cos = math.cos(promedio)
cos1 = (cos)**1/3
print (round(cos1,6))

Se supone que me debe dar 0.617103 redondeado a 6 cifras obviamente pero me da 0.22.... y eso que puedo tener malo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Que tengo malo en este programa?

Publicado por xleblack (2 intervenciones) el 19/10/2016 02:40:38
Podia ser lo del area pues la tenia mala,es area = (((L**2)*(3**(0.5)))/4) peor aun me sigue dando malo y hast anegativo el resultado help :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jorge De Los Santos

Que tengo malo en este programa?

Publicado por Jorge De Los Santos (54 intervenciones) el 19/10/2016 04:21:59
Bueno, hay varios errores, primero sobre cómo calcular el área de un triángulo equilátero, seguido porque has interpretado un poco mal el enunciado: la raíz cúbica no se calcula sobre el coseno del promedio de las sumas, si no sobre cada una de las áreas, lo correcto es lo siguiente:

1. Calcular la raíz cúbica de cada área
2. Sumar o acumular todas las áreas
3. Calcular el promedio
4. Calcular el coseno

Es decir, lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
import math
 
cont = 0
area = 0
for l in range (3713,4725):
    if l%7==0:
        L = 5*l
        area += ((math.sqrt(3)/4)*L**2)**(1/3.0)
        cont += 1
 
promedio = area/cont
cos = math.cos(promedio)
print (round(cos,6))


O si prefieres utilizar listas:

1
2
3
4
5
6
7
8
9
10
11
import math
 
areas = []
for l in range (3713,4725):
    if l%7==0:
        L = 5*l
        areas.append(((math.sqrt(3)/4)*L**2)**(1/3.0))
 
promedio = sum(areas)/len(areas)
cos = math.cos(promedio)
print (round(cos,6))



Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar