C++ program آموزش
53 subscribers
54 photos
1 video
7 files
42 links
آموزش c++

تلگرام @hrgh74
سروش http://sapp.ir/hrh74

آموزش پی اچ پی :@phpprogram
آموزش جاوا اسکریپت : @javascriptlear
گروه رفع اشکال و حل تمرین


مدرس : حمیدرضا غلامی بروجنی
Download Telegram
قسمت ۱۸
انواع تابع

به طور کلی توابع به چهار حالت تقسیم بندی می شوند که ایجاد تابع به حالت تابع بستگی دارد
۱- تابعی که ورودی ندارد و خروجی نیز ندارد
۲- تابعی که ورودی ندارد اما خروجی دارد
۳- تابعی که ورودی دارد اما خروجی ندارد
۴- تابعی که هم ورودی دارد و هم خروجی دارد

برای نشان دادن اول بودن یک عدد چهار مثال زیر با چهار حالت مختلف ارائه شده است
لطفا مثال ها را بررسی کنید و تفاوت های هر حالت را بررسی و به آی دی @hrgh74 ارسال نمایید

مثال ها در ادامه همین مطلب
C++ program آموزش
قسمت ۱۸ انواع تابع به طور کلی توابع به چهار حالت تقسیم بندی می شوند که ایجاد تابع به حالت تابع بستگی دارد ۱- تابعی که ورودی ندارد و خروجی نیز ندارد ۲- تابعی که ورودی ندارد اما خروجی دارد ۳- تابعی که ورودی دارد اما خروجی ندارد ۴- تابعی که هم ورودی دارد…
مثال اول با حالت اول

# include <iostream>
using namespace std;

void prime();

int main()
{
// No argument is passed to prime()
prime();
return 0;
}


// Return type of function is void because value is not returned.
void prime()
{

int num, i, flag = 0;

cout << "Enter a positive integer enter to check: ";
cin >> num;

for(i = 2; i <= num/2; ++i)
{
if(num % i == 0)
{
flag = 1;
break;
}
}

if (flag == 1)
{
cout << num << " is not a prime number.";
}
else
{
cout << num << " is a prime number.";
}
}
C++ program آموزش
قسمت ۱۸ انواع تابع به طور کلی توابع به چهار حالت تقسیم بندی می شوند که ایجاد تابع به حالت تابع بستگی دارد ۱- تابعی که ورودی ندارد و خروجی نیز ندارد ۲- تابعی که ورودی ندارد اما خروجی دارد ۳- تابعی که ورودی دارد اما خروجی ندارد ۴- تابعی که هم ورودی دارد…
مثال دوم با حالت دوم

#include <iostream>
using namespace std;

int prime();

int main()
{
int num, i, flag = 0;

// No argument is passed to prime()
num = prime();
for (i = 2; i <= num/2; ++i)
{
if (num%i == 0)
{
flag = 1;
break;
}
}

if (flag == 1)
{
cout<<num<<" is not a prime number.";
}
else
{
cout<<num<<" is a prime number.";
}
return 0;
}

// Return type of function is int
int prime()
{
int n;

printf("Enter a positive integer to check: ");
cin >> n;

return n;
}
C++ program آموزش
قسمت ۱۸ انواع تابع به طور کلی توابع به چهار حالت تقسیم بندی می شوند که ایجاد تابع به حالت تابع بستگی دارد ۱- تابعی که ورودی ندارد و خروجی نیز ندارد ۲- تابعی که ورودی ندارد اما خروجی دارد ۳- تابعی که ورودی دارد اما خروجی ندارد ۴- تابعی که هم ورودی دارد…
مثال سوم با حالت سوم
#include <iostream>
using namespace std;

void prime(int n);

int main()
{
int num;
cout << "Enter a positive integer to check: ";
cin >> num;

// Argument num is passed to the function prime()
prime(num);
return 0;
}

// There is no return value to calling function. Hence, return type of function is void. */
void prime(int n)
{
int i, flag = 0;
for (i = 2; i <= n/2; ++i)
{
if (n%i == 0)
{
flag = 1;
break;
}
}

if (flag == 1)
{
cout << n << " is not a prime number.";
}
else {
cout << n << " is a prime number.";
}
}
C++ program آموزش
قسمت ۱۸ انواع تابع به طور کلی توابع به چهار حالت تقسیم بندی می شوند که ایجاد تابع به حالت تابع بستگی دارد ۱- تابعی که ورودی ندارد و خروجی نیز ندارد ۲- تابعی که ورودی ندارد اما خروجی دارد ۳- تابعی که ورودی دارد اما خروجی ندارد ۴- تابعی که هم ورودی دارد…
مثال چهارم با حالت چهارم

#include <iostream>
using namespace std;

int prime(int n);

int main()
{
int num, flag = 0;
cout << "Enter positive integer to check: ";
cin >> num;

// Argument num is passed to check() function
flag = prime(num);

if(flag == 1)
cout << num << " is not a prime number.";
else
cout<< num << " is a prime number.";
return 0;
}

/* This function returns integer value. */
int prime(int n)
{
int i;
for(i = 2; i <= n/2; ++i)
{
if(n % i == 0)
return 1;
}

return 0;
}
انالله وانا الیه راجعون
⚫️ درگذشت عزیزان هم وطن دراثر وقوع زلزله شامگاه یکشنبه(۹۶/۸/۲۱)را تسلیت عرض نموده وبرای بازماندگان صبروشکیبایی مسئلت مینماییم.
Channel name was changed to «آموزش رایگان c++»
قسمت ۱۹

ایجاد overload یک تابع

همانطور که در عکس بالا مشاهده می کنید overload به این معنی است که شما چند تابع با نام های یکسان اما ورودی و یا خروجی متفاوت داشته باشید .
این عمل در بسیاری از موارد می تواند کمک خوبی برای ایجاد برنامه های کاربر محور باشد

به مثال های زیر توجه کنید

int test() { }
int test(int a) { }
float test(double a) { }
int test(int a, double b) { }

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

پس نتیجه اینکه اگر تابع های زیر را استفاده کنید دچار خطا خواهید شد

// Error code
int test(int a) { }
double test(int b){ }

چون هر دو تابع ورودی شان یک عدد صحیح است و تنها خروجی هایشان متفاوت است و این عمل overload نیست .

مثال زیر یک نمونه از استفاده از overload می باشد

#include <iostream>
using namespace std;

void display(int);
void display(float);
void display(int, float);

int main() {

int a = 5;
float b = 5.5;

display(a);
display(b);
display(a, b);

return 0;
}

void display(int var) {
cout << "Integer number: " << var << endl;
}

void display(float var) {
cout << "Float number: " << var << endl;
}

void display(int var1, float var2) {
cout << "Integer number: " << var1;
cout << " and float number:" << var2;
}
مثالی کاربردی از overload
#تکمیلی قسمت ۱۹
لطفا اگر شما هم مثالی در نظر دارید ارسال کنید تا به اسم شما در کانال ثبت شود
Channel name was changed to «C++ program آموزش»
مثالی از کاربرد overloading

// Program to compute absolute value
// Works both for integer and float

#include <iostream>
using namespace std;

int absolute(int);
float absolute(float);

int main() {
int a = -5;
float b = 5.5;

cout << "Absolute value of " << a << " = " << absolute(a) << endl;
cout << "Absolute value of " << b << " = " << absolute(b);
return 0;
}

int absolute(int var) {
if (var < 0)
var = -var;
return var;
}

float absolute(float var){
if (var < 0.0)
var = -var;
return var;
}
C++ program آموزش
https://cdn.programiz.com/sites/tutorial2program/files/cpp-default-arguments.jpg
قسمت ۲۰

مقدار اولیه

مقدار اولیه زمانی استفاده می شود که شما می خواهید در صورتی که کاربر مقداری را در تابع مورد نظر وارد نکرد خود تابع مقدار اولیه را در نظر بگیرد و به وسیله ی آن عملیات های خود را انجام دهد

برای مثال عمل رادیکال دارای مقدار اولیه فرجه ۲ می باشد ولی حال آنکه این مقدار می تواند به ۳ یا عدد صحیح بالاتری نیز تغییر یابد اما چون بیشتر مقدار ۲ در این تابع مورد استفاده است می توان آن را به صورت مقدار اولیه قرار داد تا در صورتی که عددی به عنوان زیر رادیکال ارسال شد و فرجه مشخص نگردید به صورت خودکار جذر عدد یعنی فرجه ۲ آن محاسبه شود


نحوه ایجاد مقدار اولیه در شکل پایین نمایش داده شده است
مثالی از مقدار اولیه
خروجی مثال را در سیستم خود بررسی کنید و مثال های بیشتری را برای ما ارسال کنید

// C++ Program to demonstrate working of default argument

#include <iostream>
using namespace std;

void display(char = '*', int = 1);

int main()
{
cout << "No argument passed:\n";
display();

cout << "\nFirst argument passed:\n";
display('#');

cout << "\nBoth argument passed:\n";
display('$', 5);

return 0;
}

void display(char c, int n)
{
for(int i = 1; i <= n; ++i)
{
cout << c;
}
cout << endl;
}
Forwarded from DailyTradePluse
This media is not supported in your browser
VIEW IN TELEGRAM
نسل آینده تکنولوژی؛ کامپیوترهایی که در جیب جا می‌شوند!
🖥 @It_Universee
C++ program آموزش
https://cdn.programiz.com/sites/tutorial2program/files/how-recursion-works-c%2B%2B.jpg
قسمت ۲۱
توابع بازگشتی

فرض کنید نیاز به تابعی دارید که باید بر روی مقدار ورودی ، عملی را تا زمان مشخصی و نه نامحدود ، تکرار کند .
به نظر شما چگونه باید این کار را انجام دهیم

در ساده ترین حالت باید از کد زیر استفاده کنید:

int a,b;
while(true){
b=func(a);
if(b<100)
a=b;
else
break;
}

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

مثلا اگر بخواهید فاکتوریل یک عدد کمتز از ۳۰ را محاسبه کنید با استفاده از توابع بازگشتی می توانید از روش زیر استفاده کنید

// Factorial of n = 1*2*3*...*n

#include <iostream>
using namespace std;

int factorial(int);

int main()
{
int n;
cout<<"Enter a number to find factorial: ";
cin >> n;
cout << "Factorial of " << n <<" = " << factorial(n);
return 0;
}

int factorial(int n)
{
if (n > 1)
{
return n*factorial(n-1);
}
else
{
return 1;
}
}


دقت کنید که در این حالت شرط در داخل خود تابع قرار دارد و با رسیدن مقدار ورودی به عدد ۱ تابع شروع به بازگشت مقدار نهایی خود به فراخوانی های قبلی می کنید و به این ترتیب مقدار های ضرب شده از ۱ تا عدد مورد نظر به سمت اولین فراخوانی ارسال می شوند
در نهایت شما مقدار فاکتوریل عدد مورد نظر را در خروجی تابع در تابع main خواهید داشت

مثال های بیشتر در ادامه ارسال خواهد شد