Syntax | سینتکس – Telegram
ساختمان داده (Data Structure) چیست؟

توضیحات کمی زیاده ولی بنظرم جذابه و برای همه افراد این کانال پیشنهاد میشه حتما تا آخرشو بخونن

تا الان هممون حداقل یک مفهوم سطحی از data structure رو یاد گرفتیم.
توی ویکی پدیا و اکثر وب سایت ها همون توضیح کوتاه رو میده.

اما بیاید یکم عمیق تر شیم

دیتا (Data) چیه؟
خب Structure که مشخصه یک آرایش، ساختار، سازمان دهی کردن هستش.

برای درک دیتا بهتره کمی درباره ساز و کار کامپیوتر بدونیم:
قلب تپنده کامپیوتر CPU هستش
سی پی یو یک چیزی داره به اسم ALU کار اصلی ایشون در واقع انجام محاسبه ها و انجام عملیات های منطقی روی داده ها توی پردازنده اصلی یا همون CPU هستش.

داده ها از کجا میان ؟
داده ها از main memory یا همون رم سیستم میان.
تا اونجا که خودتون در جریانید کامپیوتر ها باینری هستن پس اینطور در نظر بگیرید ما کلی صفر و یک توی رم داریم.

نکته ای که باید توجه کنید اینه کامپیوتر ذاتا فقط عدد میفهمه

اگه شما با هر زبان برنامه نویسی کار کرده باشید یک چیزی وجود داره به اسم انواع داده (data types)

هر زبان برنامه نویسی یک سری انواع داده اصلی رو میده.

اولین نوع داده ای که میشه اشاره کرد Boolean هستش. اینطوریه که اگه صفر بود false هستش و اگه غیر صفر بود true مثلا یک باشه true هستش
کامپیوتر هم اینو خیلی راحت میفهمه، بیسیک ترین نوع داده هستش که با یه بیت هم میشه نمایشش داد

انواع اعداد رو داریم مثلا int، short, long

اعداد اعشاری رو داریم مثل float و double

#data_structure

@khat_academy
👍82
خب تا اینجا هر نوع تایپی که اشاره کردیم عدد بود و همچنین کل چیزی که CPU میفهمه اعداد هستش

ولی خب سوال اینجاست. ما که فقط اعداد نداریم مثلا چیزی به اسم رشته (String) رو داریم. پس چطور باهاش کار می کنیم؟

رشته چطوری ساخته میشه؟
رشته به این شکل ساخته میشه که میایم بر اساس هر حرف عددی رو تعریف میکنیم. اگه یادتون باشه چیزی به اسم جدول ascii codes داریم که توی این جدول مشخص شده مثلا A میشه 65
پس چیزی که توی حافظه برای رشته نوشتیم در واقع عدد هستش

اگه همه چی عدد هستش. چجوری داده های پیچیده تر رو میسازیم؟

اینجا از Composition استفاده میکنیم. یعنی میایم چند تا نوع داده رو با هم ترکیب میکنیم یک نوع داده پیچیده تر رو میسازیم. مثلا دانش آموز رو میسازیم
دانش آموز خودش مثلا از

                    name: str
Student      code: int
                    age: int

تشکیل شده.

#data_structure

@khat_academy
👍101
یک روش دیگه هم برای مدیریت و ساخت انواع جدید به اسم aggregation هستش. یعنی یک سری از آبجکت ها، اشیا رو کنار هم قرار بدم تا یک چیز بزرگ تری رو بسازم

مثلا تعدادی دانشجو رو کنار هم قرار میدیم و کلاس رو میسازیم

این اشیا بصورت مستقل خودشون هویت دارن و شخصیت مستقل دارن

وقتی کنار هم میذاریمشون بهش میگیم aggregation

حالا وقتی که میایم آبجکت ها رو کنار هم قرار میدیم، جاییه که Data Structure به دادمون میرسه.

