خوش آمدید، مهمان - لطفا برای ثبت نام اینجا و یا برای ورود اینجا را کلیک کنید.
صفحه: [1] 2   پایین
  چاپ صفحه  
نويسنده موضوع: مقدمات برنامه نویسی با ++C  (دفعات بازدید: 1153 بار)
0 کاربر و 1 مهمان درحال دیدن موضوع.
محمد حسین حیدری
MN
کاربر فوق حرفه ای
*

امتیاز: +20/-13
آفلاین آفلاین

جنسيت : پسر
وضعیت: دانش آموز
تعداد ارسال: 620


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

mohammad_hosayn_haydari
ديدن مشخصات WWWشهید قدوسی قم
« : 22 شهريور 1387,ساعت 16:55:38 »

بریم سر اصل مطلب...
توی ++C یه ساختار برای برنامه وجود داره چرا برنامه های ++C درست مثل یه ساختمان می مونن یه ساختمون اولش زیر سازیش می کنن بعد میان تیر آهن میذارن بعد...
توی ++C هم شما باید اول برنامه رو با کتابخونه ها زیر سازی کنی چرا آخه برنامه بیچاره که نمیدونه چجوری یه پیغام رو توی صفحه نمایش بده!!! از کجا بلده ها! خوب باید بهش بگید ولی خودتون می دونید چجوری؟ نه که نمی دونید ولی کتابخونه دستورات می دونه خوب پس میاریمش تو برنامه میگید چجوری؟ خیلی ساده است می گیم:
نقل قول
<include <iostream#
حالا می گید این include چیه؟ include یعنی اضافه کن به برنامه چی رو؟ کتابخونه iostream رو حالا iostream برای چیه؟
این کتابخونه شامل یه دستوراتی برای input و output های برنامه هست.
خوب اینو یاد گرفتید؟
میریم سراغ قسمت بعد حالا که زیر سازی رو کردیم میریم تیرآهنا رو بذاریم تا دیوار ها و سقف (برنامه مون) رو روش بسازیم پس می نویسیم:
نقل قول
()main
}
{
این main همون تیر آهناست ما برنامه مون رو توی این main می نویسیم. بین این آکولاد ها هم برنامه مون قرار میگیره!
مثلاْ:
نقل قول
main ()
{
cout << "Hello C++";
}
تموم آفرین به شما اولین برنامه نوشته شد. فقط می مونه یه چیز cout یعنی چی؟ یعنی بده بیرون (روی مانیتور) پس این علامت چیه >> این علامت مثل همون بازی معروف بقلی بگیره هرچی طرف راستش باشه میده طرف چپی (بقلی!!!)
پس برنامه مون شد:
کد:
#include <iostream>

main ()
{
cout << "Hello C++";
}
حالا اگه این برنامه رو اجرا کنین یه همچین چیزی می بینید:
کد:
Hello C++
« آخرين ويرايش: 26 شهريور 1387,ساعت 12:35:24 توسط محمد حسین حیدری » خارج شده است

ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #1 : 22 شهريور 1387,ساعت 22:03:18 »

یک محیط خوب برای شروع یاد گرفتن ++Turbo C،  C  هستش

وقتی که کد بالا رو اجرا کنید، یه لحظه ی خیلی کوتاه شاید بشه گفت 1 ثانیه، برنامه اجرا میشه ،خارج میشه و شما هیچی نمیبینید!
به همین منظور از دستور ()getch استفاده میکنیم که همان get character هستش، یعنی در واقع منتظر میشه تا کاربر یک کاراکتر وارد کند، مثلا دکمه ی enter رو فشار بده.
این دستور رو آخر از همه ی دستورات مینویسیم. البته این دستور کاربردهای دیگری هم داره که ایشالا بعدا میگم! پوزخند
البته اگه با  C کار کرده باشید با C فرق داره آخر نام همه ی تابع های کتابخانه ای" h." وجود نداره، البته بعضی کتابخانه ها هم h داره مثل : gtk.h
حالا این کد به این صورت میشه:
 
نقل قول
#include<iostream.h>
main ()
{
cout << "Hello C++";
getch();
}
« آخرين ويرايش: 26 شهريور 1387,ساعت 12:05:04 توسط محمد حسین حیدری » خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #2 : 26 شهريور 1387,ساعت 16:08:00 »

بهتر بود این ها رو اول میگفتم، ولی حالا میگم! :

*دستور عمل های برنامه ی ++C دارای ویژگی های زیر هستند:
1) هر دستور ++C به ; ختم میشود.
2) حداکثر طول یک دستور 255 کاراکتر است.
3) هر دستور میتواند در یک یا چند سطر ادامه داشته باشد.
4) در هر سطر میتوان چند دستور را تایپ کرد(این کار توصیه نمیشود).
5) توضیحات میتوانند در بین */ و /* قرار گیرند و یا بعد از // ظاهر شوند.

/* this is a sample comment */
this is another sample comment//



