may be
-------------------------------------------
Manipulate[
Module[{lineEquation, pt = {at, y /. x -> at}},
lineEquation = getSlope[at, y, x];
Plot[{y, lineEquation }, {x, -10, 10}, PlotRange -> {-10, 10},
Epilog -> {Red, PointSize[.02], Point[pt]}]
],
{y, {7 Cos[x], x^2/10, 2*Log[1 + x^2]}},
{{at, 0, "x"}, -10, 10, 1, Appearance -> "Labeled"},
TrackedSymbols :> {y, at},
Initialization :>
(
getSlope[at_, y_, var_] := Module[{slope, h, intercept},
h = y /. var -> at;
slope = D[y, var] /. var -> at;
intercept = h - at*slope;
slope*var + intercept
]
)
]
----------------------------------
--Nasser