تبليغاتX
فناوري‌اطلاعات ، برنامه‌نويسي

برنامه نويسي ، شبكه ، سيستم عامل ، پايگاه داده ، سيستم اطلاعات جغرافيايي ، مديريت و كنترل پروژه

Information
سلام دوست عزيز . اين وبلاگ در مورد فناوري اطلاعات و علوم مرتبط با اون هست و داراي آموزش كامل و گام به گام برنامه نويسي به زبان ++C .
************************
پيشنهاد مي‌كنم از لينك‌هاي بخش مقالات فناوري اطلاعات ديدن كنيد .
************************
به اميد اينكه مطالب مفيد واقع بشه . با ارائه نظرات سازنده ي خودتون من رو در هرچه پربارتر كردن اين وب ياري كنيد .
متشكرم

مقالات فناوري اطلاعات
پیوندها
جستجوگر

طراح قالب

Powered By
BLOGFA.COM
لینک RSS
برنامه نويسي به زبان ++C (پست 69)

كلمات كليدي

تا اينجا با كلماتي مثل if و case و float آشنا شديم . دانستيم كه اين كلمات براي ++C معني خاصي دارند . از اين كلمات نمي‌توان بعنوان نام يك متغير يا هر منظور ديگري استفاده كرد و فقط بايد براي انجام همان كار خاص استفاده شوند . مثلاٌ كلمه‌ي float فقط بايد براي معرفي يك نوع اعشاري بكار رود . يك كلمه‌ي كليدي در يك زبان برنامه‌نويسي كلمه‌اي است كه از قبل تعريف شده و براي هدف مشخصي منظور شده است . ++C استاندارد اكنون شامل ۷۴ كلمه‌ي كليدي است :

 and / and_eq / asm / auto / bitand / bitor / bool / break / case / catch / char / class / compl / const / const_cast / continue / default / delete / do / double / dynamic_cast / enum / explicit / export / extern / false / float / for / friend / goto / if / inline / int / long / mutable / namespace / new / not / not_eq / operator / or / or_eq / private / protected / public / register / reinterpret_cast / return / short / signed / sizeof / static / static_cast / struct / switch / template / this / throw / true / try / typedef / typoid / typename / using / union / unsigned / virtual / void / volatile / wchar_t / while / xor / xor_eq

كلمات كليدي مانند if و else تقريباٌ در هر زبان برنامه‌نويسي يافت مي‌شوند . ديگر كلمات كليدي همچون dynamic_cast منحصر به ++C هستند .

دو نوع كلمه‌ي كليدي وجود دارد : كلمه‌هاي رزرو شده و كلمات استاندارد .

يك كلمه‌ي رزرو شده كلمه‌اي است كه يك دستور خاص از آن زبان را نشان مي‌دهد . كلمه‌ي كليدي if و else كلمات رزرو شده هستند . يك شناسه‌ي استاندارد كلمه‌اي است كه يك نوع داده‌ي استاندارد از زبان را مشخص مي‌كند . كلمات كليدي bool و int شناسه‌هاي استاندارد هستند زيرا هر يك از آنها يك نوع داده‌ي خاص را در زبان ++C مشخص مي‌كنند . براي اطلاعات بيشتر در مورد كلمات كليدي به كامپايلر ++C مراجعه كنيد . 

نوشته شده توسط: مرضيه در چهارشنبه سی ام مرداد 1387|+|
برنامه نويسي به زبان ++C (پست 68)

عملگر عبارت شرطي

يكي از مزيت‌هاي ++C اختصار در كدنويسي است . عملگر عبارت شرطي يكي از امكاناتي است كه جهت اختصار در كد نويسي تدارك ديده شده است . اين عملگر را مي‌توانيم بجاي دستور if..else بكار ببريم . اين عملگر از نشانه‌هاي ؟ و : به شكل زير استفاده مي‌كند :

condition ? expression1 : expression2 ;

در اين عملگر ابتدا شرط condition بررسي مي‌شود . اگر اين شرط درست بود ، حاصل كل عبارت برابر با expression1 مي‌شود و اگر شرط نادرست بود ، حاصل كل عبارت برابر با expression2 مي‌شود . مثلاٌ در دستور انتساب زير :

