#55🔹تمرین 1 (ساده) :
برنامه ای بنویسید که با استفاده از حلقه for پنج عدد را از کاربر دریافت کند و با دستور شرطی if تعداد اعداد فرد و زوج را بدست آورد و در خروجی نمایش دهد.
✍نکته: این برنامه باید همواره پس از نمایش تعداد زوج و فرد بتواند سری دیگری از اعداد را دریافت کند یعنی دارای حلقه بی نهایت باشد.
@Learncpp
#57🔹تمرین 2 (متوسط) :
برنامه ای بنویسید که با استفاده از دو حلقه تو در تو شکل زیر را نمایش دهد:
*
**
***
****
*****
@Learncpp
#59🔹تمرین 3 (متوسط) :
برنامه ای بنویسید که یک عددی بین 1 تا 20 رو از کاربر بگیره و به ازای عدد وارد شده عدد رومی رو چاپ کنه یعنی
1 = I
2 = II
3 = III
4 = IV
5 = V
.
.
.
برای دیدن اعداد بیشتر به سایت زیر مراجعه کنین
http://literacy.kent.edu/Minigrants/Cinci/romanchart.htm
@Learncpp
#60🔹برنامه ای بنویسید که یک عددی بین 1 تا 20 رو از کاربر بگیره و به ازای عدد وارد شده عدد رومی رو چاپ کند؟
#include <iostream>using namespace std;int main(){ int n; cin >> n; switch (n) { case 1: cout << "I"; break; case 2: cout << "II"; break; case 3: cout << "III"; break; case 4: cout << "IV"; break; case 5: cout << "V"; break; case 6: cout << "VI"; break; case 7: cout << "VII"; break; case 8: cout << "VIII"; break; case 9: cout << "IX"; break; case 10: cout << "X"; break; case 11: cout << "XI"; break; case 12: cout << "XII"; break; case 13: cout << "XIII"; break; case 14: cout << "XIV"; break; case 15: cout << "XV"; break; case 16: cout << "XVI"; break; case 17: cout << "XVII"; break; case 18: cout << "XVIII"; break; case 19: cout << "XIX"; break; case 20: cout << "XX"; break; default: cout << "عددی بین 1 تا 20 وارد کنین"; break; } return 0;}@Learncpp
#61🔹برنامه ای بنویسید که یک عددی بین 1 تا 20 رو از کاربر بگیره و به ازای عدد وارد شده عدد رومی رو چاپ کند؟
#include <iostream>using namespace std;int main(){ int n = 0; cin >> n; if (n == 20) { cout << "XX"; } else if (n == 19) { cout << "XIX"; } else if (n == 18) { cout << "XVIII"; } else if (n == 17) { cout << "XVII"; } else if (n == 16) { cout << "XVI"; } else if (n == 15) { cout << "XV"; } else if (n == 14) { cout << "XIV"; } else if (n == 13) { cout << "XIII"; } else if (n == 12) { cout << "XII"; } else if (n == 11) { cout << "XI"; } else if (n == 10) { cout << "X"; } else if (n == 9) { cout << "IX"; } else if (n == 8) { cout << "VIII"; } else if (n == 7) { cout << "VII"; } else if (n == 6) { cout << "VI"; } else if (n == 5) { cout << "V"; } else if (n == 4) { cout << "IV"; } else if (n == 3) { cout << "III"; } else if (n == 2) { cout << "II"; } else { cout << ""; } return 0;}@Learncpp
#58جواب تمرین
57#include <iostream>using namespace std;int main(){ int i, j; for (i = 0; i < 5; i++) { for (j = 0; j <= i; j++) cout << "*"; cout << endl; } cout << endl; return 0;}@Learncpp
#56جواب تمرین
55#include <iostream>using namespace std;int main(){ int n = 5, num = 0, zoj = 0, fard = 0; while (n) { cout << "enter number : "; cin >> num; if (num % 2 == 0) { //cout << "zoj"; zoj++; } else { //cout << "fard"; fard++; } n--; } cout << "\nzoj is : " << zoj << "\tfard is : " << fard; cout << endl; return 0;}@Learncpp
سایت رسمی محک برای کمک به بیماران سرطانی
http://www.mahak-charity.org/main/index.php/fa/how-do-i-help-my-mahak/i-want-to-help/types-of-individual-assistance
سامانه کمک رسانی به صورت آنلاین
*733*23540#
http://www.mahak-charity.org/main/index.php/fa/how-do-i-help-my-mahak/i-want-to-help/types-of-individual-assistance
سامانه کمک رسانی به صورت آنلاین
*733*23540#
#68{ }
استفاده از کروشه جلوی تعریف یک متغیر باعث مقدار دادن اولیه به متغیر میشود و از خطاهای runtime جلوگیری میکند .
int sum { };
cout « sum; // sum = 0 ;
for (int i{}; i < 10; i++) {cout << i << " ";
}
@Learncpp
#69#decltype
#auto
🔺توابع decltype و auto از c++11 به بعد مورد استفاده قرار میگیرن
🔹از decltype زمانی استفاده میشود که نوع خروجی یه حاصل را نمیدونیم چیه مثلا :
int x;
float y;
cin >> x >> y;
int sum = ( x + y );
cout << sum;
چون sum از نوع int هست پس جواب int میشه در صورتی که باید جواب اعشاری بهمون میداد ... برای اینکه جواب درست بهمون بده میایم از decltype استفاده میکنیم تا خودش اتوماتیک نوع خروجی رو تشخیص بده یعنی باید بنویسیم
int x;
float y;
cin >> x >> y;
decltype ( x + y ) sum = ( x + y );
cout << sum;
الان خروجی sum اعشاری هست
🔹از تابع decltype و auto تابع زمانی استفاده میشن که نوع خروجی رو از قبل نمیدونیم چیه مثلا :
int calc(int x,float y)
{return (x + y);
}
در اینجا return باید مقدار float رو به خروجی بده ولی ما int رو چون از قبل به عنوان خروجی دادیم int قرار میگیره پس برای حل این مشکل میایم از auto و decltype درون template ها استفاده میکنیم :
template <class T1,class T2>
auto calc(T1 x,T2 y) -> decltype(x + y)
{decltype(x + y) sum = 0;
for (int i = 0; i < 10; i++)
{sum += x + y;
}
return sum;
}
int main()
{cout << calc(2,3.3);
cin.get();
return 0;
}
@Learncpp
#70#class
#struct
#call #by #value
#call #by #reference
✅ فراخوانی struct ها به صورت call by value انجام میشه که نیاز به & هست ولی فراخوانی class ها به صورت call by reference صورت میگیره یعنی :
#include "stdafx.h"
#include <iostream>
using namespace std;
🔹تعریف struct که برای مقدار دادن به داده هاش باید & توی تابع set_data گذاشت :
struct d
{int x;
int y;
int z;
void set_data(struct d &w, int x, int y, int z);
void show(struct d a);
};
void set_data(struct d &w, int x, int y, int z)
{w.x = x;
w.y = y;
w.z = z;
}
void show(struct d a)
{cout << a.x << " " << a.y << " " << a.z;
}
int main()
{ d a{};set_data(a, 2, 3, 4);
show(a);
cout << endl;
system("pause");return 0;
}
🔹تعریف class که برای مقدار دادن به داده هاش نیازی به استفاده از & نیست :
class test
{public:
void set(int a, int b, int c)
{x = a;
y = b;
z = c;
}
void show()
{cout << x << " " << y << " " << z;
}
private:
int x, y, z;
};
int main()
{test t;
t.set(10, 20, 30);
t.show();
cout << endl;
system("pause");return 0;
}
@Learncpp
#71#class
#constructor #سازنده
✅ فراخوانی یک سازنده درون سازنده دیگر با استفاده از کاراکتر (دو نقطه : ) در کلاس ها
🔺نکته : برای فراخونی به این روش باید تعداد پارامترهای سازنده ها یکسان نباشند.
🔹فرض کنیم یک کلاسی به نام func داریم که دو سازنده با پارامترهای متفاوت داریم مثلا :
class func
{public:
func()
{cout << "@Learn";
}
func(char *str)
{cout << str;
}
};
حالا اگه بخوایم یکی از سازنده هارو تو سازنده دیگه صدا بزنیم یا استفاده کنیم باید از : استفاده کنیم یعنی
func(char *str) :func()
به این صورت کار میکنه که ابتدا تمامیه دستورات func() اجرا میشه بعد دستورات سازنده func(char *str) .
🔹مثال :
#include "stdafx.h"
#include <iostream>
using namespace std;
class func
{public:
func()
{cout << "@Learn";
}
func(char *str) :func()
{cout << str;
}
};
int main()
{ func("cpp"); //@Learncppcout << endl;
system("pause");return 0;
}
@Learncpp
#72#reference #class #function #مرجع
#ampersand(&) #Rvalue #Lvalue #توابع
✅ مفهوم قرار دادن & قبل از اسم توابع در ++C
🔺برای درک موضوع ابتدا Rvalue (راست مقدار) و Lvalue (چپ مقدار) رو توضیح میدم , به بیان ساده به عبارتی "چپ مقدار" میگویند که در سمت چپ یک عبارت قرار دارد و میتواند مقداری را بگیرد و به عبارتی "راست مقدار" میگویند که در سمت راست یک عبارت قرار دارد مثلا :
Lvalue = Rvalue
x = y;
🔹متغییر x "چپ مقدار" و متغییر y "راست مقدار" هست.
🔹نکته : عبارات یا متغییر هایی را "چپ مقدار" میگوییم که قادر به دریافت داده هستن مثل متغییر x و تمام ثوابت رشته ای ,کاراکتری و عددی ,و متغییر ها مثل y "راست مقدار" هستند.
🔺خب حالا مرجع رو میگم , مرجع ها شبیه اشاره گرها هستن , یک مرجع به صورت زیر تعریف میشه :
int y;
cin >> y;
int &x = y; // در هنگام تعریف مرجع باید مقدار رو بهش بدیم
cout << x;
خب ما یه مرجعی به نام x تعریف کردیم که برابر متغییر y قرارش دادیم.
🔹دقت بکنیم وقتی یه متغییر رو از نوع مرجع تعریف میکنیم به صورت "چپ مقدار" میشود یعنی مقدار میگیره ( هم میتونه "راست مقدار" باشه هم "چپ مقدار").
🔺با توضیحاتی که بالا دادم متوجه شدیم که وقتی از & قبل یه متغییر میذاریم متغییر "چپ مقدار" میشه پس وقتی علامت & رو قبل اسم تابع قرار میدیم یعنی داریم به تابع میفهمونیم که این تابع "چپ مقدار" هست یعنی میتونیم توی این تابع با علامت = (انتساب دادن) بهش مقدار بدیم یعنی :
#include <iostream>
#include <string.h>
using namespace std;
int &func(int x, int y)
{return y;
}
int &func1(int x)
{return x;
}
int main()
{int x = 0;
x = func(2, 4) = 10;
cout << x; // x=10
cout << endl;
return 0;
}
x = func(2, 4) = 10;این خط مقدار 10 رو به تابع func میده ( مقدار قبلی تابع هرچی هست پاک میشه ) و مقداری که به تابع func داده شد با = توی x هم ریخته میشه.
همچنین میتونیم با استفاده از تکنیک & خروجی توابع دیگر رو تو محاسبات استفاده کرد و مقدار حاصل رو توی تابع func بریزیم :
int main()
{int x = 0;
x = func(2, 4) = func(1, 2) + func1(2);
cout << x; // x = 4
cout << endl;
system("pause");return 0;
}
@Learncpp