Tp hunters cpp
635 subscribers
69 photos
41 videos
7 files
12 links
📌 چنل متمرکز روی زبان ++C به زبان فارسی

آموزش مفهومی همراه با چالش های جذاب و کاربردی

رفع اشکال در گروه
@Tphunterscpp_Group

ارتباط با ادمین‌ها
@h3li0p4us3_moharami
@systemchemist

زیر مجموعه تیم استارتاپی تی‌پی‌هانترز
@tphunters
Download Telegram
Channel created
Channel photo updated
💬 #چالش
نوشتن این سری در سی پلاس پلاس!
🟢کد، سوالات و نظرات خود را برای ما کامنت یا داخل گروه بفرستید!
درود به همه دانشجویان و علاقه مندانی که عضو شدند! لطفا آیدی چنل رو به دیگر دوستانتون بدید عضو شوند که ماهم پرقدرت کارمون رو شروع کنیم!
فعالیت های ما:
-آموزش بهینه سی پلاس پلاس به زبان ساده
-دارای چالش و مثال به همراه کُد و توضیحات
-برگزاری مسابقات کوچک و ساده الگوریتم و سی پلاس پلاس به همراه جوایز نقدی
-حل تمارین و سوالات کنکور ارشد
مارا به دوستان خود معرفی کنید
@tphunterscpp
Tp hunters cpp pinned «درود به همه دانشجویان و علاقه مندانی که عضو شدند! لطفا آیدی چنل رو به دیگر دوستانتون بدید عضو شوند که ماهم پرقدرت کارمون رو شروع کنیم! فعالیت های ما: -آموزش بهینه سی پلاس پلاس به زبان ساده -دارای چالش و مثال به همراه کُد و توضیحات -برگزاری مسابقات کوچک و ساده…»
Tp hunters cpp
💬 #چالش نوشتن این سری در سی پلاس پلاس! 🟢کد، سوالات و نظرات خود را برای ما کامنت یا داخل گروه بفرستید!
🧠 #کد_چالش
#include<iostream>
using namespace std;
double tavan(int a, int b);
int factoriel(int n);
int main(){
int x,y;
double s=0;
int k=1;
cout<<"lotfan adad morede nazar ra vared konid:";
cin>>x;
cout<<"lotfan seri donbale ra vared konid:";
cin>>y;
for(int i=1; i<=y; i=i+2){
s=s+k*tavan(x,i)/factoriel(i);
k=-k;
}
cout<<s<<endl;
}
double tavan(int a, int b){
int t=1;
for(int i=1; i<=b; i++){
t=t*a;
}
return t;
}
int factoriel(int n){
if(n==0){
return 1;
}
if(n==1){
return 1;
}
else{
return n*factoriel(n-1);
}
}
🟢کد و سوالات و نظرات خود را برای ما کامنت یا داخل گروه بفرستید!
Tp hunters cpp
🧠 #کد_چالش #include<iostream> using namespace std; double tavan(int a, int b); int factoriel(int n); int main(){ int x,y; double s=0; int k=1; cout<<"lotfan adad morede nazar ra vared konid:"; cin>>x; cout<<"lotfan seri donbale ra vared konid:";…
💬 #شرح_کد
درود دوستان اولا که پیشاپیش سال نوی همگی مبارک و دوما تشکر از وقتی که میزارید برای حل مثال ها و خوندن آموزش و کُد ها(البته این وقت همش صرف پیشرفت اطلاعاتی و یادگیری شما میشه😉)
خوب بریم سراغ شرح این کد و چالش
دقت کنید نوشتن این سِری مک لورین سینوسی خیلی سادس اما یک سری نکات ریز و جالبی رو بین خودش داره
اون نکات این هستش که باید محاسبه فاکتوریل، توان، و بسط میانی مثبت منفی رو بلد باشید(یک نکته ریز بسیار یاده دیگری هم داخل تقسیم هست که بهتون میگم)
خوب شروع میکنیم‌به شرح کدمون
اول از همه میایم تابع توانمون رو مینیویسیم که بسیار سادس و با یک حلقه فور نوشته شده
پایین تر از اون تابع فاکتوریل هست که به صورت بازگشتی نوشته شده و از اِستَک استفاده میکنه(مفهوم استک رو هم براتون توضیح میدیم) دقت کنید اگر‌نخواید این برنامه رو به صورت تابع بنویسید کدتون داخل تابع اصلی به شدت پیچیده و سخت میشه!
خوب بریم از تابع اصلی بیایم پایین ببینیم چیا داریم
داخل این سِری سینوسی ما یه عدد میخوایم که روی اون محاسبات انجام شه(داخل کد x) و یک term یا درجه سری یا توان سری میخوایم که به اندازه اون عدد محاسبه داشته باشیم(داخل کد y)! خوب حالا میایم داخل حلقه فورمون مقدار i ما باید تا y بره، چرا؟ چون که ما گفتیم درجمون باید تا y ادامه پیدا کنه!
میریم پایین داخل حلقه. همونطور ک میدونید ما باید یه بسطی رو باهم جمع و تفریق کنیم بنابر این یه متغییر به مقدار 0 (اینجا s ) ذخیره میکنیم که هربار مقدار قبلی رو با خودش جمع کنه و تا اخر حلقه اینکار ادامه پیدا میکنه
حالا میرسیم به اون نکته بسط مثبت منفی که گفتم! دقت کنید سِری ما یکی در میون مثبت و منفیه
برای اینکار باید چیکار کنیم؟
خوب اگر سِری ما همش مثبت بود ک خیلی ساده بود همین کدو میزدیم میرفت اما اینطور نیست :(
طبق قانون ضرب هممون میدونیم یک ضربدر هر عددی خودش میشه و منفی یک قرینش!
پس برای اینکار یه k با مقدار یک تعریف کردم که هربار میاد داخل فور به اون فرمولمون ضرب میشه
و پایین تر اومدم نوشتم
K=-k
این ینی چی؟
این ینی این که یک بار k مثبت میشه و یک بار منفی که وقتی داخل فرمولمون بره دقیقا همون مثبت منفی میاد بیرون
و در آخر s رو که مجموع تابعمون بوده چاپ میکنیم
یه چند تا نکته ریز دیگه ای ام ک باید بگم اینه که دقت کنید داخل تابع توانی که تعریف کردم آرگومان اول x شده آرگومان دوم i و تقسیم بر فاکتوریل i شده! چرا؟ خوب عزیز دل من ما به ترتیب از یک داریم میریم تا اون درجمون y دیگه! و در آخر نکته خیلی مهمی ک باید بگم اینه که اگر دقت کنید من خروجی تابع تقسیمم رو double و متغیر s رو هم دابل گذاشتم! چرا؟
چون وقتی تقسیم دوتا عدد صحیح برهم دیگه جوابش صحیح میشه
بنابر این باید یکیشون اعشاری باشه که جوابمونم اعشاری بشه و S چون جواب آخرمونه هم باید دابل تعریف بشه که اون اعشار داخلش ذخیره بشه!
امیدوارم که سودمند بوده باشه و استفاده کرده باشید!
🟢سوالات، کد و نظرات خود را برای ما کامنت کنید یا داخل گروه بفرستید
درود خدمت دوستان عزیز
سال نوی همگی مبارک
اول از همه
امیدوارم که سالی پر سود و پر پول داشته باشید
دوما
سلامتی و شادی کنار خانواده هاتون
تیم تیپی هانترز میخواد توی سال جدید براتون بترکونه ، منتظر ما باشید
پیشاپیش سال نوی همگی مبارک
@tphunterscpp
@tphunters
💬 #چالش
اولین چالش 1400 :)
نوشتن کد این شکل(مثلث) در سی پلاس پلاس!
به صورتی که یک عدد بگیرد و به اندازه آن عدد این مثلث را چاپ کند(در مثال عدد 10 قرار داده شده)
🟥درجه سختی: آسان
🟢کد, سوالات و نظرات خود را برای ما کامنت یا داخل گروه بفرستید!
Tp hunters cpp
💬 #چالش اولین چالش 1400 :) نوشتن کد این شکل(مثلث) در سی پلاس پلاس! به صورتی که یک عدد بگیرد و به اندازه آن عدد این مثلث را چاپ کند(در مثال عدد 10 قرار داده شده) 🟥درجه سختی: آسان 🟢کد, سوالات و نظرات خود را برای ما کامنت یا داخل گروه بفرستید!
🧠 #کد_چالش
#include<iostream>
using namespace std;
int main(){
int x;
cout<<"lotfan serie adad ra vared konid: ";
cin>>x;
for(int i=1; i<=x; i++){
for(int j=1; j<=i; j++){
cout<<"*";
}
cout<<endl;
}
}