خب، حالا میریم سراغ یه بخش بسیییییییار مهم و پر استفاده!!

انواع داده ها:

هدف از برنامه نویسی، ورود داده ها به کامپوتر، پردازش داده ها و استخراج نتایج است. لذا، داده ها نقش خیلی مهمی رو ایفا میکنند. در زبان C هفت نوع داده وجود دارند که عبارت اند از: int, char, float, double, void, bool, wchar_t . نوع char برای ذخیره ی داده های کاراکتری مثل 'a' , 'b' , 'x' به کار میرود. نوع int برای ذخیره ی اعداد صحیح مثل 125، 7، 1798 به کار میرود. نوع float برای ذخیره ی اعداداعشاری مثل 13.5، 256.25 به کار میرود و نوع double برای ذخیره ی اعداد اعشاری که بزرگتر از float باشند مورد استفاده قرار میگیرد. انواع void, bool, wchar_t را در جای مناسبی بعدا توضیح خواهم داد.



تعریف متغیر ها :

یک متغیر به صورت زیر تعریف می شود:
; نام متغیر  نوع داده

مقدار دادن به متغیر ها :
برای مقدار دادن به متغیر ها به این 3 روش میشه عمل کرد:
1) هنگام تعریف (تعیین نوع) متغیر.
2) پش از  تعریف نوع متغیر و با دستور انتساب (=).
3) دستورات ورودی.

مثال:
مقدار دادن به به متغیر ها در هنگام تعریف آنها:
int x, y=7;
char ch1 = 'a' , ch2 = 'm';

