Negarsoft’s

آگوست 10, 2008

آشنایی با زبان c++

Filed under: طراحی و پیاده سازی — negarsoft @ 7:47 ق.ظ.

آشنایی با زبان C++:

C++ از C گرفته شده است و خود C نیز  از دو زبان برنامه نویسی BCPL و B مشتق شده است.C++ که تعمیمی از زبان C است در اوایل دهه 1980 توسط بی یارنه استراس تروپ دانمارکی در آزمایشگاههای بل طراحی شد. C++ حاوی ویژگی های متعددی است که باعث زیبایی بیشتر زبان C شده است اما مهم تر از این ها ، افزون قابلیت های برنامه نویسی شی گرا به زبان c است.c++ زبانی دورگه (پیوندی) است. برنامه ای که با این زبان نوشته می شود به صورت زبان C یا به صورت شی گرا یا به هر دو صورت امکان پذیر است.

برنامه های  c++  از قطعاتی به نام کلاس ها ( یا رده ها ) و توابع تشکیل می شوند. اکثر برنامه نویسان c++ از مزایای مجموعه غنی ای از کلاس ها و توابع موجود در کتابخانه استاندارد c++ استفاده می کنند.

سیستم های c++  معمولا از چند قسمت تشکیل می شوند که عبارتند از محیط طراحی و تولید برنامه ، زبان و کتاب خانه استاندارد c++ .

یک نمونه از محیط برنامه نویسی c++  در زیر توضیح داده شده است:

  1. برنامه ها در ویرایش گر نوشته شده و در دیسک ذخیره می شوند.
  2. برنامه پیش پردازنده، دستور ها را پردازش می کند.
  3. کامپایلر کد مقصد (OBJ) ایجاد می کند و آن را در دیسک ذخیره می کند.
  4. پیوند دهنده ، کد مقصد را به کتابخانه پیوند می دهد و یک فایل a.out ایجاد می کند و آن را در دیسک ذخیره می کند.
  5. بار کننده برنامه را در حافظه قرار می دهد.
  6. cpu هر یک از دستورات را دریافت می کند و آن را اجرا می نماید و احتمالا برای اجرای برنامه، مقادیر جدید را در حافظه ذخیره می کند.

معمولا برنامه  های c++ برای اجرا از شش مرحله مختلف عبور می کنند که عبارتند از: ویرایش(نوشتن)، پیش پردازش، کامپایل، پیوند بارگذاری در حافظه و اجرا.

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

مرحله بعدی پیوند دان برنامه است . معمولا برنامه های c++ حاوی ارجاع هایی به توابع تعریف شده در جاهای دیگر نظیر کتاب خانه های استاندارد یا کتاب خانه های خصوصی گروهی از برنامه نویسان هستند که روی یک پروژه خاص کار می کنند.برنامه مقصد تولید شده توسط کامپایلر C++ ، معمولا حاوی حفره هایی برای این قسمت های مفقد شده است . پیوند دهنده ، برنامه مقصد را با برنامه توابع مفقود شده پیوند می زند تا یک تصویر اجرایی (بدون هیچ قطعه نوشته نشده ) ایجاد کند.

مرحله بعدی بارگذاری برنامه در حافظه است . قبل از آنکه بتوان یک برنامه را اجرا کرد ، ابتدا باید آن را در حافظه قرار داد. این کار توسط بار کننده انجام می شود که تصویر اجرایی را از دیسک گرفته و آن را به حافظه منتقل می کند.

در پایان ، کامپیوتر زیر نظر cpu برنامه را دستور به دستور اجرا می کند.

بیشتر برنامه های c++ با ورود و خروج داده ها سر و کار دارند.توابع معینی از c++ ورودی خود را از طریق cin دریافت می کنند که معمولا صفحه کلید است اما cin می تواند در ارتباط با یک دستگاه  دیگر قرار داشته باشد.غالبا داده ها از طریق cout در خروجی چاپ می شوند که معمولا خروجی صفحه نمایش کامپیوتر است اما cout می تواند در ارتباط با یک دستگاه دیگر قرار داشته باشد.علاوه بر این ، جریان خطای استاندارد cerr نام دارد . جریان cerr برای نمایش پیغام های خطا به کار می رود.

