برنامهسازی سی پلاسپلاس
مدرس: فرشید شیرافکن | گواهی: رسمی دوزبانه |
ترم: زمستان ۱۴۰۳ | پیشنیاز: – |
زمان ارائه: دوشنبه ۱۷:۰۰ تا ۲۰:۰۰ | محل برگزاری: کلاس مجازی |
هدف کلی
هدف کلی این درس، آشنایی دانشجویان با مفاهیم پایه و اصول زبان برنامهنویسی ++C و توانمندسازی آنها در طراحی و پیادهسازی برنامههای ساده تا متوسط است. در این دوره، دانشجویان با مباحثی از جمله انواع دادهها، عملگرها، دستورات شرطی و حلقهها آشنا میشوند که این موارد اساس نوشتن کدهای ساختیافته را فراهم میکنند. همچنین با موضوعات پیشرفتهتری چون آرایهها، اشارهگرها، توابع و ساختارها آشنا خواهند شد که آنها را برای سازماندهی دادهها و کنترل بهتر برنامهها یاری میدهد. در پایان نیز به موضوعات شیءگرایی و دادههای عام پرداخته میشود تا دانشجویان بتوانند برنامههای پیچیدهتر و ماژولارتر ایجاد کنند. از اهداف دیگر این درس، تقویت توانایی حل مسئله و آشنایی با پیچیدگی زمانی الگوریتمها است که به دانشجویان کمک میکند تا برنامههایی بهینهتر و کاراتر بنویسند.
سرفصلها
- مفاهیم اولیه (۱ جلسه)
- تاریخچه
- انواع دادهها
- دستورات ورودی و خروجی (cin, cout)
- عملگرها (۲ جلسه)
- عملگرهای ریاضی
- عملگرهای مقایسهای
- عملگرهای منطقی
- عملگرهای انتساب
- عملگرهای بیتی
- تقدم عملگرها
- دستورات شرطی (۱ جلسه)
- دستور if ساده
- دستور if همراه با else
- دستور switch
- دستورات تکرار (حلقهها) (۳ جلسه)
- حلقه for
- حلقه while
- حلقه do-while
- حلقههای تودرتو
- دستورات break, continue
- رشتهها (۱ جلسه)
- آشنایی با رشته
- متدهای کار با رشته مانند
- length
- compare
- substr
- find
- replace
- insert
- erase
- at
- append
- آرایهها (۱ جلسه)
- آرایههای یک بعدی
- آرایههای دو بعدی
- اشارهگر (۱ جلسه)
- معرفی اشارهگر
- اشارهگر به آرایه
- اشارهگر به اشارهگر
- دسترسی به آرایه با اشارهگر
- تابع (۳ جلسه)
- تعریف تابع
- تابعهای بازگشتی
- استراکچر، یونیون و نوع شمارشی (۱ جلسه)
- استراکچر
- استراکچرهای تودرتو
- یونیون (اتحاد)
- نوع شمارشی
- فایل (۲ جلسه)
- ایجاد فایل
- نوشتن در فایل
- خواندن از فایل
- کار با با فایل دودویی و متنی
- مقدمهای بر شیءگرایی (۲ جلسه)
- تعریف کلاس
- سازنده و مخرب
- ارثبری
- دادههای عام (Generics) (۱ جلسه)
- وکتور (بردار)، مپ، مجموعه، صف، پشته و متدهای کار با آنها
- معرفی Iterators, Capacity, Element access, Modifiers
- پیچیدگی زمانی (Time Complexity)
ارزیابی
- تمرینهای برنامهسازی و پروژه: ۱۰ نمره
- آزمون پایانی: ۱۰ نمره
- چالشهای برنامهسازی: ۱ نمره اضافی
منابع
- S. Lippman, J. Lajoie, B. Moo. C++ Primer. 5th Edition, Addison-Wesley Professional, ISBN: 9780133053043.
- B. Stroustrup. The C++ Programming Language. 4th Edition, Addison-Wesley, ISBN: 978-0321563842.
- U. Kirch-Prinz. A Complete Guide to Programming in C++. 1st Edition.