*نکته: کاراکتر ها داخل کوتیشن یکانی (') قرار میگیرند.

مقدار دادن به متغیرها با دستور انتساب (=):
int x,y,m;
float f1;
char ch1;
f1 = 34.78;
x = 4;
y = m = 0;
ch1 = 'a';

مقدار دادن به متغیر ها با دستورات ورودی :
int x;
cin>>x;

خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #3 : 26 شهريور 1387,ساعت 16:25:16 »

حالا چون در بالا بحث cin پیش کشیده شد، با هم ببینیم تا cin چی هستش!
cin برای خواندن اطلاعات از صفحه کلید استفاده میشود. cin در فایل iostream.h قرار داره و به صورت زیر به کار میره:
cin>> x;
یا اگر بخواهیم چند تا متغیر رو با هم بگیریم:
cin>> x >> y >> z;

* وقتی میخواین چند قلم اطلاعات رو توسط cin وارد کنید، هنگام ورود داده ها باید آنها را حداقل با یک space جدا کنید و پس از وارد کردن تمام آنها، کلید enter را فشار دهید.

مثال : برنامه ای بنویسید که کاراکتری را از صفحه کلید خوانده و آن را با صدور پیغامی روی صفحه نمایش چاپ کند:
#include<iostream.h>
int main()
{
   char ch;
   cout<< "enter a character :";
   cin>>ch;
   cout<<"you typed character:" << ch;
   return 0;
}

حالا خروجی این برنامه ای که نوشتیم اینه:
enter a character: x
you typed character: x

خودتون رو درگیر int main و return 0 نکنید! به موقعش توضیح میدم! پوزخند
خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #4 : 30 شهريور 1387,ساعت 17:45:05 »

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

مدل اول :
if(شرط)
   ...;

مدل دوم :
if(شرط)
   ...;
else
   ...;

مدل سوم :
if(شرط)
   {
   ...;
   ...;
   }

else
   
   {
   ...;
   ...;
   }

حالا شرط ها به چه صورت هستند؟ معمولا شرط ها این مدلیند که :
if(x <= 10)
if(x >= 2*y)
if(x == y)
شرط هایی هم هستن که دو تا شرط رو چک میکنن، مثلا :
if(x == 20 && y < 10)
if(x > 10 || y <= z/10)

توی این شرط ها && یعنی "و" ، یعنی هم شرط اول برقرار باشه و هم دومی.
|| هم یعنی "یا" ، یعنی در صورتی که یکی از این شرط ها هم برقرار بود، دستورات if اجرا شوند.

else هم یعنی "در غیر این صورت". یعنی اگه if برقرار نبود، در غیر این صورت دستورهای زیر رو انجام بده.


حالا یک مثال مینویسم تا بهتر جا بیفته:

برنامه ای بنویسید که یک عدد صحیح را از شما بگیرد و اگر زوج بود اعلام کند زوج است و اگر فرد بود اعلام کند فرد است
int main()
{
   int a;
   cin>>a;
   if(a%2 == 0)
      cout<< "even";
   else
      cout<< "odd";
   getch();
   return 0;
}

* نکته : وقتی می نویسیم b=a%2 یعنی باقی مانده ی تقسیم a بر 2 را در b بریز.



ممکنه که جای پرانتز ها و سمی کالن ها قاطی شده باشه، این بستگی به browser داره که درست نشون بده یا نه
خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #5 : 30 شهريور 1387,ساعت 17:56:32 »

این هم یه برنامه ی دیگه که واسه شروع خوبه:
راستی، این برنامه هایی که می بینید، شاید راه بهتری براشون وجود داشته باشه. اگه راه بهتری بود بگین ممنون میشم! چشمک

برنامه ای بنویسید که یک عدد صحیح از کاربر بگیرد و قدر مطلق آن را اعلام کند :
#include<iostream.h>
#include<conio.h>
int main()
{
   clrscr();
   int x;
   cin>>x;
   if(x >= 0)
      cout<<x;
   if(x < 0)
      cout<< -x;
   getch();
   return 0;
}

* clrscr() یعنی هر چه که روی صفحه نوشته یا کشیده شده رو پاک کن. توی Turbo c این مشکل هست که هر دفعه که برنامه رو اجرا می کنی، از روی صفحه پاک نمیشه.
« آخرين ويرايش: 30 شهريور 1387,ساعت 17:58:10 توسط ندا.م » خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #6 : 30 شهريور 1387,ساعت 18:06:12 »

برنامه ای بنویسید که یک عدد 3 رقمی از شما بگیرد و مجموع ارقام آن را اعلام کند :

این برنامه شرطی نیست و صرفا واسه دست گرمیه! پوزخند
#include<iostream.h>
#include<conio.h>
int main()
{
   int a,b,c;
   cin>>a;
   b = a%10;
   a = a%10;
   c = a%10;
   a = a%10;
   cout<< a+b+c;
   getch();
   return 0;
}

ویرایش : راستی، وقتی که حلقه ها رو گفتم همین برنامه رو یه جور بهتر میشه نوشتتش که تعمیم هم داده میشه! 8)
« آخرين ويرايش: 30 شهريور 1387,ساعت 18:14:36 توسط ندا.م » خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
eAJ
کاربر نیمه حرفه ای
*

امتیاز: +8/-25
آفلاین آفلاین