انواع داده اولیه

تمام متغیر ها در یک برنامه c++ باید قبل از استفاده اعلان شوند. شناسه های c++ دنباله ای از یک یا چند کاراکتر است که حرف، رقم و کاراکتر زیر واژه(_)  تشکیل می شود.شناسه نمی تواند با رقم شروع شود.شناسه های c++ مس توانند هر طول دلخواهی داشته باشند اما بعضی از سیستم ها و نسخه ها ی c++ ممکن است محدودیت هایی برای طول شناسه داشته باشند.

c++ بین حروف کوچک و بزرگ تفاوت قائل است.کاراکتر ها بین کوتیشن قرار می گیرند. کاراکتر /n انتهای خط رامشخص می کند و نماد تهی است و در پردازش رشته ها کاربرد دارد.کدهای کاراکتر ASCI می توانند با کد های عددی مشخص شوند.

هر متغیر ذخیره شده در کامپیوتر دارای نام، مقدار، نوع داده، و اندازه (طول) است.

اعداد اعشاری می توانند با نقطه ممیز یا به صورت توان باشند.

  • انواع داده عددی

نوع صحیح به شکل های گوناگونی وجود دارد

 

شش نوع عدد صحيح در C++ وجود دارد كه در ميزان حافظه و محدوده مقادير با هم متفاوتند. اين شش نوع عبارتند از:

 

نوع

محدوده مقادير

حافظه اشغالي

short

-32768 تا 32767

2 byte

int

-2147483648 تا 2147483647

4 byte

long

-2147483648 تا 2147483647

4 byte

unsigned short

0 تا 65535

2 byte

unsigned int

0 تا 4294967295

4 byte

unsigned long

0 تا 4294967295

4 byte

  • نوع كاراكتري:

 يك كاراكتر يك حرف يا عدد يا نشانه است.

براي معرفي يك متغير كاراكتري به صورت زير عمل مي كنيم:

char name = ‹value›;

  • نوع منطقي (boolean):

 از اين نوع براي نگهداري مقادير عبارات منطقي استفاده مي شود. عبارات منطقي يا درست (true) است و يا نادرست (false). در استفاده از نوع منطقي از مقادير true و false استفاده مي شود ولي در خروجي برنامه بجاي true عدد 0 و بجاي false عدد 1 چاپ مي شود و در حافظه همين اعداد ذخيره مي گردند.

  • نوع شمارشي:

نوع شمارشي نوعي است كه بنا بر نياز برنامه نويس ايجاد مي شود. اين نوع نيز از انواع صحيح است .براي ساخت يك نوع شمارشي به شكل زير عمل مي كنيم:

enum typename{ enumerator-list };

كلمه كليدي enum براي ايجاد نوع جديد استفاده مي شود. typename اسمي است كه براي نوع جديد در نظر گرفته مي شود. enumerous-list مجموعه مقادير اين نوع است.

  • نوع مميز شناور:

همان نوع اعشاري است.اين نوع محدوده بزرگي از اعداد را شامل مي شود. 3 نوع اعشاري وجود دارد كه از نظر ميزان حافظه و محدوده مقادير با هم متفاوتند.

 

نوع

حافظه اشغالي

float

4 byte

double

8 byte

Long double

8يا  12 يا 16 byte

اعداد اعشاري به دو صورت نمايش داده مي شوند:

1.       شكل ساده مانند عدد 182.54

2.       نماد علمي كه بصورت يك عدد بين 1 تا 10 ضربدر توان صحيحي از 10 نمايش داده مي شود.مانند:

 

عدد

نمايش در كامپيوتر

-0.00000000123

-1.23 e -9

1230000000

1.23 e 9

اشاره گر ها:

اشاره گر ها مانند سایر متغیر ها باید قبل از استفاده اعلان شوند:

Int     *countptr;

باید قبل از هر متغیری که از نوع اشاره گر اعلان شده است یک ستاره قرار دهید.یک اشاره گر می تواند مقدار اولیه 0 یا null  یک آدرس را بگیرد.در این صورت به جایی اشاره نمی کند.

عملگر & یا عملگر آدرس ، عملگر یگانی است که آدرس عملوند خود را بر می گرداند.

 

آرایه ها:

نام آرایه ها از همان قوانین نامگذاری متغیر های دیگر پیروی می کند.اندیس آرایه های یک بعدی از صفر شروع می شود.

DataType arrayName[size of array];

رشته ها در c++ به صورت آرایه ای از کاراکتر ها ذخیره می شوند که با به پایان می رند.

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

 

 

کلاس ها

  • کلاس ها به صورت فایل هایی با پسوند «h» ذخیره می شوند.و برای استفاده از آنها در برنامه باید آنها را ضمیمه کنید.

در c++ هر برنامه با یک کد پیش پردازنده شروع می شود.مانند:

#include <iostream.h>

خطوطی که با # شروع می شوند قبل از کامپایل برنامه توسط پیش پردازنده پردازش می شوند.این خطوط خاص به پیش پردازنده می گویند در برنامه محتوای سر فایل جریان ورودی/خروجی یعنی iostream.h را قرار دهد.

در داخل کلاس دو مسئله تعیین می شود:

1-     متغیر های لازم.

2-     توابع مورد نیاز.

در مورد تعریف متغیر ها باید گفت که همانند تعریف متغیر در برنامه نویسی غیر شی گرا می باشند. اما یک نکته مهم را باید مد نظر داشت و آن این است که در برنامه نویسی شی گرا در کلاس شما حق مقدار دهی به یک متغیر در حین تعریف آن را ندارید. به مثال زیر توجه کنید:

Int a=10;

این در برنامه نویسی عادی مشکلی ندارد. اما در یک کلاس حق چنین کاری را نداریم.و باید به شکل زیر بنویسیم:

Int a;

نحو تعریف کلاس به صورت زیر می باشد:

Class classname

{

class_component1;

Class_component2;

….

Class_componentn;

}

اعلان شی داده ای در کلاس می تواند const،struct یا اعلانهایی از اشیا نوع کلاس باشد.

هر برنامه از یک یا چند تابع تشکیل می شود که یکی از آنها باید main() باشد. در سمت چپ تابع باید مقداری را که تابع بر می گرداند مشخص کنیم.بدنه تابع با آکولاد باز شروع و با آکولاد بسته خاتمه می یابد.

کل متد را می توان در بدنه کلاس تعریف کرد و یا فقط الگوی آن را ذکر کرد.و سپس تعریف آنها را در خارج کلاس آورد هر عضو کلاس دارای صفت کنترل دستیابی است که قابلیت مشاهده آن عضو را مشخص می کند.کنترل دستیابی عبارتند از public که در خارج کلاس شناخته شده اند، private که فقط در داخل بدنه کلاس قابل ارزیابی هستند و protected که توسط کلاسهای مشتق (در وراثت) قابل استفاده اند.اگر کنترل دستیابی مشخص نشود ، private منظور می شود.کنترل های دستیابی private و protected گاهی بیش از حد مطلوب محدودند.گاهی یک کلاس می تواند به کلاس دیگر اجازه دهد تا به اعضای اختصاصی آن دستیابی داشته باشند.بدین ترتیب باید کلاس کلاس دیگر را به عنوان دوست تعریف کند.برای اعلان یک تابع به عنوان friend یک کلاس ، قبل از پیش نمونه تابع در تعریف کلاس، کلمه کلیدی friend را باید نوشت.

اعضای شی داده ای در درون کلاس با نام آن شی ، نقطه و سپس نام عضو دستیابی می شوند.

اشاره گر های this :

اشاره گر هایی هستند که در داخل یک متد به شی فراخواننده آن متد دستیابی دارند.مانند:

Class myclass{

متد ها;

Private:

Myclass*object;

};

عنصر object به شیئی از نوع myclass اشاره میکند.متدی که اشاره گر object مربوط به شی از myclass را مقدار می دهد تا به شی دیگری از myclass اشاره کند به صورت زیر تعریف می شود:

Myclass I,j; //دوشی اعلان می شوند

i.setpointer(j.getpointer());//ارسال می گردد i به شیj اشاره گر به

 

getpointer() و setpointer() به صورت زیر تعریف می شوند.

Myclass::getpointer(){return this;}

