آموزش برنامه نویسی به زبان ++C

این وبلاگ جهت آموزش برنامه نویسی به زبان ++C برای دانش آموزان دبیرستان فرزانگان ایجاد شده است.
يكشنبه, ۲۴ ارديبهشت ۱۳۹۱، ۰۳:۳۷ ب.ظ

سوالات امتحان میان ترم فرزانگان 6 به همراه پاسخ

برای مطالعه بر روی ادامه مطلب کلیک کنید

 

 

1- برنامه ی زیر چه کاری انجام میدهد؟ جدول اجرای این برنامه را به ازای n=8 بکشید.

main()
{
    int n, mult = 1;
    cin >> n;
    while(n > 0)
    {
        if(n % 3 == 0)
        {
            mult = mult * n;
        }
        n = n - 1;
    }
    cout << mult;

	getch();
}

این برنامه حاصلضرب اعداد مضرب سه و کوچکتر از n را نشان میدهد.

 

 

2- در قطعه کدهای زیر دسورات داخل حلقه چند بار اجرا می شوند؟

 

الف)

int a, b = 2;
cin >> a;
while(a > 0 || b > 1)
{
    a = a / b;
    b++;
}

 

int x = 5, y = 1;
while(x >= 0)
{
    x = 2 * x - 10;
    cout << 2 * x + y;
    y = y + 1;
}

 

جواب:

الف) حلقه تا بینهایت تکرار میشود. چرا که متغیر b تا ابد بزرگتر از یک خواهد ماند.

ب) این حلقه تنها دو بار تکرار خواهد شد( چرا؟)

 

3- شکل خروجی زیر به ازای برنامه n=3 چیست؟

   

main()
{
    int n, x = 50, y = 50, x1 = 150, y1 = 70;
    initwindow(400, 500);
    cin >> n;
    while(n > 0)
    {
        rectangle(x, y, x1, y1);
        x = x + 10;
        y = y1;
        x1 = x1 - 10;
        y1 = y1 + 10;
        n = n - 1;
    }
    getch();
}

 

جواب:

   

 

