بخشی از کدهای برنامه نویسی به زبان ++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
}
}
- ۹۰/۰۲/۱۸