مقدمات برنامه نویسی با ++C

  • شروع کننده موضوع
  • #1

hasangolab

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

main ()
{
cout << "Hello C++";
}
حالا اگه این برنامه رو اجرا کنین یه همچین چیزی می بینید:
کد:
Hello C++
 

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

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

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


#include<iostream.h>
main ()
{
cout << "Hello C++";
getch();
}
 

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

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

*دستور عمل های برنامه ی ++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 را در جای مناسبی بعدا توضیح خواهم داد.

1197950775.jpg


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

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

مقدار دادن به متغیر ها :
برای مقدار دادن به متغیر ها به این 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;
 

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

حالا چون در بالا بحث 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 نکنید! به موقعش توضیح میدم! :D
 

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

خب، رسیدیم به دستورات شرطی :
همون طور که از اسمش معلومه، شرط می گذاریم واسه کامپیوتر. مثلا اگه فلان مقدار با اون یکی مقدار برابر شد یا کوچک تر بود، یه کاری رو انجام بده.
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 داره که درست نشون بده یا نه
 

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

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

برنامه ای بنویسید که یک عدد صحیح از کاربر بگیرد و قدر مطلق آن را اعلام کند :
#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 این مشکل هست که هر دفعه که برنامه رو اجرا می کنی، از روی صفحه پاک نمیشه.
 

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

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

این برنامه شرطی نیست و صرفا واسه دست گرمیه! :D
#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)
 

eAJ

کاربر فوق‌فعال
ارسال‌ها
132
امتیاز
13
نام مرکز سمپاد
Allame helli-Tehran
پاسخ : مقدمات برنامه نویسی با ++C

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

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

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

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

fzgm

کاربر فوق‌حرفه‌ای
ارسال‌ها
782
امتیاز
82
نام مرکز سمپاد
فرزانگان 1 تهران
شهر
تهران
مدال المپیاد
ریاضی،کامپیوتر(کوتاه)،ادبیات،شیمی(تنوع؟!)
دانشگاه
دانشگاه تهران
رشته دانشگاه
علوم مهندسی
پاسخ : مقدمات برنامه نویسی با ++C

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

eAJ

کاربر فوق‌فعال
ارسال‌ها
132
امتیاز
13
نام مرکز سمپاد
Allame helli-Tehran
پاسخ : مقدمات برنامه نویسی با ++C

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

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

زیاد شد ها :D
 

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
900
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
پاسخ : مقدمات برنامه نویسی با ++C

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

R_S

کاربر فعال
ارسال‌ها
54
امتیاز
16
نام مرکز سمپاد
شهيد بهشتي كاشان
پاسخ : مقدمات برنامه نویسی با ++C

ببخشید 1 سوال:
این تاپیک قرار نیست ادامه داشته باشه؟!
یعنی آموزش ادامه داره یا تعطیل شد؟؟!!!!!
 

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
900
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
پاسخ : مقدمات برنامه نویسی با ++C

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

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

خب، حالا می رسیم به حلقه های تکرار و ساختارهای تصمیم:
در حالت عادی، دستورات برنامه، از اولین دستور به آخین دستور اجرا می شن. اما اگه بخوایم بعضی از دستورات چندین بار اجرا بشن و بعضی دیگر در شرایط خاصی اجرا شود و بعضی دیگر اجرا نشود، از ساختار های تکرا و تصمیم استفاده می کنیم. ساختارهای تکرار برای تکرار اجرای دستورات و ساختارهای تصمیم برای بررسی شرایطی در برنامه و تصمیم گیری بر اساس آن شرایط، مورد استفاده قرار می گیرد.
اولین و ساده ترین ساختار تکرار، ساختار 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 ! سعی کنید توی برنامه هاتون هیچ وقت ازش استفده نکنین، مگر در مواقعی که واقعا مجبور باشید! کلا چیز خوبی نیست! :D
مثال:
حالا برنامه ای بنویسید که 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 میگن.
 

neda.m

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,720
امتیاز
2,682
نام مرکز سمپاد
فرزانگان 1
شهر
تهران
دانشگاه
شهید رجائی تهران
رشته دانشگاه
مهندسی عمران - ژئوتکنیک
پاسخ : مقدمات برنامه نویسی با ++C

و این هم ساختار تکرا 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 :
این دستور هر جا تو حلقه بیاد، کنترل برنامه بر میگرده به اول حلقه. پس از انتقال کنترل به ابتدای حلقه، شرط حلقه مورد بررسی قرار می گیره، در صورتی که درست بود وارد میشه و اگه نبود خارج میشه. خیلی چیز جالبیه! :D
به این صورت می نویسنش:
Continue;
حوصله ندارم واسش مثال بذارم، اگه مشکلی دارین بگین که بذارم!

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


ادامش رو هم به زودی میذارم!! :D
 
  • شروع کننده موضوع
  • #17

hasangolab

کاربر حرفه‌ای
ارسال‌ها
438
امتیاز
133
شهر
قم
مدال المپیاد
ترکیبیات علیپور خوندم!
دانشگاه
Massachusetts Institute of Technology
رشته دانشگاه
Electrical Engineering
پاسخ : مقدمات برنامه نویسی با ++C

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

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

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

robo94

عــلــــی (مهندس سابق)
ارسال‌ها
781
امتیاز
1,702
نام مرکز سمپاد
دبيرستان شهيد اژه اى
شهر
اصفهان/تهران
سال فارغ التحصیلی
91
دانشگاه
تـــهـــران (دانشکده فنـے )
رشته دانشگاه
مهندسی بــرق
پاسخ : مقدمات برنامه نویسی با ++C

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

eAJ

کاربر فوق‌فعال
ارسال‌ها
132
امتیاز
13
نام مرکز سمپاد
Allame helli-Tehran
پاسخ : مقدمات برنامه نویسی با ++C

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

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

fzgm

کاربر فوق‌حرفه‌ای
ارسال‌ها
782
امتیاز
82
نام مرکز سمپاد
فرزانگان 1 تهران
شهر
تهران
مدال المپیاد
ریاضی،کامپیوتر(کوتاه)،ادبیات،شیمی(تنوع؟!)
دانشگاه
دانشگاه تهران
رشته دانشگاه
علوم مهندسی
پاسخ : مقدمات برنامه نویسی با ++C

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