در اين بخش مي‌توانيد در مباحث مربوط به زبانهاي بر پايه C به بحث بپردازيد
Incredible Poster

Incredible Poster



نماد کاربر
پست ها

3047

تشکر کرده: 0 مرتبه
تشکر شده: 28 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 21:41

آرشيو سپاس: 408 مرتبه در 218 پست

آموزش ++C

توسط Farhad3614 » جمعه 12 اسفند 1384 18:25

تاریخچه ++C :

زبان C در سال 1972 توسط دنیس ریچی طراحی شد.این زبان تکامل یافته زبان BCPL است که طرح آن از کن تامپسون می یاشد.علت نامگذاری C این است که بعد از زبان B طراحی شد.زبان ++C از زبان C ناشی شده است.++C علاوه بر ویژگی های C ، ویژگی هایی دارد که در C موجود نیست.

ویژگی های زبان ++C :

- ++C زبان برنامه نویسی سیستم است.

- دارای ویژگی Case Sensitive است ، یعنی نسبت به حروف کوچک و بزرگ حساس است.

- ++C دارای ویژگی Object-Oriented است،یعنی شی گراست.

- ++C قابل حمل است.یعنی در کامپیوتر های نوع های مختلف بدون انجام تغییرات یا تغییرات اندک قابل اجراست.

- ++C زبان قابل انعطاف و قدرتمندی است و دارای کلمات کلیدی نسبتا کمی است.

- ++C یک زبان میانی است.

- در ++C هر دستور به ; ختم می شود و یک دستور می تواند در چند خط ادامه ادامه داشته باشد اما طول آن دستور نباید از 255 کاراکتر بیشتر شود.در ضمن برای اینکه در بین برنامه بتوانید توضیحاتی را بنویسید باید از // قبل از پیام و یا */  و  /* به ترتیب در ابتدا و انتهای پیام استفاده می کنیم.

مثال:

Comment//

/*comment*/

خوب ، برای ادامه کار باید کامپایلر ++C را روی دستگاه خود نصب کنید.بعد از نصب آن را اجرا کنید.محیطی که در آن قرار دارید ادیتور ++C است.برای اجرای برنامه هایی که در این محیط می نویسید باید کلید Ctrl+F9 را فشار بدهید.بعد از این کار کامپایلر شروع به ترجمه برنامه می کند.اما چون الان هیچ برنامه ای درون ادیتور ننوشته ایم کامپایلر Error می دهد.

داده ها در ++C :

همانند همه زبان های برنامه نویسی در زبان ++C هم انواع مختلف داده ای را داریم.تعداد این داده ها و نوع آنها در زبان های مختلف فرق می کند.مثلا در زبان VBScript فقط یک نوع داده به نام Variant داریم.اما در زبان ++C هفت نوع داده وجود دارد.wchar_t , bool , void , double , float , char , int این هفت نوع داده هستند.در ضمن چهار کلمه کلیدی signed (با علامت) و unsigned (بدون علامت) و short (کوتاه) و long (بلند) نیز وجود دارند که با ترکیب آن با انواع داده ای می توان انواع جدیدی را ایجاد کرد.جدول زیر انواع داده ها در ++C و مقادیر قابل قبول آنها را به همراه اندازه آنها به بیت نشان می دهد.

نکته مهم : در نوشتن انواع داده توجه داشته باشید که این کلمات همانطور که اینجا ذکر شده اند نوشته شوند ، چون همانطور که گفتیم در ++C حروف کوچک و بزرگ با هم تفاوت دارند.مثلا ما در ++C نوع داده ای char داریم نه Char یا chaR و ...

AliToofun از این پست سپاسگزاري کرده است

کاربران زیر از شما کاربر محترم جناب Farhad3614 تشکر کرده اند:
sh-barg, roh, constantine1, khashayar1

Incredible Poster

Incredible Poster



نماد کاربر
پست ها

3047

تشکر کرده: 0 مرتبه
تشکر شده: 28 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 21:41

آرشيو سپاس: 408 مرتبه در 218 پست

Re: آموزش ++C

