[ Foro de Pascal ]

ejercicio en curso (funciones)

15-Jun-2009 22:40
e o
5 Respuestas

hola, ay un ejercicio en el curso de funciones que propone: "crear una funcion que calcule una potencia aceptando numeros reales, que pueda calcular por ejemplo 3.1 ^ 1.7" o el de "crear una funcion que calcule una raiz cubica de un numero", que pus es practicamente lo mismo.
el problema es que no tengo idea de por donde empesar pa crear la funcion, y no creo que la intension sea la de usar funciones prediseñadas en pascal (como seno), donde empieso? gracias


16-Jun-2009 03:30
alfredo mercado

mira hay varias maneras de encarar este problema,fijate que las potencias,son mas que mada multiplicaciones sucesivas:por ejemplo 2^3=2*2*2=8,fijate como te podes idear una funcion que calcule las potencias que vos queres,pero con este dato creo que ya tenes la mitad de tu funcion casi hecha!saludos!!
18-Jun-2009 20:36
Nacho Cabanes (+84)

Alfredo te comenta una forma de calcular potencias mediante multiplicaciones sucesivas. Esto sirve si el exponente es un número entero.

Si quieres elevar un número real a otro número real, como el 3.1 ^ 1.7 que tú dices, este sistema se queda corto, y tienes que usar la función "potencia" (si existe) o exponenciales.

Si usas una versión de Pascal moderna, como Free Pascal, podrías hacer

resultado := power(3.1, 1.7)

Si usas una versión más antigua de Pascal, que no tenga esta función, podrías imitarla con exponenciales y logaritmos, así:

resultado := exp(1.7*ln(3.1))

En general sería: exp(potencia*ln(base))

Para hallar raíces cúbicas, elevaríamos a la potencia 1/3.


07-Nov-2009 21:47
e o

ola de nuevo, muchas gracias a ambos por su ayuda, y pus aora tamos de vuelta aqui con dos nuevas dudas:
bueno, no se si ya lo an dicho antes o en algun otro lugar, pero abiendo pansado un buen tiempo, algunas paginas de cursos muestran simbolos extraños como por ejemplo ÄÄÄÄÄÄÄÄÄÄ, tanto en algunos temas del curso de turbo pascual como en otros, cuando antes todo se veia bien... no se si tiene que ver algo con la codificasion del navegador pero no creo porque el tipo de codificasion no lo emos cambiado desde ese tiempo...

la otra duda era acerca de la lectura de matrises en turbo pascual, tieniendo por ejemplo una matriz : array[1..5, 1..5] of integer declarada y a la ora de ponerlo en 2 fors pa empesar a leer datos, los fors estan asi:

for i:=0 to 4 do
begin
 for j:=0 to 4 do
 begin
   write('meter el valor ', i+1, ', ', j+1, ':');
   read(matriz[i, j]);
 end;
end;

sin embargo a la ora de ejecutar, avienta error tanto en turbo pascual 6, 7 y free pascual. creo que el error esta en que los contadores empiesan desde 0 en ves de desde 1, pero no se donde vi que empesaban en 0 y funcionaba... tambien en c empiesan desde 0, o no? ajajajajajajaj

bueno gracias


13-Nov-2009 20:12
Antonio P.G.

Hola,

Fíjate en los índices de la matriz. Los has definido desde 1 hasta 5, y desde 1 hasta 5.

Sin embargo, luego dice "read ( matriz [i,j] );". El primer elemento que leerá entonces será el "matriz [0,0]", que es lo que vale la "i" y la "j", pero eso no lo entiende porque la matriz no cuenta con un íncice cero.

Por ello, lo más conveniente como solución para tu programa sería escribir " read ( matriz [i+1,j+1] );".

¿Entendiste la explicación?

¡Saludos!


15-Nov-2009 00:31
e o

si asi es, muchas gracias por su ayuda, el error ya no sale






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)