Myclass::setpointer(myclass *x){object=x;}

 

متد همنام با کلاس را سازنده کلاس گویند و هنگام ایجاد شی از آن کلاس فراخوانی می شوند.سازنده ها فاقد نوع هستند.متد همنام با کلاس که با  ~ شروع می شود مخرب نام دارد و هنگامی که حافظه شی از کلاس آزاد می شود فراخوانی می گردد. مثال زیر را ببینید:

Class rational

{ public:

Rational(int a;int b){ numerator = a; denominator = b;}

~rational(){numerator=0;denominator=0;}// Destroy value

Private:

Int numerator;

Inyt denominator;

…}

Main()

{ rational newvalue(1,2);

شی newvalue از نوع rational و اعضای 1 و 2 تخصیص می یابد. اگر اعلان زیر به تعریف کلاس اضافه شود ، اعلان های پیش فرض برای اشیا rational منظور می شود که نیاز به مقدار اولیه دادن نیست:

Rational() {numerator=1; denominator=1;}

و بر این اساس ، دستور زیر اشیا x ، y و z را از نوع rational و با مقدار اولیه 1و 1 اعلان می کند:

Rational x,y,z;

کلاس های مشتق:

با استفاده از کلاس های مشتق می توان اطلاعات را از کلاسی به کلاس دیگر منتقل کرد:

}کلاس پایه:کلاس مشتق

Class_component1;

Class_component2;

Class_componentn;

}کلاس مشتق نام کلاسی است که از کلا س پایه ایجاد می شود. تمام اعضای public و  protected کلاس پایه به عنوان اعضای عمومی و محافظت شده کلاس مشتق منظور می شوند. مگر اینکه آن نام در کلاس مشتق مجددا تعریف شود.

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

Class کلاس مشتق :  کلاس پایه دستیابی {…}

دستیابی می تواند public ، private یا protected باشد.

توابع مجازی:

در اغلب موارد، وابستگی متد و برنامه منبعی که باید اجرا شود، به طور ایستا در زمان ترجمه مشخص می شود.اما انقیاد را می توانیم  با استفاده از توابع مجازی به زمان اجرا موکول کنیم.تابع به صورت زیر در تعریف کلاس خود به عنوان تابع مجازی تعریف می شود:

 

Vitual void setvalue(int *a,int b);

هرگاه از نام setval استفاده گردد، چنانچه در کلاس مشتق مجددا تعریف شده باشد، آخرین کپی از آن بکار گرفته می شود.اگر تعریف کلاسی فقط به عنوان کلاس پایه استفاده شود، به طوری که تمام اشیا داده در کلاس مشتق اعلان  شوند، آن کلاس را انتزاعی گوییم. کلاس انتزاعی را می توان به عنوان کلاسی تعریف کرد که شامل تابع مجازی تهی باشد:

Virtual void setvalue(int *a,int b)=0;

اگر کلاس شامل تابع مجازی تهی باشد، نمی تواند شی دیگری داشته باشد. کلاس مشتقی که شامل تابع مجازی است باید آن را دوباره تعریف کند تا بتواند از آن برای ایجاد اشیایی از کلاس مشتق استفاده کند.

قالب ها:

C++ شکلی از تابع کلی به نام قالب دارد که نحو آن به صورت زیر است:

Template <class پارامتر نوع> class تعریف نام کلاس

تعریف ممکن است تعریف کلاس یا تعریف تابع باشد.برای توصیف اعلان کلاس از<نوع واقعی> نام کلاس template استفاده می شود.مثال زیر را ببینید:

1                    #include <stream.h>

2                    Template<class stacktype,int size>class allstack

3                              {public:stacktype stg[size];};

4                    Allstack<int,10>x;

5                    Allstack<float,20>y;

6                    Main()

7                    {x.stg[4]=7.5;     //int array

8                    Y.stg=7.5;    //float array

9                    Cout << x.stg[4] <<» <<y.stg[4] << endl;}

