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

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

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

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

زیر مجموعه تیم استارتاپی تی‌پی‌هانترز
@tphunters
Download Telegram
C++ How to Program
Paul Dietel & Harvey Dietel
10th Edition - 2017
@tphunterscpp
دسترسی سریع به ویدئوهای آموزشی
● مینی دوره ساختمان داده
○ قسمت یک
○ قسمت دو
  ○ قسمت سه
  ○ قسمت چهار
  ○ قسمت پنج
خب فکر نمی‌کنم هیچ‌کجای این کانال در مورد تیم تی‌پی هانترز صحبت کرده باشیم.
میخوام یه کم در مورد خودمون و داستان شکل‌گیری این کانال و چند تا از کارهای ناتمامی که انجام دادیم رو بهتون بگم.
در نهایت هم به نحوه ادامه فعالیت کانال می‌پردازم.

استارت کار این کانال سه سال پیش زده شد؛ جاییکه من و محمدصالح و پویا تصمیم گرفتیم نکاتی که توی سوالات و چالش‌ها پیدا می‌کنیم، به اشتراک بذاریم.

بعدها محمد رو تشویق کردیم ویدئوی آموزشی ضبط کنه و بذاره توی کانال، چون از ۱۴ سالگی سی‌پلاس‌پلاس کار میکرد و تجربه‌اش از همه ما بیشتر بود. ضمن اینکه کلام شیوایی هم داشت. خلاصه بیشتر بار تولید محتوا روی دوش محمد بود و از طرفی ما هم سعی می‌کردیم خودمون رو به اون سطح برسونیم و همزمان نکته هم بذاریم.

