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

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

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

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

زیر مجموعه تیم استارتاپی تی‌پی‌هانترز
@tphunters
Download Telegram
🧠 #کد_چالش
#include <iostream>
using namespace std;
int main()
{
unsigned int number1, number2, min;
cout << "Please enter first number" << endl;
cin >> number1;
cout << "Please enter second number" << endl;
cin >> number2;
min = number1 > number2 ? number2 : number1;
cout << "Result is " << endl ;
for (int i = 1; i <= min; i++)
if(number1 % i == 0 && number2 % i == 0)
cout << i << "\t";
}

🟢لطفا سوالات, نظرات و کدهای خود را برای ما کامنت کنید
Media is too big
VIEW IN TELEGRAM
#سی_پلاس_ساده_و_خوشمزه
قسمت 10: مفهوم آدرس ، اشاره گر ها محتویات و اشاره گر به آرایه
مدرس: محمدصالح حق محمدلو
🟢لطفا سوالات، کد و نظرات خود را برای ما کامنت کنید
آیا موافق قرار دادن نکته های ریز و یک خطی یا دو خطی از cpp در چنل هستید؟
Anonymous Poll
94%
بله
6%
خیر
Media is too big
VIEW IN TELEGRAM
#سی_پلاس_ساده_و_خوشمزه
قسمت 11: مبحث بسیار مهم مدیریت حافظه در c++ , دستور new و delete, حافظه گرفتن از هیپ و آرایه پویا
مدرس: محمدصالح حق محمدلو
🟢لطفا سوالات، کد و تمرینات خود را برای ما کامنت کنید
Media is too big
VIEW IN TELEGRAM
#سی_پلاس_ساده_و_خوشمزه
قسمت 12: بحث مهم توابع, نوع داده ای void و غیر بازگشتی
مدرس: محمدصالح حق محمدلو
🟢لطفا سوالات، کد و نظرات خود را برای ما ارسال کنید
💬 #چالش
با آرایه های پویا برنامه ای بنویسید که تا وقتی کاربر حرفی وارد نکرده، نمره هارا بگیرد و میانگین حساب کند(اگر حرف یا کارکتر وارد شد برنامه متوقف شود)
🟥درجه سختی: آسان
🟢لطفا سوالات، کد و نظرات خود را برای ما کامنت یا داخل گروه ارسال کنید
Tp hunters cpp
💬 #چالش با آرایه های پویا برنامه ای بنویسید که تا وقتی کاربر حرفی وارد نکرده، نمره هارا بگیرد و میانگین حساب کند(اگر حرف یا کارکتر وارد شد برنامه متوقف شود) 🟥درجه سختی: آسان 🟢لطفا سوالات، کد و نظرات خود را برای ما کامنت یا داخل گروه ارسال کنید
🧠 #کد_چالش
🔴 لطفا این چالش رو تمرین کنید که بسیار مهم و کاربردی است


#include <iostream>
using namespace std;
int main(){
int x;
int *p;
int *a = NULL;
int size = 0 , c = 0;
cout << "Enter Number : ";
while(cin >> x){
if(c >= size){
p = new int[size+3];
for(int i =0;i < size;++i)
p[i] = a[i];
delete[]a;
a = p;
size+=3;
}
a[c++] = x;
}
if(c == 0){
cout << "No invalid input !" << endl;
} else {
int sum = 0;
for(int i = 0;i < c;i++)
sum += a[i];
cout << "The average : " << (float)sum / c << endl;
}
delete[]a;
}


