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

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

امتحان آبان ماه( دو بعدی و رشته ها)

1-  فرض کنید در یک مســابقه ی ورزشی ده تیم مختـلف شرکت کرده باشند. پس از مسابقه میخواهیم بدانیم تـیم N ام ( 0<N<11)  در چه رتبه ای قرار گرفته است.

برای این کار شما برنامه­ای بنویسید که امتیازات را از ورودی گرفته و عدد N ( 0<N<11) را نیز از ورودی بگیرد و امتیاز تیم n را در خروجی چاپ کند. 


پاسخ 


#include <conio.h>
#include <iostream.h>

main()
{
    int n=10;
    int a[n];
    for(int i=0;i<9;i++)
        cin>>a[i];
        
    for(int i=1;i<n;i++)        
    {
        int j;
        int key=a[i];
        
        for(j=i-1;j>=0;j--)
        {
            if(key>a[j])
            {
                a[j+1]=a[j];
            }
            else
                break;
        }
        a[j+1]=key;
    }
    int f;
    cin>>f;
    cout<<a[f+1];
    getch();
    
}

2-  شما قرار است برای نوشتن یک پایگاه اینترنتی کمک کنید. بخشی از این پایگاه مربوط به ثب نام کاربران جدید است که باید یک نام کاربری مجاز وارد شود. 

یک نام کاربری مجاز، یک دنباله از حروف a تا  z و ارقام 1 تا 9 است که حرف اولش رقم نیست و قسمت عددی آن حداکثر 3 رقم دارد و درانتهای دنباله است. 

مثلا test123 و minaaa نامهای کاربری مجاز هستند. اما هریک از test1234  و 12hello و 1abc2d و abc2d نامهای غیر مجاز هستند.


در این مسئله شما باید یک نام کاربری را از ورودی گرفته و مجاز یا غیر مجاز بودن آن را مشخص کنید. 

راهنمایی :

کد اسکی 0=                             48 کد اسکی a=97

کد اسکی 1=                             49 کد اسکی b=98

…                                                   …

کد اسکی 9=                             57 کد اسکی z=122



#include <conio.h>
#include <iostream>
#include <string>

using namespace std;

main()
{
    string s;
    cin>>s;
    int n=s.length();
    
    int f1=0;
    int f2=1;
    for(int i=0;i<n-3;i++)
    {
        int asc=(int)s[i];
        if(asc<=97 && asc>=122)
        {
            f1=1;
            break;
        }   
    }
    
    int a=(int)s[n-3];
    int b=(int)s[n-2];
    int c=(int)s[n-1];
    
    if( (a>=97 && a<=122) && (b>=97 && b<=122) && (c>=97 && c<=122) )
        f2=0;
        
    if( (a>=97 && a<=122) && (b>=97 && b<=122) && (c>=49 && c<=57) )
        f2=0;
        
    if( (a>=97 && a<=122) && (b>=49 && b<=57) && (c>=49 && c<=57) )
        f2=0;
        
    if( (a>=49 && a<=57) && (b>=49 && b<=57) && (c>=49 && c<=57) )
        f2=0;
        
    if(f1==0 && f2==0)
        cout<<"Motabar";
    else
        cout<<"Namotabar";
        
    getch();
    
}


3-  نیلوفر برای خودش یک بازی با اعداد طراحی کرده است. صفحه ی بازی او یک جدول 6 در 6 پر شده از اعداد متفاوت از 1 تا 100است. 

برای شروع بازی  نیلوفر با دو بار تاس ریختن یک خانه از جدول را انتخاب می کند.  اگر این خانه از تمام خانه های بالایی و پایینی و سمت راست و سمت چپش بزرگتر یا مساوی باشد نیلوفر برنده میشود. در غیر این صورت نیلوفر بازنده خواهد شد.