4- برنامه ای بنویسید که مقدار x را از کاربر بگیرد و با توجه به معادله ی زیر y را بدست آورد: ( توجه داشته باشید که به ازای ورودی صفر، خروجی کلمه ی zero است

main()
{
    cout << "Please enter a number: " << endl;
    float x;
    float y;
    cin >> x;
    if(x < 0)
    {
        y = 2 * x * x + 1 / (x - 2) + 5;
        cout << "y is: " << y << endl;
    }
    else if(x == 0)
    {
        cout << "Zero" << endl;
    }
    else
    {
        float z = sqrt(x) + 5;
        float t = pow(x, 3) + pow(x, 2);
        y = z / t;
        cout << "y is: " << y << endl;
    }
    
    getch(); 
}


 

5- برنامه ای بنویسید که یکک را از ورودی بگیرد و اعلام کند که آیا عدد کامل هست یا نه؟

( عدد کامل عددی است که مجموع مقسوم علیه های آن 2 برابر خودش شود. مثلا عدد 6 کامل است زیرا 1+2+3+6=12)

 

main()
{
    cout << "Please enter a number: " << endl;
    int num, i = 1, sum = 0;
    cin >> num;
    while(i <= num)
    {
        if(num % i == 0)
        {
            sum = sum + i;
        }
        i++;
    }
    if(sum == 2 * num)
        cout << "adad kamel ast" << endl;
    else
        cout << "adad kamel nist" << endl;
            
    getch();
}

 

6- شرکتی میخواهد عملیات انتقال داده را از طریق خطوط تلفن انجام دهد. تمام داده ها به صورت اعداد 4 رقمی منتقل می شوند. برنامه ای بنویسید که یک عدد صحیح را از ورودی گرفته و آن را به صورت زیر به رمز در آورد:

به جای هر رقم، حاصل جمع آن رقم را با 7 قرار دهد( دقت کنید که ممکن است حاصل این جمع 2 رقمی شود. در این صورت رقم یکان راجایگزین کنید. ) آنگاه جای رقم اول و سوم و جای رقم دوم و چهارم را عوض کند و عدد رمز شده را در خروجی نمایش دهد. ( دقت کنید نمیتوانید عدد را رقم به رقم چاپ کنید. بلکه باید عدد به صورت یک عدد واحد چاپ شود)

مثال:

ورودی نمونه: 1456

خروجی نمونه: 2381

 

main()
{
    int num, newnum, a, b, c, d;
    cout << "Please enter your data" << endl;
    cin >> num;
    
    a = (num % 10 + 7) % 10;    //رقم اول رو میگیریم با استفاده از مد و با 7 جمع میکنیم و برای گرفتن رقم اول حاصل این جمع باز هم مد 10 میگیریم
    num = num / 10;         //رقم اولو از عدد حذف میکنیم. کارمون باهاش تموم شد
    b = (num % 10 + 7) % 10;   //رقم دوم رو میگیریم با استفاده از مد و با 7 جمع میکنیم و برای گرفتن رقم دوم حاصل این جمع باز هم مد 10 میگیریم
    num = num / 10;           //رقم دومو حذف میکنیم. کارمون باهاش تموم شد
    c = (num % 10 + 7) % 10;    //رقم سوم رو میگیریم با استفاده از مد و با 7 جمع میکنیم و برای گرفتن رقم سوم حاصل این جمع باز هم مد 10 میگیریم
    num = num / 10;           //رقم سومو حذف میکنیم. کارمون باهاش تموم شد
    d = (num % 10 + 7) % 10;   //رقم چهارم رو میگیریم با استفاده از مد و با 7 جمع میکنیم و برای گرفتن رقم چهارم حاصل این جمع باز هم مد 10 میگیریم
    num = num / 10;           //رقم چهارمو حذف میکنیم. کارمون باهاش تموم شد
    
    newnum=b*1000+a*100+d*10+c; //حالا با ارقام جدیدی که تولید کردم عدد رو اونجوری که گفته شده و با همون ترتیبی که صورت سوال فته میسازیم
    
    cout << newnum;

    getch();
}

 

روش دوم با حلقه ی while

 

main()
{
    cout << "please enter a number: " << endl;
    int num, newnum, prenum = 0, b;
    cin >> num;
    int p = 1;

    while(num > 0)
    {
        b = ((num % 10) + 7) % 10;
        prenum = prenum + (b * p);
        p *= 10;
        num /= 10;
    }

    newnum = (prenum % 100) * 100;
    newnum = newnum + (prenum / 100);

    cout << "your new number is: " << newnum << endl;

	getch();
}

 

 



نوشته شده توسط سارا نازاری
ساخت وبلاگ در بلاگ بیان، رسانه متخصصان و اهل قلم

آموزش برنامه نویسی به زبان ++C

این وبلاگ جهت آموزش برنامه نویسی به زبان ++C برای دانش آموزان دبیرستان فرزانگان ایجاد شده است.

سوالات امتحان میان ترم فرزانگان 6 به همراه پاسخ

يكشنبه, ۲۴ ارديبهشت ۱۳۹۱، ۰۳:۳۷ ب.ظ

برای مطالعه بر روی ادامه مطلب کلیک کنید

 

 

1- برنامه ی زیر چه کاری انجام میدهد؟ جدول اجرای این برنامه را به ازای n=8 بکشید.

main()
{
    int n, mult = 1;
    cin >> n;
    while(n > 0)
    {
        if(n % 3 == 0)
        {
            mult = mult * n;
        }
        n = n - 1;
    }
    cout << mult;

	getch();
}

این برنامه حاصلضرب اعداد مضرب سه و کوچکتر از n را نشان میدهد.

 

 

2- در قطعه کدهای زیر دسورات داخل حلقه چند بار اجرا می شوند؟

 

الف)

int a, b = 2;
cin >> a;
while(a > 0 || b > 1)
{
    a = a / b;
    b++;
}

 

int x = 5, y = 1;
while(x >= 0)
{
    x = 2 * x - 10;
    cout << 2 * x + y;
    y = y + 1;
}

 