یعنی وقتی میخوایم چند تا آبجکت رو کنار هم قرار بدیم، باید از یک ساختار داده، از یک ساختمان داده استفاده کنیم تا این آبجکت ها رو کنار هم بچینیم.
خب اینهمه توضیح  دادیم تا رسیدیم به اینجا که ساختمان داده چیه و چه کاربردی داره

یکی از اساسی ترین نوع ساختمان داده ای که داریم آرایه (array) هستش که کاملا بیسیک هستش و توی همه ی زبان ها وجود داره.

امیدوارم قابل فهم توضیح داده باشم

#data_structure

@khat_academy
👍14
ربات هوش مصنوعی بینگ توی گروه خط اضافه شد 🔥

برای سوال پرسیدن اول پیامتون bing بنویسید و ادامه سوال

لینک گروه:
https://news.1rj.ru/str/khat_academy_group

#ai

@khat_academy
🎉6👍1🔥1
♨️ زبان پایتون تو چه زمینه هایی کاربرد داره ؟!


#python

@khat_academy
🔥8👍1👎1
نام کدام متغیر بر اساس دستور العمل های PEP 8 بهترین است؟
Anonymous Quiz
30%
finger_num
43%
number_of_fingers
11%
number-of-Finger
16%
numFinger
👍3
آموزش ساختمان داده بطور مختصر‌ (برای قسمت عملیش با پایتون انجامش دادم اما توضیحات بصورت جامع هستش *فارسی)

https://github.com/alireza-fa/data-structures-python

اول راه ساختمان داده هستیم و تو روز های آینده کامل میشه.

اگه امکانش هست star بدید ❤️

#data_structure

@khat_academy
👏4🔥3👍1🥰1
اگه این زبان ها رو دارید یاد میگیرید
این سایت ها کمکتون میکنه

#کاربردی

@khat_academy
👀7👍21
Media is too big
VIEW IN TELEGRAM
سلام دوستان بنده رادین پرهامی، ادمین جدید هستم.


🌹 امیدوارم در کنار هم بتونیم مسیر پیشرفت رو هم‌وارتر و سطح مهارت و حرفه کشور رو استوارتر بسازیم. ♥️



#Deep_Python

عملگرهای مقایسه‌ای
🚧 تمرکز: بررسی‌ و مقایسه باینری.


@khat_academy
🔥104👍1
وقتی خودت و پارنترت برنامه نویسید😂😂


#fun

@khat_academy
🤣22😁7👎1
راهنمای سریع نمادگذاری Big O برای محاسبه پیچیدگی محاسباتی (Time complexity)

خواندن

#مقاله

@khat_academy
👍4
Media is too big
VIEW IN TELEGRAM
#Deep_Python

تعریف شرط در پایتون
🚧 تمرکز: بررسی‌ حدودی مفاهیم پایه تا پیشرفته شرط در پایتون.

♥️ Source: GitHub


@khat_academy
🔥103
دوستان کسی هست که با لایبری pulp اشنایی داشته باشه اگ بود لطفا به پیوی بیاید چند تا سوال دارم در مورد حل جداول سیمپلکس
https://news.1rj.ru/str/Devilsfer
Media is too big
VIEW IN TELEGRAM
آشنایی با ساختار داده ی لیست های پایتون

تو این ویدیو با Array و Dynamic array آشنا میشید که لیست های پایتون dynamic array هستند.

توضیحات تکمیلی:
در لیست پایتون ما بجای ذخیره دیتا میایم اشاره گر (pointer) رو ذخیره میکنیم که به فضای دیتا اشاره میکنه.

توی لیست پایتون insert, remove کردن o(n) هستش.
اما خب با توجه به ایندکس میتونه متفاوت باشه.
برای مثال remove کردن آخر لیست o(1) هستش.
در آخر ویدیو اشاره شد که در linked list ها insert, add, remove همیشه o(1) هستند که بعدا در مورد پیاده سازیش و تفاوتش با Array list صحبت میکنیم.

همچنین برای آشنایی بیشتر با ساختمان داده میتونید این ریپو دنبال کنید:
https://github.com/alireza-fa/data-structures-python

