تبليغاتX
فناوري‌اطلاعات ، برنامه‌نويسي

برنامه نويسي ، شبكه ، سيستم عامل ، پايگاه داده ، سيستم اطلاعات جغرافيايي ، مديريت و كنترل پروژه

Information
سلام دوست عزيز . اين وبلاگ در مورد فناوري اطلاعات و علوم مرتبط با اون هست و داراي آموزش كامل و گام به گام برنامه نويسي به زبان ++C .
************************
پيشنهاد مي‌كنم از لينك‌هاي بخش مقالات فناوري اطلاعات ديدن كنيد .
************************
به اميد اينكه مطالب مفيد واقع بشه . با ارائه نظرات سازنده ي خودتون من رو در هرچه پربارتر كردن اين وب ياري كنيد .
متشكرم

مقالات فناوري اطلاعات
پیوندها
جستجوگر

طراح قالب

Powered By
BLOGFA.COM
لینک RSS
برنامه نويسي به زبان ++C (پست 23)
مقداردهي اوليه به متغيرها

در بسياري از موارد بهتر است متغيرها را در همان محلي كه اعلان ميشوند مقداردهي كنيم . استفاده از متغيرهاي مقداردهي نشده ممكن است باعث ايجاد دردسرهايي شود . مثال زير اين موضوع را نشان ميدهد .

مثال 8) متغير مقداردهي نشده
int main()
{  //prints "x=?? and y=45":
   int x;             //BAD: x is not initialized
   int y=45;
  cout<<"x="<خروجي :
x=?? and y=45

در مثال بالا متغير x تعريف شده اما در سراسر برنامه هيچ مقداري در آن گذاشته نشده است . اگر سعي كنيم چنين متغيري را چاپ كنيم با نتايج غير منتظره اي مواجه خواهيم شد . كامپايلري كه برنامه ي بالا را اجرا كرده , مقدار x را ?? چاپ نموده است به اين معني كه مقدار درون x شناخته شده نيست . يك كامپايلر ديگر ممكن است خروجي زير را بدهد :
x=7091260 and y=45

با وجود اينكه به x هيچ مقداري تخصيص نداده ايم , در خروجي مقدار 7091260 چاپ شده است . به اين مقدار زباله (Garbage) ميگويند (يعني مقداري كه قبلا در آن قسمت از حافظه بوده و سپس بدون استفاده رها شده است) .
دردسر متغيرهاي مقداردهي نشده زماني بزرگ ميشود كه سعي كنيم متغير مقداردهي نشده را در يك محاسبه بكار ببريم . مثلا اگر x را كه مقداردهي نشده در عبارت :
y=x+5;
بكار ببريم حاصل y غير قابل پيش بيني خواهد بود . براي پرهيز از اين خطاها بهتر است كه متغيرها را هميشه هنگام تعريف مقداردهي كنيم .
 
نوشته شده توسط: مرضيه در یکشنبه بیست و یکم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 22)
مثال 6) استفاده از متغيرهاي نوع صحيح

int main()
{ //prints "m=45 and n=55":
int m=45;
int n=55;
cout<<"m="<<<"and n="<
return 0;
}


خروجي اين برنامه به شكل زير است :
m=45 and n=55

در برنامه ي بالا متغير m از نوع صحيح int و مقدار اوليه ي 45 تعريف شده . سپس متغير n از نوع صحيح int و مقدار اوليه ي 55 تعريف گشته است . سرانجام مقادير اين دو متغير با دستور cout روي خروجي چاپ شده است .
ميتوانيم متغيرها را هنگام تعريف , بدون مقدار رها كنيم و مقداردهي را به درون برنامه موكول كنيم . به مثال زير توجه كنيد .

****************************************************************************
مثال 7) تعريف متغير بدون مقداردهي
اين برنامه همان خروجي مثال 6 را دارد .
int main()
{ //prints "m=45 and n=55":
int m;
int n;
m=45; //assigns the value 45 to m
n=m+10; //assigns the value 55 to n
cout<<"m="<<<"and n="<<
return 0;
}