وضعیت: محصل
تعداد ارسال: 244


ديدن مشخصات WWWAllame helli-Tehran
« پاسخ #7 : 24 دي 1387,ساعت 18:50:32 »

سلام!
((خب اینا که...در حد برنامه نویسی های کارگاه فرزانگانه! پوزخند البته اون موقع for نخونده بودن، یک دستور رو 100 بار تکرار کرده بودن :D آدم لذت می برد!))
---
میشه این library ، موس که فکر کنم mouse.h باشه رو واسه دانلود بذارین؟
خارج شده است

امضا
ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #8 : 26 دي 1387,ساعت 11:27:48 »

سلام!
((خب اینا که...در حد برنامه نویسی های کارگاه فرزانگانه! پوزخند البته اون موقع for نخونده بودن، یک دستور رو 100 بار تکرار کرده بودن :D آدم لذت می برد!))
---
میشه این library ، موس که فکر کنم mouse.h باشه رو واسه دانلود بذارین؟


قرار نیست اینجا مسئله ی 10 هیلبرت رو از روش نوینی حل کنیم! پوزخند
اگه هم دقت کرده باشی، اسم تاپیک هست "مقدمات برنامه نویسی با ++C" !
تو اینترنت هم بگردی library ، mouse.h چندین مدل هست. حالا لینکاشونو میذارم، ببین کدوم به دردت میخوره. خودت هم میتونی بنویسیشون بسته به کاری که داری، ولی خب کار آسونی نیست! پوزخند
خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
فاطمه زهرا قرائی منش
faTZ
مدیر انجمن
خاک انجمن خورده
*

امتیاز: +29/-23
آفلاین آفلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1026


fzgharaee
ديدن مشخصات WWW آدرس ايميلپیش دانشگاهی فرزانگان تهران
« پاسخ #9 : 26 دي 1387,ساعت 15:02:27 »

سلام!
((خب اینا که...در حد برنامه نویسی های کارگاه فرزانگانه! پوزخند البته اون موقع for نخونده بودن، یک دستور رو 100 بار تکرار کرده بودن :D آدم لذت می برد!))
---
میشه این library ، موس که فکر کنم mouse.h باشه رو واسه دانلود بذارین؟

به برنامه نویسی های کارگاه ما توهین نکنا!!!(خشم)خیلی هم خوبن!
خارج شده است

سمپاد....میمیرد آرام...
گام آخر..شروع راهی دیگر..سرودن ها از آغاز،از راز ،شور پرواز
تا آن روزی...که خیزد فریاد از ما ورسد آوازی نو ..روزی نو شوقی بی پایان
......با هم...میمانیم..................
eAJ
کاربر نیمه حرفه ای
*

امتیاز: +8/-25
آفلاین آفلاین

وضعیت: محصل
تعداد ارسال: 244


ديدن مشخصات WWWAllame helli-Tehran
« پاسخ #10 : 26 دي 1387,ساعت 15:25:06 »

قرار نیست اینجا مسئله ی 10 هیلبرت رو از روش نوینی حل کنیم! پوزخند
اگه هم دقت کرده باشی، اسم تاپیک هست "مقدمات برنامه نویسی با ++C" !
تو اینترنت هم بگردی library ، mouse.h چندین مدل هست. حالا لینکاشونو میذارم، ببین کدوم به دردت میخوره. خودت هم میتونی بنویسیشون بسته به کاری که داری، ولی خب کار آسونی نیست! پوزخند
اولاً که بنده به هیچ وجه مسئله 10 هیلبرت وو تو سمینار حل نکردم!(خوب 700 صفحه اس!بعدش هم همینی که ما می گفتیم هم هیشکی هیچی نمی فهمید چه برسه...)
بدش هم روش نوینی برای حل این مسئله فعلاً وجود ندارد(ماتیاسویچ فعلا فقط حل کرده اونم از راه نظریه اعداد ،n میلیون تا هم لِم داره!، استاد دانشگاه MIT،رجوع کنید به:
www.logic.pdmi.ras.ru/~yumat)
ثانیاً؛ خوب انتقاد پذیر باشید؛کلاً کارگاه فرزانگان (دربخش رایانه) همه اش SNAKE بود(اونم بدون for پوزخند پوزخند)یه دونه امضا بود که تابلو بود خفن کپی شده(فکر کنم عملیات فارسی سازیش رو نیروهای غیور فرزانگانی انجام داده بودن :D) یک دونم فکر کنم پرتابه بود که ای بابا!

