Función mientras

Función mientras

de Pedro Numa Rodriguez Caraballo -
Número de respuestas: 7

Hola a todos. 

¿Existe alguna función "mientras"?.

 Que ejecute una determinada acción mientras una variable no llegue a cierto valor.

En respuesta a Pedro Numa Rodriguez Caraballo

Re: Función mientras

de Sylvia da Rosa -
MateFun es un lenguaje funcional, eso significa entre otras cosas, que la repetición se implementa por medio de la recursión, al igual que en matemática. Ver ejemplos de funciones recursivas en el manual.
Si estás trabajando algún problema concreto podemos verlo ahí.
En respuesta a Sylvia da Rosa

Re: Función mientras

de Pedro Numa Rodriguez Caraballo -
Problema de las pastillas de penicilina.
Para calcular la cantidad de pastillas que se deben vender, como mínimo, para tener una ganancia de $ 4000.
Lo resolví de la siguiente manera:
{- m es la ganancia que se desea obtener; i es una variable que irá aumentando de a 1 hasta que se llegue a una cantidad que supere la ganancia esparada, a la variable i hay que darle el valor 1 al comenzar-}

cuantaspastillas:: R X R->R
cuantaspastillas(m,i)=i si i*0.75>=m
o cuantaspastillas(m,i+1)
El problema es que debo asignarle el valor 1 a i para que funcione. Creo que debo crear otra función que llamaré contador (que comience en el 1 y aumente de uno en uno la variable i)
En respuesta a Pedro Numa Rodriguez Caraballo

Re: Función mientras

de Pedro Numa Rodriguez Caraballo -
No me voy a complicar con crear el contador porque con la función "cuantaspastillas" se resuelve el problema.
En respuesta a Pedro Numa Rodriguez Caraballo

Re: Función mientras

de Sylvia da Rosa -
Lo solucionas al aplicar la función en el intérprete:

>cuantaspastillas(4000,1)
>5334

La cantidad de pastillas no pertenece a R, ¿no?
Habría que plantear y solucionar el subproblema para obtener el 0.75. 

En respuesta a Sylvia da Rosa

Re: Función mientras

de Pedro Numa Rodriguez Caraballo -
Hola Sylvia.
La cantidad de pastillas no pertenece a R, ¿no?.
No, aunque aún no tengo bien claro lo que mencionaste sobre N incluido en R o no.
Luego de ir resolviendo algunos ejercicios he notado que, por ejemplo, a 6 para que lo tome como real en una secuencia debo escribirlo 6.0.

Habría que plantear y solucionar el subproblema para obtener el 0.75.
Sí, al comienzo del ejercicio cree una función que calcula el precio de cada pastilla.
En respuesta a Pedro Numa Rodriguez Caraballo

Re: Función mientras

de Sylvia da Rosa -

Sí, efectivamente, no es lo mismo el natural 6 que el real 6.0. Lo vemos en el encuentro.

Con respecto a los subproblemas, el enfoque para plantear y resolver problemas algorítmicos incluye que los subproblemas sean especificados claramente, con sus tipos de entrada y de salida también. O sea, no solo resolverlo sino plantear que hay un subproblema. Si se hace directamente en MateFun, el planteamiento se pone como comentario y se resuelve como función.