SlideShare a Scribd company logo
‫منبع‬ ‫معرفی‬
‫تاریخچه‬
‫زبان‬ ‫به‬ ‫برنامه‬ ‫اولین‬C++
‫منبع‬:‫کتاب‬The C++ programming language‫نوشته‬
‫آقای‬Bjarne Stroustrup
‫زبان‬C++‫زبان‬ ‫روی‬ ‫از‬C‫کرد‬ ‫پیدا‬ ‫توسعه‬
1979‫روی‬ ‫بر‬ ‫کار‬C with classes
1984‫از‬ ‫نام‬ ‫تغییر‬C with classes‫به‬C++
1985‫کتاب‬ ‫اولین‬ ‫و‬ ‫تجاری‬ ‫انتشار‬ ‫اولین‬The C++
Programming Language
1998‫انتشار‬ISO C++
2011‫استاندارد‬C++11‫شد‬ ‫منتشر‬
2012‫از‬ ‫کامل‬ ‫سازی‬ ‫پیاده‬ ‫اولین‬C++11‫شد‬ ‫رونمایی‬
...
‫زبان‬C++‫است‬ ‫کامپایلری‬ ‫زبان‬ ‫یک‬
‫یا‬ ‫مجتمع‬ ‫ی‬ ‫توسعه‬ ‫محیط‬IDE
Visual Studio
Qt Creator
Dev C++
Code Blocks
Ecllipse
…
1. #include <iostream>
2.
3. int main() { std::cout << "Hello, World!n"; }
1. #include <iostream>
2.
3. int main() { std::cout << "Hello, World!n"; }
1. #include <iostream>
2.
3. int square(int x)
4. {
5. return x * x;
6. }
7.
8. int main()
9. {
10. std::cout << "The square of 5 is " << square(5) << "n";
11. }
1. preface, hello world
1. preface, hello world

More Related Content

More from Vahid Heidari

17. thread and deadlock
17. thread and deadlock17. thread and deadlock
17. thread and deadlockVahid Heidari
 
15. map, unordered map, algorithms
15. map, unordered map, algorithms15. map, unordered map, algorithms
15. map, unordered map, algorithmsVahid Heidari
 
14. containers, vector, list
14. containers, vector, list14. containers, vector, list
14. containers, vector, listVahid Heidari
 
13. string, io streams
13. string, io streams13. string, io streams
13. string, io streamsVahid Heidari
 
12. standard library introduction
12. standard library introduction12. standard library introduction
12. standard library introductionVahid Heidari
 
9. class hierarchies
9. class hierarchies9. class hierarchies
9. class hierarchiesVahid Heidari
 
7. abstraction mechanisms, containers
7. abstraction mechanisms, containers7. abstraction mechanisms, containers
7. abstraction mechanisms, containersVahid Heidari
 
6. separation, namespace, error
6. separation, namespace, error6. separation, namespace, error
6. separation, namespace, errorVahid Heidari
 
5. struct, class, enum
5. struct, class, enum5. struct, class, enum
5. struct, class, enumVahid Heidari
 
2. types, vars, arith, consts
2. types, vars, arith, consts2. types, vars, arith, consts
2. types, vars, arith, constsVahid Heidari
 

More from Vahid Heidari (17)

18. utilities
18. utilities18. utilities
18. utilities
 
17. thread and deadlock
17. thread and deadlock17. thread and deadlock
17. thread and deadlock
 
16. smart pointers
16. smart pointers16. smart pointers
16. smart pointers
 
15. map, unordered map, algorithms
15. map, unordered map, algorithms15. map, unordered map, algorithms
15. map, unordered map, algorithms
 
14. containers, vector, list
14. containers, vector, list14. containers, vector, list
14. containers, vector, list
 
13. string, io streams
13. string, io streams13. string, io streams
13. string, io streams
 
12. standard library introduction
12. standard library introduction12. standard library introduction
12. standard library introduction
 
11. template
11. template11. template
11. template
 
10. copy and move
10. copy and move10. copy and move
10. copy and move
 
9. class hierarchies
9. class hierarchies9. class hierarchies
9. class hierarchies
 
8. abstract types
8. abstract types8. abstract types
8. abstract types
 
7. abstraction mechanisms, containers
7. abstraction mechanisms, containers7. abstraction mechanisms, containers
7. abstraction mechanisms, containers
 
6. separation, namespace, error
6. separation, namespace, error6. separation, namespace, error
6. separation, namespace, error
 
5. struct, class, enum
5. struct, class, enum5. struct, class, enum
5. struct, class, enum
 
4. pointers, arrays
4. pointers, arrays4. pointers, arrays
4. pointers, arrays
 
3. tests, loops
3. tests, loops3. tests, loops
3. tests, loops
 
