چند مثال برای توابع به زبان ++C
مصطفی عفافی | يكشنبه, ۷ خرداد ۱۳۹۶، ۱۲:۳۴ ب.ظ
چند مثال برای توابع به زبان سی پلاس پلاس
شما هم با انتشار دانش خود به نشر علم کمک کنید
1. تابعی بنویسید که مقدار ساعت و دقیقه و ثانیه را دریافت کند و کل زمان را بر حسب ثانیه برگرداند.
int TimeInSec(int h,int m ,int s )
{
int total=h*3600 +m*60+s;
return total;
}
void main()
{ int h,m,s;
cout<<”h? m? s?”;
cin>>h>>m>>s;
cout<<TimeInSec(h,m,s);
}
2. تابعی بنویسید که 4 عدد را دریافت و میانگین آن اعداد را برگرداند
float avg(float a, float b, float c, float d)
{
return (a+b+c+d)/4;
}
3. تابعی بنویسید که آرایه ای از کارکترها(رشته) را دریافت کند و تعداد حروف بزرگ آن را برگرداند.
int BigCount(char A[])
{int num=0;
for(int i=0; A[i] یا A[i]!=’\0’ یا i<strlen(A);i++)
if (A[i]>=’A’ && A[i]<=’Z’) num++;
return num;
}int Fact(int n)
4. تابعی بنویسید که آرایه ای از اعداد صحیح و تعداد عناصر آرایه را دریافت کند و میانگین اعداد موجود در آرایه را بدهد
float average(int A[],int length)
{float s=0.0;
for(int i=0;i<length;i++)
s+=A[i];
return s/length;
}
void main()
{
int A[5]={45,3,76,11,2};
cout<<average(A,5);
}
5.تابعی بنویسید که رشته و یک کاراکتر را دریافت و تعداد آن کاراکتر درون رشته را برگرداند.
#include <iostream.h>
int f1(int x)
{ int F=1;
for(int i=1;i<=x;i++)
F*=i;
return F;
}
void main()
{ int n;
cin>>n;
cout<<f1(n);
}
6.تابعی بنویسید که عددی را دریافت کند و همه اعداد یک تا عدد ورودی را چاپ کند.
void print(int n)
{
for(int i=1;i<=n;i++)
cout<<i;
}
void main()
{
int num;
cout<<”\nnum?”;
cin>>num;
print(num);
}
7.تابعی بنویسید که سه عدد صحیح را به عنوان ضرایب معادله درجه دودریافت کرده و ریشه های معادله را در صورت وجود چاپ کند.
void Moadeleh(int a,int b,int c)
{
if (a==0 && b==0) return;
int delta=b*b-4*a*c;
if(delta<0) cout<<”\nrisheh nadarad”;
else if(delta==0) cout<<”\n1 risheh darad”<<-b/(2.0*a);
else
{
cout<<”\n2 risheh darad”;
double x1=(-b+sqrt(delta))/(2*a);
double x2=(-b-sqrt(delta))/(2*a);
cout<<”\nx1=”<<x1<<” x2=”<<x2;
}
}
void main()
{
int a,b,c;
cout<<”a? b? c?”;
cin>>a>>b>>c;
Moadeleh(a,b,c);
}
8.تابعی بنویسید که رشته ای دریافت کرده و تمامی حروف بزرگ آن را به حروف کوچک تبدیل کند.
void Change (char s[])
{
for(int i=0;i<strlen(s) ;i++)
if(s[i]>='A' && s[i]<='Z')
s[i]=s[i]+32;
}
void main()
{ char name[30];
gets(name);
Change(name);
cout<<"\nname="<<name;
}
9.تابعی بنویسید که رشته ای را دریافت کند و بالعکس آنرا چاپ کند.
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void reverse(char a[])
{
int j=0;
char b[40];
for (int i=strlen(a)-1;i>=0;i--,j++)
b[j]=a[i] ;
b[j]='\0';
cout<<b;
}
void main()
{
char s1[20];
gets(s1);
reverse(s1);
}
10.تابعی بنویسید که با دریافت عدد n عنصر nام سری فیبوناچی را چاپ کند.
int fibo(int n)
{
if(n==1 || n==2) return 1;
else return fibo(n-1)+fibo(n-2);
}
11.تابعی بنویسید که یک اشاره گر به کاراکتر (آدرس حرف اول یک رشته) را دریافت کرده و تمامی حروف رشته متناظر با آن را یک واحد به سمت جلوحرکت دهد.
void CHANGE(char* p)
{
for(;*p;p++)
(*p)++;
}
void main()
{
char name[30];
cin>>name;
CHANGE(name);
cout<<name;
}
12.تابعی بنویسید که یک اشاره گر به کاراکتر (آدرس خانه اول رشته) را دریافت کرده و در حروف جستجو کرده تعداد ارقام موجود در آن رشته را برگرداند یعنی اگر کاربری عبارت ak3793k9g1 را وارد کند تابع عدد 6 را برگرداند.
int argham(char* p)
{int num=0;
for(;*p;p++)
if(*p>=’0’ && *p<=’9’)
num++;
return num;
}
void main()
{
char s[30];
cin>>s;
cout<<argham(s);//argham(&s[0]);
}
13.تابعی بنویسید که یک اشاره گر به کاراکتر را دریافت کرده و به جای تمامی حروف a موجود در آن حرف s قرار دهد.
void replace(char* p)
{
for(;*p;p++)
if(*p==’a’) *p=’s’;
}
14.تابع فوق را به نحوی تغییر دهید که علاوه بر دریافت اشاره گر به رشته دو حرفی که قرار است جایگزین هم شوند را به عنوان ورودی دریافت کند.
void replace(char* p,char ch1,char ch2)
{
for(;*p!='\0';p++)
if(*p==ch1) *p=ch2;
}
void main()
{ char s[40];
char ch1,ch2;
gets(s);
cin>>ch1>>ch2;
replace(s);
cout<<"\n"<<s;
replace(s,ch1,ch2);
cout<<"\n"<<s;
}
15.تابعی بنویسید که یک اشاره گر به کاراکتر و یک کاراکتر را دریافت کند و تعدادآن حرف درون آن رشته را برگرداند مثلا اگر رشته برابر با abaaa و حرف برابر با a باشد خروجی 4 خواهد بود.
int shomaresh(char* p,char c)
{
int n=0;
for(;*p;p++)
if (*p==c) n++;
return n;
}