در خط سوم و چهارم متغيرهاي m و n تعريف شده اند اما مقداردهي نشده اند . در خط پنجم مقدار 45 در متغير m قرار داده ميشود . در خط ششم نيز مقدار 10+m يعني 10+45 كه برابر 50 است در n قرار داده ميشود . پس از اينكه دو متغير مقدار دهي شدند , ميتوانيم با دستور cout آنها را چاپ كنيم .

در مثال بالا ميتوانستيم متغيرهاي m و n را روي يك خط تعريف كنيم به شكل زير :
int m,n;

به اين ترتيب هر دو متغير از نوع int تعريف ميشوند و هيچكدام مقداردهي نميشوند . توجه كنيد كه m و n با يك علامت كاما , از يكديگر جدا شده اند . لذا ميتوانيم چند متغير را روي يك سطر تعريف كنيم به شرطي كه همه از يك نوع باشند .

 
نوشته شده توسط: مرضيه در پنجشنبه هجدهم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 21)
متغيرها و تعريف آن ها


همه ي برنامه هايي كه نوشته ميشود , براي پردازش داده ها بكار ميرود يعني اطلاعاتي را از يك ورودي مي گيرد و آنها را پردازش ميكند و نتايج مورد نظر را به يك خروجي مي فرستد . براي پردازش لازم است كه داده ها و نتايج ابتدا در حافظه ي اصلي ذخيره شوند . براي اين كار از متغيرها استفاده ميكنيم .

متغير (Variable) مكاني در حافظه است كه چهار مشخصه دارد : نام , نوع , مقدار , آدرس .

وقتي متغيري را تعريف ميكنيم , ابتدا با توجه به نوع متغير , آدرسي در حافظه در نظر گرفته ميشود , سپس به آن آدرس يك نام تعلق ميگيرد . نوع متغير بيان ميكند كه در آن آدرس چه نوع داده اي ميتواند ذخيره شود و چه اعمالي روي آن ميتوان انجام داد . مقدار نيز مشخص ميكند كه در آن محل از حافظه چه مقداري ذخيره شده .

در ++C قبل از اينكه بتوانيم از متغيري استفاده كنيم , بايد آن را اعلان (Declaration) نماييم . نحوه ي اعلان يك متغير بشكل زير است :

type name initializer;

عبارت type نوع متغير را مشخص ميكند . نوع متغير به كامپايلر اطلاع ميدهد كه اين متغير چه مقاديري ميتواند داشته باشد و چه اعمالي ميتوان روي آن انجام داد . مثلا نوع int براي تعريف متغيري از نوع عدد صحيح استفاده ميشود و نوع char براي تعريف متغيري از نوع كاراكتر بكار مي رود . در مورد انواع اصلي در ++C بعدا بحث خواهيم كرد .

عبارت name نام متغير را نشان مي دهد . اين نام حداكثر ميتواند 31 كاراكتر باشد , نبايد با عدد شروع شود , علائم رياضي نداشته باشد و همچنين كلمه ي كليدي نيز نباشد (كلمه ي كليدي كلمه اي است كه در ++C براي منظور خاصي بكار ميرود . جدول كلمات كليدي در پست 8 آمده است ) . بهتر است نام يك متغير با يك حرف شروع شود .

عبارت initializer عبارت مقداردهي اوليه (initialization) نام دارد . با استفاده از اين عبارت ميتوان مقدار اوليه اي در متغير مورد نظر قرار داد .
دستور زير تعريف يك متغير صحيح را نشان ميدهد :
int n=50;

اين دستور متغيري بنام n تعريف ميكند و مقدار اوليه ي 50 را درون آن قرار ميدهد . اين متغير از نوع int است , يعني فقط ميتواند اعداد صحيح را نگهداري كند .

براي اينكه مقداري را در يك متغير قرار دهيم از عملگر انتساب (=) استفاده ميكنيم . مثلا دستور ;50=n مقدار 50 را در متغير n قرار ميدهد .

بطور غير مستقيم نيز ميتوانيم مقداري را به يك متغير تخصيص دهيم . براي مثال , اگر متغير m مقدار 45 داشته باشد , آنگاه دستور ;n=m سبب ميشود كه مقدار n برابر با m شود , يعني مقدار برابر با 45 شود .

