Feeds:
نوشته
دیدگاه

جلسه 7

داشتم  pdf برنامه سازی پیشرفته تالیف و تدوین دکتر احمد فراهی رو می خوندم که به این متن رسیدم :
cout این قابلیت را دارد که چند چیز را به شکل متوالی و پشت سرهم روی صفحه نمایش درج کند . با استفاده از این خاصیت می توان چند رشته مجزا را از طریق cout با یکدیگر پیوند داد و خروجی واحد تولید نمود .

نوشتن برنامه زیر در راستای توصیف عملی این پاراگراف توصیه شده بود :
pic of projct3با خودم گفتم خوب این کار به چه دردی می خوره که یه جمله رو تکه تکه کنیم و با cout به هم پیوند بدیم !!!!!!!!!!! که برنامه ای رو از اینجا پیدا کردم و نوشتم البته دو سه تا ارور حسابی گرفتم که بعد از اسکرین شات در موردش صحبت می کنم :
pic of project 4-aاین اولین کار من رو برنامه بود با ارورهایی که گرفتم  . متن هایلایت شده توی اسکرین شات بالا رو توی گوگل سرچ کردم و اینجا جواب خودم رو گرفتم !
pic of project 4-bو اینطوری بود که فهمیدم هنگام استفاده از define#  نباید علامت مساوی بذارم . البته یه اشتباهی هم در خود وبلاگ صاحب این ایده برنامه فوق بود که header file  رو مشخص نکرده بود .
بگذریم بعد از کلی دوندگی در گوگل و اینور و انور بالاخره برنامه کامپایل شد و ما تونستیم اسکرین شات زیر رو بگیریم :
pic of project 4-c
اینجا بود که فهمیدم نه بابا از این خاصیت cout  می شه استفاده های به جا داشت به شرط اینکه بتونی خلاقیت خودت رو به کار ببندی !!!


جلسه 6

