برنامه نویسی پیشرفته
بخش اول
(مقدمات زبان C++)
C++
ساختار برنامه در C++
#include <iostream.h>
const pi=3.14
main(){
float r,s,p;
cin>>r;
s=pi*r*r;
cout<<s;
}
برنامه محاسبه مساحت دایره
هر دستور اجرایی به یک سمی کالن ختم می شود.
هربلوک از برنامه با اکولاد باز شروع وبا اکولاد بسته پایان می یابد.
زبان C++بین حروف بزرگ و کوچک تفاوت است وهمچنین کلمات کلیدی با حروف کوچک نوشته می شوند.
نوع داده
اعلان ثابتها
برای تعریف متغییرهایی که در طول برنامه مقدار ثابتی دارند ازکلمه کلیدی constاستفاده می کنیم:
const نام متغییر=مقدار;
اعلان متغییرها
برای اعلان متغییرها درC++به شکل زیر عمل می کنیم:
نوع داده متغییرها ;
دستورات اجرایی
انتساب
انتساب درونی
انتساب زنجیره ای
دستورات خروجی
برای چاپ نتایج وخروجیها می توان از دستورcoutبه شکل زیر استفاده نمود.
cout<<اقلام خروجی;
اگربخواهیم عبارتی عینا درخروجی چاپ شود کافی است انرا عینا داخل گیومه نوشت.
a=6; b=2;
cout<<“a+b=”<<a+b;
دردستور coutمی توان از فرمت های کنترلی به شکل زیر استفاده می کنیم:
cout<<“n this is a t test”;
دستورات ورودی
دستور ورودی برای دریافت داده ها از ورودی مورد استفاده قرار میگرد برای این کار ازدستور cinاستفاده می کنیم شکل کلی این دستور به شکل زیر است
cin>>اقلام ورودی;
برای کمیتهای کاراکتری میتوان از توابع ورودی وخروجی به شکل زیر استفاده نمود:
عملگرهای ریاضی
عملگرهای رابطه ای
عملگرهای منطقی
هر مقدار صفر را میتوان معادل نادرست وهرمقدار غیرصفری را میتوان معادل درست گرفت.
اولویت عملگرها
عملگرهای ترکیبی
عملگر؟
شکل کلی یک عملگر ترکیبی به صورت زیر می باشد
عبارت= عملگر متغییر
دراینجا عملگر می تواند یکی از عملگرهای/,*,-,+,>>,<<,%,^,&,!باشد
شکل کلی این عملگر به صورت زیر میباشد:
عملگر کاما
متغییر=(عبارت 1)?(عبارت 2):(عبارت 3);
دراینجا اگر عبارت 1 درست بود عبارت 2 ودر غیر این صورت عبارت 3اجرا می شود.
این عملگر برای به زنجیر دراوردن چند عملیات مختلف مورداستفاده قرار می گیرد.
عملگرهای بیتی انتقال
عملگر بیتی انتقال به چپ >>
عملگر بیتی انتقال به راست <<
عملگر بیتی انتقال به چپ
این عملگر باعث انتقال بیتهای عملوند متغییر سمت چپ به اندازه تعداد بیت های تعیین شده بوسیله مقدار طرف راست عملگر به سمت چپ می شود.
دراینصورت بیتهای سمت چپ از دست رفته وبیت های خالی سمت راست با صفر پر می شوند.
نگاه دقیقتر به نوع داده
توصیف کننده نوع داده
توصیف کننده signed,unsignedبرای داده های نوع int,char به کار می روند
توصیف کننده unsigned را می توان به همراه short,longبه کار برد.
می توان برای توصیف کننده هااز کلمه کلیدی intاستفاده نکرد.
توصیف کننده short,longبرای داده های int,doubleبه کار می روند.
قالب بندی نوع داده
تبدیل نوع داده درعبارتها
نوع داده یک متغییر را میتوان به طور موقت تغییرداد شکل کلی این عمل به صورت زیرخواهد بود
( متغییر (نوع داده;
قاعده موسوم به ترفیع نوع بدین صورت می باشد که خروجی نهایی هرعبارت ازنوع بزرگترین نوع داده موجود دران عبارت می باشد.
ترفیع نوع فقط درطی ارزیابی ان عبارت موثرمی باشد یعنی متغییر ازنظر فیزیکی بزرگتر نخواهد شد.دراصل کامپایلر کپی موقتی از مقدار ان متغییر تهیه خواهد نمود.
تبدیل نوع داده دردستورات انتساب
اگرسمت چپ دستورانتساب بزرگتر از سمت راست باشد مشکلی ایجادنمی شود.
اگرسمت چپ دستورانتساب کوچکتر از سمت راست باشد مقداری از داده ها گم می شود.
درعمل تبدیل از یک مقدار اعشاری به صحیح قسمت اعشاری عدد حذف میشود.
قاعده کلی در تبدیل نوع از عددصحیح بزرگتر به عدد صحیح کوچکتر ویا از عدد صحیح به کارکتر بدین صورت است که از بیتهای با مرتبه بالاتر کاسته خواهد شد.
رفتار با ثابتها
سرریز وپاریز
به طورپیش فرض کامپایلر یک ثابت عددی را در کوچکترین نوع داده ای که می تواند ان را نگاه دارد ،جای می دهد.
شیوه رفتار با سرریز دربیشتر کامپیوترها این گونه است که قاعده چرخش اتفاق می افتد.بنابراین عددی که پس از بیشترین مقدار می اید ،کمترین مقدار است.
مثلا 10یک int،46000یک unsignedو100001یک longتلقی می شود.
تنها استثنا ثابت های اعشاری هستند که فرض می شود از نوع doubleمی باشند.
درمواردی که درمورد یک ثابت عددی بخواهیم پیش فرض را تغییردهیم می توان با بکار بردن یک پسوند این کارراانجام داد
برای اعداد اعشاری از پسوند FوL استفاده میشود.
برای اعداد صحیح از پسوند UوLاستفاده میشود.
عدد نویسی درمبنای 8و16
C++اجازه می دهد به جای سیستم عدد در مبنای 10از سیستم مبنای 8(octal)ویا 16(hexa)استفاده نمود.
برای مشخص کردن عدد در مبنای 16انرا با0xودر مبنای 8با0شروع نماییم.
همچنین با استفاده از یک هدایت کننده میتوان یک عدد را در مبنای 8ویا16از ورودی دریافت ویا چاپ کرد.این هدایت کننده درفایل سرایند iomanip قرار دارند.
فایلهای سرایند
یک فایل سرایند مجموعه ای از متغییرها ،ثابت ها ،زیربرنامه ها وانواع داده می باشد.
برای استفاده از یک فایل سرایند در برنامه باید ان را قبل از قسمت اجرایی به شکل زیر تعریف نماییم
#include <.نام فایل سرایندh>
نام تعدادی فایل سرایند در زیر امده است
توابع ریاضی
توابع غیرمثلثاتی
توابع مثلثاتی