همچنين ميتوانيم يك مقدار را بطور همزمان در چند متغير از يك نوع قرار دهيم . دستور :
n=m=k=45;
مقدار 45 را ابتدا در k و سپس در m وسرانجام در n قرار ميدهد . به اين ترتيب هرسه متغير فوق مقدار 45 خواهند داشت .


 
نوشته شده توسط: مرضيه در پنجشنبه هجدهم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 20)
مثال 4) نسخه ي چهارم از برنامه ي سلام

اين برنامه همان خروجي مثال 1 را دارد :
int main()
{ //prints "Hello, my programmer!":
cout<<"Hello, "<<"m"<<"y programmer"<<"!"<<'\n';
return 0;
}

مثال بالا نشان ميدهد كه كاراكترها را نيز ميتوان به ليترال رشته اي پيوند داد و خروجي تركيبي درست كرد .

******************************************************************************
مثال 5) درج عدد در خروجي

int main()
{ //prints "Today is feb 5 2007":
cout<<"Today is feb"<<5<<' '<<2007<retur 0;
}

وقتي مثال بالا را اجرا كنيم , خروجي به شكل :
Today is feb 5 2007
روي مانيتور چاپ ميشود . دقت كنيد كه يك كاراكتر جاي خالي ' ' بين 5 و 2007 گنجانده ايم تا اين دو عدد جدا از يكديگر چاپ شوند و بهم پيوند نخورند .
 
نوشته شده توسط: مرضيه در پنجشنبه هجدهم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 19)
ليترال ها و كاراكترها

يك ليترال (Literal) رشته اي از حروف , ارقام يا علائم چاپي است كه ميان دو علامت نقل قول " " محصور شده باشد . در مثال 3 سه عنصر :
"Hello, m" , "y progra" , "mmer!"
ليترال هستند . ليترال ميتواند تهي باشد : "" و يا ميتواند فقط يك فاصله ي خالي باشد : " " و يا فقط يك حرف باشد : "w" .

يك كاراكتر , يك حرف , رقم يا علامت قابل چاپ است كه ميان دو نشانه ي ' ' محصور شده است . پس 'w' و '!' و '1' هر كدام يك كاراكتر است . هر كاراكتر يك بايت از حافظه را اشغال ميكند . رايانه ها 128 كاراكتر استامدارد را ميشناسند : حروف الفباي كوچك و بزرگ انگليسي و اعداد 0 تا 9 و كاراكترهاي كنترلي و ويرايشي . رايانه ها به هر كاراكتر يك عدد يك بايتي تخصيص ميدهند تا بوسيله ي آن عدد كاراكتر مورد نظر را شناسايي يا دستيابي كنند . اين 128 كاراكتر و اعداد تخصيصي در جدولي بنام ASCII (بخوانيد اسكي) قرار مي گيرند . با دقت در جدول اسكي ميبينيم كه بعضي از كاراكترها دو عضوي هستند , مثل كاراكتر 'n\' كه قبلا ديديم . گرچه اين كاراكترها از دو عضو n و \ تشكيل شده اما رايانه آن دو را باهم يك كاراكتر فرض ميكند . بيشتر كاراكترهايي كه دو عضوي هستند , براي كنترل بكار ميروند . مثل كاراكتر 'n\' كه مكان نما را به خط جديد مي برد . راجه به كاراكترها بعدا بيشتر شرح خواهم داد .






 
نوشته شده توسط: مرضيه در پنجشنبه هجدهم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 18)
عملگر خروجي

علامت >> عملگر خروجي در ++C نام دارد (به آن عملگر درج نيز ميگويند) . يك عملگر (Operator) چيزي است كه عملياتي را روي يك يا چند شيء انجام ميدهد . عملگر خروجي مقادير موجود در سمت راستش را به خروجي سمت چپش مي فرستد . به اين ترتيب دستور :
cout<<66;
مقدار 66 را به خروجي cout مي فرستد كه cout معمولا به مانيتور اشاره دارد . در نتيجه مقدار 66 روي صفحه نمايش درج ميشود .