🟢لطفا سوالات, نظرات و کدهای خود را برای ما کامنت کنید
دوره آموزشی بعدی ساختمان داده شروع کنیم یا پایگاه؟ پیشنهاد خود بنده ساختمان داده هست
Anonymous Poll
75%
ساختمان
25%
پایگاه
💬 #چالش
برنامه ای بنویسید که یک عدد از ورودی بگیره و اولین توان دو بعد از اون عدد را چاپ کند
مثلا : کاربر بده 10 بهش بده 16 و همانطور که یک مثال هم داخل عکس وارد شده
🟥درجه سختی: متوسط
🟢لطفا کد , سوالات و نظرات خود را برای ما کامنت کنید.
💬 #شرح_کد
توضیحات توسط :s1n4m
خوب، چون سوال، توان ۲ خواسته، میشه از “عمل گر شیفت به چپ باینری” استفاده کرد (>>).
مثلا اگر عدد A رو به تعداد B عدد به چپ شیفت بدیم میشه :
A<<B = A*(2^B)

اینجا اگر A=1 باشه هر چنتا که شیفت بدیم، جواب، توانی از 2 میشه ضربدر 1

بقیه پروسه هم میشه مقایسه اون توان 2 با عدد وارد شده.

**از اونجایی که اساس محاسبات کامپیوتر به صورت باینری هست، این روش سریعتر به جواب میرسه!

*نکته دیگه اینکه از “عملگر شیفت به راست باینری” هم میشه برای تقسیم به توانهای 2 استفاده کرد.
A>>B = A/(2^B)
به همین سادگی😊
🟢لطفا سوالات ، کد و نظرات خود را‌ برای ما کامنت کنید
amoozesh cpp.pptx
18.7 MB
جزوه دست نویس مبانی سی پلاس
به همراه مثال و تمرین و توضیحات آن ها
فایل پاورپوینت
مدرس: محمدصالح حق محمدلو
#چالش
برنامه‌ای بنویسید که عددی را از ورودی گرفته و جمع نهایی آن را، تا وقتی یک رقمی شود، در خروجی نمایش دهد.
(مثلاً 34 را به عنوان ورودی گرفته و 7 را در خروجی نمایش دهد)
🟥 درجه سختی: دشوار
🟢 لطفا کد، سوالات و نظرات خود را برای ما کامنت کنید.
Tp hunters cpp
#چالش برنامه‌ای بنویسید که عددی را از ورودی گرفته و جمع نهایی آن را، تا وقتی یک رقمی شود، در خروجی نمایش دهد. (مثلاً 34 را به عنوان ورودی گرفته و 7 را در خروجی نمایش دهد) 🟥 درجه سختی: دشوار 🟢 لطفا کد، سوالات و نظرات خود را برای ما کامنت کنید.
🧠 #کد_چالش
حل توسط جناب: s1n4m
#include <iostream>

int digitSum(int n) { return (n < 10) ? n : digitSum(n % 10 + n / 10); }

int main() {

int number{};
std::cin >> number;
std::cout << digitSum(number) << "\n";

return 0;
}

🟢لطفا سوالات، کد و نظرات خود را برای ما کامنت کنید
💬 #شرح_کد
توضیحات توسط : s1n4m
تابع digitSum کاری که انجام میده اینه که اگر عدد وارد شده کوچکتر از ۱۰ باشه همونو بر میگردونه ولی اگر بزرگتر باشه به صورت recursive اونقدر تکرار میشه تا حاصل نهایی یک عدد کمتر از ۱۰ بشه
سازوکارش به صورت زیر هستش:
Input: 5237

Procedure:
5237 -> 523 + 7 = 530
530 -> 53 + 0 = 53
53 -> 5+3 = 8