min = ( x

اگر x

**************************************************************

مثال : نسخه‌ي جديدي از برنامه‌ي يافتن مقدار مينيمم

int main()
{   int  m,n ;
    cout << " enter two integers : " ;
    cin >> m >> n ;
    cout << ( m}

عبارت شرطي ( m : n ؟ m

 

 

نوشته شده توسط: مرضيه در چهارشنبه سی ام مرداد 1387|+|
برنامه نويسي به زبان ++C (پست 67)

مثال : تله‌ي سقوط در دستور switch

برنامه‌ي زير بدون دستورهاي break دچار تله‌ي سقوط مي‌شود .

int main()
{   int  score ;
    cout << " enter your test score : " ;   cin >> score ;
    switch (score/10)
    {   case  10 :
        case  9 :   cout << " your grade is A . " << endl ;   // LOGICAL ERROR
        case  8 :   cout << " your grade is B . " << endl ;   // LOGICAL ERROR
        case  7 :   cout << " your grade is C . " << endl ;   // LOGICAL ERROR
        case  6 :   cout << " your grade is D . " << endl ;   // LOGICAL ERROR
        case  5 :   
        case  4 :
        case  3 :
        case  2 :
        case  1 :
        case  0 :   cout << " your grade is F . " << endl ;   // LOGICAL ERROR
        default :    cout << " Error : score is out of range . \ n " ;
    }
    cout << " Goodluck . " << endl ;
}

خروجي برنامه :

enter your test score : 83
your grade is B .
your grade is C .
your grade is D .
your grade is F .
Error : score is out of range .
Goodluck .

در اجراي فوق ، پس از اينكه به case 8 انشعاب شد و عبارت مقابل آن چاپ شد ، چون دستور break وجود ندارد ، اجراي برنامه به خط بعدي كه case 7 است مي‌رود و عبارت your grade is C را نيز چاپ مي‌كند و به همين ترتيب يكي‌يكي همه‌ي عبارت‌هاي case را اجرا مي‌كند و سرانجام عبارت default را هم اجرا نموده و آنگاه از دستور switch خارج مي‌شود . 

 

نوشته شده توسط: مرضيه در سه شنبه بیست و نهم مرداد 1387|+|
برنامه نويسي به زبان ++C (پست 66)

مثال : استفاده از دستور switch

int main()
{   int  score ;
    cout << " enter your test score : " ;   cin >> score ;
    switch (score/10)
    {   case  10 : 
        case  9 :   cout << " your grade is A . " << endl ;  break ;
        case  8 :   cout << " your grade is B . " << endl ;  break ;
        case  7 :   cout << " your grade is C . " << endl ;  break ;
        case  6 :   cout << " your grade is D . " << endl ;  break ;
        case  5 :
        case  4 : 
        case  3 :
        case  2 :
        case  1 :
        case  0 :   cout << " your grade is F . " << endl ;  break ;
        default :    cout << " Error : score is out of range . \ n " ;
    }
    cout << " Goodluck . " << endl ;
}

خروجي برنامه :

enter your test score : 83
your grade is B .
Goodluck .

در برنامه‌ي بالا ابتدا score بر 10 تقسيم مي‌شود تا محدوده‌ي اعداد بين صفر تا 10 محدود شود . بنابراين در اجراي آزمايشي ، نمره‌ي 83 به 8 تبديل مي‌شود ، اجراي برنامه به case 8 انشعاب مي‌كند و خروجي مربوطه چاپ مي‌گردد . سپس دستور break موجب مي‌شود كه اجراي برنامه از دستور switch خارج شده و به اولين دستور بعد از بلوك switch انشعاب مي‌كند . در آنجا عبارت Goodluck چاپ مي‌شود .

لازم است در انتهاي هر case دستور break قرار بگيرد . بدون اين دستور ، اجراي برنامه پس از اينكه case مربوطه را اجرا كرد از دستور switch خارج نمي‌شود ، بلكه همه‌ي caseهاي زيرين را هم خط به خط مي‌پيمايد و دستورات مقابل آنها را اجرا مي‌كند . به اين اتفاق ، تله‌ي سقوط (Fall Throw Error) مي‌گويند .

 

نوشته شده توسط: مرضيه در دوشنبه بیست و هشتم مرداد 1387|+|
برنامه نويسي به زبان ++C (پست 65)

دستورالعمل switch

دستور switch مي‌تواند بجاي ساختار else if براي بررسي مجموعه‌اي از حالت‌هاي متناوب و موازي بكار رود . نحو اين دستور به شكل زير است :

switch (expressions)
{   case  constant1 : statementlist1;
    case  constant2 : statementlist2;
    case  constant3 : statementlist3;
                :
                :
    case  constantN : statementlistN;
    default : statementlist0;
}

اين دستور ابتدا expression را برآورد مي‌كند و سپس ميان ثابت‌هاي case به دنبال مقدار آن مي‌گردد . اگر مقدار مربوطه از ميان ثابت‌هاي فهرست شده يافت شد ، دستور statementlist مقابل آن case اجرا مي‌شود . اگر مقدار مورد نظر ميان caseها يافت نشد و عبارت default وجود داشت ، دستور statementlist مقابل آن اجرا مي‌شود . عبارت default يك عبارت اختياري است . يعني مي‌توانيم در دستور switch آن را قيد نكنيم . expression بايد به شكل يك نوع صحيح ارزيابي شود و constantها بايد ثابت‌هاي صحيح باشند .

 

نوشته شده توسط: مرضيه در جمعه بیست و پنجم مرداد 1387|+|
برنامه نويسي به زبان ++C (پست 64)

مثال : استفاده از ساختار else if براي مشخص كردن محدوده‌ي نمره

برنامه‌ي زير يك نمره‌ي امتحان را به درجه‌ي حرفي معادل تبديل مي‌كند :

int main()
{   int  score ;
    cout << " enter your test score : " ;   cin >> score ;
    if ( score > 100 )   cout << " Error : that score is out of range . " ;
    else  if ( score >= 90 )   cout << " your grade is A . " << endl ;
    else  if ( score >= 80 )   cout << " your grade is B . " << endl ;
    else  if ( score >= 70 )   cout << " your grade is C . " << endl ;
    else  if ( score >= 60 )   cout << " your grade is D . " << endl ;
    else  if ( score >= 0 )     cout << " your grade is F . " << endl ;
    else   cout << " Error : that score is out of range . " ;
}

خروجي برنامه :

enter your test score : 83
your grade is B .

مقدار متغير score به شكل آبشاري با دستورهاي انتخاب بطور متوالي بررسي مي‌شود تا اينكه يكي از شرط‌ها درست شود و يا به آخرين else برسيم . 

 

نوشته شده توسط: مرضيه در جمعه بیست و پنجم مرداد 1387|+|
برنامه نويسي به زبان ++C (پست 63)

ساختار else if

دستور if..else تودرتو ، اغلب براي بررسي مجموعه‌اي از حالت‌هاي متناوب يا موازي بكار مي‌رود . در اين حالات ، فقط عبارت else شامل دستور if بعدي خواهد بود . اين قبيل كدها را معمولاٌ با ساختار else if مي‌سازند .

مثال : استفاده از ساختار else if براي بررسي حالت‌هاي موازي

برنامه‌ي زير ، زبان كاربر را سؤال مي‌كند و سپس يك پيغام به همان زبان در خروجي چاپ مي‌كند :

int main()
{   char  language ;
    cout << " Engl . , Fren . , Ger . , Ital . , or Rus . ? ( e|f|g|i|r ) : " ;
    cin >> language ;
    if ( language == 'e' )   cout << " welcome to project c++ . " ;
    else  if ( language == 'f' )   cout << " bon jour , project c++ . " ;
    else  if ( language == 'g' )   cout << " guten tag , project c++ . " ;
    else  if ( language == 'i' )   cout << " bon giorno , project c++ . " ;
    else  if ( language == 'r' )   cout << " dobre utre , project c++ . " ;
    else   cout << " sorry ; we don't speak your language. " ;
}

خروجي برنامه :

Engl . , Fren . , Ger . , Ital . , or Rus . ? ( e|f|g|i|r ) : i
bon giorno , project c++ .

در حقيقت اين برنامه از دستور if..else تودرتو استفاده كرده است .

 

نوشته شده توسط: مرضيه در پنجشنبه بیست و چهارم مرداد 1387|+|
برنامه نويسي به زبان ++C (پست 62)

مثال : يك بازي حدسي

برنامه‌ي زير عددي را كه كاربر بين 1 تا 8 در ذهن دارد ، را پيدا مي‌كند :

int main()
{   cout << " pick a number from 1 to 8 . " << endl ;
    char  answer ;
    cout << " is it less than 5 ? ( y|n ) : " ;   cin >> answer ;
    if ( answer == 'y' )                // 1<=n<=4
    {   cout << " is it less than 3 ? ( y|n ) : " ;   cin >> answer ;
         if ( answer == 'y' )           // 1<=n<=2
         {   cout << " is it less than 2 ? ( y|n ) : " ;   cin >> answer ;
              if ( answer == 'y' )   cout << " your number is 1 . " << endl ;
              else   cout << " your number is 2 . " << endl ;
          }
          else
          {   cout << " is it less than 4 ? ( y|n ) : " ;   cin >> answer ;
               if ( answer == 'y' )   cout << " your number is 3 . " << endl ;
               else   cout << " your number is 4 . " << endl ;
           }
    }
    else                                         // 5<=n<=8
    {   cout << " is it less than 7 ? ( y|n ) : " ;   cin >> answer ;
         if ( answer == 'y' )    // 5<=n<=6
         {   cout << " is it less than 6 ? ( y|n ) : " ;   cin >> answer ;
              if ( answer == 'y' )   cout << " your number is 5 . " << endl ;
              else   cout << " your number is 6 . " << endl ;
          }
          else                             // 7<=n<=8
          {   cout << " is it less than 8 ? ( y|n ) : " ;   cin >> answer ;
               if ( answer == 'y' )   cout << " your number is 7 . " << endl ;
               else   cout << " your number is 8 . " << endl ;
           }
      }
}

برنامه‌ي بالا با تجزيه‌ي مسأله قادر است تنها با سه پرسش ، هريك از اعداد 1 تا 8 را بيابد . در اجراي زير ، كاربر عدد 6 را مد نظر داشته است :

pick a number from 1 to 8 .
is it less than 5 ? ( y|n ) : n
is it less than 7 ? ( y|n ) : y
is it less than 6 ? ( y|n ) : n
your number is 6 .

در منطق برنامه‌ي بالا دقت كنيد . به الگوريتم استفاده شده در اين برنامه الگوريتم جستجوي دودويي (Binary Search) مي‌گويند . اين الگوريتم روي مجموعه‌هاي مرتب بكار مي‌رود و به سرعت مشخص مي‌كند آيا يك داده‌ي مفروض در اين مجموعه هست يا خير . در پست‌هاي بعد روش‌هاي ديگري از جستجو را بيان خواهم كرد .   

 

نوشته شده توسط: مرضيه در پنجشنبه بیست و چهارم مرداد 1387|+|
برنامه نويسي به زبان ++C (پست 61)

مثال : استفاده از دستورهاي انتخاب تودرتو

در اين برنامه براي يافتن مينيمم سه عدد صحيح از دستورهاي if..else تودرتو استفاده مي‌شود :

int main()
{   int  n1,n2,n3 ;
    cout << " enter three integers : " ;
    cin >> n1 >> n2 >> n3 ;
    if ( n1
       if ( n1
cout << " their minimum is : " << n1 << endl ;
       else  cout << " their minimum is : " << n3 << endl ;
    else     // n1 >= n2
       if ( n2   cout << " their minimum is : " << n2 << endl ;
       else  cout << " their minimum is : " << n3 << endl ;
}

خروجي برنامه :

enter three integers : 77  33  55
their minimum is : 33

در اجراي بالا ، اولين شرط (n1<n2) نادرست است و سومين شرط (n2<n3) درست است . بنابراين گزارش مي‌شود كه n2 مينيمم است .

در هر بار اجراي اين برنامه فقط دو شرط ساده‌ي تودرتو ارزيابي مي‌شود . منطق اين برنامه كمي از برنامه‌هاي گفته شده در پست‌هاي قبل پيچيده‌تر است ، ولي كارايي بيشتري دارد و در مقايسه بين كارايي و سادگي بهتر است كارايي انتخاب شود .

 

نوشته شده توسط: مرضيه در سه شنبه بیست و دوم مرداد 1387|+|
Technology
آرشیو
آمار وبلاگ
» تعداد بازدیدها:
» مرورگر:
امکانات اضافي

© All Rights Reserved by mrz-it.Blogfa.com ©