خطوط 2 و 3 یک قالب کلاس به نام  allstackایجاد می کند که پارامتر نوعی به نام stacktype و پارامتر صحیحی به نام size دارد که حافظه را برای آرایه ای به نام tag و با اندازه size و از نوع stacktype ایجاد می کند.خطوط 4و5 شی x  را ایجاد می کند که یک allstack  است  و حافظه داخلی آن ، آرایه ای صحیح به طول 10 است.حافظه داخلی شی y آرایه اعشاری به طول 20 است. ترجمه و اجرای برنامه، نتیجه زیر را می دهد:

Compiler error message:

Sample.cc in function ‹int main():

Sample.cc:7:warning:float or double assigned to integer data type

% execute

7          7.5

از پیغام خطا مشخص می شود که 7.5 در انتساب به x.stg[4] به مقدار صحیح تبدیل شده است ولی در انتساب به y.stg[4] به صورت اعشاری باقی مانده است.

نمایش حافظه:

اشیا کلاس می توانند مانند اجزای ساختمان ذخیره شوند.فراخوانی متدی مثل (پارامتر)classobject.methodname  به صورت زیر ترجمه می شود:

Classname:: methodname(&classobject,پارامتر)

پیچیدگی زمانی پیش می آید که ، توابع مجازی فراخوانی شوند، زیرا تابع واقعی که باید فراخوانی شود، ممکن است در کلاس مشتق مجددا تعریف شود.لازم است برای هر تابع مجازی موروثی، یک جدول پرش در شی کلاس ذخیره شود.اگر این جدول با توابع مجازی جدیدی  در کلاس مشتق تغییر کند، این شی داده همیشه به تابع مجازی فعلی که باید فراخوانی شود اشاره می کند.

کنترل ترتیب اجرا:

کنترل ترتیب c++ مانند c است.در c++ پردازش استثنا نیز وجود دارد ولی در بعضی از کامپایلر های c++ موجد نیست.عبارات و دستورات c در عبارات و دستورات c++ مانند c است.

پارامتر های پیش فرض توابع:

پارامتر های توابع می توانند مقدار اولیه داشته باشند:

Fn(int a,int b=7);

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

دستور try:

دستور try  برای پردازش استثناهایی به کار می رود که توسط برنامه نویس تعریف شده اند:

Try

{statement1;

  statement2;

 

if badcondition {throw exceptionName};

}

Catch exceptionName { // do something for exception

} //end of exception

}

در داخل هر زیر برنامه ای که بلوک try قرار دارد، پرتاب شرط موجب می شود دستور catch مربوط به آن اجرا شود . پس از اجرای این دستور زیر برنامه خاتمه می یابد.

دستورات catch و تعریف توابع همنام به ترتیب تست می شوند.تا با دستور throw مناسبی تطبیق کند. دستور زیر را ببینید:

Throw «this is bad data»

این استثنا ممکن است توسط پردازنده زیر دریافت شود:

Catch (char *ErrorString) {/* Do something*/}

ورودی و خروجی:ورودی-خروجی به صورت مجموعه ای از توابع استاندارد تعریف شده اند. توابع cin و cout برای ورودی – خروجی به کار می روند.

Polymorphism چند ریختی:

چند ریختی یا Polymorphism یکی از خواص جالب در c++ محسوب می شود.

اگر دو یا چند تابع امضای متفاوتی داشته باشند، می توانند همنام باشند. مثال زیر را ببینید:

Int myf(int a,int b){…};//function A

Int myf(int a){…};//function B

این دستورات دو تابع A و B را نشان می دهند.وقتی نام تابعی دو بار در برنامه تعریف می شود ، C++ اعمال زیر را انجام می دهد:

1.      اگر امضا ها دقیقا یکسان باشند، تابع دوم، اعلان دوباره اولی منظور می شود.

2.      اگر آرگومانها یکسان ولی مقادیر برگشتی یکسان نباشند ، تابع دوم خطا محسوب می شود.

3.      اگر آرگومان ها سازگار نباشند، توابع ، همنام فرض می شوند.

4.      عملگر ها را در C++ می توان مجددا تعریف کرد. تابعی که عملگر ها را دوباره تعریف می کند با operator شروع می شود که پس از آن نام عملگر مورد نظر قرار می گیرد.دستور زیر عملگر + را مجددا تعریف می کند:

Operator + (int x) {…}

توابع تعریف مجدد عملگر می توانند به عنوان عضو کلاس یا تابع دوست کلاس باشند.