توسط Farhad3614 » جمعه 12 اسفند 1384 18:56

قسمت دوم

ساختار برنامه در ++C:

هر برنامه ++C از تعدادي كلاس و تابع تشكيل شده است.هر تابع وظيفه دارد قسمتي از برنامه را انجام دهد.در ++C خود برنامه اصلي يك تابع است.در واقع هيچ برنامه اي وجود ندارد كه فاقد اين تابع باشد.نام اين تابع اصلي ()main است.اما كلاس(class)،نوعي است كه داده ها و فعاليت هايي را كه بر روي آن داده ها عمل ميكنند را در يك بسته به نام شيء بسته بندي ميكند.در ++C توابع زيادي وجود دارند كه از پيش نوشته شده اند و ما به وفور از آنها استفاده خواهيم كرد.به عنوان مثال براي ورود داده ها از صفحه كليد و چاپ آن روي صفحه نمايش به توابع و كلاس هاي خاصي نياز داريم كه البته همانطور كه گفتيم جاي نگراني نيست! اين توابع و كلاس ها از پيش نوشته شده اند و همراه با كامپايلر وجود دارد.سوالي كه در اينجا مطرح ميشود اين است كه اين توابع كجا هستند و چگونه بايد از آنها استفاده كنيم؟

اين كلاس ها و توابع به همراه ديگر اطلاعات لازم براي اجراي برنامه در تعدادي فايل به نام فايل هاي Header قرار دارند.پسوند اين فايل ها h. است.و معمولا بر روي فهرستي از ديسك به نام INCLUDE قرار گرفته اند.براي اتصال اين فايل ها به برنامه از دستوري با ساختار زير در ابتداي برنامه استفاده مي كنيم:

#include <header نام فايل>

دستور include# از دستورات پيش پردازنده يا ماكرو مي باشد كه در ادامه به توضيح آن خواهيم پرداخت.فقط همين حد بدانيد كه پيش پردازنده بخشي از كامپايلر است كه در صورت مشاهده دستوراتي كه با # شروع ميشوند اجرا ميشود.نكته ديگري كه بايد به آن توجه داشته باشيم اين است كه اينگونه دستورات به ; ختم نميشود.

به عنوان مثال براي استفاده از فايل iostream.h كه براي استفاده از دستورات خروجي و ورودي از آن استفاده خواهيم كرد به صورت زير وارد برنامه ميشود:

#include <iostream.h>

در مورد دستور include# بين # و include نبايد فاصله اي باشد.همچنين بين نام فايل و >و<.

نكته ديگري كه بايد به آن توجه داشته باشيم اين است كه سيستم عاملي كه اجرا كننده تابع ()main است ، مي خواهد بداند كه تابع ()main با موفقيت انجام شده يا نه.براي حل اين مشكل از دستور ;return 0 استفاده مي كنيم.اين تابع باعث ميشود كه اگر برنامه تا خط آخر با موفقيت اجرا شد مقدار 0 به سيستم عامل برگردد.مقداري كه به سيستم عامل بر مي گردد(0) مقداري صحيح يا int است.لذا بايد تابع ()main كه گفتيم از تابع اصلي برنامه است از نوع int تعريف شود.در زير ساختار كلي يك برنامه سي را مي بينيد:

#include <header نام فايل>

int main()

{

تعريف متغيير ها

دستورات اجرايي

return 0;

}

در بعضي از برنامه ها نياز ميشود كه از چند فايل include# استفاده كنيم.براي اين كار بايد چند بار دستور include را استفاده كنيم.

ورودي و خروجي داده ها:

1-خواندن اطلاعات:

در زبان ++C براي خواندن اطلاعات از دستور cin استفاده خواهيم كرد.ساختار كلي اين دستور به صورت زير است:

cin >> متغيير2 << متغيير1 >> ... ;

به عنوان مثال فرض كنيد مي خواهيم داخل متغيير X را كه قبلا تعريف كرده ايم با اطلاعاتي كه كاربر از صفحه كليد وارد ميكند پر كنيم:

cin >> x ;