Output: 8
مثال بالا برای عدد ۵۲۳۷ نوشته شده و راحت میشه دنبال کرد.
این کد رو میشه به طور خطی با یک حلقه while هم نوشت
std::cin >> n;
while (n >= 10)
n = n / 10 + n % 10;
std::cout << n << "\n";
به طور کلی روشش اینه که یکان عدد رو جدا کنه و با عدد جدید جمع کنه
🟢لطفا سوالات،‌نظرات و کد های خود را برای ما کامنت کنید.
#نکته
در ریاضیات گسسته باقی مانده همنهشتی یا همان(mod) بر عدد 9 به ما مجموع ارقام را میدهد مثال =>
17 % 9
برابر میشه با 8 که مجموع ارقام 1 و 7 هست
از این نکته میتونید تو برخی سوالات خاص در برنامه نویسی استفاده کنید(مثل سوال قبل).
🟢لطفا سوالات، کد و نظرات خود را برای ما کامنت کنید.
#نکته
آرگومان هایی با مقدار پیشفرض باید از سمت راست تابع مقدار دهی شوند در غیر این طورت برنامه دارای خطا خواهد بود.
نمونه کد‌ اشتباه=>
Void draw(int a=0, int b);
نمونه کد درست=>
Void draw(int a, int b=0);
🟢لطفا سوالات، کد و نظرات خود رابرای ما کامنت کنید.
💬 #چالش

🟥 نکته : این سوال بیشتر جنبه آموزش داره تا چالشی پس لطفا دقت کنید

برنامه ای بنویسید که تعدادی عدد از کاربر دریافت کرده و به صورت
سورت شده عدد هارو چاپ کند

🟥 نکات مهم برای نوشتن این برنامه :
1- حتما برای لیست عدد ها باید از وکتور استفاده کنید
2- برای تعریف وکتور لطفا از تابع typedef برای راحتی کار استفاده کنید
3- عدد های ورودی تعداد مشخص ندارد و باید کاربر مشخص کند چندتا عدد میخواهد وارد کند

🟥درجه سختی: آسان
🟢لطفا سوالات, کد و نظرات خود را برای ما کامنت یا داخل گروه ارسال کنید
Tp hunters cpp
💬 #چالش 🟥 نکته : این سوال بیشتر جنبه آموزش داره تا چالشی پس لطفا دقت کنید برنامه ای بنویسید که تعدادی عدد از کاربر دریافت کرده و به صورت سورت شده عدد هارو چاپ کند 🟥 نکات مهم برای نوشتن این برنامه : 1- حتما برای لیست عدد ها باید از وکتور استفاده کنید…
🧠 #کد_چالش
🔴 لطفا این چالش رو تمرین کنید که بسیار مهم و کاربردی است

#include <iostream>
#include <vector>
using namespace std;
typedef vector<int> Number;
void sort(Number& sort_number){
int hold;
for(int r = 0;r < sort_number.size() - 1;r++){
for(int j = 0; j < sort_number.size() - 1;j++){
if(sort_number[j] > sort_number[j + 1]){
hold = sort_number[j];
sort_number[j] = sort_number[j + 1];
sort_number[j + 1] = hold;
}
}
}
}
Number input(int num){
cout << endl << endl;
Number number;
for(int i = 0;i < num;i++){
int tmp;
cout << "Enter number " << i + 1 << " : ";
cin >> tmp;
number.push_back(tmp);
}
return number;
}
void print(Number num){
for (int i=0; i <num.size(); i++) {
cout<<num[i]<<" ";

}
cout<<endl;
}
int main(){
int number;
cout << "Enter number : ";
cin >> number;
Number input_sort = input(number);
print(input_sort);
sort(input_sort);
print(input_sort);

}

🟢لطفا سوالات, نظرات و کدهای خود را برای ما کامنت کنید
💬 #چالش کد داده شده چه مشکلی دارد؟

_برنامه ای بنویسید که یک عدد صحیح از ورودی دریافت کند و هر رقم را ب تعداد آن رقم چاپ کند

_ورودی نمونه: 703250
_خروجی مورد نظر سوال:
7: 7777777
0:
3: 333
2: 22
5: 55555
0:

_خروجی بدست آمده:
7: 410
0: 410
3: 563
2: 663
5: 928
0: 928

(راهنمایی: int x= (int)character - 48 برای تبدیل string به int بکار میرود)
🔴درجه سختی: متوسط
🟢لطفا سوالات نظرات و کد های خود را برای ما کامنت کنید.