حالا پروژه ی ناتمامیت ما، واقعاً خوف تر نبود؟ پوزخند بعدش از این به بعد پروژه رو خوب گوش بده!حل نوین 10 هیلبرت نبود! مسائل هیلبرت بود که هیچ ربطی به 10 نداش!
برای اطلاعتون مسئله 10 هیلبرت اینه:آیا معادله ی دیوفانتی (سیاله) وجود داره که تصمیم ناپذیر باشه؟ ، جوابش هم نه هست!(رجوع کنید به : hilbert tenth problem,MIT PRESS,Written by Yuri Matiyasevich)

زیاد شد ها پوزخند

« آخرين ويرايش: 26 دي 1387,ساعت 15:27:30 توسط eAJ » خارج شده است

امضا
مـ‌‍‌‌همّد بذرکار
مدیر کل
خاک انجمن خورده
*

امتیاز: +224/-202
آنلاین آنلاین

جنسيت : پسر
وضعیت: دانش آموخته
تعداد ارسال: 3592

satanic.prince
ديدن مشخصات آدرس ايميلشهید بهشتی کاشان
« پاسخ #11 : 26 دي 1387,ساعت 20:29:00 »

جای مقایسه کارگاه و سمینار اینجا نیست. لطفا.
خارج شده است

بعضی ها واقعا می خوان به فروم کمک کنند...
ر.سلطانی(R_S)
کاربر فعال
*

امتیاز: +3/-3
آفلاین آفلاین

جنسيت : پسر
وضعیت: فارغ التحصیل
تعداد ارسال: 76



ديدن مشخصات آدرس ايميلشهيد بهشتي كاشان
« پاسخ #12 : 26 دي 1387,ساعت 20:38:09 »

ببخشید 1 سوال:
این تاپیک قرار نیست ادامه داشته باشه؟!
یعنی آموزش ادامه داره یا تعطیل شد؟؟!!!!!
خارج شده است
مـ‌‍‌‌همّد بذرکار
مدیر کل
خاک انجمن خورده
*

امتیاز: +224/-202
آنلاین آنلاین

جنسيت : پسر
وضعیت: دانش آموخته
تعداد ارسال: 3592

satanic.prince
ديدن مشخصات آدرس ايميلشهید بهشتی کاشان
« پاسخ #13 : 26 دي 1387,ساعت 20:41:34 »

َما لطف کن ادامه بده. خودت رو آماده کن تا ادامه بدی چشمک
پست های بی ربط هم بعد از یه مدت پاک می شن.
خارج شده است

بعضی ها واقعا می خوان به فروم کمک کنند...
ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #14 : 29 دي 1387,ساعت 09:16:43 »

خب، حالا می رسیم به حلقه های تکرار و ساختارهای تصمیم:
در حالت عادی، دستورات برنامه، از اولین  دستور به آخین دستور اجرا می شن. اما اگه بخوایم بعضی از دستورات چندین بار اجرا بشن و بعضی دیگر در شرایط خاصی اجرا شود و بعضی دیگر اجرا نشود، از ساختار های تکرا و تصمیم استفاده می کنیم. ساختارهای تکرار برای تکرار اجرای دستورات و ساختارهای تصمیم برای بررسی شرایطی در برنامه و تصمیم گیری بر اساس آن شرایط، مورد استفاده قرار می گیرد.
اولین و ساده ترین ساختار تکرار، ساختار while هست.
از این ساختار به این صورت استفاده می شود:
While(شرط)
   دستور;
   