شما برنامه ای بنویسید که در آن بازی نیلوفر را پیاده سازی کرده باشید. برای این کار یک آرایه 6*6 را که از پیش داشته اید در نظر بگیرید( نیازی به گرفتن آرایه از ورودی نیست) نیلوفر با زدن کلید S بازی را شروع میکند و در خروجی کلمه ی barande یا bazande ظاهر خواهد شد.

راهنمایی: برای به دست آوردن عدد تصادفی از دستور rand() استفاده کنید  Int x=rand();

       
              مثال : فرض کنیم سطر و ستون از 0 تا 5 شماره گذاری شده باشند.

بازی اول نیلوفر:

 A[3][4]با تاس انتخاب شده که 44 میباشد

خروجی : bazande

بازی دوم نیلوفر:

 A[2][4]با تاس انتخاب شده که 54 می باشد

خروجی : barande

بازی اول نیلوفر:

 A[1][5]با تاس انتخاب شده که 10 می باشد

خروجی : bazande


#include <conio.h>
#include <iostream>

using namespace std;

main()
{
    int a[6][6];
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<6;j++)
        {
            a[i][j]=rand()%99+1;
        }
    }    
    
    char f;
    cin>>f;
    if(f=='s')
    {
        int f1=0;
        int f2=0;
        int x=rand()%6;
        int y=rand()%6;
        for(int i=0;i<6;i++)
        {
            if(a[x][i]>a[x][y])
            {
                f1=1;
                break;
            }
        }
        for(int i=0;i<6;i++)
        {
            if(a[i][x]>a[x][y])
            {
                f2=1;
                break;
            }
        } 
        if(f2==0 && f1==0)
            cout<<"Barande!";
        else
            cout<<"Bazande...";
    }
    else
        cout<<"Lotfan S ra vared kon!";
    
    getch();
    
}

نکته: برای اینکه اعداد رندم تابع rand  در هر بار اجرای برنامه،متفاوت باشند این دستور را درون main قرار دهید و پس از آن از ran() استفاده کنید. 

    srand(time(0));



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

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

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

امتحان آبان ماه( دو بعدی و رشته ها)

پنجشنبه, ۱۶ آذر ۱۳۹۱، ۰۶:۲۰ ب.ظ

1-  فرض کنید در یک مســابقه ی ورزشی ده تیم مختـلف شرکت کرده باشند. پس از مسابقه میخواهیم بدانیم تـیم N ام ( 0<N<11)  در چه رتبه ای قرار گرفته است.

برای این کار شما برنامه­ای بنویسید که امتیازات را از ورودی گرفته و عدد N ( 0<N<11) را نیز از ورودی بگیرد و امتیاز تیم n را در خروجی چاپ کند. 


پاسخ 


#include <conio.h>
#include <iostream.h>

main()
{
    int n=10;
    int a[n];
    for(int i=0;i<9;i++)
        cin>>a[i];
        
    for(int i=1;i<n;i++)        
    {
        int j;
        int key=a[i];
        
        for(j=i-1;j>=0;j--)
        {
            if(key>a[j])
            {
                a[j+1]=a[j];
            }
            else
                break;
        }
        a[j+1]=key;
    }
    int f;
    cin>>f;
    cout<<a[f+1];
    getch();
    
}

2-  شما قرار است برای نوشتن یک پایگاه اینترنتی کمک کنید. بخشی از این پایگاه مربوط به ثب نام کاربران جدید است که باید یک نام کاربری مجاز وارد شود. 

یک نام کاربری مجاز، یک دنباله از حروف a تا  z و ارقام 1 تا 9 است که حرف اولش رقم نیست و قسمت عددی آن حداکثر 3 رقم دارد و درانتهای دنباله است. 

مثلا test123 و minaaa نامهای کاربری مجاز هستند. اما هریک از test1234  و 12hello و 1abc2d و abc2d نامهای غیر مجاز هستند.


در این مسئله شما باید یک نام کاربری را از ورودی گرفته و مجاز یا غیر مجاز بودن آن را مشخص کنید. 

راهنمایی :