پس از اجراي برنامه بايد داده توسط كاربر وارد شود و سپس دكمه Enter فشار داده شود.اما اگر چند قلم اطلاعات را توسط دستور cin خوانديم كاربر بايد بعد از وارد كردن هر يك از آنها يك فاصله بگذارد و داده آخر را كه وارد كرد دكمه Enter را فشار دهد.

2-چاپ اطلاعات:

براي چاپ اطلاعات روي صفحه نمايش از دستور  cout استفاده ميكنيم:

cout << عبارت2 >> عبارت1 << ... ;

عبارت i ميتواند شامل يك رشته كه در آن صورت بايد آن را بين كوتيشن قرارداد باشد ، يا شامل يك متغيير كه ميتواند محتوياتش هر چيزي باشد.مثلا دستور زير رشته Computer را به همراه متغيير X چاپ ميكند.

cout<<"Computer"<<"\n"<<x;

احتمالا از خود مي پرسيد كه اين "n\" اينجا چكاره است."n\" جزو كاراكترهاي كنترلي است.مشابه اينها را در   JavaScript هم داريم كه در آموزش JavaScript توضيح داده خواهد شد.در واقع اين نوع كاراكتر ها براي شكل دهي به خروجي بكار ميروند.كاراكتر"n\" باعث ميشود تا سطر جاري رد شود و به سطر بعدي برويم.البته ميتوانيم يه جاي استفاده از "n\" از endl كه مخفف end line بصورت زير استفاده كنيم.

cout<<"Computer"<<endl<<x;

كاراكتر هاي كنترلي ديگري هم وجود دارد كه در اينجا به توضيح آنها مي پردازيم:

"t\" : كنترل خروجي را 8 كاراكتر به جلو ميبرد.

"\\" : چاپ كاراكتر \.

""\" : چاپ كاراكتر ".

"v\" : كنترل خروجي را به ابتداي 8 سطر بعدي ميبرد.

"b\" : كاراكتر قبل خود را حذف ميكند.

"r\" : كليد Enter را مشخص ميكند.

"a\" : بوق سيستم را به صدا در مي آورد.

":\" : چاپ كاراكتر :.

"?\" : چاپ كاراكتر ?.

نكته آخر در رابطه با دستورات ورودي-خروجي اين است كه براي استفاده از آنها بايد از فايل <iostream.h> استفاده كرد.

مثال: برنامه اي بنويسيد كه رشته ": Your age is" و سن كاربر را كه يك عدد صحيح است با خروجي مناسب چاپ كند.

حل:

\\ this is first program

#include <iostream.h>

#include <conio.h>

int main()

{

int x;

cout<<"What Is Your Age ? ";

cin>>x;

clrscr();

cout<<"Your age is : "<<x;

getch();

return 0;

}

توضيح:

دستور ;()clrscr باعث ميشود كه كل صفحه نمايش پاك شود.همچنين اگر از دستور ;()getch استفاده نكنيد برنامه بعد از گرفت X از كاربر خيلي سريع نتايج را چاپ خواهد كرد و به محيط editor بر خواهد گشت.دستور ;()getch در انتهاي برنامه باعث خواهد شد تا برنامه پس از نمايش كليه خروجي ها منتظر بماند تا شما يك كليد را فشار دهيد(به عبارتي يك كاراكتر وارد كنيد).بنابراين خواهيد توانست اطلاعات چاپ شده روي صفحه نمايش را با دل سير ببينيد !!!

البته براي استفاده از هر دوي اين دستورات بايد از فايل <conio.h> استفاده كنيد.

تمرين يك : برنامه اي بنويسيد كه با دريافت نمرات 5 درس يك دانشجو معدل وي را حساب و با فرمت مناسب در خروجي چاپ كند.(حتما اين تمرين را تا جلسه آينده حل و اجرا كنيد.) :-)

AliToofun از این پست سپاسگزاري کرده است

کاربران زیر از شما کاربر محترم جناب Farhad3614 تشکر کرده اند:
sh-barg, roh, khashayar1

New Member



نماد کاربر
پست ها

7

تشکر کرده: 0 مرتبه
تشکر شده: 1 مرتبه
تاريخ عضويت