2. types, vars, arith, consts
2. types, vars, arith, consts2. types, vars, arith, consts
2. types, vars, arith, consts
 

1. preface, hello world

Editor's Notes

  1. با سلام من وحید حیدری هستم و قصد دارم زبان C++ رو ارائه بدم.
  2. ابتدا منبع رو معرفی می کنم بعد یه مختصر در مورد روند توسعه زبان می گم و اولین برنامه رو به زبان C++با هم می نویسیم
  3. منبع کتاب the c++ programming language هست edition چهارم
  4. زبان C++ یک زبان کامپایلریه. یعنی برای اینکه برنامه های که می نویسید اجرا بشن به یک کامپایلر نیاز دارید تا اول برنامه ای که نوشتید به یک کامپایل بدید تا اونو پردازش کنه و یکسری Object file به شما تحویل بده و اون Object fileها رو به یک Linker یا پیوند دهنده می دیم و در نهایت linker یک فایل اجرایی به ما تحویل میده که میشه اون فایل اجرایی روجایی که دوست دارید برنامه شما اجرا بشه منتقل کنید و اونو اجرا کنید. برنامه های C++ از یکسری فایل های متنی یا Text File تشکیل شدن که با اصطلاح به اونا فایل های منبع یا Source File میگن. حالا برای اینکه source fileها اجرا بشن به یک محیط نیاز داریم به نام IDE که مراحل کامپایل و لینک کردن رو انجام بده.
  5. در این آموزشها از Visual Studio 2010 استفاده می کنیم.
  6. معمولا کسانی که می خوان یک زبان جدید رو یاد بگیرن از برنامه ی Hello World شروع میکنن. این برنامه کارش اینه که یک پیغام کوچیک رو در صفحه چاپ کنه و خاتمه پیدا کنه. و باید خیلی ساده باشه تا با محیط آشنا بشید و به صورت عملی وارد دنیای برنامه نویسی بشید. بعد از نصب و اجرای Visual studio اولین صفحه ای که باز میشه این صفحه هستش. توی این صفحه شما می تونید پروژه ی جدید بسازید. برای ساختن پروژه جدید روی New Project کلیک می کنیم. یا میتونید از منوی فایل New Project رو انتخاب کنید.
  7. بعد یک صفحه باز میشه و توی این صفحه از قسمت سمت چپ قالب های مختلف پروژه ها وجود داره و میشه انتخاب کرد. باید از Visual C++ پروژه ی Win32 رو انتخاب می کنیم و یک اسم برای پروژه می نویسیم در قسمت Location جایی که پروژه ساخته می شه رو انتخاب می کنیم. و OK رو می زنیم.
  8. یک wizard باز میشه تا کمک کنه که تنظیمات پروژه ای که ایجاد می کنیم رو راحتتر انجام بدیم. کافیه گزینهNext رو بزنیم.
  9. توی صفحه بعدی گزینه Console Application رو انتخاب می کنیم و از این قسمت هم تیک Empty Project رو میزنیم و Finish رو میزنیم تا تنظیمات تموم بشه.
  10. خوب الان کار ساختن پروژه تموم شد و ما یک پروژه خالی داریم حالا میتونیم به اون یک Source File اضافه کنیم و داخل اون شروع کنیم برنامه نوشتن. برای اضافه کردن Source File باید روی Solution Explorer کلیک کنید. اگه Solution Explorer رو نمی بینید می تونید از منوی View به اون دسترسی داشته باشید.
  11. وقتی رویSolution Explorer کلیک کنید؛ می تونیم به کل پروژه ای که ایجاد کردیم دسترسی داشته باشیم. حالا باید روی اسم پروژه کلیک راست کنیم و بعد از گزینه ی Add گزینه ی New Item رو بزنیم.
  12. یه پنچره باز می شه و توی این پنجره گزینه ی C++file (.cpp) رو انتخاب می کنیم و بعد اسم اون رو می نویسیم Main . و وقتی OK رو بزنید فایل جدید به پروژه اضافه میشه.
  13. حالا می تونیم در این فایل ایجاد شده؛ برنامه خودمون رو بنویسیم. این فایل رو باز می کنیم و شروع می کنیم به نوشتن برنامه Hello World .
  14. برنا مه ای که باید بنویسید توی این اسلاید هست. شما می تونید ویدیو رو نگه دارید و از روی اون کپی کنید در visual studio اولین نکته اینه که C++به بزرگی و کوچیکی حروف حساسه یعنی اگر بزرگ و کوچیکی حروف رو رعایت نکنید به مشکل می خورید. پس دقت کنید که برنامه ای که می نویسید رو دقیقا همین جور که در اسلاید می بیند در visual studio هم بنویسید.
  15. بعد از اینکه برنامه رو نوشتیم اونو کامپایل می کنیم و بعد اجراش می کنیم. برای اینکار می تونید دکمه ی فلش سبز رو بزنید یا از منوی Debug گزینه ی Start Without Debuging رو بزنید یا کلید های CTRL + F5 رو بزنید تا برنامه بعد از اجرا وایسه و خروجی رو بتونید ببینید.
  16. در این اسلاید خروجی برنامه رو می بینید که پیغام Hello World در خط اول نوشته شده.
  17. خوب حالا یکم در مورد برنامه ای که نوشتیم توضیحاتی رو میدم که هر خطی که نوشتیم یعنی چی؟ در خط اول با include به کامپایلر میگیم که می خوایم یک کتابخانه رو به برنامه ام اضافه کنیم و از امکانات اون استفاده کنیم. اسم اون کتابخونه iostream هست و به ما امکان میده که یک پیغام رو روی صفحه چاپ کنیم. خط 2 خالیه و کاری انجام نمیده. پس کامپایلر می ره سراغ خط 3. در خط 3 یک تابع به نام main نوشتیم. تمام برنامه های C++ یک تابع به نام Main دارند که نقطه شروع برنامه ست و برنامه از اول Main شروع میشه و خط به خط دستوراتی که در اون نوشته شده اجرا میشه. مفهوم تابع در زبان C++ یه چیزی شبیه همون توابع هست که در درس ریاضی خوندیم. تابع یک یا چند ورودی می گیره و یک خروجی داره. عملیاتی که قراره تابع روی ورودی هاش انجام بده داخل بدنه اون نوشته میشه و با یک آکولاد باز و یک آکولاد بسته بدنه ی تابع مشخص میشه. در اینجا تابع main هیچ ورودی نداره و یک خروجی از نوع int بر می گردونه. در بدنه ی تابع که جلوش نوشته شده یک پیغام رو روی صفحه چاپ میکنه. این std::cout یکی از امکاناتی که کتابخانه ی iostream به ما میده. از اون برای چاپ کردن پیغام Hello World استفاده کردم. هر چی جلوش باشه رو انتقال میده به خروجی. پیغام های متنی باید درون دبل کوت باشند. این 2 تا علامت بزرگتر میگن که هر چی که سمت راست علامت میبینی رو به خروجی منتقل کن یعنی روی صفحه چاپ کن. یک \n در انتهای پیغام نوشته شده به این معنی که یک enter آخر پیغام بذار و برو خط بعدی. در آخر هم یک سمی کلون گذاشته شده. تمام دستورات در C++ با یک سمی کلون تموم میشن و حتما باید ته هر دستور گذاشته بشن.
  18. خوب تا اینجا ما تونستیم یک برنامه بنویسیم که یک پیغام رو روی صفحه چاپ کنه .الان برنامه ی Hello World ما تکمیل شده. ولی می خوایم یکم دیگه اونو گسترش بدیم و یه تابع به اون اضافه کنیم که یه عددی رو به عنوان وروی بگیره و مجذور اون رو حساب کنه و حاصل اون رو برگردونه. برای اینکار یک تابع به نام square می نویسیم. و ورودیش رو از نوع int میگیریم و داخل پرانتز باز و بسته می نویسیم اسم اونو هم x میذاریم و خروجی اون رو هم سمت راست نام تابع از نوع int در نظر می گیریم. و در بدنه تابع عملیاتی که میخوایم رو می تویسیم. در خط 5 نوشتیم x * x یا همون x به توان 2 رو return کن و برگردون. با کلمه return مقدار خروجی تابع رو بر می گردونیم. حالا باید از این تابعی که نوشتیم در برنامه استفاده کنیم. برای این کار باید این تابع رو فراخوانی کنیم یعنی یک ورودی بهش بدیم و خروجی اون رو بگیریم. کافیه اسم این تابع رو بنویسیم و ازش استفاده کنیم. مثلا در داخل بدنه ی main رو تغییر می دیم و بجای اینکه فقط یک پیغام رو چاپ کنیم مقدار مجذور 5 رو چاپ می کنیم. همون طور که میبینید می شه در یک خط با استفاده از cout چند تا مقدار مختلف رو با علامت های کوچکتر به هم وصل کرد و روی صفحه چاپ کرد.
  19. خوب حالا برنامه رو اگه اجرا میکنیم یه همچین نتیجه روباید ببینیم.
  20. خوب یه جمع بندی بکنیم تا اینجا یک مقدمه ای گفتم و مختصری از روند توسعه ی اون گفتیم که از C منشا گرفته و سعی شده که با C سازگار باشه و یه برنامه نوشتیم که یک پیغام رو روی صفحه چاپ می کرد و بعد یک تابع به اون اضافه کردیم. امید وارم مفید بوده باشه با تشکر