جواب:

الف) حلقه تا بینهایت تکرار میشود. چرا که متغیر b تا ابد بزرگتر از یک خواهد ماند.

ب) این حلقه تنها دو بار تکرار خواهد شد( چرا؟)

 

3- شکل خروجی زیر به ازای برنامه n=3 چیست؟

   

main()
{
    int n, x = 50, y = 50, x1 = 150, y1 = 70;
    initwindow(400, 500);
    cin >> n;
    while(n > 0)
    {
        rectangle(x, y, x1, y1);
        x = x + 10;
        y = y1;
        x1 = x1 - 10;
        y1 = y1 + 10;
        n = n - 1;
    }
    getch();
}

 

جواب:

   

 

4- برنامه ای بنویسید که مقدار x را از کاربر بگیرد و با توجه به معادله ی زیر y را بدست آورد: ( توجه داشته باشید که به ازای ورودی صفر، خروجی کلمه ی zero است

main()
{
    cout << "Please enter a number: " << endl;
    float x;
    float y;
    cin >> x;
    if(x < 0)
    {
        y = 2 * x * x + 1 / (x - 2) + 5;
        cout << "y is: " << y << endl;
    }
    else if(x == 0)
    {
        cout << "Zero" << endl;
    }
    else
    {
        float z = sqrt(x) + 5;
        float t = pow(x, 3) + pow(x, 2);
        y = z / t;
        cout << "y is: " << y << endl;
    }
    
    getch(); 
}


 

5- برنامه ای بنویسید که یکک را از ورودی بگیرد و اعلام کند که آیا عدد کامل هست یا نه؟

( عدد کامل عددی است که مجموع مقسوم علیه های آن 2 برابر خودش شود. مثلا عدد 6 کامل است زیرا 1+2+3+6=12)

 

main()
{
    cout << "Please enter a number: " << endl;
    int num, i = 1, sum = 0;
    cin >> num;
    while(i <= num)
    {
        if(num % i == 0)
        {
            sum = sum + i;
        }
        i++;
    }
    if(sum == 2 * num)
        cout << "adad kamel ast" << endl;
    else
        cout << "adad kamel nist" << endl;
            
    getch();
}

 

6- شرکتی میخواهد عملیات انتقال داده را از طریق خطوط تلفن انجام دهد. تمام داده ها به صورت اعداد 4 رقمی منتقل می شوند. برنامه ای بنویسید که یک عدد صحیح را از ورودی گرفته و آن را به صورت زیر به رمز در آورد:

به جای هر رقم، حاصل جمع آن رقم را با 7 قرار دهد( دقت کنید که ممکن است حاصل این جمع 2 رقمی شود. در این صورت رقم یکان راجایگزین کنید. ) آنگاه جای رقم اول و سوم و جای رقم دوم و چهارم را عوض کند و عدد رمز شده را در خروجی نمایش دهد. ( دقت کنید نمیتوانید عدد را رقم به رقم چاپ کنید. بلکه باید عدد به صورت یک عدد واحد چاپ شود)

مثال:

ورودی نمونه: 1456

خروجی نمونه: 2381

 

main()
{
    int num, newnum, a, b, c, d;
    cout << "Please enter your data" << endl;
    cin >> num;
    
    a = (num % 10 + 7) % 10;    //رقم اول رو میگیریم با استفاده از مد و با 7 جمع میکنیم و برای گرفتن رقم اول حاصل این جمع باز هم مد 10 میگیریم
    num = num / 10;         //رقم اولو از عدد حذف میکنیم. کارمون باهاش تموم شد
    b = (num % 10 + 7) % 10;   //رقم دوم رو میگیریم با استفاده از مد و با 7 جمع میکنیم و برای گرفتن رقم دوم حاصل این جمع باز هم مد 10 میگیریم
    num = num / 10;           //رقم دومو حذف میکنیم. کارمون باهاش تموم شد
    c = (num % 10 + 7) % 10;    //رقم سوم رو میگیریم با استفاده از مد و با 7 جمع میکنیم و برای گرفتن رقم سوم حاصل این جمع باز هم مد 10 میگیریم
    num = num / 10;           //رقم سومو حذف میکنیم. کارمون باهاش تموم شد
    d = (num % 10 + 7) % 10;   //رقم چهارم رو میگیریم با استفاده از مد و با 7 جمع میکنیم و برای گرفتن رقم چهارم حاصل این جمع باز هم مد 10 میگیریم
    num = num / 10;           //رقم چهارمو حذف میکنیم. کارمون باهاش تموم شد
    
    newnum=b*1000+a*100+d*10+c; //حالا با ارقام جدیدی که تولید کردم عدد رو اونجوری که گفته شده و با همون ترتیبی که صورت سوال فته میسازیم
    
    cout << newnum;

    getch();
}

 

روش دوم با حلقه ی while

 

main()
{
    cout << "please enter a number: " << endl;
    int num, newnum, prenum = 0, b;
    cin >> num;
    int p = 1;

    while(num > 0)
    {
        b = ((num % 10) + 7) % 10;
        prenum = prenum + (b * p);
        p *= 10;
        num /= 10;
    }

    newnum = (prenum % 100) * 100;
    newnum = newnum + (prenum / 100);

    cout << "your new number is: " << newnum << endl;

	getch();
}

 

 

موافقین ۰ مخالفین ۰ ۹۱/۰۲/۲۴
سارا نازاری

نظرات  (۱۲)

ممنون از شما
پاسخ:
خوااهش میکنم.
 barobax!!!!dustan!!!!navabegh mamlekat!!!!khaharan gerami !!!!kasi ketab kamputere ezafi nadare be injaneb bd!!!!ketabam tu sait ja gozashtam !!!ag darin baram biyare plz !!mamnoon misham

 slm

chera tu soale 6 raveshe aval az if estefade nashode

?

injuri k shoma neveshtin yani k hatman majmueshun 2raghamie chon age 2raghami bashe bayad %10 gerefte she vali inja injuri nist tuye raveshe dovomam ounjayi k neveshtin while (num) joloye num dg chizi nabayad neveshte beshe

??????

پاسخ:
روش اول فقط سادس. لزوما نباید از حلقه استفاده کنیم اجبار که نکرده!!
توی هر دو روش در هر حالت من %10 گرفتم. برای اینکه اگه مجموعشون دو رقمی شد خب رقم اول می مونه و اگه جمعشون دو رقمی نشد خب مد یه عددِ یک رقمی به 10 خودش میشه دیگه!

اونا که نوشتم while(num) یعنی تا وقتی که num صفر نشده. هیچ فرقی نداره. اینجوری هم میشه نوشت. اما سر امتحان اینجوری ننویس.
 سلام خانم برای سوال 6 حتما باید while هم بلد باشیم؟آخه یجوریه!!!!!
 خانم به نظر من سوال 6 حلقه ی اشکال داره ! میشه با اسلش گذاشتن یه کم بیشتر این سوال رو توضیح بدین؟ تورو خدا خواهش میکنم!!!
پاسخ:
آخه درست کار میکنه... چرا میگی اشتباهه؟
توضیح گذاشتم.

 khanoom soal 6 dasturi ke tu whil dadin yani chi!?!? num /=10 yani chi daghighan!?!?:D
پاسخ:
یعنی هر بار num رو تقسیم بر 10 کن بریز توی num

 pas chera in shekli neveshtin!?!? p *=10 yani pre num zabdar 10?!!?:D
 khanoom mishe toziho va3 halghe bezarin!!!plz

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

برنامه ای بنویسید که یک عدد از کاربر بگیرد و مقسوم علیه آن را در خروجی نشان دهد
salam in soal 2 ghesmate B cherasho mishe begin?!
پاسخ:
جدول بکش براش متوجه میشی. 
سلام
برنامه ای می خواستم بنویسم که چند عدد را وارد و عدد انتخابی کاربر را حذف کنددر غیر این صورت پیام خطا بدهد.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی