Re: Interesting problem looking for a solution.

*To*: mathgroup at smc.vnet.net*Subject*: [mg122075] Re: Interesting problem looking for a solution.*From*: "Oleksandr Rasputinov" <oleksandr_rasputinov at hmamail.com>*Date*: Wed, 12 Oct 2011 03:43:23 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <j6rk1f$1nr$1@smc.vnet.net> <201110100825.EAA15268@smc.vnet.net>

I took it as read that if the function is to be randomly generated, as stated in the original post, then in the actual scenario under discussion there will not exist any cell that shows the explicit definition of f since it will have been arrived at algorithmically. The example given below is just that, and intended to only demonstrate the (possibly useful) behaviour of these attributes. On Tue, 11 Oct 2011 09:23:03 +0100, Murray Eisenberg <murray at math.umass.edu> wrote: > I don't understand why that proposed solution would be satisfactory: the > cell defining f is still there! > > On 10/10/11 4:25 AM, Oleksandr Rasputinov wrote: >> On Sun, 09 Oct 2011 08:55:27 +0100, Church, Gary<churchg at smccd.edu> >> wrote: >> >>> Hello, >>> >>> I have an (I think) interesting problem for you Mathematica gurus. >>> >>> I'm trying to create a worksheet for my students and want to be able to >>> display the plot of a randomly generated function f[x], without them >>> being able to access the expression which defines f; In other words, I >>> don't want them to be able to evaluate f[x]. >>> >>> The idea is that each student will get a different function f[x] and >>> will see a different graph and they have to determine the expression >>> which defines f. They then have to plot the function they think is f >>> against the actual function f[x] and turn in the two plots (or the one >>> plot with the two graphs.) >>> >>> Is this possible? >>> >>> Thanks much, >>> Gary >>> >> >> Much easier than you probably think: >> >> In[1] := >> f[x_?NumericQ] := Sin[7 x] + Cos[3 x]; >> SetAttributes[f, {ReadProtected, Locked}]; >> >> In[3] := >> Plot[f[x], {x, -Pi, Pi}] >> >> Out[3] = >> < Plots normally> >> >> In[4] := >> ??f >> >> Prints: Global`f >> Attributes[f] = {Locked,ReadProtected} >> >> In[5] := >> f[x] >> >> Out[5] >> f[x] >> >> The key elements here are the restriction to numeric values of the >> parameter and the ReadProtected and Locked attributes.

**References**:**Re: Interesting problem looking for a solution.***From:*"Oleksandr Rasputinov" <oleksandr_rasputinov@hmamail.com>