امروز دوتا برنامه ی ساده و ابتدایی و احمقانه نوشتم ! کامپایلش هم کردم !!! ارور هم نداشت اما نمی دونم چرا موقع اجرا صفحه run روی مونیتور فیکس نمی شد و می پرید . :((((

خیلی کارا کردم ولی نشد که نشد .

خدایا کجای کارم اشتباه بوده ؟ نکنه صبح بعضی چیزارو از درایو سی آوردم به یه درایو دیگه اینطور شد ؟

اصلاً خدایا  بگو ببینم تو برنامه نویسی به زبان ++c بلدی ؟

راست می گی  جواب سوال بالا رو هر چه زودتر برام بفرست . با سپاس بی پایان

پ . ن : رامین عزیز جوابمو داد.متن جواب رامین اینه :

این طبیعیه . تو که برای ویندوز می نویسی . فعلاً قبل از return 0  بنویس system( » pause»);l

منم همین کارو کردم و نتیجه گرفتم .

ممنونم رامین مهربون .pic of projct2این برنامه ای است که می توان دو عدد صحیح را با هم جمع کرد .

این برنامه از شی جریان ورودی(cin) و عملگر استخراج از جریان << استفاده می کند تا دو عدد صحیح را از کاربر بگیرد ، حاصل جمع این دو مقدار را با هم محاسبه کند و نتیجه را با استفاده از cout به چاپ برساند .

برداشت از کتاب برنامه نویسی ++c نویسندگان : دایتل و دایتل ترجمه دکتر مرتضی صاحب الزمانی

جلسه 5

صبح کله سحر با خودم فک کردم اینطوری نمی شه که کدهای بقیه رو بذارم جلوم و کپی کنم و تازه ارور هم بگیرم ، بدون اینکه بفهمم چی به چی !!!
جلسه قبل یک کم فهمیدم و دستم اومد هدر فایلها چی هستند و به چه منطوری توی کدنویسی می یان ولی سوالهای احمقانه زیادی برام وجود داشت و هنوز هم وجود داره . سوالهایی از این قبیل :

  • چرا بعضی از خطها جلو و عقب هستند ‍! یادمه یه بار رامین به من گفت : به این کار می گن بلوک بندی ( اگه اشتباه نفهمیده باشم )
  • این cin و cout چی هست ؟
  • کار int  چیه ؟
  • کار n\ چیه ؟ چرا بعضی ها می ذارنش و بعضی ها نمی ذارنش ؟
  • موقع کامپایل کردن چه اتفاقی می افته ؟
  • ……………………
    همین باعث شد که تصمیم بگیرم کتاب دایتل  رو بگیرم دستم و بخونمش ولی خدایش اصطلاحاتی که به کار برده چقدر برا ذهن سنگینه !!! فقط امیدوارم  در اثر زیاد خوندن با این کلمه ها اُخت بشم . مطالبی خوندم که برام جالب بودند و همین باعث شد منتخبی از اونها رو ( که بی ارتباط با اشکالات من نیستند ) اینجا بنویسم :
  1. اولین مرحله هنگام برنامه نویسی ، ویرایش یک فایل است . این کار با استفاده از یک برنامه ی ویرایشگر انجام می شود . (خود من از برنامه های microsoft visual studio 2008  و Devcpp استفاده می کنم . ) برنامه نویس برنامه ++c خود را در یک ویرایشگر تایپ می کند و در صورت نیاز تصحیحات لازم را به عمل می آورد . سپس برنامه را روی یک دستگاه ذخیره سازی مانند هارد ذخیره می کند . سپس برنامه نویس فرمان کامپایل برنامه را می دهد . کامپایلر ، برنامه ++c را به زبان ماشین ( object code) ترجمه می کند . در یک سیستم ++c ، برنامه ای به نام پیش پردازنده قبل از شروع مرحله ترجمه کامپایلر ، به طور خودکار اجرا می شود . پیش پردازنده ++c از فرمانهای خاصی به نام رهنمودهای پیش پردازنده ( directive) پیروی می کند که کارهای خاصی که باید قبل از کامپایل برنامه روی آن انجام شود توسط این رهنمودها مشخص می شوند . این کارها معمولاً شامل گنجاندن فایل ها و جایگزینهای متنی گوناگون است . مرحله بعدی پیوند است . برنامه های ++c عموماً شامل مراجعات به توابعی هستند که در جاهای دیگر تعریف
    شده اند ( مانند توابعی که در کتابخانه های استاندارد یا کتابخانه های شخصی گروه های برنامه نویسی که روی پروژه خاصی کار می کنند وجود دارند ) .
    کد مقصود(  object code ) تولید شده توسط کامپایلر ++c نوعاً به خاطر این بخش های مفقوده ، شامل حفره هایی است . پیوند دهنده ، کدهای مقصود را با کد توابع مفقوده پیوند می زند و یک تصویر قابل اجرا ایجاد می کند . مرحله ی بعدی بار کردن است . قبل از اینکه بتوان برنامه ای را اجرا کرد برنامه باید در حافظه قرار گیرد . این کار توسط بار کننده انجام می شود که تصویر قابل اجرا را از دیسک می گیرد و آن را به حافظه می دهد .در انتها کامپیوتر تحت کنترل cpu دستورالعملهای برنامه را یکی پس از دیگری اجرا می کند .
  2. توضیحات یک خطی با// شروع می شن که بیانگر آن است که بقیه خط ، یه توضیح است .برنامه نویسان توضیحاتی را در برنامه می گنجانند تا برنامه را مستند کنند و خوانایی برنامه را بهبود بخشند . کامپایلر ++c توضیحات را نادیده می گیرد و هیچ کد مقصود زبان ماشین برای آتها تولید نمی کند برنامه نویسان ++c می توانند از سبک توضیح نویسی c نیز ، که در آن یک توضیح حاوی چندین خط است از الگوی */شروع و به /* ختم می شود استفاده کنند .
  3. خطوطی که با < include <file name # شروع می شوند رهنمود پیش پردازنده ( یعنی پیغامی به پیش پردازنده ی ++c ) هستند . خطوطی که با # شروع می شوند قبل از اینکه برنامه کامپایل شود توسط پیش پردازنده پردازش می شوند . خط فوق به پیش پردازنده می گوید که محتویات فایل سرآمد (header file) را در برنامه بگنجاند .
    با توجه به اجزای فوق ، راهنمای پیش پردازنده خطی است که به کامپایلر اطلاع می دهد در برنامه موجودیتی است که تعریف آن را باید در فایل کتابخانه ای مذکور جستجو کند .
  4. خط ()int main در همه برنامه های ++c وجود دارد . پرانتزهای بعد از main بیانگر آنند که main یک سازگر ( building block)  به نام تابع است . برنامه های ++c دارای یک یا چند تابع هستند که دقیقاً یکی از آنها باید main باشد . اجرای برنامه ها ی ++c در حالت عادی تابع main  شروع می شوند . حتی اگر اولین تابعی که نوشته می شود main نباشد. وقتی برنامه اجرا شد ، یک عدد صحیح به سیستم عامل بازگردانده می شود تا سیستم عامل بفهمد که برنامه با موفقیت به پایان رسیده یا خیر . عبارت int که قبل از main استفاده شده نشان می دهد که این برنامه یک عدد صحیح را به سیستم عامل برمی گرداند .
  5. بدنه اصلی برنامه مجموعه ای از دستورات متوالی است که میان دو {} بسته شده است . این اکولادها شروع و پایان برنامه را نشان می دهد .
  6. رشته ای از نویسه ها ( character) بین گیومه («) قرار می گیرد . مثل :  »  cout << «my name is samaneh\n
    در ++c اَعمال ورودی و خروجی روی جریانهایی از نویسه ها انجام می شود . بنابراین هنگامی که دستور فوق اجرا می شود ، جریانی از نویسه ها به صورت  my name is   samaneh به شیی جریان خروجی استانداردیعنی cout که معمولاً به صفحه نمایش وصل است فرستاده می شود . علامت >> عملگر خروجی نامیده می شود . این عملگر اجزای سمت راستش را به خروجی سمت چپش می فرستد . دنباله گریز «n\ » نیز در رشته فوق وجود دارد ولی چیزی به جای آن چاپ نمی شود ، بلکه این دنباله گریز باعث می شود مکان نما به خط بعدی نمایش برود . به این دنباله گریز ، دنباله گریز » خط جدید » یا » نو سطر » گویند . علامت \ را نویسه یا کاراکترگریز ( escape ) گویند . این نویسه نشان می دهد باید یک نویسه خاص به صفحه فرستاده شود . هنگامی که در رشته ای از نویسه ها یک ممیز وارو باشد ، نویسه ی بعدی با آن ترکیب می شود و تشکیل » دنباله گریز» می دهد
  7. بسیاری از برنامه نویسان آخرین نویسه ای را که یک تابع را چاپ می کند نویسه n\ را قرار می دهند . این کار باعث می شود که مکان نما پس از اتمام تابع در ابتدای سطر جدید قرار گیرد .قراردادهایی از این قبیل قابلیت استفاده ی مجدد از نرم افزار را که در محیطهای توسعه نرم افزار یکی از اهداف اصلی است افزایش می دهند . ( اذعان می کنم این جمله آخر رو نفهمیدم )
  8. یک دستور به تنهایی می تواند چندین خط را با استفاده از نویسه های نوسطر چاپ کند هر بار که در جریان خروجی دنباله ی گریز n\ دیده شود مکان نمای صفحه نمایش در ابتدای خط بعدی قرار می گیرد . برای اینکه در خروجی یک خط خالی داشته باشید تنها کافی است دو نویسه نوسطر را پشت سر هم قرار دهید . ( به عکسی که از کدسورس و فایل اجراشده توسط خودم گرفته شده توجه کنید .
  9. دومین قانون مهم و ساده ++c این است که حتماً باید در پایان هر دستور علامت ; قرار دهید .
  10. برای کل بدنه ی هر تابع در درون آکلادهایی که بدنه ی تابع را مشخص می کند یک سطح از تو رفتگی ایجاد کنید . این کار ساختار عملیاتی برنامه را برجسته می سازد و به خوانایی برنامه کمک می کند . قراردادی برای اندازه ی تورفتگی موردنظر خود در نظر بگیرید و از آن پس از این قراردادپیروی کنید . توصیه می کنیم برای یک سطح تو رفتگی از محل های توقف جدول بندی با اندازه ترجیحاً سه فاصله استفاده کنید .
  11. دستور return 0  مقدار صفر را به سیستم عامل بازمی گرداند و برنامه را پایان می دهد . در انتهای این دستور نیز علامت سمیکولن قرار دهید . کامپایلرهای ++c این دستور را به معنای پایان تابع () main  تلقی می کنند.
  12. pic of project 1
دنباله گریز توضیح
\n نوسطر: مکان نمای صفحه نمایش را در آغاز سطر بعدی قرار می دهد

\r

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

\a

هشدار: بوق سیستم را به صدا در می آورد

\\

بک اسلش: برای چاپ نویسه بک اسلش

گیومه : برای چاپ نویسه گیومه

جلسه 4

امروز موقع کار کردن روی یه کد و گرفتن یه پیغام مبنی بر نبودن فلان فایل و یا دایرکتوری که مربوط به دستور پیش پردازنده بود !!( قبلاً هم از این ارور گرفته بودم )د برام سوالی پیش اومد !!!
این Header file ها چی هستند؟ موقع جستجو برای رسیدن به جواب این سوال اطلاعات زیر رو جمعکردم :
1 – هنگامی که می خواهیم یک تکه کد بنویسیم ، این کدها باید به compiler معرفی شوند . compiler  این کدها رو برمی داره تبدیل می کنه به کدهایی که سیستم می تونه اونهارو تشخیص بده و اونهارو رو بعداً برای ما اجرا کنه . ( سی دی آموزشی » آموزش جامع visual c++ 2008 لوح آموزش «)
2- دستورات پیش پردازنده به دو دسته تقسیم می شن : دستورات صدا زدن library ها و دستورات صدا زدن مستقیم کدها . ( صدا زدن به اینمعنی هست که دستورات توی حافظه لود بشن و سیستم آماده باشه اگه فرمان دستوری صادر شد ، از اون دستورات استفاده کنه .( سی دی آموزشی » آموزش جامع visual c++ 2008 لوح آموزش «)

3 – شبه دستورات پیش‌پردازنده با استفاده از کاراکتر # قبل از هر گونه فضای خالی آغاز گشته و رشته‌هایی را در کد منبع با فایل یا رشته‌های دیگر با توجه به قوانین تعریف گشته توسط برنامه‌نویس جایگزین می‌نماید. این دستورات معمولاً اعمال زیر را انجام می‌دهند: جایگزینی ماکروها، شمول فایل‌های دیگر (برخلاف ویژگی سطح بالاتر مانند شمول ماجول‌ها/پکیج‌ها/یونیت‌ها/کامپوننت‌ها)، کامپایل شرطی و/یا شمول شرطی. به عنوان مثال:

#include <iostream>

که این دستور تمام سمبل‌ها در فایل سرایند کتابخانه استاندارد iostream را در فایل منبع وارد می‌سازد.  منبع

4- هر برنامه معمولاً از تعداد زیادی فایل تشکیل می‌شود که به هم الحاق می‌گردند (با دستور include) و به این فایل‌های الحاقی سرآیند (Header) می‌گوییم. فایل‌های الحاقی حاوی کد‌ها یا نسخه‌های اجرایی کلاس‌ها (مجموعه متغیر‌ها و توابع) می‌باشند که در بدنه اصلی برنامه از آنها استفاده می‌شود. معمولاً هر کلاس (که تعریف یک نوع داده‌ای با متد‌های مربوط به آن است) را در یک سرآیند می‌نویسند. هر سرآیند که معمولاً تنها تعاریف (معرفی) کلاس را در خود دارد به همراه فایل‌های پیاده سازی به زبان ++C یا پیاده سازی‌های کامپایل شده (به صورت فایل اشیا مانند dll یا so یا … ) می‌تواند به کار برده شود. به مجموعه‌های یکپارچه‌ای از کلاس‌های پیاده سازی شده (به صورت فایل‌های سرآیند با پیاده سازی‌های کد یا اشیای زبان ماشین) که برای برنامه نویسی به کار می‌روند، یک کتابخانه ++C گفته می‌شود و قدرت اصلی این زبان در امکان به کارگیری کتابخانه‌های آماده می‌باشد. کتابخانه‌های بزرگ ++C مانند STL، MFC، QT و … مجموعه قدرتمندی برای تولید برنامه در این زبان ایجاد کرده‌اند.  منبع
4- پیش پردازنده ، نوعی مترجم است که دستورات توسعه یافته ای از یک زبان برنامه سازی را گرفته و به دستورات قابل فهم برای کامپایلر همان زبان تبدیل می کند .بعبارت دیگر، ورودی پیش پردازنده ، برنامه ای با دستورات توسعه یافته است و خروجی آن ، برنامه دیگری است که توسط پردازشگر اصلی قابل ترجمه و اجرا است . دستورات توسعه یافته ای که در زبان C وجود دارند وتوسط پردازشگر اصلی قابل ترجمه و اجرا نیستند ، فقط توسط پیش پردازنده قابل فهم هستند و به دستورات پیش پردازنده معروفند .  منبع

مطالب جدیدتر رو به صورت پی نوشت می یارم

جلسه 3

دیشب یه پروژه نوشتم که به حمد و حول قوه الهی 9 تا ارور داشت .project2

خطهایی رو که ارور داشتند رو هایلایت کردم .

اینم نوع ارورهایی که ++devc برام گرفته .errors in projet2

خوب حالا چون یه سری سوال دارم می دونم باید دنبال چی بگردم .

اگه جوابهارو پیدا کردم پی نوشت می ذارم

جلسه 2

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

فقط یه سوال برام پیش اومده . چطور می تونم این برنامه هارو چطور به صورت سر جمع می تونم در اختیار بچه ها قرار بدم .

جلسه 1

اول از همه بگم که بیشتر وقت منو تا حالا جستجو کردن برده .  این جستجوها هم کلی سوال برام پیش آورد و طبیعتاً جستجوهای بیشتری طلب کرد .

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

توشه ی اصلی که تا به حال با خودم همراه کردم یک کامپایلر Devc++  for windows و یه فایل pdf به اسم c plus plus pro programming و یه ebook به اسم
C++ Primer Plus, 4th Edition و یه دوست خوب به اسم رامینه .

کامپایلر و طریقه تنطیمش رو مدیون نویسنده وبلاگ http://cpp.blogfa.com/post-12.aspx هستم .

فایل pdf  ( کتاب آموزش برنامه سازی پیشرفته ++c  رو هم از سایت   http://forum.dpiguide.com/ftopict-1215.html پیدا کردم اما از کجاش یادم نیست . احتمالاً یه جستجوی کوچک توی سایت انجام بشه شاید یه سرنخ و یا حتی خود نخ پیدا بشه !!!
پ . ن : نه تنها سرنخ رو پیدا کردم که خود نخ رو هم پیدا کردم و لینک رو درست کردم .

ebook رو هم واستید بگردم پیداش کنم تا بگم …………ایـــــــــــــــــــــــــــناهاش » http://www.leechers.info/c-primer-plus-4th-edition » .

و اما از همه مهمتر دوست خوبم رو مدیون توییتر و فرندفیدم .

طراحی یک سایت مانند این با استفاده از WordPress.com
شروع کنید