Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#1
سلام به همه ی آیریسکی ها!

بعد از مدت ها چرخیدن در تاپیک ها و گشت و گذار! تصمیم گرفتم یه تحولی در بخش کامپیوتر آیریسک ایجاد کنم :4:

یکسری قوانین هم برای تاپیک بگذاریم:


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

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

اول از همه با نخستین خطی که معمولا توی ++C قرار میدن شروع می کنیم include# ! خب این دستور در واقع کار شما رو راحت می کنه! چرا؟ چون برای ++C از قبل یکسری توابع و دستورات نوشتن که کاربردی و توپپن، این توابع همه توی یکسری کتابخونه اند. حالا اگه ما مثلا بنویسیم <include <iostream# در واقع تمام توابع کتابخونه ی iostream رو چسبوندیم به اول برناممون، پس دیگه نیازی نیست بنویسیمشون.

خب با یک دستور دیگه شروع می کنیم ;using namespace std این دستور میاد میگه ما میخوایم از توابع استاندارد یا std ی ++C استفاده کنیم. اگه شما مشغول به نوشتن یه نرم افزار گنده (!) باشید، قاعدتا چند نفری این برنامه رو می نویسید. برای اینکه ممکنه دو نفر اسم یک تابع یا یه متغیر (بعدا میگم اینا چین) این افراد قاطی نشه میان هر کدوم از یه فضای نام استفاده می کنن، مثلا فضای نام قلی، حسن و اکبر. حالا ++C یه فضای نام داره که توابعی که از قبل نوشته شده و ما دیگه نمی خوایم بنویسیمشون (!) توی اونن، اگه بخوایم از این توابع استفاده کنیم، میایم اون دستور رو وارد می کنیم! (چیزی نفهمیدین؟ مهم نیست! منم نفهمیدم چی گفتم:4: فقط اول برنامتون بعد از include# هاتون دستور ;using namespace std رو بنویسید!)

تا اینجا کافیه، فردا بقیشو می نویسم! الآن 11 شبه، منم فردا مدرسه دارم :4: پس تا فردا!
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#2
پاسخ : آموزش گام به گام برنامه نویسی ++c

خب، صبح بخیر! دوباره ساعت 11 شد، من میخوام پست بگذارم! در پست قبلی با دو تا دستور آشنا شدیم، حالا میخوایم ببینیم دیگه چیا داره این ++C! دستورات اصلی که اول برنامه اجرا میشن، توی یه تابعی هستند به نام main، حالا تابع چیه؟ فعلا مهم نیست چیه، فعلا فقط اینو بدونید! برای اینکه تابع main رو تعریف کنیم، باید بنویسیم ()int main و بعد یه بلاک یا بلوک کد Code Block باز کنیم، دستوراتی که مربوط به یه چیزی (!) اند، توی بلاک مربوط به اون چیز میان، حالا در آینده می بینیم چه دستوراتی. یه بلاک با } شروع میشه و بعد از اینکه کدامونو نوشتیم، با { هم تموم میشه. یه چی دیگه هم توی برنامه نویسی داریم به نام Comment، در واقع برنامه نویس وقتی میخواد بگه که الآن داریم چی کار می کنیم، یا هر چیزه دیگه ای که میخواد بگه، از کامنت استفاده میکنه، در واقع برای اینکه کد رو بقیه هم بفهمن معمولا از این استفاده میشه، کامنت دو جوره، یا یه خطیه، یا چند خطی، یک خطی فقط توی یه خطه ! همونطور که از اسمش پیداست، باید قبل از نوشتن کامنت دو تا / بگذاریم مثلا Salam// یه جور کامنت چند خطی داریم، که اولش با */ شروع میشه و آخرش با /* تموم میشه. مثلا

Salam*/
?khoubi
/*

حالا ببینیم تا اینجا چیا یاد گرفتیم، پس همه ی اینا رو توی یه کد ببینید : آموزش برنامه نویسی 2 - 1


خب حالا بریم سراغ چند تا دستور: اون iostream رو که الکی include نکردیم! حتما توی کتابخونش یه دستورایی هم داره دیگه! یکی از این دستور ها که الآن میخوایم باهاش آشنا شیم دستور cout هستش، که یکسری چیزا توی صفحه چاپ میکنه! حالا هر چی شما بهش بگید که چاپ کنه، مثلا اگه بخوایم بهش بگیم، چاپ کن سلام علیکم باید این شکلی بگیم : ;"cout << "salam aleykom ، این دستور هم مثل ;using namespace std دارای یه علامتی تهشه! اسم این علامت سمی کالن یا سمی کولون یا semi-colon هستش که این شکلیه -> ;
میشه گفت بعد از هر دستوری که اولش # نباشه یا آخرش } نباشه و یا خودش { یا } نباشه (!) باید یه سمی کالن گذاشت. خب ببینیم این cout چیکارا میکنه! یه مثال جامع میزنیم، خروجی رو هم نگاه کنید تا خودتون بفهمید، توی پست بعدی راجع بهشون یه توضیح جامع میدم انشاءالله. اینم کد جدید: آموزش برنامه نویسی 2 - 2
 

amir navid

Well-Known Member
ارسال ها
408
لایک ها
273
امتیاز
63
#3
پاسخ : آموزش گام به گام برنامه نویسی ++c

البته آقا حسین یوسفی اونجا که گفتین
int میزاریم میتونیم ازvoid هم استفاده کنیم البته این برای اینه که آخرش ;return 0 رو نذاریم درسته
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#4
پاسخ : آموزش گام به گام برنامه نویسی ++c

البته آقا حسین یوسفی اونجا که گفتین
int میزاریم میتونیم ازvoid هم استفاده کنیم البته این برای اینه که آخرش ;return 0 رو نذاریم درسته
خیر نمیتونیم!
توی int هم میتونیم return نگذاریم، (کد ها رو ببینید) و void دیگه استفاده نمیشه، توی ++C فقط میتونیم از int استفاده کنیم، این کد رو ببینید. اگر از void استفاده کنیم، Compilation error میده یعنی کلا غلطه!



prog.cpp:5:11: error: ‘::main’ must return ‘int’ void main() {
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#5
پاسخ : آموزش گام به گام برنامه نویسی ++c

خب، دوباره سلام! می خوایم بریم سراغ بحثی که توی پست قبل، نیمه کاره رهاش کردیم، یعنی cout: ببینیم مثال قبلی چی بود : آموزش برنامه نویسی 2 - 2
دستور cout می تونه چند تا متن رو بصورت تلفیقی (!) در یک خط چاپ کنه، مثلاً ;"cout << "Hello" << " World که توی صفحه Hello World رو چاپ میکنه، و بعد از اینکه چاپ کرد، به خط بعد نمیره. برای اینکه توی یه خط جدید بخوایم بنویسیم یا میگیم ;cout << endl یا ;"cout << "\n هر چیزی که توی کوتیشن (double quotation) بنویسیم، عینا چاپ میشه، مثلا ;"cout << "1 + 2 + 5 توی کنسول یا همون صفحه سیاهه (!) چاپ میکنه 5 + 2 + 1 ولی ;cout << 1 + 2 + 5 تو خروجی 8 رو چاپ میکنه. برای اینکه بیشتر آشنا شید، همون کد 2 - 2 رو ببینید.
حالا برای اینکه بیشتر آشنا شیم، میخوایم یه برنامه ی ساده بنویسیم، که تو خروجی چاپ کنه Hello و بره خط بعد و بعد چاپ کنه ++I'm C. خب پیشنهاد میدم قبل از خوندن کد خودتون کدشو بزنید، اگه کامپایلر هم ندارید از کامپایلر آنلاین ideone.com استفاده کنید، زبان برنامه نویسی رو 4.8.1 ++C انتخاب کنید. اینم کدش: آموزش برنامه نویسی 3 - 1

بریم سراغ مباحث پیچیده تر! طبیعتا برنامه ای که فقط یه سری چیزا تو صفحه چاپ کنه، جالب نیست! برنامه نیاز داره، هم اطلاعاتی رو نگهداری کنه و هم اطلاعاتی رو از کاربر بگیره و باز یه جایی نگهداری کنه! پس میریم سراغ بحث متغیر ها

در واقع نمیخوایم خیلی راجع به اینکه هر متغیر چقدر حافظه مصرف میکنه یا چند بیته یا ... صحبت کنیم، فقط راجع به کاربردش میگیم. بعداً (نخیلی وقت دیگه!) که به مباحث المپیادی رسیدیم، میگیم محدودیت ها و ... رو. پس فعلا با انواع متغیر آشنا میشیم:

  1. صحیح: اعداد صحیح رو نگهداری می کنه، یعنی 0 و 1 و 1- و 2 و 2- و ... یا همون integers برا همین با int تعریفش میکنن.
  2. کاراکتر: یه کاراکتر مثل 'a' یا 'B' یا '2' یا '#' یا کلا هر چی رو کیبرد هست حتی esc، همون character هستش پس با char تعریفش میکنن، فعلا باهاش کاری نداریم تا به ASCII برسیم. (چی هست؟ هیچی فعلا کاری نداریم!)
  3. رشته: اینو الآن کسی نمیگه! ولی ما میگیم چون کاربردش زیاد، بعدا خیلی راجع بهش صحبت می کنیم. در واقع مثل متن میمونه، یه سری کاراکتر پشت سر هم، میشه string پس با همون string تعریفش می کنن.
  4. اعشاری: معلومه دیگه! با float تعریفش میکنن، بعد اعداد اعشاری رو نگه میداره.
فعلا همین.

اما تعریفش چجوریه؟ مثلا اگه بخوایم یه متغیر تعریف کنیم، به نام a و مقدارشو بگذاریم 5 و یه متغیر به نام b درست کنیم و مقدارشو بگذاریم 3 (قاعدتا int هستن دیگه) به چند نحو می تونیم:
1)
;int a
;int b
;a = 5
;b = 3

2)
;int a, b
;a = 5
;b = 3

3)
;int a = 5, b = 3

یعنی اگه دو تا متغیر از یک نوع باشن، میشه توی یک خط جفتشونو تعریف کرد و همونجا هم میشه متغیر ها رو مقدار دهی کرد، الآن میدونید، اگه یه دستور بنویسیم ;cout << a + b چی چاپ میشه؟ 8
;"cout << "a + b چطور؟ چاپ میکنه a + b.
خب پس ما از متغیر ها برای نگه داریه یه سری اطلاعات استفاده میکنیم. حالا میخوایم یه برنامه بنویسیم، که دو تا عدد رو توی a و b ذخیره کنیم، و بعد جمع و ضرب و تقسیم و تفریقشونو حساب کنه و چاپ کنه، اینم کدش: آموزش برنامه نویسی 3 - 2 دقت کنید، که تقسیم میاد قسمت صحیح رو بر می گردونه چون اعداد هر دو صحیح هستند.

حالا بریم ببینیم چجوری میتونیم از کاربر ورودی بگیریم؟ با دستور cin، این دستور بر عکس cout عمل می کنه و طبیعتا اون علامت های >> هم باید بر عکس باشن! یعنی <<.
اگه ما یه متغیر معرفی کرده باشیم به نام a، میتونیم از کاربر یه ورودی بگیریم و اونو بریزیمش توی a، به این شکل ;cin >> a این دستور هم مثل cout می تونه چند تا ورودی رو هم زمان توی یه خط بگیره، این شکلی ;cin >> a >> b
خب حالا میخوایم یه برنامه بسازیم که دو تا عدد از کاربر بگیره، و مجموعشون رو چاپ کنه، این برنامه رو اول خودتون بنویسید بعد از اینکه نوشتید هم کد من رو ببینید: آموزش برنامه نویسی 3 - 3 برای اینکه برنامه رو تست کنید، روی upload with new input کلیک کنید، و تو دو تا خط دو تا عدد بنویسید. تا پست بعد، یه برنامه بنویسید که از کاربر اسمشو بگیره، و اگه مثلا طرف نوشت Hossein، چاپ کنه، !Hello Hossein. یادتون باشه که متن رو توی متغیر string نگه میداشتیم.

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

omid-z

New Member
ارسال ها
281
لایک ها
319
امتیاز
0
#6
پاسخ : آموزش گام به گام برنامه نویسی ++c

سلام...خسته نباشید
بابت مطالبی که گذاشتید ممنون:115:
ولی بهتر نبود یه خرده بیشتر از اول اولش شروع میکردید ؟ :188:(امثال اصطلاحات-مفاهیم و...)
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#7
پاسخ : آموزش گام به گام برنامه نویسی ++c

سلام...خسته نباشید
بابت مطالبی که گذاشتید ممنون:115:
ولی بهتر نبود یه خرده بیشتر از اول اولش شروع میکردید ؟ :188:(امثال اصطلاحات-مفاهیم و...)
خيلي روي اولش تمركز نكردم چون كه از اول هم گفتم به مفاهيم كار ندارم چون گيج ميشيد فقط به بخش كاربرديش ميپردازم
 

Aref

New Member
ارسال ها
1,262
لایک ها
1,008
امتیاز
0
#8
پاسخ : آموزش گام به گام برنامه نویسی ++c

یه نکته:
A Useless Comment درسته. نه An Useless Comment.
اینم به خاطر اینه که اینجا حرف U حرف بی صداست، پس از A استفاده می کنیم نه An.
کد
//be name khoda


#include <iostream>


using namespace std;


int main () {
	string s;
	cin >> s;
	cout << "Hello " + s + "!";
}
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#9
پاسخ : آموزش گام به گام برنامه نویسی ++c

یه چیز جالب :

کد
#include <iostream>
//#include <conio.h>


using namespace std;


int main()
{
    int x = 10;
    cout << x << " "<< ++x << endl;
    
    x = 10;
    cout << x << " "<< x++ << endl;
    
    x = 10;
    printf("%d %d",x,++x);
    cout << endl;
    
    x = 10;
    printf("%d %d",x,x++);
    
    //getch();
    return 0;
}
خروچی ها رو تحلیل کنید ... چرا این اتفاق میفته ؟؟ :)
 
آخرین ویرایش توسط مدیر

Aref

New Member
ارسال ها
1,262
لایک ها
1,008
امتیاز
0
#10
پاسخ : آموزش گام به گام برنامه نویسی ++c

همین طوری compile نمیشه. باید اولش یه
کد
#include <stdio.h>
بزاریم.
بعد هم دلیلش اینه که x++ اول مقدار x رو افزایش میده بعد دستور رو اجرا می کنه. اینجا هم مثالش آورده شده:

http://www.cplusplus.com/files/tutorial.pdf
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#11
پاسخ : آموزش گام به گام برنامه نویسی ++c

همین طوری compile نمیشه. باید اولش یه
کد
#include <stdio.h>
بزاریم.
بعد هم دلیلش اینه که x++ اول مقدار x رو افزایش میده بعد دستور رو اجرا می کنه. اینجا هم مثالش آورده شده:

http://www.cplusplus.com/files/tutorial.pdf
بیشتر منظورم این بود :
کد
[COLOR=#333333]printf("%d %d",x,x++);[/COLOR]
خروجی این چرا با خروجی تکه کد زیر فرق داره :
کد
[COLOR=#333333]cout << x << " "<< x++ << endl;[/COLOR]
 
ارسال ها
51
لایک ها
30
امتیاز
18
#12
پاسخ : آموزش گام به گام برنامه نویسی ++c

خروجیشاشون فرقی نمیکنه(البته احتمالا باز هم از مشکلات dev هست!)
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#13
پاسخ : آموزش گام به گام برنامه نویسی ++c

بله ... ببخشید خروجی ها یکین ... منظورم این بود که چرا خط
کد
cout << x << " " << x++ << endl;
چاپ می کنه 10 11 هرچند به نظر میاد باید چاپ کنه مثلا 10 10 یا 11 10 ؟!
 
ارسال ها
51
لایک ها
30
امتیاز
18
#14
پاسخ : آموزش گام به گام برنامه نویسی ++c

من اینارو و خیلی بیشتر از این مسائل قبلا چک کردم!
ولی دلیلشو نمیدونم، و فک نمیکنم دلیلی داشته باشن و یه جورایی باید اینارو انقد تمرین کنی تا اگه یه همچین سوالایی دادن بدونی خروجیش چیه!
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#15
پاسخ : آموزش گام به گام برنامه نویسی ++c

من اینارو و خیلی بیشتر از این مسائل قبلا چک کردم!
ولی دلیلشو نمیدونم، و فک نمیکنم دلیلی داشته باشن و یه جورایی باید اینارو انقد تمرین کنی تا اگه یه همچین سوالایی دادن بدونی خروجیش چیه!
نه خوب دلیل داره :))

یه جا هم دلیلش رو خوندم ، یه چیز تو مایه های اینه که cout از سمت راست پردازش رو شروع می کنه ... :)
 
ارسال ها
51
لایک ها
30
امتیاز
18
#16
پاسخ : آموزش گام به گام برنامه نویسی ++c

خوب چرا cout از راست شروع میکنه؟ اینو که با توجه به خروجی خودمونم میتونستیم بگیم!
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#17
پاسخ : آموزش گام به گام برنامه نویسی ++c

یه نکته:
A Useless Comment درسته. نه An Useless Comment.
اینم به خاطر اینه که اینجا حرف U حرف بی صداست، پس از A استفاده می کنیم نه An.
کد
//be name khoda


#include <iostream>


using namespace std;


int main () {
    string s;
    cin >> s;
    cout << "Hello " + s + "!";
}

درسته، حواسم نبود.
 
لایک ها Aref

marzyah1378

New Member
ارسال ها
6
لایک ها
1
امتیاز
0
#18
پاسخ : آموزش گام به گام برنامه نویسی ++c

سلام.من چن تا دستور دارم می خوام الگوریتمشون رو برام بنویسید؟
 

question

New Member
ارسال ها
65
لایک ها
34
امتیاز
0
#19
پاسخ : آموزش گام به گام برنامه نویسی ++c

می شه چن تا مثال هم از آرایه ها رو حل کنید؟
 

AmirQm

New Member
ارسال ها
20
لایک ها
5
امتیاز
0
#20
پاسخ : آموزش گام به گام برنامه نویسی ++c

خیر نمیتونیم!
توی int هم میتونیم return نگذاریم، (کد ها رو ببینید) و void دیگه استفاده نمیشه، توی ++C فقط میتونیم از int استفاده کنیم، این کد رو ببینید. اگر از void استفاده کنیم، Compilation error میده یعنی کلا غلطه!



prog.cpp:5:11: error: ‘::main’ must return ‘int’ void main() {
سلام.
دوست عزیزمون تا حدی درست گفتند.

برخی کامپایلر ها یه شما اجازه میدن که return 0 رو نذاری.
چون خودشون این عمل رو انجام میدن، فقط همین عمل رو.

برخی دیگه مجبور میکنن بذاری.

ضمنا در رابطه با void بگم که کامپایلر بورلند اجازه میده که استفاده کنی.

و یه چیز دیگه بابت return 0,1,-1
اینها ارقامی هستند که به سیستم عامل پیام هایی میدهند تا سیستم عامل متوجه پیام هایی بشود و بس
 
بالا