یا

While()
{
دستور 1
دستور 2
.
.
.
دستور n   
}

داخل پرانتز جلوی while   شرط تکرار رو می نویسیم. یعنی تا موقعی که این شرط برقرار بود، دستور(های) زیر while رو اجرا کن. این شرط رو مثل شرط هایی که توی if گفته بودم می نویسیم. مثلا a<10 یا a==10 و ...
حالا یه مثال:
برنامه ای بنویسید که جمله ای را از ورودی خوانده و تعداد کاراکترهای آن را شمرده و چاپ کند. انتهای جمله به Enter ختم میشه. در این جمله count تعداد کاراکترهای ورودی است.
#include<iostream.h>
#include<conio.h>
Int main()
{
   int count = 0;
   clrscr();
   cout<<"type a statement and ENTER to end:";
   while(cin.get() != '\n')
      count++;
   cout<<"lenght of statement is:" << count;
   getch();
   return 0;
}



حالا میرسیم به ساختار تکرار for :
از این ساختار معمولا تو جاهایی استفاده میشه که تعدد دفعات تکرار حلقه مشخص باشه. مثلا میخوایم که 10 بار تکرار بشه. توی این ساختار متغیری وجود داره که تعداد دفعات تکرار حلقه رو مشخص و کنترل می کنه. به این متغیرشمارنده یا اندیس حلقه ی تکرار میگن. اندیس حلقه دارای یه مقدار اولیه است و در هر بار تکرار حلقه مقداری به آن افزوده یا از آن کم می شود. به این مقدار که در هر بار تکرار کم یا زیاد می شود، گام حرکت یا حلقه میگن. گام حرکت می تونه عددی صحیح و اعشاری، مثبت و منفی و یا کاراکتری باشد. یکی دیگه از اجزای for شرط حلقه است که مشخص می کنه که دستورات داخل حلقه تا کی باید اجرا شود.اگر این شرط دارای ارزش درستی باشه، دستورات داخل حلقه اجرا میشن، در غیر این صورت کنترل برنامه از حلقه خارج میشود و اگر اصلا از اول دارای ارزش درستی نبوده باشد، کلا وارد حلقه نمی شود.
For رو میشه به دو صورت استفاده کرد:

for(گام حرکت;شرط حلقه;مقدار اولیه اندیس حلقه)
{
   دستور 1;
   دستور 2;
   .
   .
   .
   n دستور;
}

یا

for(;;)
{

   دستور 1;
   دستور 2;
   .
   .
   .
   n دستور;
}

حالت اول که معلومه چه جوریه. ولی تو حالت دوم  می بینین که هیچ گام حرکت و مقدار اولیه و شرطی در کار نیست! به این حلقه ها، حلقه های بی نهایت می گن که اگه واردشون بشین، دیگه نمی توننین خارج بشین! مگر با Ctrl+Break ! سعی کنید توی برنامه هاتون هیچ وقت ازش استفده نکنین، مگر در مواقعی که واقعا مجبور باشید! کلا چیز خوبی نیست! :دی
مثال:
حالا برنامه ای بنویسید که 5 عدد صحیح از ورودی خوانده و میانگین آن ها را محاسبه و چاپ کنه:

#include<iostream.h>
#include<conio.h>
Int main()
{
   int sum = 0, num;
   float ave;
   const int n = 5;
   clrscr();
   for(int i=0; i<n; i++)
   {
      cout<< "Enter number:" << i+1 << ":";
      cin>>num;
      sum += num;
   }
   ave = (float) sum/n;
   cout<< "The average is:" << ave;
   getch();
   return 0;
}