🟢کد, سوالات و نظرات خود را برای ما کامنت یا داخل گروه بفرستید
Tp hunters cpp
🧠 #کد_چالش #include<iostream> using namespace std; int main(){ int x; cout<<"lotfan serie adad ra vared konid: "; cin>>x; for(int i=1; i<=x; i++){ for(int j=1; j<=i; j++){ cout<<"*"; } cout<<endl; } } 🟢کد, سوالات و نظرات خود را…
💬 #شرح_کد
خوب مستقیم بریم برای شرح کدمون
اولا که میخواستم با تابع بنویسم که کلا یادم رفت حالا شما سعی کنید برای تمرین بیشتر با تابع بنویسیدش که تسلطتون بره بالا, بریم برای تحلیل
اولا ک ما یه عدد میخوایم که مثل مثال قبل درجه یا terms ما باشه که اینجا با x نشون داده شده و از کاربر میگیریمش این عدد برای اینه که به تعداد اون ضلع اصلی و قاعده و وتر مثلث ما چاپ بشه که توی این مثال مثلا بهش 10 دادیم
خوب این مثال هم دوتا نکته داره که دباره میخوایم وارد مقوله آموزشی بشییم که اون تا نکته اش هم حلقه های تو در تو که خیلی ها مشکل دارند و حلقه های وابسته به هم هست. حلقه های تو در تو که از اسمشون مشخصه یعنی چند تا حلقه داخل هم و حلقه های وابسته به هم که از اسمشون مشخصه ینی کاملا به هم مربوط و وصلن! حالا این وصل ینی چی؟ ینی مثلا فور دومی یا فور پایینی وابسته به بالاییش باشه حالا این وابسته که میگم ینی چی؟
ینی متغییر فور اول توی فور دوم سروکله اش پیدا بشه که اینجا میبینیم i که برای فور اول بوده اومده و شده شرط حلقه فور دوم! میدونم یکم درکش سخته و توضیح این قسمت هم واقعا سخته اما اگر دیدم نامفهوم بود براتون با ویدیو توضیح میدم! بریم سراغ شرح تحلیلی دوتا فورمون
دقت کنید فور اول از 1 شروع میشه تا دنباله سری ما که 10 هست!
به ازای هر عدد از متغییر i حلقه اول, به تعداد i عدد از متغییر فور دوم ستاره(*) چاپ میشه! خیلی سخته چند بار بخونیدش و به شدت شدت شدت شدت شدت این تیکه مهمه چون تو 70 درصد مسعله(از اون عربیا کیبوردم نداره الان هزار تا علامه دهر میان ازمون اشکال املایی میگیرن) هاتون فور های تو در تو و حلقه های وابسته به هم وجود دارن. حالا اون جمله ای ک گفتمو بازش میکنم مثلا وقتی فور اول ما i مقدار 1 میگیره خوب j هم 1 ه و شرط حلقمونم 1 ه پس یک بار ستاره چاپ میشه و یه خط فاصله. حالا متغیر فور اول ما میشه 2 ! پس میریم وارد حلقه دوم میشیم و شرط حلقه دوممونم شده 2 چون وابسته به متغییر i ه! پس اینجا فور دوم 2 بار اجرا میشه و دوتا ستاره میزنه و همین کار ادامه پیدا میکنه تا که حلقه اول ما مقدارش بشه 10 و فور دوممون شرط حلقش میشه 10! پس 10 تا ستاره میزنه و تمام!
امیدوارم که استفاده کرده باشید و براتون مفید بوده باشه! حالا اگر این رو خوب متوجه شدید سعی کنید برای تمرین این مثلث رو برعکسشو بکشید😃
🟢کد, سوالات و نظرات خود را برای ما کامنت یا داخل گروه بفرستید
🧠 #آموزشی #آرایه
{آرایه های یک بعدی}
بخش اول


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