یه کم که گذشت مشغله‌های درسی و کاری برای هممون زیاد شد و تصمیم گرفتیم که افراد جدیدی رو وارد تیم کنیم. امیررضا و زهرا و حمیدرضا که پا به پای ما پیش اومدند و زحمت کشیدند (مخصوصا امیررضا).
روز به روز کانال رشد می‌کرد و ما هم روحیه گرفتیم که یه حرکت اساسی بزنیم و یه هدیه خفن به ممبرامون بدیم. پس یه پروژه جدید برای خودمون تعریف کردیم؛ پروژه‌ای که تا به حال هیچ حرفی ازش اینجا نزدیم و احتمالا هم نمی‌زنیم ((:
در همین حد بگم که یه سایت بود و حتی دامنه و هاست و همه کارهاش رو انجام دادیم اما نشد دیگه...

به هر حال، اون پروژه ناتموم باقی موند و بعد از اون بود که دیگه تقریبا ذره ذره اعضای تیم جدا شدند و هرکسی درگیر کار و مهاجرت و ... شد که خب طبیعی هم بود. درحال حاضر هر کدوم داریم توی مسیری که انتخاب کردیم، پیش میریم و دیگه به اون روال سابق نمی‌تونیم فعالیت داشته باشیم.

این همه نوشتم تا به اینجا برسم، قراره کانال فعالیتش رو شروع کنه و این سری، هر محتوایی که ارزشمند باشه رو به اشتراک بذاره. نه فقط در مورد زبان سی پلاس پلاس بلکه در مورد ساختمان داده‌ها، الگوریتم‌ها، مهندسی نرم‌افزار و...
منظور اینه که به سی‌پلاس‌پلاس محدود نیست و فراتر میره اما یه چارچوبی هم داره و دیگه مثلا قرار نیست آشپزی هم یاد بدیم ((:
بنابراین هر کسی از شما هم که علاقه‌مند هست، می‌تونه محتواهای ارزشمندش رو با ما به اشتراک بذاره.

برای کسانی که هنوز عضو گروه ما نیستن، بگم که ما توی گروهمون هم فعالیت داریم و یه کامیونیتی از برنامه‌نویسان تشکیل دادیم که به همدیگه کمک می‌کنیم.

در آخر، تشکر ویژه از همه دوستانی که تا الان همراهیمون کردن، دم همتون گرم ❤️ امیدوارم بتونیم دوباره مطالب مفیدی رو در اختیارتون بذاریم⚡️
دوستان به نظرتون راجب کدوم یکی از گزینه های زیر ویدیو بزاریم
Final Results
26%
RegEx
44%
OpenCV
30%
multithreading
Tp hunters cpp
دوستان به نظرتون راجب کدوم یکی از گزینه های زیر ویدیو بزاریم
سلام دوستان👋
تصمیم بر این شد که درباره OpenCV ویدئو رکورد کنیم😃
حالا این ویدئو ها چطوری قراره باشن،
قضیه از این قراره که ما به صورت پروژه محور شروع میکنیم به یاد دادن OpenCV، منتها کسانی هدف این سری از ویدئو ها هستن که با C++ آشنایی داشته باشن😊❤️

حالا در کنار این من سعی میکنم پلی لیستی که قبلا دوست عزیزمون آقای محمدصالح رکورد کرده بودن رو ادامه بدم که اون دسته از عزیزانی که تازه عضو کامیونیتی شدن بتونن خودشونو برسونن😁❤️

هر سوال یا نظری داشتید توی گروه بپرسید جواب میدم❤️
چندتا از دوستان پرسیدن ویدیو ها کی آپلود میشن.😁
از اونجایی که من خوشم نمیاد یه کاری رو ناقص انجام بدم، دارم کامل ویدیو هارو رکورد میکنم و در آخر همشو توی یه پلی لیست یوتیوب میزارم.

یکم صبور باشید ❤️ مرسی
دیروز داشتم روی یه پروژه کار میکردم ک برای انجام دادن یه مرحله نیاز به گرفتن یه لیست آی پی از کاربر بود.
در واقع ما از کاربر یه فایل می‌گرفتیم ک باید شامل تعدادی آی‌پی آدرس برای انجام یه سری فرآیند های تست نفوذ می‌بود.
حالا یه مشکلی که بهش برخوردیم این بود که اگه کاربر توی فایلش چیزی غیر آی‌پی وارد می‌کرد کل برنامه توی مرحله پینگ آیپی fail میشد و کرش میداد.

اینجا بود که Regex وارد کار شد.
امروز میخوام بهتون توضیح بدم که چطور کار میکنه:)
#include <regex>
std::regex ip_ex("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");

این کدیه که استفاده کردیم. حالا بیاید توضیح بدم که چطوری کار میکنه و بخش به بخش بریم جلو👇
توی regex، شروع و پایان یک رشته رو با ^ و $ مشخص میکنیم.

الگوی اصلی:
((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}

این بخش از الگو، مسئول تطبیق سه گروه اولیه که با (.) از هم جدا شدن که در اون {3} گروه قبلی رو ۳ بار تکرار میکنه.

[0-5]: هر عددی بین ۰ تا ۵ رو تطبیق میده و بررسی میکنه. همین بخش از کد، مشابه بخش های دیگس، برای مثال:
2[0-4][0-9] =>
اعداد بین 200 تا 249 رو مطابقت میده. در اون:
[0-4]: هر عددی بین 0 تا 4 را مطابقت می‌دهد.

[0-9]: هر عددی بین 0 تا 9 را مطابقت می‌دهد.


[01]?[0-9][0-9]? =>
این بخش از کد، اعداد بین ۰ تا ۱۹۹ رو مطابقت میده.
[01]?: به‌طور انتخابی با 0 یا 1 مطابقت میکنه (? برای اینه که حضور صفر یا یک رو نشون بده).
به طور کلی، اگه ساده شده بخوایم بگیم:

• شروع: ^
• تطبیق سه گروه با الگوی اصلی: هر گروه میتونه یکی از دسته عدد های زیر باشه:
• 250-255
• 200-249
• 0-199

• تطبیق با نقطه: \.
• تکرار همین فرآیند سه بار: {3}
• تطبیق گروه نهایی: با استفاده از همون الگو مثل قبل، اما بدون نقطه آخر.
• پایان: $


حالا بیاید چند تا نمونه که با این regex امتحان کردم رو نشون بدم:
192.168.0.1: معتبر
255.255.255.255: معتبر
0.0.0.0: معتبر
• 256.256.256.256: نامعتبر (یکی یا بیشتر از گروه ها از ۲۵۵ بیشتر عه)
• 192.168.1: نامعتبر (آدرس IP ناقص عه)
• 127927374: نامعتبر(اصلا آی‌پی آدرس نیست:] )
حالا به کمک این میتونیم همه خطوطی که داخل لیست کاربر نامعتبر هستن و یه آی‌پی آدرس درست نیستن رو از لیست حذف کنیم:)
خلاصه اینکه، RegEx توی پروژه ها میتونه خیلی کمکتون میکنه. از این به بعد سعی میکنیم راجب Regex بیشتر حرف بزنیم و باهم دیگه چیزای جدیدی راجبش یاد بگیریم:)
دفعه بعد، باهم از بیسیک regex و ساختارش بیشتر حرف میزنیم و البته که توی گیت هاب یه پروژه هم میزارم ک بخونید و با اون کار کنید;)
https://regexr.com/85d19

اینم لینکش در صورتی که خواستید بخش به بخشش رو ببینید چطور کار میکنه و آنلاین تست بکنیدش:)
کوئیز بزاریم از RegEx؟ جوابش رو هم بعدش به صورت ویدئو ای در اختیارتون میزاریم
Anonymous Poll
81%
آره
19%
نه
کدوم یکی از این گزینه ها، همه فاصله ها، تب ها یا خط جدید رو تطبیق میده؟
Anonymous Quiz
29%
\b
49%
\s
22%
$
کدوم یکی از رجکس های زیر کلمه Hello یا World رو تطبیق میده؟
Anonymous Quiz
37%
Hello|World
22%
Hello,World
41%
Hello | World