cout اين قابليت را دارد كه چند چيز را به شكل متوالي و پشت سرهم روي صفحه نمايش درج كند . با استفاده از اين خاصيت ميتوان چند رشته ي مجزا را از طريق cout با يكديگر پيوند داد و خروجي واحد توليد نمود . مثال بعد اين موضوع را بيشتر روشن ميكند . قبل از اينكه اين مثال را ببينيد بازهم يادآوري ميكنم كه فراموش نكنيد دو خط اصلي راهنماي پيش پردازنده و فضاي نام را به ابتداي برنامه اضافه كنيد .

********************************************************************
مثال 3) برنامه اي ديگر از Hello

int main()
{ //prints "Hello, my programmer!" :
cout<<"Hello, m"<<"y progra"<<"mmer!"<return 0;
}

در اين برنامه از عملگر خروجي >> چهار بار استفاده شده و چهار عنصر را به cout فرستاده تا روي صفحه نمايش چاپ شوند . سه تاي اولي يعني :
"Hello, m" , "y progra" , "mmer!"
سه رشته اند كه به يكديگر پيوند مي خورند تا عبارت :
"Hello, my programmer!"
در خروجي تشكيل شود . عبارت چهارم يعني endl همان  كار كاراكتر 'n\' را انجام ميدهد . يعني مكان نما را به خط بعدي روي صفحه نمايش منتقل مي كند .
 
نوشته شده توسط: مرضيه در پنجشنبه هجدهم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 17)
مثال 2) برنامه اي ديگر :

اين برنامه همان خروجي مثال 1 را دارد :
#include
using namespace std;
int main()
{ //prints "Hello, my programmer!":
cout<<"Hello, my programmer!\n";
return 0;
}

دومين خط از برنامه ي بالا يعني :
using namespace std;
 به كامپايلر ميگويد كه عبارت ::std را در سراسر برنامه در نظر داشته باشد تا مجبور نباشيم براي دستوراتي مثل cout اين پيشوند را بكار ببريم . به اين طريق ميتوانيم براي دستور خروجي بجاي std::cout از عبارت cout تنها استفاده كنيم (كه در خط پنجم همين كار را كرده ايم) . در نهايت يك خط به برنامه اضافه ميشود اما در عوض مجبور نيستيم قبل از هر cout عبارت ::std را اضافه كنيم . به اين ترتيب خواندن و نوشتن برنامه هاي طولاني آسانتر ميشود .

std يك "فضاي نام" (namespace) است . فضاي نام محدوده اي است كه چند موجوديت در آن تعريف شده اند . مثلا موجوديت cout در فضاي نام std در سرفايل iostream تعريف شده . با استفاده از فضاي نام مي توانيم چند موجوديت را با يك نام در برنامه داشته باشيم , مشروط بر اينكه فضاي نام هر كدام را ذكر كنيم .

همه ي برنامه هايي كه در اين وب ذكر ميشود با دو خط :
#include
using namespace std;
شروع ميشوند . هرچند براي اختصار از اين پس اين دو خط را در برنامه ها ذكر نمي كنيم اما فراموش نكنيد كه براي اجراي برنامه ها حتما دو خط بالا را به ابتداي برنامه هايتان اضافه كنيد .

به خط چهارم برنامه توجه كنيد :
//prints "Hello, my programmer!";
اين خط يك توضيح (Comment) است . توضيح متني است كه به منظور راهنمايي و درك بهتر به برنامه اضافه ميشود و تاثيري در اجراي برنامه ندارد . كامپايلر توضيحات برنامه را قبل از اجرا حذف ميكند . استفاده از توضيح سبب ميشود كه ساير افراد كد برنامه ي شما را راحت تر درك كنند . من نيز در اين وب براي راهنمايي شما توضيحاتي به برنامه ها اضافه ميكنم .

به دو صورت ميتوانيم به برنامه هاي ++C توضيحات اضافه كنيم :

