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

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

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


مدرس : حمیدرضا غلامی بروجنی
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
#نکته
حلقه for برای تکرار یک عمل که به یک شمارنده نیاز دارد ، مورد استفاده قرار میگیرد

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

#ارسال #تمرین
لطفا فایل cpp یا عکس کد نوشته خود را به آی دی زیر ارسال کنید
@hrgh74

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

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

موفق باشید
#مثال بالا را بررسی کنید
آیا می توان این مثال را به صورت if ... else بازنویسی کرد؟
کدام یک آسان تر می باشد؟
با سلام
عذرخواهی بابت تاخیر در ارسال مطالب لطفا علاقه‌مندان به آی دی @hrgh74 اعلام کنید که در کدام نرم افزار پیام رسان دیگر میتوانند مطالب را دریافت کنند
شی گرایی در زبان سی پلاس پلاس

شما حتما با نوع داده int آشنا هستید این نوع داده تنها عدد صحیح را ذخیره میکند و اگر عدد اعشاری در آن قرار دهید تنها قسمت صحیح آن را نگه میدارد

اما اگر بخواهید عدد مختلط را ذخیره کنید هیچ نوع داده ای وجود ندارد که آن را ذخیره کند

پس نیاز است نوع داده ای برای عدد مختلط که به صورت زیر می باشند ایجاد کرد
A + Bi
تا بتوان هر دو قسمت عدد را ذخیره کند

از این بابت نیاز است از شی گرایی استفاده کرد

مثال زیر را بررسی کنید

class Rectangle {
int width, height;
public:
void set_values (int,int);
int area (void);

} ;

این شی گرایی با نام Rectangle می تواند مقدار طول و عرض یک مستطیل را نگه داری کند.
یعنی هر متغیر از شی Rectangle ایجاد کنید میتواند مشخصات یک مستطیل را ذخیره کند و در قسمت های بعدی خواهید دید که میتوان عملیات ها نیز برای این کار نیز اضافه کرد

برای ایجاد متغیر از طریق زیر استفاده میکنیم
Rectangle a;
a.set_values(10,15);

تابع set_values بعدا توضیح داده خواهد شد

الان در متغیر a شما مشخصات یک مستطیل به طول 10 , 15 دارید و برای دریافت مساحت این مستطیل کافیست عبارت زیر را اجرا کنید
cout<<a.area();
و دیگر نیازی نیست بدانید طول و عرض را مجددا استفاده کنید یا فرمول ان را داخل کد بنویسید

تابع area بعدا توضیح داده خواهد شد
اعضای کلاس
هر کلاس در زبان سی پلاس پلاس دارای اعضایی هستند که میتواند آن عضو متغیر یا تابع باشد
از لحاظ دسترسی به اعضای کلاس دو بخش وجود دارد :
1- اعضای خصوصی private
2- اعضای عمومی public

به طور پیش فرض اعضای کلاس خصوصی هستند
اما برای ایجاد عضو عمومی باید قبل از تعریف اعضا عبارت
public :
به مثال قبلی توجه کنید
می نویسیم

تابع set_values در مثال قبلی چون برای مقدار گذاری مورد استفاده قرار میگیرد باید به صورت عمومی در اختیار قرار بگیرد اما متغیر های طول و عرض نمیتوانند عمومی باشند و باید به صورت خصوصی تعریف شوند

تابع به صورت زیر می باشد

void Rectangle::set_values(int a, int b){
width = a;
height = b;
}

تابع area برای مساحت می باشد
تابع به صورت زیر تعریف می شود
int Rectangle::area(){
return width*height;
}
C++ program آموزش pinned «با سلام عذرخواهی بابت تاخیر در ارسال مطالب لطفا علاقه‌مندان به آی دی @hrgh74 اعلام کنید که در کدام نرم افزار پیام رسان دیگر میتوانند مطالب را دریافت کنند»
نمونه از تعریف #کلاس
و ایجاد #شی از کلاس تعریف شده
مثال بالا متد های عمومی #public کلاس Test را صدا زده و اجرا می کند
مثال بالا را اجرا کنید و خروجی آن را به سلیقه خود تغییر دهید و برای ما در پیام رسان های مختلف ارسال کنید
در پیام رسان سروش هم می توانید ما را #دنبال کنید
http://sapp.ir/cppprg
به دوستان خود ما را #معرفی کنید
قسمت ۲۷
ایجاد تابع سازنده در کلاس
تابع سازنده :‌ تابعی که هنگامی ایجاد یک شی از کلاس به صورت خودکار و بدون نیاز به فراخوانی اجرا می گردد

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

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