سه شنبه 1 فروردین 1385 19:34

آرشيو سپاس: 6 مرتبه در 3 پست

توسط sleepprince » پنج شنبه 7 اردیبهشت 1385 19:34

class  farhad
{
private:
float   x[5],ave;
int  sum;
public :
void  average( );
void  input( );
void output( );
}
void  farhad :: average( )
{
sum=0;
   for(int  i=1;i<=5;i++)
      {
        sum=sum+x[i];
        ave=sum/2;  
      }
}
void  farhad :: input( )
{
for(int i=1;i<5>> x[i];
}
void  farhad :: output ( )
{
  cout<<ave;
}
main ( )
{
farhad   f1;
f1.input ( );
f1.average( );
f1.output( );
}


اين هم homework.
حالا شما يه تمرين حل کنيد . اشکالي که نداره ؟
يه ليست دو طرفه (غير چرخشي) که مثل stack پر و خالي بشه سه تا تابع فقط ,add,delete,node و کلاسش
اين تمرين رو هفته آينده ازتون مي خوام
hamoon prince
اي آرزو بر من بتاب که ديگر هيچ نگاهي کوير احساسم را سبز نمي کند....!!!

AliToofun از این پست سپاسگزاري کرده است

کاربران زیر از شما کاربر محترم جناب sleepprince تشکر کرده اند:
roh, persianprog, khashayar1

Colonel II

Colonel II



نماد کاربر
پست ها

1065

تشکر کرده: 0 مرتبه
تشکر شده: 27 مرتبه
تاريخ عضويت

يکشنبه 28 اسفند 1384 14:04

محل سکونت

زیر آسمون خدا

آرشيو سپاس: 439 مرتبه در 147 پست

توسط آرمان » پنج شنبه 7 اردیبهشت 1385 20:43

دسترسی به پیکسل ها در ++C چطور امکان پذیر هست؟

کاربران زیر از شما کاربر محترم جناب آرمان تشکر کرده اند:
khashayar1

New Member



no avatar
پست ها

9

تشکر کرده: 0 مرتبه
تشکر شده: 2 مرتبه
تاريخ عضويت

پنج شنبه 18 آبان 1385 20:34

آرشيو سپاس: 2 مرتبه در 2 پست

توسط v_soroush » سه شنبه 1 خرداد 1386 22:31

Farhad3614, Farhad3614,
چگونه قسمت صحیح وقسمت اعشاری اعداد را درذخیره میکنیم؟


مفاهیم گیگاومیلی و میکرو و نانو و .... در زبان برنامه نویسی چیست؟
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

کاربران زیر از شما کاربر محترم جناب v_soroush تشکر کرده اند:
khashayar1

Administrator

Administrator



نماد کاربر
پست ها

15465

تشکر کرده: 10174 مرتبه
تشکر شده: 3917 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

توسط Mahdi1944 » سه شنبه 1 خرداد 1386 22:59

ضمن عرض خوش‌امد به شما
احمد جان منظورتون واضخ نيست، منظورتون ذخيره سازي در کجا هست؟
سوال دومتون هم گنگ هست، لطفا کامل و با توضيحات سوالتون رو مطرح کنيد  :shock:
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

کاربران زیر از شما کاربر محترم جناب Mahdi1944 تشکر کرده اند:
khashayar1

New Member



no avatar
پست ها

2

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

سه شنبه 18 مهر 1385 12:07

آرشيو سپاس: 1 مرتبه در 1 پست

توسط Elyas1356 » سه شنبه 8 خرداد 1386 14:05

سلام

اگه موجوده
لطفاً كامپالر C++ رو برام بفرست

ممنون

:smile:  :smile:

کاربران زیر از شما کاربر محترم جناب Elyas1356 تشکر کرده اند:
khashayar1

Administrator

Administrator



نماد کاربر
پست ها

15465

تشکر کرده: 10174 مرتبه
تشکر شده: 3917 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

توسط Mahdi1944 » سه شنبه 8 خرداد 1386 14:10

Elyas1356 جان
چه کامپايلري نياز داريد؟ Turbo؟
تحت ويندوز يا داس؟
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

کاربران زیر از شما کاربر محترم جناب Mahdi1944 تشکر کرده اند:
khashayar1

Colonel II

Colonel II



نماد کاربر
پست ها

2104

تشکر کرده: 2 مرتبه
تشکر شده: 32 مرتبه
تاريخ عضويت

چهارشنبه 12 بهمن 1384 11:48

آرشيو سپاس: 1400 مرتبه در 548 پست

توسط Professional » سه شنبه 8 خرداد 1386 20:05

Elyas1356,من بهتون C++ Builder رو پیشنهاد می کنم.
چون هم آسونه و هم کاربردیه. :-)
[ دست نوشته های من:  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  ] - [ لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد ]