1- با استفاده از دو علامت اسلش // : هر متني كه پس از ود علامت // بيايد تا پايان همان سطر , يك توضيح تلقي ميشود .
2- با استفاده از حالت C : هر متني كه با علامت */ شروع شود و با علامت /* پايان يابد يك توضيح تلقي ميشود . توضيح حالت C در زبان C بكار مي رفته كه براي حفظ سازگاري در ++C هم ميتوان از آن استفاده كرد .

پس توضيح برنامه ي بالا را به اين شكل هم ميتوانيم بنويسيم :
/*prints "Hello, my programmer!";*/

به فرق بين اين دو توضيح توجه كنيد : در حالت اول , متني كه بعد از // تا آخر سطر آمده توضيح تلقي ميشود (دقت كنيد : تا آخر همان سطر) و با شروع خط بعدي توضيح نيز بطور خود به خود به پايان ميرسد ولي در حالت C توضيح با علامت */ شروع ميشود و همچنان ادامه مي يابد تا به علامت /* برخورد شود . يعني توضيح حالت C ميتواند چند خط ادامه يابد ولي توضيح با // فقط يك خط است و براي ادامه ي توضيح در خط بعدي بايد دوباره در ابتداي خط علامت // را قرار دهيم .
 
نوشته شده توسط: مرضيه در سه شنبه شانزدهم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 16)
تحليلي بر مثال 1 ( مطرح شده در پست 15 )

هر برنامه اي كه از ورودي و خروجي استفاده مي كند بايد شامل راهنماي پيش پردازنده باشد .

خط دوم از برنامه ي مثال 1 نيز بايد در همه ي برنامه هاي ++C وجود داشته باشد . اين خط به كامپايلر مي گويد كه "بدنه ي اصلي برنامه" از كجا شروع ميشود . اين خط داراي اجزاي زير است :

1- عبارت int كه يك نوع عددي در ++C است .
2- عبارت main كه به آن تابع اصلي در ++C مي گويند .
3- دو پرانتز () كه نشان ميدهد عبارت main يك تابع (function) است .

هر برنامه فقط بايد يك تابع ()main داشته باشد . وقتي برنامه اجرا شد , يك عدد صحيح به سيستم عامل بازگردانده ميشود تا سيستم عامل بفهمد كه برنامه با موفقيت به پايان رسيده يا خير . عبارت int كه قبل از main استفاده شده نشان ميدهد كه اين برنامه يك عدد صحيح را به سيستم عامل برمي گرداند .
سه خط آخر برنامه بدنه ي اصلي برنامه را تشكيل ميدهند . بدنه ي اصلي برنامه مجموعه اي از دستورات متوالي است كه ميان دو علامت ‌‍{} بسته شده است .اين بركت ها شروع و پايان برنامه را نشان ميدهند .

دستورات برنامه از خط سوم شروع شده است . اين برنامه فقط دو دستور دارد . اولين دستور يعني :
std::cout<<"Hello, my programmer!\n";
رشته ي :
"Hello, my programmer!\n"
را به فرايند خروجي std::cout مي فرستد . اين خروجي معمولا مانيتور است . علامت >> عملگر خروجي در ++C ناميده ميشود . اين عملگر اجزاي سمت راستش را به خروجي سمت چپش مي فرستد . حاصل كار اين است كه رشته ي :
Hello, my programmer!
روي مانيتور چاپ ميشود . كاراكتر n\ نيز در رشته ي فوق وجود دارد ولي بجاي آن چيزي چاپ نمي شود , بلكه چاپ اين كاراكتر باعث ميشود مكان نما به خط بعدي در مانيتور پرش كند .به اين كاراكتر , كاراكتر خط جديد (new line) ميگويند .
دستور خط سوم با علامت ; (سميكولن) پايان يافته است . اين دومي قانون مهم و ساده ي ++C است : " حتما بايد در پايان هر دستور علامت ; قرار دهيد " اين علامت به معناي پايان آن دستور است . اگر اين علامت را فراموش كنيد كامپايلر از برنامه خطا گرفته و اصلا آن را اجرا نمي كند .