به مثال زیر توجه کنید #تابعـسازنده
C++ program آموزش
#تابعـسازنده
توضیحات #تکمیلی
در مثال #تابعـسازنده کلاسی با نام Area ایجاد کرده ایم که دارای عضوی به نام تابع سازنده است
این تابع عمومی تعریف می شود
در زمان ایجاد شی از کلاس Area به صورت خودکار صدا زده می شود
برای مقدار گذاری اولیه در این مثال مورد استفاده قرار گرفته شده است
نام این عضو همنام کلاس می باشد و در مثال بالا عبارت زیر تابع سازنده است
public:
// Constructor with no arguments
Area(): length(5), breadth(2) { }
توجه کنید که درصورتی که بعد از نام تابع در زبان سی پلاس پلاس : قرار دهید و نام متغیر هایی را با اضافه کردن پرانتز و مقدار مناسب در داخل پرانتز قرار دهید ، عمل مقدار دهی اولیه را انجام داده اید
در صورت نیاز این مبحث در ادامه بیشتر توضیح داده خواهد شد

در زمان ایجاد شی از کلاس منظور عبارت
Area A1,A2;
تابع سازنده دو بار برای شی های ایجاد شده صدا زده شده است
هر گونه تغییرات و یا مقدار گذاری تنها در شی مورد نظر اعمال می شود و هیچ کدام از شی ها تاثیری بر مقادیر شی دیگر ندارند
اکنون در شی A1 شما مقادیر اولیه ۵و۲ را دارید که با اجرای مثال بالا خروجی مقدار ۱۰ را از هر دو شی خواهید داشت
#مثال از تابع سازنده با مقدار ورودی
// Source Code to demonstrate the working of overloaded constructors
#include <iostream>
using namespace std;

class Area
{
private:
int length;
int breadth;

public:
// Constructor with no arguments
Area(): length(5), breadth(2) { }

// Constructor with two arguments
Area(int l, int b): length(l), breadth(b){ }

void GetLength()
{
cout << "Enter length and breadth respectively: ";
cin >> length >> breadth;
}

int AreaCalculation() { return length * breadth; }

void DisplayArea(int temp)
{
cout << "Area: " << temp << endl;
}
};

int main()
{
Area A1, A2(2, 1);
int temp;

cout << "Default Area when no argument is passed." << endl;
temp = A1.AreaCalculation();
A1.DisplayArea(temp);

cout << "Area when (2,1) is passed as argument." << endl;
temp = A2.AreaCalculation();
A2.DisplayArea(temp);

return 0;
}

در مثال بالا مقدار اولیه های شی Area را می توانید از کاربر دریافت کنید و یا به صورت دلخواه تنظیم کنید

#نظر_سنجی
کد های مثال ها را به چه صورت در کانال قرار دهیم ؟
۱- متنی
۲- عکس
ارسال پاسخ به @hrgh74
فهرست مطالب کانال
برنامه نویسی سی پلاس پلاس

۱-مقدمات
https://t.me/cpprg/3

۲-انواع متغیر ها و #نوع_داده
https://t.me/cpprg/4

۳-استفاده و نمایش متغیر ها
https://t.me/cpprg/5

۴-تعریف ثابت ها
https://t.me/cpprg/7

۵-عملگر ها
https://t.me/cpprg/10

۶-استاندار های کد نویسی
https://t.me/cpprg/15

۷-مطالب تکمیلی در مورد
*- #آرایه #دو_بعدی
https://t.me/cpprg/136
*- #رشته
https://t.me/cpprg/159

۸-کاراکتر ها
https://t.me/cpprg/23

۹- عبارت های کنترلی while , if , else
https://t.me/cpprg/25

۱۰- عبارت های کنترلی while , if , else (ادامه)
https://t.me/cpprg/29

۱۱- عبارت های مقایسه ای
https://t.me/cpprg/31

۱۲- معرفی و ایجاد آرایه
https://t.me/cpprg/38

۱۳- معرفی عبارت کنترلی switch
https://t.me/cpprg/60

۱۴- عبارت کنترلی goto
https://t.me/cpprg/67

