Re: Interesting problem looking for a solution.

*To*: mathgroup at smc.vnet.net*Subject*: [mg122028] Re: Interesting problem looking for a solution.*From*: "Oleksandr Rasputinov" <oleksandr_rasputinov at hmamail.com>*Date*: Mon, 10 Oct 2011 04:25:36 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <j6rk1f$1nr$1@smc.vnet.net>

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.

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

**Re: Interesting problem looking for a solution.***From:*Murray Eisenberg <murray@math.umass.edu>