لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 24
SATURDAY, APRIL 14, 2007
Visual C++
بسم الله الرحمن الرحیم
به وبلاگ آموزش Visual C++ خوش آمدید. در این وبلاگ سعی شده با ارائه مثالهای کاربردی به ارتقای سطح علمی برنامه نویسان C++ کمک شود. لازم به تذکر است برای استفاده از مطالب این وبلاگ باید آشنایی قبلی با برنامه نویسی C++ و MFC داشته باشید.
توجه : چنانچه قسمتی از کد بریده شده بود اندازه متن صفحه را کوچک کنید.
<!-- [if !supportLists]-->1- <!--[endif]--> ریاضیات و ++C
<!-- [if !supportLists]-->
آیا عدد N جزو سری اعداد فیبوناچی است یا خیر
تعیین تعداد N باکتری تولید شده از N باکتری اولیه در N دقیقه
تبدیل رادیان به درجه ، گراد و بالعکس
توزیع دو جمله ای در آمار
تشخیص اینکه ایا عددی اعشاری هست یا خیر
محاسبه ریشه های معادله دو مجهولی با استفاده از اشاره گرها
محاسبه فاکتوریل یک عدد
محاسبه ریشه (رادیکال) یک عدد با فرجه ای غیر از ۲
کار با توابع مثلثاتی
منحنی نرمال
تشخیص اینکه آیا عددی کامل است یا خیر
محاسبه تعداد صفرها بین ممیز و اولین عدد غیر صفر در اعداد کوچکتر از یک
تشخیص کبیسه بودن سال میلادی
تشخیص اینکه ایا عددی اول است یا خیر
توزیع پواسون
محاسبه تعداد ارقام یک عدد
محاسبه لگاریتم در مبنایی غیر از ۱۰
یافتن Nامین عدد فیبوناچی
محاسبه تعداد ذره جرم معینی از یک ماده
نکته : برای استفاده از توابع ریاضی تعریف شده در Visual C++ مانند لگاریتم حتما فایل هدر #include "math.h" و در Visual C++.Net فایل #include "cmath.h" به فسمت فایل های هدردر فایل اصلی پروژه که دارای پسوند(*.CPP) می باشد، اضافه کنید.فایل اصلی پروژه فایلی است که کدهای برنامه را در آن می نویسید و به صورت (View.CPPنام برنامه یا Dlg.Cppنام برنامه) می باشد. نام CMathDlg نام فرضی است که برای پروژه انتخاب کردم.
توصیه می کنم برای اطلاع از توابع ریاضی به فایل math.h یا cmath.h مراجعه کنید.
تشخیص اینکه ایا عددی اعشاری هست یا خیر
در Visual C++ تابعی به نام modf وجود دارد که قسمت صحیح و اعشاری عدد را در صورت وجود بر می گرداند. پس برای تشخیص اعشاری بودن یا نبودن یک عدد تابعی به نام IsFloatNumber(double Number) و از نوع BOOL ایجاد و کد زیر را در آن بنویسید:
BOOL CMathDlg::IsFloatNumber(double Number)
{
BOOL bFloat=FALSE;
double FloatPart=0,IntPart=0;
FloatPart=modf(Number,&IntPart);
if(FloatPart!=0)
{
bFloat=TRUE;
}
return bFloat;
}
در کد بالا چنانچه قسمت اعشاری عدد برابر با صفر گردد تابع مقدار ۱ یعنی TRUE را بر می گرداند. همانطور که در قسمت قبل توضیح دادم متغیر IntPart مقدار قسمت صحیح عدد را در خود نگه می دارد.
توزیع دو جمله ای در آمار
در علم احتمالات ، احتمال واقع شدن دقیقا k پیروزی در n آزمایش تکراری به وسیله رابطه زیر نشان داده می شود:
P(k)=C(n,k)Pkqn-k
q احتمال شکست و برابر با q=1-P می باشد. عبارت C(n,k) ترکیب نام دارد. برای محاسبه ترکیب و توزیع دو جمله ای باید دو تابع جداگانه بنویسیم. ابتدا تابعی برای ترکیب به نام Combination(long n,long k) و از نوع long ایجاد و کد زیر را در آن تایپ می کنم:
long CMathDlg::Combination(long n,long k)
{
long r=0;
r=n-k;
return (Factorial(n))/Factorial(k)*Factorial(r);
}
تابع فاکتوریل را در قسمت فاکتوریل عدد توضیح دادم. حال برای محاسبه توزیع دو جمله ای تابعی به نام
Pk(long n,long k,double P) واز نوع double ایجاد کنید و کد زیر را در آن تایپ کنید:
double CMathDlg::Pk(long n, long k, double P)
{
double q=1-P;
return (double)Combination(n,k)*(pow(P,k))*(pow(q,(n-k)));
}
مثالی رادر این زمینه حل می کنیم.
خانواده ای دارای ۶ فرزند است. احتمال اینکه ۲ تا پسر و ۴ تا دختر باشد چقدر است.
چون احتمال پسر یا دختر بودن 1/2 است بنابراین n=6،k=2، P=1/2،q=1-P می باشد. پس اگر مقدار ها را به جای پارامتر تابع قرار دهید خواهید دید که جواب برابر با 0.234375 می باشد.
تعیین تعداد N باکتری تولید شده از N باکتری اولیه در N دقیقه
در این مثال محاسبه می کنیم که از چند باکتری بعد از مدت معینی چقدر باکتری تولید خواهد شد. برای این کار تابعی به نام
BacteriaGrowth(long nPrime, long reGenerationTime, long Period, BOOL bMinute) و از نوع double ایجاد کنید. سپس کد زیر را در آن تایپ کنید:
double CMathDlg::BacteriaGrowth(long nPrime, long reGenerationTime, long Period, BOOL bMinute)
{
تحقیق درباره ی فرمول