توابع استاندارد:

تمام توابع c درc++ قابل استفاده اند و علاوه بر این توابع ورودی –خروجی دیگری در stream.h تعریف شده اند .

تابعgetline(char*b , int bsize , char delim =’\n›)  رشته ای حداکثر با طول bsize-1 را می خواند و آن را در آرایه b ذخیره می کند. در انتهای رشته کاراکتر تهی قرار می گیرد . delim آخرین کاراکتر ورودی را مشخص می کند.

تخصیص حافظه:

تخصیص حافظه در c++ با توابع new و آزاد سازی آن با تابع delete انجام می شود:

Int *p;

P=new int;

Delete p;

ترتیب اجرای برنامه:

هر برنامه c++ را می توان با استفاده از هفت نوع دستور کنترلی مختلف do/while, while, switch, if/else, if و for)  نوشت که تنها به دو صورت (پشته ای شدن دستور کنترلیف تودرتو نوشته شدن دستور کنترلی) با هم ترکیب می شوند.

دستورات:

  • دستور if:

شکل کلی دستور if به شکل زیر است:

If(شرط)

{

}

Else

{


}

این دستور به شکل زیر نیز قابل پیاده سازی ایست:

شرط ? عمل1 : عمل 2 ;

  • دستور تکرار while:

دستور تکرار while به صورت زیر می باشد:

While (شرط)

{

….

}

  • دستور تکرار for:

دستور تکرار for به صورت زیر می باشد:

For ( datatype نام متغیر کنترلی= مقدار; شرط ادامه حلقه; افزایش یا کاهش متغیر کنترلی)

{

}

  • دستور چند انتخابی switch:

فرمت دستور switch به صورت زیر می باشد:

Switch (مقدار یک متغیر)

Case ‹مقدار1‹ :

 

….

 

Break;

Case ‹مقدار n› :

 

 

Break;

Default:

….

Break;

وجود default اختیاری است.

  • دستور تکرار do/while:

فرمت دستور do/while بسیار شبیه به دستور  while است.

Do

{

Statement

}

While (condition);

دستور های break و continue:

دستورات فوق جریان عادی کنترل برنامه را تغییر می دهند.دستورbreak موجب می شود که اجرا بلافاصله از داخل حلقه خارج شود.و دستور continue موجب می شودکه برنامه از باقی مانده بدنه آن دستورات عبور کند و با تغییر بعد در حلقه ادامه می یابد.

ذکر مطلب با ذکر منبع بلا مانع است.

اگر کسي را دوست داري، به او بگو. زيرا قلبها معمولاً با کلماتي که ناگفته مي‌مانند، مي‌شکنند

 

5 دیدگاه »

  1. سلام
    من دانشجوی رشته ی علوم کامپیوتر هستم اطلاعات شما برایم خیلی مفید بود از شما متشکرم

    دیدگاه توسط سهیلا — فوریه 1, 2009 @ 10:35 ق.ظ. | پاسخ

  2. خواهش می کنم سهیلای عزیز

    دیدگاه توسط negarsoft — فوریه 5, 2009 @ 9:52 ب.ظ. | پاسخ

  3. من با سی آشنایی دارم اما نمیدونم چه جوری توی ویژوال بیسیک2005 با c کار کنم ؟
    اصلا بلد نیستم استاد هم بهمون چیزی نگفته که بدونم لطفا کمکم کنید

    دیدگاه توسط sahar — آوریل 27, 2009 @ 4:12 ب.ظ. | پاسخ

  4. اگر میتوانید برای من برنامه ای به وسیله c++بنویسید که مشتق تابع را به وسیله ی فرمولf(x+h)-f(x-h)/2hبه دست آوردوبه ایمیل من بفرستید با تشکر وسپاس فراوان

    دیدگاه توسط مجید — مِی 24, 2009 @ 6:25 ب.ظ. | پاسخ

  5. خلاصه خوبی بود

    دیدگاه توسط مهدی — جون 13, 2010 @ 2:25 ق.ظ. | پاسخ


RSS feed for comments on this post. TrackBack URI

بیان دیدگاه

ساخت یک وب‌گاه یا وب‌نوشت رایگان در WordPress.com.