Every Thing That U Feel,Is Every Thing That I Feel

کاربران زیر از شما کاربر محترم جناب Professional تشکر کرده اند:
khashayar1

Captain

Captain



نماد کاربر
پست ها

542

تشکر کرده: 12 مرتبه
تشکر شده: 41 مرتبه
تاريخ عضويت

شنبه 19 اسفند 1385 19:01

آرشيو سپاس: 334 مرتبه در 94 پست

توسط Azadi.Isatis » شنبه 26 آبان 1386 08:45

Mahdi1944, Farhad3614,  عزيز
خواهش مي کنم کمکم کنيد که تا ئوشنبه بيشتر وقت ندارم
چند تا سوال دارم:
1-الگوريتم مرتب سازي سريع و درجي و تعويضي را در زبان c  مي خواستم؟
2- به ازاي 100 و 1000 و 1000000 ورودي زمان مرتب سازي در هرکدام از الگوريتم ها چه مقدار طول ميکشد؟
3- روش محاسبه و يا برنامه اي که بتواند اين زمان را بدست آورد چيست؟(اگر برنامه اي باشد که بتوان با کمک آن مشخص کرد که در هر کدام از مرتب سازي ها چه مقدار طول مي کشد تا داده ها به همان مقداري که گفتم مرتب شوند بهتر است؟)
برای هر چیز زکاتی است  و زکات علم نشر دادن آن است.


الهی
مرا لیاقت بهشت نیست و طاقت دوزخ نیز ندارم. اکنون تو خود دانی و کرم تو.

کاربران زیر از شما کاربر محترم جناب Azadi.Isatis تشکر کرده اند:
roh, khashayar1

Administrator

Administrator



نماد کاربر
پست ها

15465

تشکر کرده: 10174 مرتبه
تشکر شده: 3917 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

توسط Mahdi1944 » شنبه 26 آبان 1386 19:19

PCBOYSIR جان
در اين دو لينک ميتونيد به طور کامل در مورد انواع الگوريتم‌هاي Sort و کاربرد هر يک رو ببينيد  :D
http://en.wikipedia.org/wiki/Sorting_algorithm
http://linux.wku.edu/~lamonml/algor/sort/sort.html
موفق باشيد
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

کاربران زیر از شما کاربر محترم جناب Mahdi1944 تشکر کرده اند:
khashayar1

Captain

Captain



نماد کاربر
پست ها

542

تشکر کرده: 12 مرتبه
تشکر شده: 41 مرتبه
تاريخ عضويت

شنبه 19 اسفند 1385 19:01

آرشيو سپاس: 334 مرتبه در 94 پست

توسط Azadi.Isatis » شنبه 26 آبان 1386 21:38

Mahdi1944,  جان
بابت اگوريتم ها متشکرم
اما زمان محاسبه را چگونه مي تونم بدست بياورم با توجه به مقدار ورودي هايي که گفته ام
تابع خاصي و يا برنامه خاصي براي اين کار وجود دارد؟؟
برای هر چیز زکاتی است  و زکات علم نشر دادن آن است.


الهی
مرا لیاقت بهشت نیست و طاقت دوزخ نیز ندارم. اکنون تو خود دانی و کرم تو.

کاربران زیر از شما کاربر محترم جناب Azadi.Isatis تشکر کرده اند:
khashayar1

بعدي

 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان