لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش ساختارهای داده و OOP با C++: CS104، CS105 Masterclass
Data Structures and OOP with C++ : CS104, CS105 Masterclass
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
با استفاده از C++ بر هنر OOP و ساختارهای داده مسلط شوید. اکنون در Masterclass CS104، C105 ثبت نام کنید و مهارت های کدنویسی خود را تقویت کنید! اصول ساختارهای داده و برنامه نویسی شی گرا در C++ را کشف کنید. درک جامعی از نحو و معنای زبان به دست آورید. اصول الگوریتم ها و نحوه به کارگیری آنها در C++ را بیاموزید. اصول انتزاع داده ها، وراثت و چندشکلی را درک کنید، پایه ای قوی برای توسعه برنامه های کاربردی نرم افزاری کارآمد و قابل اعتماد ایجاد کنید. تفاوتهای بین ساختارهای داده مختلف، مانند آرایهها، لیستهای پیوندی، پشتهها و صفها را بررسی کنید. درک درستی از مدیریت حافظه در C++ ایجاد کنید. الگوریتم هایی بسازید که امکان پردازش کارآمد داده ها را فراهم می کند. درک مفهوم بازگشت و نحوه پیاده سازی آن در C++. آموزش نوشتن و پیاده سازی کلاس ها در C++. به اصول کپسوله سازی و پنهان کردن داده ها مسلط شوید. قدرت وراثت و کاربرد آن در OOP را درک کنید. ایجاد و پیاده سازی انواع داده های انتزاعی برنامه هایی را توسعه دهید که از ساختارهای داده پیشرفته مانند درختان و نمودارها استفاده می کنند. درک عمیقی از اشاره گرها و تخصیص حافظه پویا در C++ به دست آورید. یاد بگیرید که چگونه از قالب ها برای ساخت کلاس ها و توابع عمومی استفاده کنید. اصول بارگذاری اپراتور در ++C را بدانید. بر اصول مدیریت استثنا در C++ مسلط شوید. اصول ورودی و خروجی فایل در C++ را بررسی کنید. برنامه هایی بسازید که از الگوریتم های پیشرفته ای مانند مرتب سازی و جستجو استفاده می کنند. برنامه هایی ایجاد کنید که از ساختارهای داده و الگوریتم ها برای حل مسائل دنیای واقعی استفاده می کنند. بیاموزید که چگونه برنامه های C++ را به طور موثر آزمایش و اشکال زدایی کنید. اصول مهندسی نرم افزار و نحوه اعمال آنها در ++C را بدانید. برنامه هایی را توسعه دهید که از طریق یک رابط کاربری گرافیکی با کاربران تعامل داشته باشند. اصول برنامه نویسی چند رشته ای در سی پلاس پلاس را بدانید. برای نقش C++ در توسعه نرم افزار مدرن قدردانی کنید. یاد بگیرید که چگونه نرم افزاری بسازید که کارآمد، مقیاس پذیر و قابل نگهداری باشد. آشنایی با اصول طراحی نرم افزار و نحوه به کارگیری آنها در C++. مهارت های کار با پایگاه های کد بزرگ و پیچیده را توسعه دهید. یاد بگیرید که چگونه نرم افزاری بسازید که هم کاربردی و هم زیبا باشد. پیش نیازها: برنامه نویسی C++ بسیار بیسیک
به Masterclass CS104، C105 ما خوش آمدید! در این کلاس، با استفاده از زبان برنامه نویسی محبوب، C++، به دنیای ساختارهای داده و برنامه نویسی شی گرا (OOP) می پردازیم.
ساختارهای داده بخش اساسی علم کامپیوتر هستند، زیرا روشی سازمان یافته برای ذخیره و دستکاری داده ها ارائه می دهند. با استفاده از ساختارهای داده، میتوانیم به طور کارآمدتر به دادهها دسترسی داشته باشیم و آنها را اصلاح کنیم، که برای توسعه نرمافزار کارآمد و مؤثر ضروری است.
در کلاس خود، ساختارهای داده مختلفی از جمله آرایه ها، لیست های پیوندی، پشته ها، صف ها و درختان را پوشش خواهیم داد. ما چگونگی پیاده سازی این ساختارها را در C++ و نحوه انجام عملیات اساسی مانند درج، حذف و جستجو را بررسی خواهیم کرد. علاوه بر این، مزایا و معایب هر ساختار داده و زمان استفاده از آنها در شرایط مختلف را مورد بحث قرار خواهیم داد.
لیست های پیوندی، برای مثال، یک ساختار داده محبوب هستند که برای ذخیره و مدیریت داده ها در یک دنباله استفاده می شود. لیست های پیوندی کارآمد هستند زیرا می توانند به صورت پویا تخصیص داده شوند و از نظر اندازه انعطاف پذیر هستند. با این حال، پیاده سازی و استفاده از آنها می تواند پیچیده تر از سایر ساختارهای داده مانند آرایه ها باشد.
پشته ها و صف ها نیز ساختارهای داده مهمی هستند که معمولاً در توسعه نرم افزار استفاده می شوند. پشته ها از اصل "آخرین ورود، اولین خروج" (LIFO) استفاده می کنند، در حالی که صف ها از اصل "اولین ورود، اولین خروج" (FIFO) استفاده می کنند. این ساختارهای داده برای مدیریت داده ها در یک ترتیب خاص مفید هستند و ما نحوه پیاده سازی و استفاده از آنها را در کلاس خود خواهیم آموخت.
درخت ها یکی دیگر از ساختارهای داده محبوب هستند که در کلاس خود پوشش خواهیم داد. درختان برای سازماندهی داده ها در یک ساختار سلسله مراتبی مفید هستند و اغلب در برنامه های علوم کامپیوتر مانند سیستم های فایل، پایگاه های داده و موتورهای جستجو استفاده می شوند.
علاوه بر ساختارهای داده، اصول OOP را در C++ نیز پوشش خواهیم داد. برنامه نویسی شی گرا بر روی کپسوله سازی، وراثت و چندشکلی تمرکز دارد. با OOP، میتوانیم کد قابل استفاده مجدد ایجاد کنیم، سازماندهی و ساختار کد را بهبود بخشیم، و نگهداری کد را قابل مدیریتتر کنیم.
در کلاس خود، ما اصول اولیه OOP را در C++ شامل کلاسها، اشیاء، سازندهها و تخریبکنندهها پوشش میدهیم. همچنین در مورد وراثت، چندشکلی، و کپسولهسازی و نحوه استفاده از آنها برای بهبود عملکرد برنامههایمان بحث خواهیم کرد.
C++ یک زبان برنامه نویسی قدرتمند است که به دلیل سرعت و کارایی خود شناخته شده است. به طور گسترده ای در توسعه سیستم عامل ها، سیستم های تعبیه شده و برنامه های بازی استفاده می شود. با C++، میتوانیم از ویژگیهای قدرتمند آن برای ایجاد برنامههای پیچیده با کارایی بالا استفاده کنیم.
در کلاس خود، نحو C++ و نحوه استفاده از آن برای پیاده سازی ساختارهای داده و مفاهیم OOP را بررسی خواهیم کرد. همچنین یاد خواهیم گرفت که چگونه کد خود را برای عملکرد و کارایی بهینه کنیم.
برای تکمیل آن، کلاس Master CS104، C105 ما، پایه ای محکم در ساختارهای داده و برنامه نویسی شی گرا با C++ در اختیار شما قرار می دهد. شما یاد خواهید گرفت که چگونه ساختارهای داده را پیاده سازی کنید، از مفاهیم OOP برای بهبود کد خود استفاده کنید و از ویژگی های قدرتمند C++ استفاده کنید.
سرفصل ها و درس ها
D4 - مقدمه ای بر کلاس های CPP
D4 - Introduction to CPP Classes
کلاس های داده POD
POD Data Classes
اتحادیه ها در CPP
Unions in CPP
روش ها در ساختار
Methods in Struct
کنترل های دسترسی در CPP
Access Controls in CPP
کلاس ها و اعضای کلاس اولیه
Classes and Initializing Class Member
سازندگان
Constructors
ویرانگرها در CPP
Destructors in CPP
Initializers در CPP
Initializers in CPP
مقدمه ای بر اشاره گر
Introduction to Pointers
اشاره گرها در CPP
Pointers in CPP
C++ از شروع تا اشاره گر
C++ Beginning to Pointers
اپراتور Dereference در CPP
Dereference Operator in CPP
اشاره گرها و آرایه ها
Pointers and Arrays
nullptr
nullptr
محاسبات اشاره گر در CPP
Pointer arithmetic in CPP
آرایه های خارج از محدوده و نشانگرهای Deallocating
Arrays out of bounds and Deallocating Pointers
Consts و Casts با اشاره گر
Consts and Casts with Pointers
تخصیص حافظه
Allocating Memory
تخصیص حافظه به صورت آرایه
Allocating memory as arrays
طول عمر حافظه
Lifetime of Memory
STL
STL
STL، بردارها و آرایه ها
STL, Vectors and Arrays
مراجع در CPP
References in CPP
منابع
References
پروژه نمونه با مراجع
Example Project With References
مثال کد با AUTO، TUPLE و FOR LOOP
Code Example with AUTO, TUPLE and FOR LOOP
محدوده مبتنی بر حلقه
Range Based for Loop
اشاره گرها
Pointers
اشاره گرها در عمل
Pointers in Practice
نکات در عمل - قسمت 2
Pointers in Practice - Part 2
نکات در عمل - قسمت 3
Pointers in Practice - Part 3
نکات در عمل - قسمت 4
Pointers in Practice - Part 4
کارکرد
Functions
مقدمه ای بر توابع
Introduction to Functions
توابع - قسمت 1
Functions - Part 1
توابع - قسمت 2
Functions - Part 2
توابع - قسمت 3
Functions - Part 3
توابع - قسمت 4
Functions - Part 4
توابع - قسمت 5
Functions - Part 5
توابع - قسمت 6
Functions - Part 6
توابع - قسمت 7
Functions - Part 7
ساختارهای داده در CPP
Data Structures in CPP
مقدمه ای بر برنامه نویسی پایه CPP
Introduction to Basic CPP Programming
ایجاد مولد کارت تصادفی با استفاده از Enum و rand
Creating Random Card Generator Using Enum and rand
توسعه تابع اصلی و استفاده از static_cast
Developing main Function and using static_cast
ساختارهای داده - ADT
Data Structures - ADT
مقدمه ای بر ADT
Introduction to ADT
ایجاد کلاس ADT و استفاده از Constructors
Creating ADT Class and using Constructors
روشهای مجازی و حذف از کلاس
Virtual Methods and Overriding from Class
کنترل عملیات کپی با ADT
Controlling Copy Operations with ADT
ساختارهای داده - الگوها
Data Structures - Templates
شروع با قالب ها
Starting with Templates
الگوهای کلاس در CPP
Class Templates in CPP
ساختارهای داده - STL و تحلیل مجانبی
Data Structures - STL and Asymptotic Analysis
مقدمه ای بر STL
Introduction to STL
تجزیه و تحلیل الگوریتم
Algorithm Analysis
تحلیل سناریو
Scenario Analysis
در حال توسعه Main
Developing Main
روش فاکتوریل
Factorial Method
اشاره گرها و آرایه ها
Pointers and Arrays
درک آرایه ها
Understanding Arrays
دستکاری آرایه ها
Manipulating Arrays
شروع با اشاره گرهای آرایه
Starting with Array Pointers
افزایش اشاره گر در مقابل نمایه سازی آرایه
Pointer Increment vs Array Indexing
لیست ADT
ADT List
ایجاد لیست ADT
Creating List ADT
توسعه روش های دریافت و درج
Developing Get and Insert Methods
توسعه روشهای جستجو و حذف
Developing Search and Remove Methods
تست لیست ADT
Testing ADT List
گره ها در ساختارهای داده
Nodes in Data Structures
مثال گره و زنجیر
Node and Chaining Example
ایجاد و زنجیر کردن گره ها با انواع داده های مختلف
Creating and Chaining nodes with Different data types
ایجاد LinkedList سفارشی
Creating Custom LinkedList
ایجاد لیست پیوندی سفارشی
Creating Custom Linked List
دریافت روش
Get Method
توسعه روشهای InsertHead، InsertTail و Insert
Developing InsertHead, InsertTail and Insert Methods
دانشمند کامپیوتر، موسس OCSA، Progammer هدف OCSA در سه سال آینده، آموزش برنامهنویسی به ۲ میلیون نفر است. همچنین دوره های خود OCSA که همه در اینجا در دسترس هستند، ما با بهترین معلمان کار می کنیم و دوره هایی را برای آموزش مهارت های ضروری مورد نیاز توسعه دهندگان در همه سطوح ایجاد می کنیم. یکی دیگر از فلسفه های مهم این است که دوره های ما توسط متخصصان واقعی تدریس می شود. توسعه دهندگان نرم افزار، محققین پزشکی قانونی دیجیتال با تجربه واقعی و قابل توجه در صنعت، که معلمان بزرگی نیز هستند. همه مربیان ما با تجربه هستند، توسعه دهندگان نرم افزار! تیم ما در حال حاضر مشغول ایجاد دوره های جدید است. چه مبتدی باشید، چه برای اولین بار به دنبال یادگیری نحوه برنامهنویسی هستید، یا مهارتهای موجود خود را تقویت کنید، یا زبانها، چارچوبها یا مهارتهای جدید را یاد بگیرید، آکادمی تمامی منابع را برای یادگیری از مربیان حرفهای در اختیار شما قرار داده است!
نمایش نظرات