زانایی

تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران
آخرین نظرات
نویسندگان

بخشی از کدهای برنامه نویسی به زبان ++C قسمت دوم

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

برنامه ای که رشته عددی را حاوی نقطه اعشار است از ورودی خوانده ، آن را به عدد اعشاری تبدیل کند عنوان مثال ،رشته "42/123 "رابه عدد 42/123 تبدیل نماید. تابعی برای خواندن رشته ،تابعی برای تبدیل وتابعی برای نوشتن عدد  در خروجی بنویسید . پارامترها از طریق فراخوانی با ارجاع به توابع ارسال شوند.

ج :

#include

#include

#include

#include

void   input(char * str);

void   ascii_to_double(char * str, double * value);

void   output(double *f) ;

int    main(){

               char str[20];

               double f;

               clrscr() ;

               input(str);

               ascii_to_double(str, &f);

               output(&f);

               getch();

               return 0 ;

}

//************************************************************

void   input(char *str){

            cout

            cin.get ( str , 20 ) ;

}

 

void   ascii_to_double(char * str, double * value){

            int flag = 0 , i = 0;

            *value = 0 ;

            while (*str){

                        if (*str == '.')

                                    flag = 1;

                        else

                        if (*str >= '0' && *str

                                    if (flag == 0 )

                                                *value= (*value * 10) + (*str -48);

                                    else

                                                *value= *value + (*str -48) / pow(10, ++i);

                        else {

                                    cout

                                    break;

                        }

                        str++;

            }

}

 

void   output(double *f){

            cout

            cout

}

 

 

برنامه ای که سه مقدار عددی رابه عنوان آرگومان پذیرفته ،به تابعی ارسال کند وتابع بزرگترین مقدار آنهارا پیداکند . برنامه برنامه باید تعداد آرگومان هارا کنترل کند.

ج :

 

#include

#include

#include

int    max( int a, int b , int c);

int    main(int argc , char *argv[]){

               clrscr();

               if (argc

                                    cout

                                    getch();

                                    exit;

               }

               cout

               getch () ;

               return 0 ;

}

 

int   max( int a, int b , int c) {

            int max = a;

            if (b > max)

                        max = b;

            if (c > max)

                        max= c;

            return max;

}

 

 

برنامه ای که رشته ای رااز ورودی خوانده ،به تابعی ارسال کند وتابع آن را به طور معکوس به خروجی ببرد.

ج :

#include

#include

#include

void   invers (char *str) ;

int    main(){

               char  str[100];

               clrscr();

               cout

               cin.get (str , 100 , '.') ;

               invers (str) ;

               getch () ;

               return 0 ;

}

void   invers ( char *str){

            char *savestr = str;

            while (*str)

                        str++;

            for ( str--; str >= savestr ; str--)

                        cout

}

 

 

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

ج :

#include

#include

#include

void   input(char **names, int *numbers, int n) ;

int    search(char **names, int n, char *name) ;

void   output(int *numbers, int index) ;

int    main(){

               char **names, name[21];

               int  *numbers, n, index;

               char key;

               clrscr() ;

               cout

               cin >> n;

               names = new char * [n];

               numbers = new int [n];

               input (names , numbers, n);

               do {

                                    cout

                                    cin.get ();

                                    cin.get ( name , 20 ) ;

                                    index = search(names, n, name);

                                    if (index != -1){

                                                output(numbers, index);

                                                cout \n" ;

                                    } else

                                                cout \na" ;

                                    key = getch();

               }

               while (key == 'y');

               return 0 ;

}

//************************************************************

void   input(char **names, int *numbers, int n){

            char *name;

            for (int i = 0; i

                        name = new char [21];

                        cout

                        cin.get();

                        cin.get ( name , 20 ) ;

                        *(names + i) = name;

                        cout

                        cin >> *(numbers + i);

            }

}

int    search(char **names, int n, char *name){

            for (int i = 0; i

                        if (strcmp( *(names + i) , name)  == 0)

                                    return i;

            }

            return -1;

}

void   output(int *numbers, int index){

            cout

            cout

}

 

برنامه ای که رشته ای را خوانده مجموع ارقام موجود در رشته را محاسبه کند وچاپ کند.

ج :

#include

#include

void   separat ( char a[] , char b[] , int len ) ;

void   change  ( char b[] , int arr[] , int len ) ;

void   sum  ( int arr[] , int len ) ;

int    main(){

               const  int  k=11 ;

               char a[k] , b[k] ;

               int arr[k] ;

               clrscr()           ;

               cout

               cin.get ( a , k ) ;

               separat ( a , b , k ) ;

               change ( b , arr , k ) ;

               sum ( arr , k ) ;

               getch() ;

               return 0 ;

}

//*********************************************************

void   separat ( char a[] , char b[] , int len ){

               int i , j=0 ;

               for ( i=0 ; i

                        if ( a[i] >= '0' && a[i]

                                    b[j] = a[i] ;

                                    j++ ;

                        }

                        else

                        {

                                    b[j] ='0' ;

                                    j++ ;

                        }

 

               }

}

//**********************************************************

void   change ( char b[] , int arr[] , int len ){

               int i ;

               for ( i=0 ; i

                                    arr[i] = b[i] - 48 ;

               }

}

//***********************************************************

void   sum ( int arr[] , int len ){

               int i ,  p=0 ;

               for ( i=0 ; i

                                    p += arr[i] ;

               }

               cout

}

 

 

برنامه ای که رشته ای را خوانده موارد زیر را مشخص کند :

الف) تعداد حروف کوچک                                                     ب) تعداد حروف بزرگ

