O valor da seguinte expressão numérica é dada por: 100² -99² +98² -97² +96² -95² +94² -93² +...+4² - 3² - 1²

a) 10 00

b) 5 000

c) 20 200

d) 5 050

Reposta com cálculo por favor. Agradeço a todos desde já! ❤️

Respuesta

Y esta es la solución con VBA

Puede llamar la función desde un formulario o desde la ventana de inmediato

Desde la ventana de inmediato sería:

¿

? Nserie(100) --- Retorna 5050

Desde un formulario

El formulario tiene 2 cuadros de texto:

Nro Mayor de la serie (ctlNro)

Resultado (ctlResultado)

Evento Después de actualizar del cuadro de texto ctlNro:

La ventaja con la función es que no necesita definir rangos ni llenar tablas para obtener el resultado y que se puede llamarla desde cualquier parte.

Excelente la respuesta de Gustavo Omar (un saludo) lo que se traduce que al desarrollar la serie obtenemos la siguiente fórmula:

2(n(n+1))-n    

Esto simplifica totalmente la función, aun más no se requiere la función solo reemplazar la n por 50 y listo.

¿

? Nserie2
5050

3 respuestas más de otros expertos

Respuesta
2

Ya lo tienes resuelto de varias maneras con algoritmos, creo que solo te falta la forma matemática...

$$\begin{align}&100^2-99^2+98^2...-1^2=\sum_{i=1}^{50}(2i)^2-\sum_{i=1}^{50}(2i-1)^2=\\&\sum_{i=1}^{50}4i^2-\sum_{i=1}^{50}(4i^2-4i+1)=\\&\sum_{i=1}^{50}4i^2-\sum_{i=1}^{50}4i^2+\sum_{i=1}^{50}4i-\sum_{i=1}^{50}1=\\&4\sum_{i=1}^{50}i-\sum_{i=1}^{50}1= 4 \cdot \frac{50\cdot 51}2-50=5100-50=5050\end{align}$$

Suerte!

Respuesta
1

No dices si tienes que demostrárselo con código VB, si lo de 100, 99 están en una tabla, etc, etc.

En el caso de que fuera en Access, puedes hacerlo de varias formas, pero vamos a suponer que tienes una tabla Tabla1 con Id y Num como

Con ella construyo un formulario, continuo que se ve mejor( pero ya te digo que hay muchas formas en función de lo que tu tengas)

Si pulso el botón

Lo que va a haciendo es recorrer los registros sumando el cuadrado de los impares y restando el cuadrado de los pares. El código del botón es

Private Sub Comando5_Click()
Dim i As Byte
DoCmd.GoToRecord , , acFirst
Resto = (Num) ^ 2
DoCmd.GoToRecord , , acNext
For i = 2 To Me.Recordset.RecordCount
If Me.CurrentRecord Mod 2 = 0 Then
Resto = DLast("resto", "tabla1", "id<" & Me.Id & "") - (Num) ^ 2
Else
Resto = DLast("resto", "tabla1", "id<" & Me.Id & "") + (Num) ^ 2
End If
DoCmd.GoToRecord , , acNext
Next
Resultado = DLast("resto", "tabla1")
End Sub
Respuesta

No sé si exista una fórmula matemática para resolverlo.

El resultado es 5050

En excel podría ser así:

En la columna A desde la celda A1 hasta la celda A100 pon los números del 100 al 1.

En la celda B1 pon la fórmula y copia hacia abajo.

=A1^2*SI(ES.PAR(FILA()),-1,1)

Nota: Cambia la coma ( , ) por punto y coma ( ; ) si la utilizas como separador de argumentos.

En la celda C1 pon la fórmula:

=SUMA(B1:B100)

Te muestro una parte en la siguiente imagen:

Con la fórmula de Omar se reduce todo a:

=4*((50*51)/2)-50

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas