PDA

View Full Version : مقاله: اموزش ++c از صفر تا...



senaps
سه شنبه 22 اردیبهشت 1388, 05:03 صبح
به نام خدا
سلام
من توی انجمن c++ خیلی گشتم ولی اموزشی برای این زبان پیدا نکردم!یعنی مطلبی که بیاد مفاهیم اولیه ی برنامه نویسی با این زبان رو به دوستان تازه کار اموزش بده برای همین تصمیم گرفتم که با اجازه ی مدیران اموزش های مربوط به این زبان برنامه نویسی رو که می تونم اونها رو در حدود 30درس بخش بندی کنم رو قرار بدم.....
البته این قسمت فعلا یک بخش اولیه است تا ببینیم ایا کسی با ادامه ی کار تاپیک مخالفتی نداره؟!
مقدمه:
این اموزش ها برای همه است!تمام کسانی که هیچوقت برنامه نویسی نکرده اند یا اینکه برای اولین بار است که با c++ برنامه نویسی می کنند.برای تمام کسانی که می خواهند با یک زبان بی محدودیت و بسیار قدرتمند برنامه نویسی کردن را یاد بگیرند....
C++ یک زبان برنامه نویسی است که به شما اجازه ی کنترل یک کامپیوتر را می دهد.به شما اجازه می دهد که هر کاری را بکنید که دلتان می خواهد(به واژه ی هر کاری دقت بیشتری کنید!)
این اموزش ها به شما کمک خواهد کرد که برنامه نویسی تئوری را در حد حرفه ای یاد بگیرید!بخش عملی برنامه نویسی بستگی به خودتون داره که بتونید از کدها و دانش تئوریتون استفاده کنید و برنامه هایی رو بنویسید با هر هدفی...(اینش دیگه به حافظه و هوش و خلاقیت شما مربوطه!)
مقدمه های c++-کامپایلرها:
اولین چیزی که برای برنامه نویسی با c++ شما نیاز دارید،داشتن یک کامپایلر خوب است.
کامپایلر چیست؟کامپایلر ها برنامه های نوشته شده توسط شما رو به صورت قابل فهمی برای کامپیوتر در می اورند که بتونه اونها رو اجرا کنه.اگه خودتون همینجوری c++رو می خواید یاد بگیرید،پیشنهاد من به شما کامپایلر Code::Blocks (http://www.codeblocks.org/downloads) می باشد.البته اگه شما توی دانشگاه یا مدرسه در حال یادگرفتن این زبان هستید،می تونید از هر کامپایلری استفاده کنید و این اموزشها باعث سرعت بیشتر در یادگیری میشه و شما می شید بهترین دانش اموزش کلاس برنامه نویسیتون!
توضیحی دقیق تر درباره ی کامپایلر:
اگه شما تجربه ی قبلیی داشته بوده باشید یا اینکه این اولین باریه که می شنوید باید بدونید که نسخه های مختلفی از کامپایلر ها وجود داره.
چند تا از معروفترین کامپایلر ها عبارتند از: Microsoft C++ (http://www.cprogramming.com/visual.html) و Borland C++ (http://www.cprogramming.com/borland.html) و GNU C++ (http://www.cprogramming.com/g++.html) .
البته من راجع به این کامپایلر ها بیشتر از این توضیح نمی دم ولی اگر هیچ کامپایلری ندارید بهتره که همون کد بلوکس رو بگیرین چون هم حجم پایینی برای دانلود داره و هم رایگانه....(حجمش فقط 19 مگابایته اونم نسخه کاملش)
شروع کار با c++:
C++ مجموعه ای از فرمانهاست،که به کامپایلر می گن که کار خاصی رو انجام بده.مجموعه ی این فرمانها رو بهشون می گن سورس یا c++ source code یا c++source یا کد خالی!(ما از همون کد خالی استفاده می کنیم).
فرمانها هر کدام خود یا تابع اند یا کلمات کلیدی.کلمات کلیدی پایه و اساس یک زبان برنامه نویسی اند.در حالی که توابع معمولا در شرط های ساده تابع ها استفاده می شوند.شما این رو در برنامه ی بسیار ابتدایی و پیش پا افتاده ای که می نویسیم در اینده خواهید دید.
برنامه ها در c++ چجوری شروع می شوند؟هر برنامه ای در c++ یک تابع دارد،که همیشه main نامیده می شود،و همیشه وقتی برنامه اجرا می شه فراخوانی میشه.در main شما می تونید تابع های دیگه ای رو که چه توسط شما نوشتاه شدن و چه توسط کامپایلر از قبل بودن رو،استفاده کنید.
اما شما چجوری به اون توابع حرفه ای نوشته شده دسترسی دارید؟برای دسترسی به این تابع های استاندارد،که با خود کامپایلراند،شما هدر یا تیتر یا اولین خط برنامتون رو با #include میارید.کاری که این میکنه اینه که خودکار همه چیزو می گیره و به برنامه شما میارهبیاین به یه برنامه نگاه کنیم(برنامه ی معروف!و بسیار ساده ی hello world)


#include <iostream>
using namespace std;
int main()
{

cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";
cin.get();
}بیاین به برنامه نگاه کنیم و اونها رو یک به یک تشریح کنیم:

#include یه پیش پردازه که به کامپایلر میگه که کد ها رو داخل برنامه قرار بده قبل از اینکه اونها رو به فایل اجرایی تبدیل کنه.
با شامل شدن هدر،شما دوباره دسترسی به تعداد بسیار زیادی از توابع را بدست خواهید اورد!
using namespace std;:این قسمت از کد به کامپایلر میگه که از اون دستته از توابع استفاده کنه که که بخشی از کتابخانه های استاندارد(std) باشه.با قرار دادن این کد در بالای برنامه،شما به برنامه این اجازه رو می دید که از توابعی از قبیل cout استفاده کنه.
سمی کلون(;) بخشی "نحوی" از c و c++ می باشد.این به کامپایلر میگه که شما در اخر این دستور قرار دارید.در اینده شما خواهید دید که سمی کلون اخر بسیاری از فرمانها در c++ خواهد امد.
بخش مهم دیگه هست : int main()
این خط از کد ها به کامپایلر میگه که ما یه تابع داریم که با نام main نامگذاری شده.و این تابع مقدار عدد صحیح را بر می گرداند.پس از این int، کمانک ها یا "{}"قرار دارند که نشان دهنده ی پایان تابع هاست.در حقیقت اونها می تونن معنی شروع و پایان رو داشته باشن.
بنظر میاد که بخش بعدی برنامه هم ناشناس و تازه باشه....
اگه شما توی زبانها دیگه برنامه نویسی کرده باشید،شاید انتظار داشتید که print تابعی باشه که متن ها رو نمایش میده(مثل ویژوال بیسیک و پایتون) ولی در c++ به هر حال شیئ cout برای نوشتن مطالب استفاده می شه. که مخفف خروجی c است(c out!) این شیئ از >>استفاده می کنه.
\n نشون میده که به خط بعدی میریم.(الان جاش نیست و بعد ها بیشتر راجبش توضیح خواهم داد)
این متن(\n) نشانگر متن شما رو یک خط به پایین میبره.
و بعد هم که سمی کلونه که قبلا گفتم برا چی میاد.
بعدی هست cin.get(): این یه تابع دیگس که جواب برگشتی از کاربر رو میگیره(هون کار input رو در پایتون و بیسیک!)
البته اگه این خط رو ننویسید هم مشکلی پیش نمیاد ولی وقتی برنامه رو اجرا می کنید برنامه فقط برا یه صدم ثانیه می مونه و بعد ناپدید میشه و شما با نوشتن این خط در اخر برنامه باعث می شید تا کاربر بتونه متن شما رو بخونه و برای خروج از برنامه خودش اقدام کنه!.
خوب فعلا تا اینجا باشه تا ببینیم که واکنش ها چجوریه و بعد ادامه می دم به امید خدا(البته بدلیل امتحانات خرداد و ترس از شهریوری شدن و امتحانات نهایی مجبورم هفته ای یه درس بزارم!)

SamaPic
سه شنبه 22 اردیبهشت 1388, 23:11 عصر
با سلام.
دوست من کار خود را ادامه بده .ولی سعی کن ابتدا مطالب آن را با یک نفر در میان بگذاری (نشان بدهی ) تا ، مطالب مفید شما از نظر علمی عملی ، هیچ مشکلی نداشته باشند.
کمی هم جمله سازی ات ، خوب نیست.
به هر حال کار شما در مجموع مثبت و سازنده است.
من خودم تا جایی که بتوانم به شما کمک خواهم کرد و از همه ی دوستان می خواهم تا به این پست مطالب و تجربیات خود را بیافزایند.
موفق باشی.
خدانگهدار.

senaps
دوشنبه 28 اردیبهشت 1388, 05:06 صبح
درس 2:
در هنگام رسیدن به پایان main،برنامه ما مقدار 0 را به سیستم عامل برگشت می دهد.این برگشتن مقدار چون به سیستم عامل میگه که برنامه موفق بوده یا نه،مهمه.
برگشت 0 به معنای موفقیته و بصورت اتوماتیک وار برگشت داده میشه(البته فقط برای main)
اما اگه ما می خوایم یه چیز دیگه برگشت داده بشه،مثلا 1 مجبوریم که یه همچین کاری بکنیم:


#include <iostream>
using namespace std;
int main(){ cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";
cin.get();
return 1;}
کمانک اخر تابع رو می بنده.شما باید سعی کنین که برنامه رو کامپیال کرده،اجراش کنین...
می تونید برای راحتی کار کد ها رو توی یک فایل متنی با فرمت .cpp ذخیره کنین...
توضیح کد:
شما در حال یادگیری برنامه نویسی هستید،اما باید بتونید برنامه رو برای خودتون یا دیگران روشن کنید!این کار رو با اضافه کردن توضیحات در کد ها می تونید انجام بدید.من از اونها برای توضیح دادن برنامه ها به شما استفاده خواهم کرد.
لازمه بدونید که علامت شروع و پایان در اینجا خیلی مهمه...
می تونید از//در اول و اخر استفاده کنید یا اینکه از /* در ابتدا و در انتها نیز از /* استفاده کنید.وقتی شما برنامه رو در اینها می نویسید ،کامپایلر اینها رو نمی خونه .
رفتار متقابل کاربر! و ذخیره اطلاعات در متغییر ها:
شما یاد گرفتید که یه برنامه بنویسید که به کاربرها چیزهایی از پیش تعیین شده از طرف شما رو نشون بده،همینطور یاد گرفتید که با توضیح دادن کد ها ی هر خط اونها رو روشن کنید یا بقولی توضیحشون بدید.
خوب کار شاهکاری رو انجم دادید!ولی رفتار کاربر چی؟یعنی عکس العمل کاربر در مورد برنامه شما؟
خوشبختانه گرفتن پاسخ هم در برنامه ها قابل قبول و امکان پذیره!
تابعی که ازش استفاده خواهید کرد اسمش هست cin و بعدش از >> استفاده میشه...
100%شما وقتی یه ورودی رو از کاربر می گیرید باید یه جایی ذخیرش بکنید دیگه!
در برنامه نویسی ورودی ها توی متغییر ها ذخیره می شن.انواعی از متغییر ها وجود داره که انواعی از داده ها رو در خودشون ذخیره می کنن.وقتی که به کامپایلر می گید که دارید از متغییر استفاده می کنید،شما باید نوع داده را نیز مشخص کنید.
بعضی از این انواع char , int, float هستند.
متغییر نوع char فقط یک کاراکتر را می پذیرد.
متغییر های نوع int رشته ها رو که میشه اعداد و حروف رو شامل میشه.
متغییر نوع float هم شامل اعداد و اعداد ناصحیح!(اعشاری مثلا) میشن.
نسبت دادن متغییر ها:
برای نسبت دادن یک متغییر از type <name>; استفاده کنید.
چند تا مثال:


int x;char letter;float the_float;
خوب امکان نسبت دادن چند نوع داده از یک نوع در یک خط هم وجود داره که فقط باید با کاما از هم جدا بشن:
int a, b, c, d; استفاده از متغییر ها:
این یه مثال ساده برای نسبت دادن متغییر ها است:

#include <iostream>
using namespace std;
int main(){ int thisisanumber;
cout<<"Please enter a number: ";
cin>> thisisanumber; cin.ignore();
cout<<"You entered: "<< thisisanumber <<"\n";
cin.get();}

ace.coder
دوشنبه 28 اردیبهشت 1388, 05:40 صبح
این کتابی که توی Weblog آقای Cppbuilder2006 هست! خیلی خوبه!! اما واسه کسایی که یکمی سر رشته دارن! بنده مطالعه کردن خیلی خوب بود!