۱۵- معرفی تابع و انواع تابع
https://t.me/cpprg/73

۱۶- تعریف تابع به صورت از پیش تعریف شده
https://t.me/cpprg/80

۱۷- ایجاد تابع توسط برنامه نویس
https://t.me/cpprg/78


۱۸- انواع تابع
https://t.me/cpprg/92


۱۹- ایجاد overload یک تابع
https://t.me/cpprg/100

۲۰- مقدار اولیه در ورودی تابع
https://t.me/cpprg/105

۲۱- توابع بازگشتی
https://t.me/cpprg/111

۲۲- تعریف ساختار و ایجاد آن
https://t.me/cpprg/117

۲۳-ارسال ساختار به عنوان ورودی تابع
https://t.me/cpprg/121

۲۴-نوع داده شمارش شونده enum
https://t.me/cpprg/126

۲۵- معرفی اشاره گر
https://t.me/cpprg/165

۲۶-شی گرایی (کلاس برنامه نویسی)
https://t.me/cpprg/179

۲۷- تعریف و ایجاد تابع سازنده در کلاس
https://t.me/cpprg/186
لطفا با اشتراک فهرست مطالب دیگران را نیز به کانال آموزش رایگان سی پلاس پلاس دعوت کنید
🌺🌸🌼🌷🌹
#نکته
دانش، بيش از آن است که بتوان بر آن احاطه يافت؛ پس از هر دانشي بهترين آن را برگيريد
#اهمیت_مطالعه
ضایعه دردناک جان باختن پرسنل نفتکش سانچی را به ملت شریف ایران و خانواده های داغدار آن عزیزان تسلیت عرض نموده و از خداوند متعال برای درگذشتگان علو درجات و برای بازماندگان صبر و اجر مسئلت می نماییم.
قسمت ۲۸
#سربازگذاری_عملیات
در زمان تعریف کلاس گفته شد که شما با ایجاد یک کلاس در حقیقت یک نوع داده جدید را در برنامه خود ایجاد می کنید که مانند نوع داده های تعریف شده در زبان سی پلاس پلاس int , float , ... قابل استفاده است

شما برای جمع دو عدد از نوع داده int می نویسید
int a,b,c;
a=1;
b=2;
c=a+b;

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

به مثال زیر توجه کنید
#include <iostream>
using namespace std;

class Complex
{
private:
float real;
float imag;
public:
Complex(): real(0), imag(0){ }
void input()
{
cout << "Enter real and imaginary parts respectively: ";
cin >> real;
cin >> imag;
}

// Operator overloading
Complex operator - (Complex c2)
{
Complex temp;
temp.real = real - c2.real;
temp.imag = imag - c2.imag;

return temp;
}

void output()
{
if(imag < 0)
‍` cout « "Output Complex number: "« real « imag « "i";`
else
cout << "Output Complex number: " << real << "+" << imag << "i";
}
};

int main()
{
Complex c1, c2, result;

cout<<"Enter first complex number:\n";
c1.input();

cout<<"Enter second complex number:\n";
c2.input();

// In case of operator overloading of binary operators in C++ programming,
// the object on right hand side of operator is always assumed as argument by compiler.
result = c1 - c2;
result.output();

return 0;
}
#تکمیلی
مثال بالا نوع داده عدد مختلط را تعریف کرده و سپس برای آن عملیات تفریق را سربارگذاری کرده است

برای این عملیات به صورت زیر عملیات انجام می شود

// Operator overloading
Complex operator - (Complex c2)
{
Complex temp;
temp.real = real - c2.real;
temp.imag = imag - c2.imag;

return temp;
}

#نکته
متغیر temp برای این منظور استفاده میشود که هنگامی که دو شی را از هم تفریق می کنید به عنوان خروجی برای شی ای که پشت مساوی قرار دارد خروجی همنوع آن ارسال شود و به مقادیری که مربوط به شی هایی می شود که با هم تفریق می شوند اثری وارد نشود وهمان مقادیر قبلی باشند
با تشکر و سپاس فراوان از همراهی با کانال آموزشی ما لطفا درصد رضایت خود را اعلام فرمایید (حمیدرضا @hrgh74 )
anonymous poll

90-100 – 47
👍👍👍👍👍👍👍 71%

70-90 – 9
👍 14%

40-70 – 5
👍 8%

0-40 – 5
👍 8%

👥 66 people voted so far.