در آرایه یک‌ بعدی که نام دیگر آن لیست است ، با یک اندیس میتوان به عناصر آرایه دست یافت .
آرایه هایه یک بعدی در ++c به صورت زیر تعریف میشوند :

[طول آرایه ] نام آرایه نوع آرایه

نوع آرایه یکی از انواع مهم در ++c است .
و برایه مفهوم کلی آرایه ها باید به طور کامل به متغیر ها تسلط داشته باشید .
نام آرایه ، برایه دسترسی به عناصر آرایه مورد استفاده قرار می گیرد .
طول آرایه با یک عدد مثبت مشخص میشود .
به طور مثال دستور زیر آرایه ای به نام x و به طول ۵ از اعداد صحیح تعریف می کند .
int x [5];
اندیس آرایه ها در ++c از صفر شروع میشود . به این ترتیب ، عناصر آرایه x به صورت زیر بازیابی میشوند و عناصر آرایه در محلهای متوالی حافظه ذخیره می‌شوند .
x = x[0] , x[1] , x[2] , x[3] , x[4]
میزان حافظه ای که به آرایه اختصاص داده میشود ، به طریق زیر محاسبه میشود :

طول آرایه * (طول نوع آرایه) = میزان
حافظه آرایه

به عنوان مثال ، میزان حافظه آرایه x عبارت است از ۱۰ = ۵ * ۲
با فرض اینکه طول int برار با ۲ بایت باشد ، با استفاده از اندیس آرایه می توان به عناصر آرایه مقدار داد. به عنوان مثال ، دستور زیر مقدار ۵ را در دومین عنصر آرایه قرار می دهد ، که در آن ، x نام آرایه ، ۱ اندیس و ۵ مقداری است که در [1]x قرار می گیرد .
x[1] = 5;
🟢لطفا سوالات، نظرات و کد های خود را برای ما کامنت کنید
🧠 #آموزشی #آرایه
{آرایه های یک بعدی}
بخش دوم


