آموزش ++C - قسمت دوم - نسخهی قابل چاپ +- انجمن انیاک (http://forum.learninweb.com) +-- انجمن: آموزش های تصویری (/forumdisplay.php?fid=7) +--- انجمن: آموزش تصویری c++ (/forumdisplay.php?fid=31) +--- موضوع: آموزش ++C - قسمت دوم (/showthread.php?tid=1047) |
آموزش ++C - قسمت دوم - learninweb - 05-31-2015 08:07 PM با سلام خدمت تمامي کاربران گرامي در زير آموزش تصويری ++C را بررسي ميکنيم توجه کنيد که شما ميتوانيد نرم افزار آموزش ++Cرا به همراه چند بخش آموزشي ديگر که بصورت تعاملي و شبيه سازي شده با صدا و متن فارسي درس داده شده است و رايگان نيز ميباشد از لينک آموزش ++C دانلود کنيد. در نرم افزارهاي آموزشي کارهاي بيان شده را بايد در محيط شبيه سازي شده انجام دهيد. در ابتدا و انتهاي اين آموزش تصويري نيز کل آموزش (هم متن و هم تصويري) در فایل PDF و Word موجود است. دانلود فایل pdf آموزش تصویری ++C دانلود فایل word آموزش تصویری ++C مطابق با علم کامپيوتر يک زبان برنامهنويسي ميتواند شامل سه شکل از روند اجراي برنامه به صورت زير باشد. 1- اجراي مجموعهاي از دستورالعملها 2- تکرار يک سري از دستورها تا زماني که در شرايط مورد نظر قرار دارند. ( ساختارهاي تکرار) 3- استفاده از عباراتي که بتوان بوسيله آن در مورد اجراي دستورالعملهاي برنامه تصميمگيري نمايد. (ساختارهاي تصميمگيري)ساختارهاي تکرار براي اجراي بيش از يکبار يک يا چند دستور در شرايط خاص به کار ميروند يکي از ساختارهاي تکرار, ساختار تکرار while ميباشد که شکل کلي آن به صورت زير ميباشد: روش اول: (شرط) while ; دستور روش دوم: { (شرط) while دستور1 دستور2 دستورn } در دستور while وقتي دستوراتي که بايد تکرار شوند بيش از يک دستور باشد بايد در بين دو علامت { و } قرار بگيرند و اگر تنها يک دستور داشته باشد در انتهاي دستور علامت ; (سمي کالون) قرار ميگيرد. روش اجراي حلقه تکرار while به اين صورت است که, زمانيکه اجراي برنامه به دستور while ميرسد, عبارت شرطي که داخل پرانتز قرار گرفته است تست شده و اگر داراي ارزش درست باشد دستورات داخل حلقه تا زمانيکه اين شرايط برقرار است اجرا ميشوند. در صورتي که عبارت شرطي برابر نادرست باشد، ديگر دستورات داخل حلقه اجرا نميشوند و کنترل برنامه به خط بعد از ساختار while منتقل ميشود. اگر در حلقه شرايطي فراهم نشود که عبارت ساختار while برابر نادرست شود, حلقه تکرار، تا بينهايت اجرا ميشود و هيچ وقت برنامه به پايان نميرسد. پس هميشه بايد شرايطي در داخل حلقه فراهم شود تا شرط حلقه زماني برابر نادرست گردد و حلقه خاتمه يابد. در ادامه يک برنامه وارد ميکنيم تا با دستورات حلقه While بيشتر آشنا شويد. در اين برنامه ابتدا متغير p برابر عدد صفر شده و وارد حلقه while ميشويم. در کد حلقه چون عبارت p<2 برقرار است دستورات داخل حلقه اجرا ميشود که در نتيجه يک عبارت بر روي صفحه نوشته شده و در ادامه يک واحد به مقدار متغير p افزوده شده و برابر يک ميشود. سپس دوباره به ابتداي حلقه ميرويم و شرط p<2 دوباره بررسي ميشود. اين بار نيز دوباره اين عبارت برابر درست است زيرا مقدار متغير p برابر يک است.براي اجراي برنامه كليد Ctrl+F9 را فشار دهيد. مشاهده ميکنيد که کد داخل حلقه دوبار اجرا شده است و در هر دو بار مقدار متغير p نوشته شده است. روي دکمه Close کليک کنيد. در اين برنامه اگر دستور p++ در داخل حلقه وجود نداشت و بدنه حلقه فقط داراي يک دستور cout بود حلقه تا بينهايت ادامه پيدا ميکرد و هميشه يک عبارت ثابت را بر روي صفحه مينوشت. در ادامه ميخواهيم بوسيله حلقه while برنامهاي بنويسيم که تعدادي عدد را از ورودي بخواند و مجموع آنها را محاسبه کرده و در خروجي چاپ کند. اجراي اين برنامه نيز با وارد کردن کاراکتر nخاتمه مييابد. در اين برنامه ابتدا مقدار متغير s برابر حرف y ميگردد. سپس وارد حلقه ميشويم. شرط حلقه اين است که مقدار متغير s برابر y ميباشد يا خير. چون مقدار اين متغير برابر y است کد داخل حلقه اجرا ميشود در انتهاي کد داخل حلقه از کاربر يک کاراکتر دريافت شده و در متغير s ذخيره ميشود. سپس کنترل برنامه دوباره به ابتدا حلقه رفته و شرط s=='y' بررسي ميگردد. اگر کاربر حرف y را زده باشد دوباره حلقه تکرار ميشود و يک عدد ديگر از کاربر دريافت ميشود در غير اين صورت کنترل برنامه به خط بعد از حلقه انتقال مييابد. در اين کد، داخل حلقه يک عدد از کاربر دريافت شده و در متغير a ذخيره ميشود. سپس متغير a در خودش ضرب شده و نتيجه با مقدار متغير sum جمع ميشود. به اين ترتيب متغير sum برابر مجموع مجذور اعداد وارد شده است. در خط بعدي نيز مقدار متغير c يک واحد افزايش مييابد. مقدار دو متغير sum و c نيز بعد از خروج از حلقه نمايش داده ميشود. براي اجراي برنامه كليد Ctrl+F9 را فشار دهيد. عدد 25 را واردکنيد. کليد Enter صفحه کليد را فشار دهيد. کاراکتر y را وارد کنيد. تا يک عدد ديگر نيز وارد کنيم. عدد 6 را وارد کنيد. کليد Enter را فشار دهيد. کاراکتر y را وارد کنيد. تا يک عدد ديگر نيز وارد کنيم. عدد 2 را وارد کنيد. کليد Enter را فشار دهيد. کاراکتر n را وارد کنيد. تا حلقه به پايان برسد. مشاهده ميکنيد که مجموع مربعات سه عدد وارد شده محاسبه گرديده و به همراه تعداد اعداد وارد شده در خروجي چاپ شده است. روي دکمه Close کليک کنيد. حال ميخواهيم به ذکر مثال ديگري بپردازيم. در ادامه ميخواهيم برنامهاي بنويسيم که عددي را خوانده و بزرگترين رقم آنرا نمايش دهد. در ادامه دستورات مورد نظر را وارد ميکنيم سپس به توضيح آنها ميپردازيم. در اين برنامه ابتدا بزرگترين رقم -1 در نظر گرفته شده است. سپس يک عدد از کاربر دريافت شده و در متغير n ذخيره ميشود. توسط شرط n>0 تا زماني که n بزگتر از صفر است کدهاي داخل حلقه while اجرا ميشوند. توسط خط اول داخل حلقه يک متغير به نام r تعريف شده و برابر n % 10 يعني باقيمانده n تقسيم بر 10 ميگردد. سپس r برابر رقم سمت راست عدد موجود در n ميشود. توسط خط دوم داخل حلقه بررسي ميشود که آيا r بزرگتر از max است يا خير در صورتي که کوچکتر باشد، max برابر r ميشود. در خط سوم نيز n برابر با n/10 ميشود يعني يک کاراکتر سمت راست n حذف شده و حلقه ادامه پيدا ميکند تا n=0 شود يعني داراي رقم ديگري نباشد. براي اجراي اين برنامه، دکمه Ctrl + F9 صفحه کليد را فشار دهيد. عدد 5371 را تايپ کنيد. دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که عدد 7 به عنوان بزرگترين رقم عدد نوشته شده است. روي دکمه Close کليک کنيد. يک ساختار حلقه ديگر نيز در زبان C++ وجود دارد که ساختار do..while نام دارد. در اين ساختار ابتدا دستورات داخل حلقه اجرا ميشود و سپس شرط اجراي دوباره دستورات بررسي ميگردد. در صورتي که شرط برابر درست باشد دوباره دستورات داخل حلقه اجرا ميشوند و در صورتي که شرط نادرست باشد ديگر دستورات داخل حلقه اجرا نميشوند. پس در صورت نادرست بودن شرط يک بار دستورات داخل حلقه اجرا ميشوند. در اين برنامه يک حلقه while بصورت while(1) وجود دارد. يک در اينجا نشان دهنده عبارت درست است. پس تا بينهايت اين حلقه ادامه پيدا ميکند. در داخل اين حلقه يک عدد از کاربر دريافت شده و با استفاده از يک حلقه do…while عدد وارد شده بصورت برعکس نمايش داده ميشود. يعني در صورتي که کاربر عدد 123 را وارد کند عدد 321 نمايش داده ميشود. چون هر عدد حداقل داراي يک رقم است پس بايد يک بار کد داخل حلقه اجرا شود پس ميتوانيم از حلقه do…while استفاده کنيم. در حلقه do…while متغير L برابر باقيمانده تقسيم b بر عدد 10 ميشود. به اين ترتيب مقدار متغير L برابر يکان عدد موجود در b ميشود. سپس توسط يک دستور cout مقدار متغير L نوشته ميشود. در انتها نيز ابتدا b برابر b/10 ميشود. چون b يک متغير از نوع عدد صحيح است يکان عدد موجود در b حذف ميشود. سپس l=b ميشود. در صورتي که L!=0 باشد کد حلقه دوباره اجرا ميشود. زماني l!=0 است که حداقل يک رقم از عدد هنوز نوشته نشده باشد. براي مثال فرض کنيد که کاربر عدد 19 را وارد کند. پس b=19 ميگردد. توسط خط اول حلقه عبارت l=19%10 محاسبه شده و l=9 ميگردد. درادامه توسط دستور cout <<l عدد نه بر روي صفحه نوشته ميشود. توسط خط بعد (l=b/=10) مقدار متغير l و b برابر عدد يک ميشود. چون l برابر صفر نيست دوباره کد داخل حلقه اجرا ميشود. اين بار l=1%10 محاسبه ميشود. پس l=1 ميگردد و توسط دستور cout مقدار متغير l بر روي صفحه نوشته ميشود سپس عبارت l=b/=10 محاسبه شده و چون فقط مقادير عدد صحيح در l و b ذخيره ميشود، هر دو متغير برابر عدد صفر ميشوند. اکنون چون شرط حلقه برقرار نيست حلقه به پايان ميرسد. براي اجراي برنامه كليدCtrl+F9 را فشار دهيد. عدد 542 را وارد کنيد. کليد Enter را فشار دهيد. مشاهده ميکنيد که عدد بصورت برعکس نوشته شده است. عدد 1350 را وارد کنيد. کليد Enter صفحه کليد را فشار دهيد. همانطور که مشاهده ميکنيد اين برنامه هيچ وقت به پايان نميرسد زيرا شرط حلقه هميشه برابر درست است. روي دکمهClose کليک کنيد. به عنوان مثالي ديگر ميخواهيم با استفاده از حلقه do while برنامهاي بنويسيم که اعداد 1 تا 10 را چاپ کند. در ادامه دستورات مورد نظر را وارد ميکنيم، سپس به توضيح در مورد آنها ميپردازيم. در اين برنامه ابتدا متغير counter از نوع int تعريف شده و برابر يک ميشود. سپس وارد حلقه do while شده و دستور داخل حلقه اجرا ميشود. توسط دستور داخل حلقه مقدار متغير counter و سپس يک فاصله نوشته ميشود. در انتها توسط شرط ++counter <= 10 ابتدا متغير يک واحد افزايش يافته و سپس چک ميشود که کوچکتر يا مساوي ده است يا خير. در صورتي که کوچکتر يا مساوي ده باشد حلقه دوباره تکرار خواهد شد. پس انتظار داريم که با اجراي اين برنامه مقدار متغير counter از يک تا 10 شود. بجاي شرط ++counter <= 10 ميتوانستيم در کد داخل حلقه مقدار متغير counter را يک واحد اضافه کنيم و سپس از شرط counter <= 10 استفاده کنيم تا خوانايي برنامه مقداري افزايش يابد. براي اجراي دستورات دکمه Ctrl + F9 صفحه کليد را فشار دهيد. مشاهده ميکنيد که اعداد يک تا 10 چاپ شدهاند. روي دکمهClose کليک کنيد. در اين برنامه يک متغير از نوع char به نام ch تعريف شده است. در ابتدا کد داخل حلقه do بدون بررسي شرط اجرا ميشود. توسط اين کد ابتدا يک پيغام براي دريافت يک کاراکتر در صفحه نوشته ميشود. سپس با استفاده از cin يک کاراکتر از کاربر دريافت شده و در متغير ch ذخيره ميگردد. توسط خط cout بعدي، يک عبارت و محتواي متغير ch که توسط کاربر وارد شده است به همراه کد دکمه Enter نوشته ميشود. سپس شرط while بررسي ميگردد. اين شرط تا زماني که کاربر حرف b را وارد نکرده است برابر درست است. بنابراين توسط اين برنامه از کاربر يک کاراکتر درخواست شده و بر روي صفحه نوشته ميشود. سپس توسط قسمت while بررسي ميگردد که کاربر حرف b را وارد کرده است يا خير درصورتي که حرف b را وارد کرده باشد حلقه پايان يافته و برنامه به اتمام ميرسد. در غير اين صورت دوباره کد داخل حلقه اجرا شده و از کاربر يک کاراکتر ديگر دريافت ميکند. براي اجراي برنامه دکمه Ctrl + F9 صفحه کليد را فشار دهيد. حرف a را تايپ کنيد. دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که برنامه حرف وارد شده توسط کاربر را نوشته و منتظر دريافت حرف بعدي است. حرف z را تايپ کنيد دکمه Enter صفحه کليد را فشار دهيد. حرف b را تايپ کنيد دکمه Enter صفحه کليد را فشار دهيد. با وارد کردن حرف b شرط حلقه برقرار نبوده و برنامه به پايان رسده است. روي دکمه Close کليک کنيد. يکي ديگر از ساختارهايتکرار, ساختار تکرار for است، حلقه for در زمانيکه تعداد دفعات تکرار حلقه معين باشد به کار ميرود. ساختار کلي حلقه for به صورت زير است: { (گام حرکت ; شرط حلقه; مقدار اوليه انديس حلقه) for دستور 1 دستور2 ... دستور n } { (گام حرکت ; شرط حلقه; مقدار اوليه انديس حلقه) for دستور 1 دستور2 ... دستور n } بعد از کلمة کليدي for در داخل پرانتز سه عبارت وجود دارد، که با علامت سميکالون از يگديگر جدا ميشوند. اولين عبارت مقداردهي اوليه ميباشد و فقط هنگام شروع حلقه for و براي يکبار اجرا ميگردد. دومين عبارت شرط حلقه است که قبل از اجراي کدهاي داخل حلقه بررسي ميشود. اگر اين عبارت نادرست باشد ديگر دستورات داخل حلقه اجرا نميشوند و حلقه خاتمه مييابد. در واقع شرط حلقه مشخص ميکند که دستورات داخل حلقه تا چه زماني بايد اجرا شوند.{ (گام حرکت ; شرط حلقه; مقدار اوليه انديس حلقه) for دستور 1 دستور2 ... دستور n } بعد از آنکه يک بار دستورات داخل حلقه اجرا شدند آنگاه دستور واقع در قسمت گام حرکت اجرا ميشود. توسط اين دستور شمارنده حلقه تغيير ميکند.اگر حلقه for فاقد عبارت داخل پرانتز باشد, يک حلقه تکرار بينهايت که شرط پايان ندارد, ايجاد ميشود. for(; { دستورات داخل حلقه } دو خط دستور زير را در نظر بگيريد: for (k=0 ; k<4 ; k++) cout << k << "\n" ; در اين کد ابتدا دستور k=0 اجرا ميشود.سپس شرط حلقه k<4 بررسي ميشود. چون اين شرط برابر درست است دستور cout اجرا ميشود و مقدار متغير k نمايش داده ميشود. سپس دوباره به دستور for برميگرديم و عبارت k++ اجرا ميشود به اين ترتيب مقدار متغير k يک واحد افزايش مييابد و برابر دو ميشود. سپس شرط حلقه بررسي ميشود (k<4) که برابر درست است و در ادامه دستور داخل حلقه For يعني cout اجرا ميشود. for (k=0 ; k<4 ; k++) cout << k << "\n" ; به همين ترتيب اعداد يک تا سه بر روي صفحه نمايش داده ميشود و زماني که متغير k برابر عدد چهار شد حلقه به پايان ميرسد. در ادامه ميخواهيم برنامهاي بنويسيم که با استفاده از يک حلقه for اعداد 1 تا 10 را به همراه مکعبشان (عدد به توان 3) در خروجي چاپ شود. در اين برنامه حلقه for اعداد يک تا ده را به متغير c تخصيص ميدهد و هر بار کد داخل حلقه اجرا ميشود. با استفاده از دستور cout دو مقدار متغير c و حاصل عبارت c * c * c نمايش داده ميشود. براي اجراي برنامه كليدCtrl+F9 صفحه کليد را فشار دهيد. همانطور که مشاهده ميکنيد اين برنامه مکعب اعداد 1 تا 10 را محاسبه نموده و به همراه خود اعداد در خروجي نمايش داده است. روي دکمه Close کليک کنيد. همانطور که بيان شد در داخل پرانتر دستور for سه عبارت وجود دارد عبارت آخر ميتواند به هر نحوي متغير حلقه را افزايش يا کاهش دهد. براي مثال در برنامه زير عدد هشت تا صفر بر روي صفحه نمايش چاپ ميشود. for ( k=8 ; k>0 ; k-- ) { cout << k; } يک حلقه for ميتواند در داخل حلقه for ديگري نيز قرار بگيرد, در اينصورت يک حلقه for تودرتو تشکيل مييابد. حلقهاي که داخل حلقه ديگر قرار بگيرد حلقه داخلي و حلقهاي که خارج حلقه ديگري قرار داشته باشد حلقه خارجي نام دارد. در زمان اجرا, ابتدا حلقه خارجي اجرا شده و به ازاي هر بار اجراي دستورات اين حلقه, حلقه تکرار داخلي به طور کامل انجام ميشود. در ادامه برنامهاي مينويسيم که با استفاده از حلقههاي تودرتو جدول ضرب اعداد از 1 تا 5 را محاسبه کرده و در خروجي نمايش دهد. در اين برنامه دو حلقه تکرار وجود دارد که به ازاي هر مقدار k, مقدار l از 1 تا5 تغيير ميکند و در نتيجه يک سطر از جدول توليد ميشود. اين حلقه تا جايي که k به 5 برسد تکرارميشود. بنابراين جدول ضرب محاسبه شده و توسط دستور cout بر روي صفحه چاپ ميشود. براي اجراي برنامه كليد Ctrl+F9 صفحه کليد را فشار دهيد. همانطور که مشاهده ميکنيد جدول ضرب اعداد 1 تا 5 روي صفحه نمايش چاپ شده است. روي دکمه Close کليک کنيد. در عبارت اول و سوم يک دستور for ميتوانيد با استفاده از عملگر , (کاما) بيش از يک عبارت را در اين قسمت قرار دهيد. اين عبارات از چپ به راست يکي يکي اجرا ميشوند. براي مثال در دستور زير در ابتدا دو عبارت k=0 و n+=k اجرا شده و در هر بار اجراي حلقه دو عبارت k++ و n++ نيز اجرا ميشوند. for (k=0, n+=k; k<10; k++, n++) { … }با توجه به مطالب گفته شده از حلقه for معمولا" زماني استفاده ميکنيم که گام حرکت و تعداد دفعات تکرار از قبل مشخص باشد. در موارد ديگر از حلقه تکرار while يا do..while استفاده ميکنيم. همانطور که مشاهده ميکنيد يک قطعه کد وارد کردهايم. در اين برنامه اعداد 1 تا 50 و مجموع آنها را نمايش ميدهيم. در سطر اول يک متغير با نام sum از نوع int تعريف کردهايم و به آن مقدار اوليه صفر را تخصيص دادهايم و در سطر بعد دستور for را وارد کردهايم و داخل ان متغير i را تعريف کردهايم و مقدار اوليه 1 را به آن تخصيص دادهايم و پارامتر بعد مشخص کردهايم که متغير i تا خود عدد 50 ادامه پيدا کند و در پارامتر بعدي تعيين کردهايم که بعد از هر بار اجرا يک واحد به i اضافه کند. در داخل حلقه for دو سطر دستور قرار دارد. در سطر اول با استفاده از عبارت "\t" عمل دکمه tab صفحه کليد را انجام ميدهد سپس مقدار موجود در متغير i را بر روي صفحه چاپ ميکنيم. در سطر بعد مشاهده ميکنيد که دستور sum += i; وارد شده است که اين دستور در دفعه اول که اجرا شود عمليات sum = 0 + 1 را انجام ميدهد و بار دوم که اجرا شود به متغير sum يک واحد اضافه شده و عمليات sum = 1 + 2 را انجام ميدهد. به اين ترتيب مجموع اعداد 1 تا 50 به دست ميآيد. بعد از اتمام حلقه مقدار موجود در sum به نمايش در ميآيد. براي اجراي برنامه، دکمه Ctrl + F9 صفحه کليد را فشار دهيد. مشاهده ميکنيد که دستورات اجرا شدهاند. روي دکمه Close کليک کنيد. حال ميخواهيم يک برنامه بنويسيم که شکل زير را چاپ کند: * *** ***** ******* ********* در ادامه دستورات مورد نظر براي رسم اين شکل را وارد ميکنيم و سپس به توضيح آنها ميپردازيم.در اين برنامه از حلقه تو در تو استفاده کردهايم. شمارنده حلقه اول i است که از صفر تا n – 1 تکرار ميشود و حلقه دوم در هر بار تغيير مقدار شمارنده خارجي از يک تا n – i بار تکرار ميشود. اگر j کوچکتر از n – i باشد، کاراکتر جاي خالي چاپ ميشود، در غير اين صورت کاراکتر * چاپ ميشود.براي اجراي برنامه، دکمه Ctrl + F9 صفحه کليد را فشار دهيد. عدد 4 را تايپ کنيد. دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که در چهار رديف تصوير رسم شده است. روي دکمه Close کليک کنيد. کاربر گرامي، شما اکنون در پايان اين بخش هستيد، توجه کنيد که شما ميتوانيد نرم افزار آموزش ++Cرا به همراه چند بخش آموزشي ديگر که بصورت تعاملي و شبيه سازي شده با صدا و متن فارسي درس داده شده است و رايگان نيز ميباشد از لينک آموزش ++C دانلود کنيد. در نرم افزارهاي آموزشي کارهاي بيان شده را بايد در محيط شبيه سازي شده انجام دهيد. در ابتدا و انتهاي اين آموزش تصويري نيز کل آموزش (هم متن و هم تصويري) در فایل PDF و Word موجود است. دانلود فایل pdf آموزش تصویری ++C دانلود فایل word آموزش تصویری ++C |