همچنین اگه نیاز میدونید ساختار داده رو از صفر براتون توضیح بدم بگید شاید انجامش دادم

#data_structure #python

@khat_academy
🔥7
میخوای شبکه عصبی رو یاد بگیری؟

playground.tensorflow.org/
زمین‌بازی تنسورفلو به صورت تصویری و جذاب نحوه‌ی یادگیری شبکه‌ی عصبی رو به شما نشون می‌ده. می‌تونید با انواع داده‌ها و مقادیر بازی کنید تا راجع به کارکرد شبکه‌های عصبی بیشتر بدونید.

این پروژه با استفاده از سری مقالات colah و با کتابخانه‌ی d3.js که برای تصویرسازی در جاوا اسکریپت مورد استفاده قرار می‌گیره تحت اجازه‌نامه‌ی آپاچی ۲.۰ نوشته و منتشر شده و می‌تونید کدمنبعش رو در زیر ببینید و بخونید:
https://github.com/tensorflow/playground

اینجام سر بزنید بدون فیلتر و فارسی قرار دادن:
http://nnplayground.chistio.ir

[Amiria]

#machine_learning

@khat_academy
🔥6
رشد F (n) بر اساس n در توابع مختلف:

ایده آل ترین حالت اینه الگوریتم ما constant باشه و o(1) ولی خب در عمل اکثر مواقع امکان پذیر نیست.

اگه constant نشد. لگاریتمی و log n هم خیلی عالیه و اونم نزدیک constant هستش.

ولی اغلب اوقات log n و o(1) برای آرایه ای که n تا ورودی میگیره رخ نمیده

اگه واقع بین باشیم، معمولا الگوریتم های Linear همون o(n) و N-Log-N خیلی بدرد بخور و قابل تحمل هستند.

یه پله بالا تر یعنی Quadratic هم یه جاهایی قابل تحمله

اما از o(n^^2) به بعد برای ورودی های بزرگ غیر قابل تحمل میشه

پس اگه الگوریتمی که طراحی میکنید برای یک مسئله ای که ورودیش n هستش تا حد معقول o(n) و یا N-Log-N باشه.

این نکته رو هم در نظر بگیرید بعضی مسائل اصلا براش پیچیدگی های زیر نمایی پیدا نشده

#algorithm

@khat_academy
👍8
⚪️#لغات_برنامه_نویسی
      (پارت اول)

البته اگر طی فرایند یادگیری اینارو متوجه بشید قطعا نتیجه بهتری میگیرید✔️


#کاربردی

@khat_academy
👍12🔥1👏1
مسئله

ما یک آرایه مرتب شده داریم.
میخوایم عددی رو چک کنیم که داخل آرایه ما وجود داره یا نه.

این مسئله رو با بهینه ترین حالت ممکن حلش کنید.

(حل مسئله همراه توضیح که روشتون از نظر زمانی و فضایی چطوره)

#algorithm

@khat_academy
👍41
یادگیری زبان های برنامه نویسی از آسون ترین تا سخت ترین

عکس باحالیه

زبان scratch که اصلا تو هواست

قله ها پایتون و جاوااشکریپت هستن و هر چی میریم پایین تر یادگیریش سخت تر میشه
اون زیر زیرا دیگه رسما فسیله

#fun

@khat_academy
😁10👍3👎1🤨1
🔥 برگه تقلب برنامه نویسا

🌀 با استفاده از وب‌سایت Over Api میتونید تماااام دستورات برنامه نویسی رو همیشه و همه جا همراه خودت داشته باشی😍

همه زبان هارو شامل میشه و با انتخاب زبان مدنظرتون سایت به شما تموم استایل ها ، استرینگ ها ، آرایه ها و همه چیز هایی که مثلا تو شبکه جهانی پایتون نیاز داری دستوراتش رو برات گذاشته تا هر موقع اراده کردی بهشون دسترسی پیدا کنی 👌

اینم سایتش :
https://overapi.com/#google_vignette

#کاربردی

@khat_academy
👍12👎1