در اینجا n یک ثابت (constant) است که یعنی مقدار آ« تغییر نمی تواند بکند. اینجا لزومی به استفاده ازش نیست، فقط محض اطلاعه!
دقت داشته باشید که تو این برنامه، واسه به دست آوردن خارج قسمت اعشاری از type casting استفاده شده. تو اینجا 5 عدد ما عددهایی صحیح هستند و پس از تقسیم شدن بر 5، حاصل آن نیز صحیح خواهد شد. یعنی تقسیم به صورت صحیح انجام می شود. در حالی که انتظار داریم تقسیم به صورت اعشاری انجام بشه و به صورت اعشاری در خروجی چاپ شود! واسه همین باید تبدیل نوع انجام بشه. پس چون می خوایم که حاصل تقسیم به صورت اعشاری باشه، قبل از تقسیم، نوع اعشاری، یعنی float رو داخل پرانتز می ذاریم.این روش تبدیل نوع رو type casting میگن.
« آخرين ويرايش: 30 دي 1387,ساعت 00:27:26 توسط محمد مطهری » خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
ندا مکرم
مدیر کل
خاک انجمن خورده
*

امتیاز: +115/-77
آنلاین آنلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1681



ديدن مشخصات آدرس ايميلدبیرستان فرزانگان 1 تهران
« پاسخ #15 : 29 دي 1387,ساعت 09:18:34 »

و این هم ساختار تکرا do…while :
این ساختار مانند while هست، با این تفاوت که تو while شرط حلقه همون اول حلقه چک میشه و در صورتی که درست نبود، اصلا واردش نمیشه. ولی تو do…while  شرط آخر حلقه چک میشه و اگر درست نبود، در هر حال یه بار انجام شده.
به این صورت استفاده ش می کنن:
do{

   دستور 1;
   دستور 2;
   .
   .
   .
   n دستور;
}while(شرط);

انتقال کنترل غیر شرطی:
دستور if شرطی را بررسی کرده، بر اساس نتیجه ی شرط، دستور عمل هایی رو انجام میده. در C دستور عمل هایی وجود دارن که بدون تست شرطی می تونن کنترل اجرای برنامه رو از نقطه ای به نقطه ای دیگه منتقل کنند. این دستورات رو انتقال کنترل غیر شرطی می گویند.

دستور break :
این دستور موجب خروج از حلقه های تکرار میشه. نحوه ی کاربردش هم این طوریه:
Break;
مثال:
برنامه ای بنویسید که تعدادی عدد را از ورودی بخواند، سپس تعداد اعداد زوج و فرد را مشخص و به خروجی ببرد. آخرین عدد ورودی صفر است:
#include<iostream.h>
#include<conio.h>
Int main()
{
   int num, count = 0, n = 0;
   clrscr();
   while(1)
   {
      cout<< "Enter a number:";
      cin>> num;
      if(num == 0)
         break;
      n++;
      if(num%2 == 0)
         count++;
   }
   cout<< "\n evens = " << count << " odds = " << n - count;
   getch();
   return 0;
}
توی این برنامه از یک حلقه ی بی نهایت استفاده شده که در صورتی که عدد ورودی صفر باشد، خاتمه می یابد و از حلقه می یاد بیرون.

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

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


ادامش رو هم به زودی میذارم!! پوزخند
خارج شده است


"وقتي كسي رويايي در دل دارد، بايد بي معطلي قبل از آن كه زندگي آن را براي هميشه با خود ببرد، به آن تحقق دهد..."
مكسنس فرمين - عسل
محمد حسین حیدری
MN
کاربر فوق حرفه ای
*

امتیاز: +20/-13
آفلاین آفلاین

جنسيت : پسر
وضعیت: دانش آموز
تعداد ارسال: 620


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

mohammad_hosayn_haydari
ديدن مشخصات WWWشهید قدوسی قم
« پاسخ #16 : 19 بهمن 1387,ساعت 21:51:11 »

یک محیط خوب برای شروع یاد گرفتن ++Turbo C،  C  هستش