مثال (۱)

برنامه ای که معدل ۵ دانشجو را از ورودی خوانده در آرایه قرار می دهد و بیشترین معدل و محل وجود آن را پیدا می کند و به خروجی می برد ؟


توضیخ برایه مثال ==>

حلقه تکرار اول ، معدل دانشجویان را خوانده در آرایه قرار می دهد . برای پیدا کردن بیشترین معدل ، فرض میکنیم که اولین عنصر آرایه ، بزرگترین معدل است . به همین دلیل قبل از حلقه تکرار دوم ، [0]avg در amax و اندیس آن ، یعنی ۰ در p قرار می گیرد . سپس amax را در یک حلقه تکرار با عناصر آرایه مقایسه کرده ، عنصر بزرگتر در amax و اندیس آن در p قرار می دهیم .

متغیر هایه برنامه ==>
n = ثابتی به طول ۵ برای تعیین طول آرایه
ave = آرایه ای به طول n برای نگهداری معدل
amax = بزرگترین معدل
i = شمارنده حلقه تکرار
p = محل وجود بزرگترین عنصر در آرایه

#include <iostream>
using namespace std;
int main(){
const int n = 5;
float ave[n] , amax = 0;
int i , p;
for(i = 0; i < n ; i++){
cout << "Enter average : " ;
cin >> ave[i] ;
}
amax = ave[0];
p = 0;
for(i = 1; i < n ; i++){
if( ave[i] > amax ){
amax = ave[i];
p = i;
}
cout << "\n" << "max = " << amax << "position = " << p + 1 ;
return 0;
}

🟢لطفا سوالات، نظرات و کد های خود را برای ما کامنت کنید