کد اسکی 0=                             48 کد اسکی a=97

کد اسکی 1=                             49 کد اسکی b=98

…                                                   …

کد اسکی 9=                             57 کد اسکی z=122



#include <conio.h>
#include <iostream>
#include <string>

using namespace std;

main()
{
    string s;
    cin>>s;
    int n=s.length();
    
    int f1=0;
    int f2=1;
    for(int i=0;i<n-3;i++)
    {
        int asc=(int)s[i];
        if(asc<=97 && asc>=122)
        {
            f1=1;
            break;
        }   
    }
    
    int a=(int)s[n-3];
    int b=(int)s[n-2];
    int c=(int)s[n-1];
    
    if( (a>=97 && a<=122) && (b>=97 && b<=122) && (c>=97 && c<=122) )
        f2=0;
        
    if( (a>=97 && a<=122) && (b>=97 && b<=122) && (c>=49 && c<=57) )
        f2=0;
        
    if( (a>=97 && a<=122) && (b>=49 && b<=57) && (c>=49 && c<=57) )
        f2=0;
        
    if( (a>=49 && a<=57) && (b>=49 && b<=57) && (c>=49 && c<=57) )
        f2=0;
        
    if(f1==0 && f2==0)
        cout<<"Motabar";
    else
        cout<<"Namotabar";
        
    getch();
    
}


3-  نیلوفر برای خودش یک بازی با اعداد طراحی کرده است. صفحه ی بازی او یک جدول 6 در 6 پر شده از اعداد متفاوت از 1 تا 100است. 

برای شروع بازی  نیلوفر با دو بار تاس ریختن یک خانه از جدول را انتخاب می کند.  اگر این خانه از تمام خانه های بالایی و پایینی و سمت راست و سمت چپش بزرگتر یا مساوی باشد نیلوفر برنده میشود. در غیر این صورت نیلوفر بازنده خواهد شد.

شما برنامه ای بنویسید که در آن بازی نیلوفر را پیاده سازی کرده باشید. برای این کار یک آرایه 6*6 را که از پیش داشته اید در نظر بگیرید( نیازی به گرفتن آرایه از ورودی نیست) نیلوفر با زدن کلید S بازی را شروع میکند و در خروجی کلمه ی barande یا bazande ظاهر خواهد شد.

راهنمایی: برای به دست آوردن عدد تصادفی از دستور rand() استفاده کنید  Int x=rand();

       
              مثال : فرض کنیم سطر و ستون از 0 تا 5 شماره گذاری شده باشند.

بازی اول نیلوفر:

 A[3][4]با تاس انتخاب شده که 44 میباشد

خروجی : bazande

بازی دوم نیلوفر:

 A[2][4]با تاس انتخاب شده که 54 می باشد

خروجی : barande

بازی اول نیلوفر:

 A[1][5]با تاس انتخاب شده که 10 می باشد

خروجی : bazande


#include <conio.h>
#include <iostream>

using namespace std;

main()
{
    int a[6][6];
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<6;j++)
        {
            a[i][j]=rand()%99+1;
        }
    }    
    
    char f;
    cin>>f;
    if(f=='s')
    {
        int f1=0;
        int f2=0;
        int x=rand()%6;
        int y=rand()%6;
        for(int i=0;i<6;i++)
        {
            if(a[x][i]>a[x][y])
            {
                f1=1;
                break;
            }
        }
        for(int i=0;i<6;i++)
        {
            if(a[i][x]>a[x][y])
            {
                f2=1;
                break;
            }
        } 
        if(f2==0 && f1==0)
            cout<<"Barande!";
        else
            cout<<"Bazande...";
    }
    else
        cout<<"Lotfan S ra vared kon!";
    
    getch();
    
}

نکته: برای اینکه اعداد رندم تابع rand  در هر بار اجرای برنامه،متفاوت باشند این دستور را درون main قرار دهید و پس از آن از ran() استفاده کنید. 

    srand(time(0));

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

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

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