وقتی که کد بالا رو اجرا کنید، یه لحظه ی خیلی کوتاه شاید بشه گفت 1 ثانیه، برنامه اجرا میشه ،خارج میشه و شما هیچی نمیبینید!
به همین منظور از دستور ()getch استفاده میکنیم که همان get character هستش، یعنی در واقع منتظر میشه تا کاربر یک کاراکتر وارد کند، مثلا دکمه ی enter رو فشار بده.
این دستور رو آخر از همه ی دستورات مینویسیم. البته این دستور کاربردهای دیگری هم داره که ایشالا بعدا میگم! پوزخند
البته اگه با  C کار کرده باشید با C فرق داره آخر نام همه ی تابع های کتابخانه ای" h." وجود نداره، البته بعضی کتابخانه ها هم h داره مثل : gtk.h
حالا این کد به این صورت میشه:
 

وای خوب شد گفتی GTK! یه تاپیک براش باز می کنم به طور مفصل! پوزخند
خارج شده است

patriotic
کاربر فوق فعال
*

امتیاز: +9/-8
آفلاین آفلاین

جنسيت : پسر
وضعیت: دانش آموز
تعداد ارسال: 150


372262277 godboy1372@hotmail.com patriotboy94
ديدن مشخصاتدبیرستان شهید اژه ای اصفهان
« پاسخ #17 : 19 مرداد 1388,ساعت 18:53:16 »

برای شروع کار Turbo C رو میتونیم یه محیط خوب معرفی کنیم چون از دستورات زیادی مثل همین ()clrscr استفاده کرد یعنی استفادشون کاربرد داره اما اگه میخواین با کامپایلر های محیط های 30 سال پیش کار نکنین و محیطتون به روز شده باشه پیشنهاد میکنم از++Microsoft visual C  که داخل Microsoft Visual stodio قرار داره استفاده کرد چون مزایاش خیلی زیاده از جمله تنوع پروژه ها و Text file ها چشمک
خارج شده است

......... ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ..........
eAJ
کاربر نیمه حرفه ای
*

امتیاز: +8/-25
آفلاین آفلاین

وضعیت: محصل
تعداد ارسال: 244


ديدن مشخصات WWWAllame helli-Tehran
« پاسخ #18 : 20 مرداد 1388,ساعت 09:59:04 »

آقای علی . ن ؛ برنامه نویسی شیء گرا به درد لای جرز دیوار هم نمی خوره؛

فکر می کنم ابتدا باید C رو یاد گرفت بغد رفت سراغ اونها، ضمن اینکه اونها هم چنگی به دل نمی زنند !
اگر در حوزه ی وب می پرسید، به نظر من همین PHP خودمون مگه چشه ؟ MySQL هم به این نازی !
خارج شده است

امضا
فاطمه زهرا قرائی منش
faTZ
مدیر انجمن
خاک انجمن خورده
*

امتیاز: +29/-23
آفلاین آفلاین

جنسيت : دختر
وضعیت: دانش آموز
تعداد ارسال: 1026


fzgharaee
ديدن مشخصات WWW آدرس ايميلپیش دانشگاهی فرزانگان تهران
« پاسخ #19 : 20 مرداد 1388,ساعت 16:35:38 »

جناب eAJ برنامه نویسی شی گرا که میفرمائید به درد نمیخوره کلی هم کاربرد داره!اگه بخواین دفعه بعد که بیام سایت کاملا یک لیست همین جا میزنم!
هرچند که از ابعادی میتونه حق با شما باشه و شی گرایی به درد بعضی جاها نخوره ولی همین شی گرایی شدن ++C  خودش خیلی به پیشرفت و گسترش حوزه برنامه های c کمک کرد
خارج شده است

سمپاد....میمیرد آرام...
گام آخر..شروع راهی دیگر..سرودن ها از آغاز،از راز ،شور پرواز
تا آن روزی...که خیزد فریاد از ما ورسد آوازی نو ..روزی نو شوقی بی پایان
......با هم...میمانیم..................
صفحه: [1] 2   بالا
  چاپ صفحه  
 
پرش به :  

Clicky Web Analytics