PDA

View Full Version : تبدیل یک برنامه سی به بیسیک



zahrashoja
پنج شنبه 21 دی 1391, 22:54 عصر
سلام دوستان
کسی میتونه این کد سی رو به بیسیک تبدیل کنه؟(برنامه انتگرال گیری به روش سیمپسون)
اگه برای کسی امکان داشت سپاسگذارم کمکم کنه
البته بجای تابع (cos(exp(x) میشه تابع ریاضی دیگه ای هم باشه




#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<iomanip.h>

double f(double);
//++++++++++++++++++++++++
int main()
{
double A,B,h,n,xi,RESULT=0;
cout << "Enter A:";
cin >> A;
cout << "Enter B:";
cin >> B;
cout << "Enter h:";
cin >> h;
n=(B-A)/(2*h);
cout << "\nn = " << n <<"\n";

for(int long i=0;i<=(2*n);i++)
{
xi=A+i*h;
if(i==0 || (i==2*n)) RESULT+=f(xi) ;
else if((i%2==0) && (i!=0 || i!=2*n)) RESULT+=2*f(xi);
else if(i%2!=0) RESULT+=4*f(xi);
}
RESULT*=(h/3.0) ;

cout<<"the result is : "<<setw(12)<<setprecision(20)<<RESULT;
getch();
return 0;
}
//++++++++++++++++++++++++++++++++++++++++
double f(double x)
{
return cos(exp(x)) ;
}
//++++++++++++++++++++++++++++++++++++++++

Mr'Jamshidy
جمعه 22 دی 1391, 00:20 صبح
Function FuncMain() As Integer
Dim A, B, h, n, xi, Result As Double
A = InputBox("Enter A", , 0)
B = InputBox("Enter B", , 0)
h = InputBox("Enter h", , 0)
n = (B - A) / (2 * h)
MsgBox "n = " & CStr(n)

For i = 0 To (2 * n)
xi = A + i * h
If ((i = 0) Or (i = (2 * n))) Then
Result = Result + f(xi)
ElseIf (((i Mod 2) = 0) And ((i <> 0) Or (i <> (2 * n)))) Then
Result = Result + (2 * f(xi))
ElseIf ((i Mod 2) <> 0) Then
Result = Result + (4 * f(xi))
End If
Next

Result = Result * (h / 3#)

MsgBox "The Result is : " & Result

End Function


Function f(ByVal x As Double) As Double
f = Cos(Exp(x))
End Function

Private Sub Command1_Click()
FuncMain
End Sub