On Thu, Apr 18, 2013 at 1:06 PM, abdelkader belahcene <abelahc...@gmail.com>wrote:
> Hi everybody, > > I am new to python and I am discovering it. > I know C well, > and want to know if python knows how to manage Pointers > like pointer to function here is a C example how to write it in python > Intergration with trapeze method > > When we write Trapeze ( at the compilation level) we don't know which > functions > Fonc to handle. Here for example we use sin and a user defined F1 > The program is attached too > > #include <stdio.h> > #include <math.h> > > double F1 (double x){ > return x*x; > } > double Trapeze(double Fonc(double ), > double left, double right, double step){ > double X1, X0, Y0, Y1, Z = 0; > for(X0=left; X0 < right ; X0 = X0 + step) { > X1 = X0 + step; > Y1 = Fonc(X1); Y0 = Fonc(X0); > Z += (Y1 + Y0) * step * 0.5; > } > return Z; > } > int main(){ > double y; > y=Trapeze(sin, -2.5, 3.2, 0.1); > printf("\n\tValue for sin is : \t %8.3lf ", y); > y=Trapeze(F1, 0, 3, 0.1); > printf("\n\tValue for F1 is : \t %8.3lf ", y); > return 0; > } > /** > Value for sin is : 0.197 > Value for F1 is : 9.005 > */ > > Python doesn't have pointers, but don't let that bother you. A python version is actually a lot simpler. See below (I didn't bother with getting the print formats just right) -- import math def F1(x): return x*x def Trapeze(f, left, right, step): X0 = left Z = 0.0 while (X0 < right): X1 = X0 + step Y1 = f(X1) Y0 = f(X0) Z += (Y1 + Y0) * step * 0.5 X0 = X1 return Z def main(): y = Trapeze(math.sin, -2.5, 3.2, 0.1) print("Value for sin is:{0} ".format(y)) y = Trapeze(F1, 0, 3, 0.1) print("Value for F1 is {0} ".format(y)) if __name__ == "__main__": main()
-- http://mail.python.org/mailman/listinfo/python-list