ج) تعداد حروف صدادار                                                       د) تعداد ارقام موجود در رشته

 

ج :

#include

#include

main(){

            char a[100];

            int l1=0,l2=0,l3=0,s=0;

            clrscr();

            cout

            cin>>a;

            for(int i=0;a[i];i++){

                        if(a[i]>='a'&&a[i]

                        if(a[i]>='A'&&a[i]

                        if(a[i]>='0'&&a[i]

                        s++;

                        }

            cout

            getch();

            return 0;

}

 

برنامه ای که با خواندن تعدادی عدد از ورودی ، آنها را در آرایه قرار دهد.سپس کلیه عناصر آرایه را بر عنصر وسط تقسیم کند. اگر عنصر وسط صفر باشد، بر عنصر بعد از عنصر وسط تقسیم کند....................

ج:

#include 

#include 

void  action(int  a[],int loc,int n);

//************************************************

int   main()

{

  int i,mid,n,a[100],sign=-1;

  clrscr();

  cout

  cin >> n;

  mid=n/2;

  for(i=0;i

  {

   cout

   cin >> a[i];

   }

    for(i=0;i

   {

   if ( a[mid+(sign*i)]!=0)

       {

            action(a,mid+(sign*i),n);

            break;

       }

    if (sign==1) i--;

    sign=-sign;

    }

    if(i>mid)

                        cout

 getch();

 return 0;

}

//************************************************

void  action(int  a[],int loc,int n)

{

 int i;

 for (i=0;i

  cout

}

 

برنامه ای که رشته ای را از ورودی خوانده ،تمام کلمات چهار حرفی آن را باکلمه "love " جایگزین کند.مثلاً رشته "I hate you,you doer "باید به رشته "I love you, you love "تبدیل شود.

ج :

#include

#include

#include

void   Replace( char a[] , char b[]) ;

int    main(){

               const  int  k=100;

               char  a[k], b[k];

               clrscr() ;

               cout

               cin.get ( a , k ) ;

               strcat(a, " ");

               Replace( a , b) ;

               cout

               getch() ;

               return 0 ;

}

//************************************************************

void   Replace( char a[] , char b[]){

               char word[25];

               int i , j = 0, p = 0 ;

               b[0] = 0;

               for ( i=0 ; i

                                    if ( a[i] == ' '){

                                                word[j] = 32;

                                                word[j + 1] = 0;

                                                if ((i - p) == 4)

                                                            strcat(b , "love ");

                                                else

                                                            strcat(b , word);

                                                p = i + 1;

                                                j = 0;

                                    }

                                    else

                                    {

                                                word[j] = a[i];

                                                j++;

                                    }

}

 

برنامه ای که رشته ای را از ورودی خوانده ،تمام کلمات چهار حرفی آن را باکلمه "love " جایگزین کند.مثلاً رشته "I hate you,you doer "باید به رشته "I love you, you love "تبدیل شود.

ج :

#include

#include

#include

void   Replace( char a[] , char b[]) ;

int    main(){

               const  int  k=100;

               char  a[k], b[k];

               clrscr() ;

               cout

               cin.get ( a , k ) ;

               strcat(a, " ");

               Replace( a , b) ;

               cout

               getch() ;

               return 0 ;

}

//************************************************************

void   Replace( char a[] , char b[]){

               char word[25];

               int i , j = 0, p = 0 ;

               b[0] = 0;

               for ( i=0 ; i

                                    if ( a[i] == ' '){

                                                word[j] = 32;

                                                word[j + 1] = 0;

                                                if ((i - p) == 4)

                                                            strcat(b , "love ");

                                                else

                                                            strcat(b , word);

                                                p = i + 1;

                                                j = 0;

                                    }

                                    else

                                    {

                                                word[j] = a[i];

                                                j++;

                                    }

}

 

 

 

برنامه ای که دو رشته s1 وs2 را از ورودی خوانده ، رشته s1 را در رشته s2 جست وجو کند.خواندن رشته ها توسط تابع اصلی وجست وجو رشته توسط تابعی انجام شود .

ج :

#include

#include

#include

void search(char a[],char b[],int ,int );

void main(){

            const int k=20,p=5;

            char a[k],b[p];

            clrscr();

            cout

            cin >> a >> b;

            search(a,b,k,p);

}

void search(char a[],char b[],int k,int p){

            for(int len=1;b[len];len++);

            for(int i=0;i

                         for(int j=0;j

                                      if(a[i+j]!=b[i])

                                                  break ;

                                      if(j==len-1){

                                                  cout

                                                  getch();

                                                  exit(0);

                                      }

                         }

            }

            cout

            getch();

}

 

برنامه ای که رشته ای را از ورودی خوانده ، مشخص کند که آیا رشته از هر دوطرف که در نظر گرفته شود یکسان است یاخیر . مثلاً رشته "beeb  " چنین خاصیتی دارد .

ج :

#include

#include

#include

int   main(){

              const  int  n=21 ;

              char   arr[n] ;

              clrscr() ;

              int i , j=0 , count=0 ;

              cout

              cin.get ( arr , n ) ;

              for ( i=0 ; arr[i] ; i++ ){

                          count ++ ;

              }

              int help=count;

              do {

                   count -- ;

                   if ( arr[j] == arr[count] )

                          j++ ;

                   else{

                          cout

                          getch() ;

                          exit(0);

                   }

                   cout

             }while ( j

          cout

             getch() ;

             return 0 ;

}

 

 

برنامه ای که رشته ای را که به نقطه ختم می شود از ورودی خوانده ، کارکترهای موجود در رشته را به همراه تعداد دفعات تکرار آنها به خروجی ببرد.

ج :

#include

#include

#include

void   Calc( char a[]) ;

int    main(){

               const  int  k=100;

               char  a[k];

               clrscr() ;

               cout

               cin.get ( a , k , '.') ;

               Calc( a ) ;

               getch() ;

               return 0 ;

}

//************************************************************

void   Calc( char a[]){

               int ar[30];

               int i;

               char c;

               for ( i=0 ; i

                                    ar[i] = 0;

               for ( i=0 ; i

                                    ar[ (a[i] - 97)]++;

               for ( i=0 ; i

                                    if (ar[i] != 0)

                                    {

                                                 c = i + 97;

                                                 cout

                                    }

}

 

برنامه ای که تعداد عددرا از ورودی خوانده ، آنهارا به طور مرتب در آرایه ای قراردهد (دقت داشته باشید که اعدد درموقع قرار گرفتن در آرایه ،به طور صعودی مرتب باشند )،سپس آرایه مرتب رابه خروجی ببرد.

ج :

#include

#include

void  input ( int [] , int ) ;

void  bubble ( int [] , int )  ;

void  output ( int [] , int ) ;

int   main(){

              const  int  k = 10 ;

              int   arr[k] ;

              clrscr() ;

              cout

              input ( arr , k ) ;

              bubble ( arr , k ) ;

              output ( arr , k ) ;

              getch() ;

              return 0 ;

}

void  input ( int arr[] , int k ){

              int  i ;

              for ( i=0 ; i

                          cin >> arr[i] ;

              }

}

void  bubble ( int arr[] , int k ){

              int i , j , temp ;

              for ( i=k-1 ; i>0 ; i-- ){

                          for ( j=0 ; j

                                      if ( arr[j] > arr[j+1] ){

                                                 temp = arr[j] ;

                                                 arr[j] = arr[j+1] ;

                                                 arr[j+1] = temp ;

                                      }

                          }

              }

}

void  output ( int arr[] , int k ){

              int i ;

              for ( i=0 ; i

                          cout

              }

}

 

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

ج :

#include

#include

const int n = 20;

void   input ( char a[] , char b[] , int len );

void   chang ( char a[] , char b[] , int len , int arr1[], int arr2[]);

void   sum ( int a[] , int b[] , int len , int c[]);

void   output ( int c[] , int len );

void   main(){

               char  a[n + 1] , b[n + 1] ;

               int arr1[n], arr2[n], arr3[n + 1];

               clrscr() ;

               input ( a , b , n ) ;

               chang ( a , b , n , arr1, arr2);

               sum ( arr1 , arr2 , n , arr3);

               output ( arr3 , n + 1 );

               getch() ;

}

//********************************************************

void   input ( char a[] , char b[] , int len ){

               cout

               cin >> a ;

               cout

               cin >> b ;

}

//*********************************************************

void   chang ( char a[] , char b[] , int len , int arr1[], int arr2[]){

               int  i;

               for ( i=0 ; i

                                    arr1[i] = a[i] - 48;

                                    arr2[i] = b[i] - 48;

               }

}

//*********************************************************

void   sum ( int a[] , int b[] , int len , int c[]){

              int   m , temp = 0;

              do{

                         len--;

                         m = a[len] + b[len] + temp ;

                         if ( m > 9 ) {

                                     c[len + 1] = m - 10 ;

                                     temp = 1 ;

                         }

                         else{

                                     c[len + 1] = m;

                                     temp = 0 ;

                         }

              } while ( len != 0 )  ;

              c[0] = temp;

}

//**********************************************************

void  output ( int c[] , int len ){

              int i ;

              if (c[0] != 0)

                          cout

              for ( i=1 ; i

                          cout

              }

}

 

  • یحیی خالدی

نظرات  (۰)

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