جلسه دوم – توابع ریاضی

16 04 2008

با بررسی یک برنامه با توابع ریاضی آشنا می شویم؛

# include <iosream.h>

# include <math.h>

int main ()

{ double x,y,a,b;

x = 2.536;

y = sin (x);

cout <<”y=”<<y<<endl;

y = cos (x);

cout <<”cos (“<<x<<”)”<<y<<endl;

a = 5.5;

b = log (a);

cout<<”b=”<<b<<endl;

b = log 10 (a);

cout<<”b=”<<b<<endl;

return 0;

}

نکات:

یک – نوع متغیر double مانند float برای معرفی متغیرهای اعشاری به کار می رود با این تفاوت که نسبت به float دارای دقت بیشتری می باشد و عدد را با تعداد رقم اعشاری بیشتری نشان می دهد .

دو – لگاریتم عدد a در مبنای 10 به صورت (log 10 (a در برنامه نوشته می شود و همچنین لگاریتم در مبنای نپر به صورت   (log (a نوشته می شود.

سه – بعضی توابع ریاضی تعریف شده برای کامپایلر عبارتند از:

y = floor (x) (بزرگترین عدد صحیح کوچکتر از عدد)

y = floor (x) (بزرگترین عدد صحیح کوچکتر از عدد)

Sin (x), cos (x), log 10 (x), log (x که درین برنامه مورد استفاده قرار گرفت و

y = e^x –> y = exp (X)

( ^ به معنای توان است که در برنامه به صورت (exp (x در برنامه نوشته می شود.)

y = tan (x)

y = sinh (X)

y = arc sin (x) –> y = a sin (x)

y = arc tan (x) –> y = a tan (x)

y = arc sinh (x) –> y = a sinh (x)

y = x ^ 0.5 (رادیکال) –> y = sqrt (x)

y = |x| (قدر مطلق) –> y = abs (x)

y = a^b (توان) –> y = pow (a,b)

y = ceil (x)(کوچکترین عدد صحیح بزرگتر از عدد)

y = floor (x) (بزرگترین عدد صحیح کوچکتر از عدد)

چهار - برای استفاده از توابع ریاضی شناخته شده برای کامپایلر لازم است در ابتدای برنامه هدِر فایلی را معرفی کنیم که این توابع مثل کتاب های کتابخانه در آنجا قرار دارند و آن هدر فایل <math.h> است.





جلسه اول – ساختار کلی ++c

1 04 2008

امروز میخوام با نوشتن برنامه ای ساده کار رو شروع کنم؛


برای نوشتن هر برنامه ای نیاز به نوشتن تابعی موسوم به
main هست، فرمت این تابع به یکی از صورت های زیر نوشته میشه؛


صورت اول:

int main ( )
{

return (0);
}


صورت دوم:

int main ( ) {

return main (0);
}


چند نکته:

نکته اول: میان پرانتز باز-بسته جلوی main هم میتواند فاصله وجود داشته باشد و هم میتواند وجود نداشته باشد، یعنی نوشتن آن به دو صورت زیر امکان پذیر است:

1. int main()
2. int main( )


نکته دوم: صفر جلوی return هم میتواند داخل پرانتز باشد و هم میتواند بدون پرانتز باشد یعنی:

1. return(0);

2. return 0;

نکته سوم: دستورات و وظایف در بین دو آکلاد، بعد از main و قبل از return نوشته میشوند.

مرحله ی دوم نوشتن برنامه را با معرفی متغیرها ادامه میدهیم؛

int main ()
{

int a=4, b, c, count=0;
float s, sum, average, v=2.5;
b=6;
c=10;
s=8;
float d=3.5;

.
.
.
return 0;
}

درین پنج خط دستور ما متغیرهایی را تعریف و یعضی را مقداردهی کرده ایم؛

در خط اول بعد از main متغیرها از نوع integer یا int یعنی عدد صحیح تعریف شده اند و ما مقدار این متغیرها را باید اعدادی صحیح بدهیم ولی اگر احیاناً اشتباه کنیم و مقدارشان را اعشاری بدهیم ممکن است کامپایلر (مترجم برنامه نویسی به زبان ماشین) به صورت اتوماتیک اعشار را حذف کند، اما ما نباید اشتباه کنیم!

نکته: متغیرها میتوانند در ابتدای برنامه که تعریف میشوند مقداردهی شوند مثل متغیرهای a وv و count یا در ابتدای برنامه تعریف شده و در اثنای برنامه مقداردهی شوند مثل b و c و s . حالت سومی هم وجود دارد آن هم اینکه متغیرها هر جا احتیاج شد تعریف شده و مقداردهی شوند مثل d .

نکته: عباراتی مانند int و float برای کامپایلر شناخته شده هستند لذا لازم است آنها را همانطور که برای کامپایلر شناخته شده است و با همان حروف کوچک بنویسیم اما اسامی که میخواهیم برای متغیرها انتخاب کنیم به دلخواه میتوانیم با حروف کوچک و یا حروف بزرگ بنویسیم!

دوباره برنامه را کامل تر میکنیم؛

1. int main ()
2. {
3. int a=4, b, c, count=0;
4. float s, sum, average, v=2.5;
5. b=6;
6. c=10;
7. s=8;
8. float d=3.5;
9. sum=a+v*s-s/v+a*v-b/s+d;
10. v=6.5;
11. sum=sum+v;
12. average=v/(c+b)+(s*a)/v-(a+b)/(s-v);
.
.
.
return 0;
}

در خط نهم دستورالعملی برای انجام مجموعه ای از اعمال ریاضی روی متغیرها نوشته شده است.

نکته: ترتیب انجام این عملیات و به عبارتی اولویت آنها از بالا به پایین به صورت زیر است ( اعمالی که در یک سطر نوشته شده اند اولویت یکسانی دارند )

پرانتز ( )

* / %
+ -

در خط دهم متغیر v دوباره مقداردهی شده است؛ با این کار در ادامه ی برنامه هر گاه از این متغیر استفاده شود مقدار جدید آن منظور میشود.
در خط یازدهم متغیر مقدار
sum+v در متغیر sum ریخته میشود، در کامپیوتر به این عمل assignment گفته میشود.
در خط دوازدهم نیز مجموعه ای از عملیات ریاضی انجام شده و در متغیر
average ریخته میشود.

برنامه را ادامه میدهیم؛

1. int main ()
2. {
3. int a=4, b, c, count=0;
4. float s, sum, average, v=2.5;
5. b=6;
6. c=10;
7. s=8;
8. float d=3.5;
9. sum=a+v*s-s/v+a*v-b/s+d;
10. v=6.5;
11. sum=sum+v;
12. average=v/(c+b)+(s*a)/v-(a+b)/(s-v);
13. cout <<”FIRST PROGRAM”<<endl;
14. cout<<”s u m =”<<sum<<endl;
15. cout<<”v=”<<v<<”s=”<<s<<endl;

return 0;
}

خروجی برنامه بعد از نوشتن آن در نرم افزار ویژوال سی به صورت زیر خواهد شد:

FIRST PROGRAM
s u m =123.456
v=2.5 s=8

همانطور که با توجه به خروجی مشخص است دستورcout دستوری برای نمایش در صفحه خروجی است؛
اگر بعد از دو نامساوی جلوی cout
داخل گیومه عبارتی را بنویسیم آن عبارت عیناً در خروجی نشان داده میشود و اگر خارج گیومه بنویسیم آخرین مقداری که از متغیر در برنامه داریم در خروجی نشان داده میشود.

آخرین نکته ای که ازین برنامه هنوز ناگفته مونده اینه که؛

هر برنامه ای شامل تعدادی هدر فایل (header file) در خطوط ابتدایی خودش هست که اصطلاحاً مثل کتابخانه ای میمونه که توابع استفاده شده در برنامه ازون جا فراخوانی می شوند، درین برنامه نیاز به هدرفایلی هست که به هدرفایل iostream.h مشهور می باشد؛ که به معنی جریان ورودی و خروجی است و از چند بخش با مفاهیم زیر تشکیل شده است؛

i=input

o=output

stream به معنی جریان

h=header file

پس برنامه ی کامل رو به طور کامل یک بار دیگر در زیر براتون میارم؛

# include <iosream.h>

int main ()
{

int a=4, b, c, count=0;
float s, sum, average, v=2.5;
b=6;
c=10;
s=8;
float d=3.5;
sum=a+v*s-s/v+a*v-b/s+d;
v=6.5;
sum=sum+v;
average=v/(c+b)+(s*a)/v-(a+b)/(s-v);
cout <<”FIRST PROGRAM”<<endl;
cout<<”s u m =”<<sum<<endl;
cout<<”v=”<<v<<”s=”<<s<<endl;

return 0;
}

در حقیقت چیزی که لازم هست بدونیم اینه که تابع main ازین کتابخانه فراخوانی میشود؛ پس در هر برنامه ای که از تابع main استفاده کردیم این هدرفایل رو باید در ابتدای اون به کار ببریم ، یعنی تقریباً همه ی برنامه ها!

برنامه ای که توضیح داده شد برنامه ای بود قابل اجرا در نرم افزار ویژوال استودیو که در پست بعدی کمی در مورد نحوه ی کار با این برنامه هم توضیحاتی خواهم داد.

اگر نکته ی جدیدی به ذهنم رسید بعداً به این پست اضافه خواهم کرد، اگر سوالی داشته باشید هم خوشحال میشم اگر بتونم جوابتونو بدم.

تا پست بعدی خدانگهدار.





سرآغاز سخن

1 04 2008

این وبلاگ را برای آموزش بعضی نرم افزارها و دروس کاربردی رشته های مهندسی به خصوص الکترونیک راه انداختم؛ تا هم دوره ای روی دروس خودم باشه و هم مورداستفاده برای دیگران قرار بگیرد.

اولین آموزشی که برای شروع کار این وبلاگ در نظر گرفتم آموزش برنامه نویسی به زبان c++ هست که امیدوارم به خوبی از عهده اش بربیام. نکته ای که باید اینجا ذکر کنم این هست که بنده هم اکنون مشغول گذراندن واحد برنامه نویسی به همین زبان در کلاس استاد پورپاک هستم؛ پس چون هنوز این واحد رو کاملاً نگذروندم همه ی مباحث رو مسلط نیستم و فقط سعی میکنم درس رو به شیوه ی تدریس استاد برای کسانی که دسترسی به ایشون ندارن درین وبلاگ منعکس کنم و گاهی هم شاید از برداشت های شخصی ام برای درک بهتر کمک بگیرم؛ و اگر شما هم سوالی داشته باشید چون من به استاد دسترسی دارم میتونید سوالتون رو مطرح کنید تا من از ایشون بپرسم.

نکته ی دیگری که لازم به ذکر می باشد این هست که به نظر بسیاری از اساتید کتاببرنامه نویسی و حل مسئله با c++ تالیف نل دیل، چیپ ویمز، مارک هدینگتون و به ترجمه ی دکتر علی معینی و دکتر علی محمد پورپاک و نشر دانشگاه تهران، بهترین منبع برای یادگیری این زبان محسوب میشود و کتابی که استاد برای تدریس ازش استفاده می کنند همین کتاب به ترجمه ی خودشان و در کنارش کتاببرنامه هایی به زبان c++ تالیف پورپاک – معینی ، انتشارات دانشگاه تهران هست.

نرم افزار مورداستفاده برای امتحان برنامه ها را می توانید با نامMicrosoft Visual Studio 6.0پیدا کنید که در جای خود نحوه ی کارکرد با اون رو توضیح خواهم داد.








دنبال‌کردن

هر نوشته‌ی تازه‌ای را در نامه‌دان خود دریافت نمایید.