خط چهارم يعني :
return 0;
مقدار 0 را به سيستم عامل بازمي گرداند و برنامه را پايان ميدهد . اين خط در ++C استاندارد اختياري است , اما اگر از كامپايلري استفاده مي كنيد كه حتما اين خط را انتظار دارد بايد اين دستور را در انتهاي بدنه ي برنامه قرار دهيد .
به فاصله گذاريها در مثال 1 دقت كنيد . كامپايلر اين فاصله هاي اضافي را در نظر نمي گيرد و برنامه را اين چنين مي بيند :
#include
int main(){std::cout<<"Hello, my programmer!\n";return 0;}
ما نيز مي توانستيم برنامه را چنين بنويسيم ولي درك برنامه اي كه بدون فاصله نوشته ميشود مشكل است . استفاده از فاصله هاي مناسب سبب ميشود خواندن برنامه هايتان راحت تر باشد .
 
نوشته شده توسط: مرضيه در سه شنبه شانزدهم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 15)
مثال 1) اولين برنامه

برنامه ي زير اولين برنامه اي است كه مي نويسيم . اما قبل از اين كار نكته ي بسيار مهم زير را بياد بسپاريد :
++C نسبت به حروف "حساس به حالت" (case sensitive) است . يعني A و a را يكي نمي داند . پس در عبارت هاي MY و my و My و mY هيچ يك با ديگري برابر نيست . براي اينكه در برنامه ها دچار اين اشتباه نشويد از قانون زير استفاده كنيد : "همه چيز را با حروف كوچك بنويسيد , مگر اينكه براي بزرگ نوشتن برخي حروف دليل قانع كننده اي داشته باشيد " .

اولين برنامه اي كه مي نويسيم به محض تولد به شما سلام مي كند و عبارت زير را نمايش مي دهد:
"Hello, my programmer!"

برنامه :
#include
int main()
{ std::cout<<"Hello, my programmer!\n";
return 0;
}

اولين خط از كد بالا يك راهنماي پيش پردازنده است . راهنماي پيش پردازنده شامل اجزاي زير است :
1- كاراكتر # كه نشان ميدهد اين خط يك راهنماي پيش پردازنده است . اين كاراكتر بايد در ابتداي همه ي خطوط راهنماي پيش پردازنده باشد .
2- عبارت include
3- نام يك فايل كتابخانه اي كه ميان دو علامت <> محصور شده است . به فايل كتابخانه اي سرفايل نيز مي گويند . فايل كتابخانه اي كه در اينجا استفاده شده iostream  نام دارد .

با توجه به اجزاي فوق راهنماي پيش پردازنده خطي است كه به كامپايلر اطلاع ميدهد در برنامه موجوديتي است كه تعريف آن را بايد در فايل كتابخانه اي مذكور جستجو كند . در اين برنامه موجوديت std::cout استفاده شده كه كامپايلر راجع به آن چيزي نمي داند . پس به فايل iostream مراجعه مي كند تعريف آن را مي يابد و سپس آن را اجرا مي كند .
 
نوشته شده توسط: مرضيه در سه شنبه شانزدهم بهمن 1386|+|
برنامه نويسي به زبان ++C ( پست 14)
شروع كار با ++C


حالا شما رايانه اي داريد كه به يك كامپايلر ++C مجهز است . در پست هاي بعدي مثال هاي ساده اي از برنامه هاي ++C را ذكر مي كنيم و نكاتي را در قالب اين مثال ها بيان خواهيم كرد . اگر از قبل با C يا ++C آشنايي نداشته باشيد ممكن است اين مثال ها مبهم به نظر برسند و برخي از نكات را خوب درك نكنيد . اما اصلا جاي نگراني نيست زيرا اين مثال ها يك مرور كلي بر ++C است و تمام اين نكات بعدا به شكل كامل شرح داده خواهند شد . اين مثال ها به شما كمك مي كنند تا نكات اوليه ي ++C را ياد بگيريد و همچنين مطلع شويد كه در پست هاي آينده بايد منتظر چه مطالبي باشيد .

 
نوشته شده توسط: مرضيه در سه شنبه شانزدهم بهمن 1386|+|
Technology
آرشیو
آمار وبلاگ
» تعداد بازدیدها:
» مرورگر:
امکانات اضافي

© All Rights Reserved by mrz-it.Blogfa.com ©