يك توضيح مقدماتي بدهم ابتدا. شما كدها را مي توانيد در هر اديتوري بنويسيد. مثلا در ((نت پد)) بنويسيد و با پسوند مورد نظر save كنيد. ولي بهر حال بايستي يك كامپايلر داشته باشيد تا به فايل قابل اجرا يعني exe تبديل كنيد. من فعلا با توربو سي عمل تبديل را انجام مي دهم. به فايلي كه كدهاي شما در آن ذخيره شده ، سورس source مي گويند. پسوند در سي عبارت است از ((دات سي)) .c و در سي++ عبارت است از (( دات سي پي پي)) .cpp . من از codewhiz هم به عنوان اديتور استفاده مي كنم. كه فرقي با نت پد notepad ندارد. از اين اديتور مي توانيد براي ويرايش و ذخيره سورس در اسمبلي هم استفاده كنيد. و حتي زبانهاي ديگر. اگر از توربو سي و حتي كامپايلرهاي شبيه آن استفاده مي كنيد، براي اجرا و رفتن به محيط برنامه مي توانيد در پوشه bin فايل TC را اجرا كنيد. و بعد سورس خود را باهاش open كنيد و كار كنيد. اگه اولين باره كه با توربو سي و نرم افزارهاي مشابه اش داريد كار مي كنيد، نكته مهم اينه كه برويد به منوي option و بعد زير منوي Directories و آدرس پوشه include و lib (كه روي هارد كنار پوشه bin داريد) را در آنجا بدهيد. زيرا برنامه براي توانايي كامپايل كردن به اين دو پوشه نيازمند است. .
پاسخ : آموزش C++ سي پلاس پلاس از پايه اين اولين برنامه اي است كه كاري انجام مي دهد. و كارش اينه كه مي نويسد hello c . من از محيط توربو سي هم عكس گرفتم تا با شماي محيط آشنا بشويد. در برنامه توربو سي ، از منوي RUN ، گزينه اول RUN را بزنيد تا نتيجه اجرا را ببينيد. شرح برنامه: cout كارش چاپ متن و عدد است. در اينجا كلمه hello c را مي نويسد. به 2 علامت كوچكتر كه با shift+, ايجاد مي شود توجه كنيد ( << ) و به كوتيشنها دو طرف عبارتمان دقت كنيد. و به علامت سمي كالن در آخر جمله كه اجباري است حواستان باشه. دستور getch() كارش اين است كه زدن كليدي و دريافت آن كليد را طلب مي كند. علت استفاده از آن اينه كه اگر نباشه ، برنامه آنقدر سريع اجرا ميشه و بسته ميشه كه چيزي را ما نخواهيم ديد. پس با قرار دادن اين دستور تا ما كليدي را نزده ايم ، فرصت تماشاي نتيجه را داريم. كامنت گذاري: به نظر من اين اولين چيزيه كه در برنامه نويسي بايد ياد بگيريم. آنجا كه در شكل من نوشته ام yaddasht (يادداشت) دقت كنيد. قبلش دو تا مميز آمده. اين دو مميز باعث مي شود كه هر چه بعدش بياد ، موقع كامپايل ، خوانده نشه و ما آزاديم هر يادداشتي را بعد اين علامت بگذاريم. منظور من اين بود كه شما برويد يك امتحاني بكنيد، برويد هر بار قبل هر يك از include ها اين علامت(دو مميز) را بگذاريد. خواهيد ديد كه include اول اگر به شكل كامنت درآيد ( كه در حقيقت مثل پاك كردن اين خط برنامه است) دستور cout خطا خواهد داد. چون اين تابع در header ئي به نام iostream است و دومين include هم براي getch() لازمه. البته ممكنه چندين تابع با يك header پشتياني بشوند كه امر واضحي است. نكته: كامنت (يادداشت) هاي يك خطي را مي شود با // استفاده كرد ، ولي براي كامنتهاي چند خطي از شكل زير استفاده كنيد. يعني با /* شروع كنيد و با */ تمام كنيد. .
پاسخ : آموزش C++ سي پلاس پلاس از پايه حالا به برنامه بالا نگاه كنيد. Cin برعكس cout است. كارش گرفتن عددي از كاربر است. كاربر بايد عدد را تايپ كند و اينتر كند. چيز جديدي نداريم به جز long ، كه تعريف كردن متغير است. در خطي كه اين دستور آمده مي بينيد كه 4 متغير از اين نوع تعريف شده و دو تاي اول براي دريافت دو عددي است كه كاربر مي دهد و دو عدد بعدي براي قرار دادن حاصل تقسيم و باقيمانده درش است. توجه كنيد كه با cin علامت بزرگتر را داريم نه علامت كوچكتر. به دستور endl ((اند + حرف ال )) توجه كنيد. و همچنين توجه كنيد كه در پايان تمامي خط ها ، علامت سمي كالن موجود است. شايد بپرسيد كه endl كارش چيه. برويد برش داريد تا تفاوت را ببينيد. البته سمي كالن را اشتباهي برنداريد ، ولي علامت هاي كوچكتر را بايد برداريد. من رفتم الان امتحان كردم. عبارت ها به خط بعد نمي رود و در ادامه همان خط چاپ مي شود كه زيبا نيست. شايد بخواهيد بدانيد كه long چه نوع متغيري است ، كه بحث انواع متغيرها در سي ++ مطرح ميشه . شكل زير يك شمايي مفيد و مختصر به شما مي دهد. عدد صحيح integer و عدد اعشاري real . من رفتم يك امتحان كردم و در برنامه به آن عدد اعشاري دادم. برنامه از حالت اجرا خارج شد. چون ما گفتيم كه عددي كه كاربر مي دهد بايد عدديي صحيح باشد نه اعشاري. به حدود مجاز هر يك هم نگاه كنيد. اگر عدد شما بالاي 32 هزار است ، از short استفاده نكيند. زيرا تعداد بايتهايي كه در حافظه براي عدد شما در نظر گرفته ميشه محدوده و اگر عدد بزرگتر باشه ، حتي اگر برنامه دچار اختلال نشه ، معلوم نيست اضافه اش چه سرنوشتي پيدا مي كنه و مسلم است كه نتيجه محاسبات درست درنخواهد آمد. . #include <iostream.h> #include <conio.h> // yaddasht int main() { long aNum1, aNum2, aQuotient, aRemainder; cout << "Enter two numbers" << endl; cin >> aNum1 >> aNum2; aQuotient = aNum1 / aNum2; aRemainder = aNum1 % aNum2; cout << "The quotient of " << aNum1 << " and " << aNum2 << " is " << aQuotient << endl; cout << "and the remainder is " << aRemainder << end1; getch(); return 0; }
پاسخ : آموزش C++ سي پلاس پلاس از پايه كلا تا بحال برنامه هايي كه تابحال كرديم، شامل 3 قسمت بود. اول: گرفتن ورودي دوم: انجام محاسبات سوم: خروجي در شكل بالا اين 3 مرحله را نشان داده است. در شكل بالا ، ما قسمت ورودي را كار مي كنيم. هر داده اي كه مي خواهيم از كاربر بگيريم ، نياز به ظرفي دارد كه همان تعريف متغير برايش فراهم مي كند. در شكل بالا 3 نوع متغير تعريف كرده ايم و بعد از كاربر ، اطلاعات دريافت كرده ايم و در اين متغيرها ذخيره كرده ايم. در شكل بالا مي بينيد كه 3 متغير از يك نوع ( دابل) تعريف شده و براي راحتي با ويرگول و در يك خط نوشته ايم. براي ورودي گرفتن هم مي توانيم هم جدا و هم در يك خط ، عمل كنيم. در شكل بالا ، حالت غلط را مي بينيد. من رفتم نتيجه اين طور نوشتن را امتحان كردم. ولي شما امتحان نكنيد. فقط عدد اولي را درست مي گيره و دومي يك عدد عجيب و غريب خواهد شد.
پاسخ : آموزش C++ سي پلاس پلاس از پايه #include <iostream.h> #include <conio.h> // yaddasht int main() { double s, u, a, t; cout << "Enter initial velocity, acceleration, and time : "; cin >> u >> a >> t; s = u*t + 0.5*a*t*t; cout << "Distance travelled " << s << endl; getch(); return 0; } به برنامه بالا نگاه كنيد. برنامه ساده اي است. 4 متغير تعريف شده. 3 متغير را كاربر مي دهد و متغير چهارم در قسمت محاسباتي ، نتيجه محاسبه را در خود خواهد داشت. در آخر هم متغير چهارم كه نتيجه محاسبه است ، چاپ خواهد شد. اگر فيزيك يادتان باشد ، همان فرمول v0*t+1/2at^2 است. فرمولش از ضرب و جمع تشكيل شده و ساده است. فقط يك نكته كوچك در اينجا هست كه همه هم بلديد. و آن اين كه ضرب ، نسبت به جمع ، تقدم دارد. يعني اول ضربها انجام مي شوند و بعد جمع انجام مي شود. و اينجا هم ، ما همين را مي خواستيم. ولي اگر مي خواهيد كه اول جمع انجام بشه ، بايد از پرانتز استفاده كنيد. نوع متغير هم كه مي بينيد اعشاري است . . در شكل بالا ، 3 متغير تعريف كرديم و هر سه را مساوي عدد يك قرار داديم و چاپ كرديم. منظور اين بود كه بگوييم ميشه در يك خط چند متغير را مقدار دهي كرد. .
پاسخ : آموزش C++ سي پلاس پلاس از پايه در شكل بالا ، 4 عمل اصلي را داريم و باقيمانده را. امر واضحي را در شكل بالا مي بيند. علامت * الزامي است. و نبايد همان طور كه در رياضي عادت داريم عمل كنيم. به برنامه بالا نگاه كنيد. چند نكته دارد. نكته اول اينكه return ندارد. زيرا تابع main قبلش كلمه void آمده. يعني خروجي ندارد. پس نيازي به معرفي خروجي با return ندارد. نكته دوم اينكه جواب برنامه 2 است. كه اشتباه است. نويسنده برنامه آمده دو عدد صحيح را بر هم تقسيم كرده و نتيجه را چون اعشاري فرض مي كرده در يك عدد real (اعشاري) از نوع double ريخته. ولي اعشاري در كار نيست. و جواب تقسيم 2 شده. من آمدم دو عدد اول را هم double گرفتم. به شكل زير: و جواب اينبار (( دو و نيم )) درآمد كه درست است. #include <iostream.h> #include <conio.h> void main() { double i, j,result; i = 10; j = 4; result = i / j; cout << "result = " << result << endl; getch(); }
پاسخ : آموزش C++ سي پلاس پلاس از پايه در شكل بالا ، در جايي كه فلش آبي نشان مي دهد ، خطا دريافت مي كنيم. باقيمانده براي اعداد اعشاري بي معني است. ولي وقتي از long كه اعداد صحيح را نگه مي دارد استفاده مي كنيم ، كار درست است. تابع clrscr(); براي پاك كردن صفحه است. در شكلي كه تنيجه اجرا را نشان مي دهد ، مي بينيد كه خارج قسمت 10 بر 4 مساوي 2 است و باقيمانده اين تقسيم هم عدد 2 است. . #include <iostream.h> #include <conio.h> void main() { clrscr(); long i, j,result,reminder; i = 10; j = 4; result = i / j; reminder=i%j; cout << "result = " << result << endl; cout << "reminder = " << reminder << endl; getch(); }
پاسخ : آموزش C++ سي پلاس پلاس از پايه در شكل بالا 5 تابع رياضي را مي بيند. و همچنين مي بيند كه وروددي و خروجي ، هر دو ، double است. در شكل بالا ، ما از كاربر يك زاويه درخواست مي كنيم و بعد سينوس آن را به او برمي گردانيم. همان طور كه با فلش نشان داده شده ، header ئي به نام math براي استفاده از توابع رياضي لازم است. . #include <iostream.h> #include <conio.h> #include <math.h> void main() { clrscr(); double angle; double sine; cout << "Enter angle : "; cin >> angle; sine = sin(angle*3.141592/180.0); cout << "Sine(" << angle << ") = " << sine << endl; getch(); }
پاسخ : آموزش C++ سي پلاس پلاس از پايه include <iostream.h> #include <conio.h> #include <math.h> void main() { clrscr(); double pH; double HConc; cout << "Enter pH : "; cin >> pH; HConc = pow(10.0, -pH); cout << "If the pH is " << pH << " then the [H+] is " << HConc << endl; getch(); } اين برنامه هم از روي ph مي تواند غلظت H+ را به شما بدهد. .
پاسخ : آموزش C++ سي پلاس پلاس از پايه قوانين نام گذاري متغيرها : شما اسمي كه براي متغيرتان انتخاب مي كنيد بايد اين شرايط را داشته باشد، اول اينكه با يك حرف شروع بشود(حرف كوچك يا بزرگ) يا آندرلاين ( _ ) . من الان رفتم چك كردم . يك متغير به نام ((آندرلاين a )) _a ساختم و مشكلي نبود. قانون دوم: • The names contain only letters (abcdefghijklmnopqrstuvwxyzABC...YZ), digits (0123456789) and underscore characters _. نام متغير بايد از حروف و اعداد و آندرلاين تشكيل شده باشه. قانون سوم: از كلمات كليدي سي استفاده نكنيد. در عكس زير كلمات كليدي را نشان مي دهيم.