کتاب برنامه نویسی به زبان C جعفر نژاد قمی
در این بخش کتاب برنامه نویسی به زبان C جعفر نژاد قمی را به همراه حل المسائل آن در قالب فایل PDF در 22 فصل و 644 صفحه برای علاقه مندانی که می خواهند برنامه نویسی به زبان C را به خوبی یاد بگیرند آماده کرده ایم. کد های نوشته شده در کتاب برنامه نویسی به زبان C را می توانید در محیط های برنامه نویسی همچون نرم افزار Dev c++ ، نرم افزار Code Blocks و نرم افزار C-Free نوشته و برنامه های خود را با آنها اجرا کنید.
معرفی زبان برنامه نویسی C
زبان برنامه نویسی C یک زبان سطح میانه بوده و همزمان خصوصیات زبان های برنامه نویسی سطح بالا و زبان برنامه نویسی اسمبلی (سطح پایین) را با هم در خود جای داده است و کدهای نوشته شده در آن قابل حمل می باشد. کامپایلر زبان C به دستورات حروف کوچک و بزرگ حساس می باشد. امروزه طراحی سیستم عامل های پیشرفه و کنترل دستگاه ها بوسیله زبان برنامه نویسی C کد نویسی می شود. زبان C به دلیل قدرتمند بودن مدت ها است که به عنوان یک زبان برنامه نویسی پایه در نظر گرفته می شود و در دانشگاه ها نیز اساتید زبان C را به عنوان مرجع آموزش خودشان قرار می دهند. اگر زبان C را به خوبی یاد بگیرید در یاد گیری زبان برنامه نویسی C++ مشکل چندانی نخواهید داشت و به راحتی این زبان را نیز یاد خواهید گرفت.
سرفصل های کتاب برنامه نویسی به زبان C
مقدمات زبان C
- انواع دادها
- متغییرها
- تعریف متغییرها
- مقدار دادن به متغیرها
- تعریف ثوابت
- عملگردها
- عملگرهای محاسباتی
- عبارات محاسباتی
- تقدم عملگردها
- عملگردهای رابطه ای
- عملگرهای منطقی
- عملگرهای ترکیبی
- عملگرهای بیتی
- عملگرهای & و*
- عملگر ؟
- عملگر کاما (,)
- عملگر sizeof
- عملگر ()
- تقدم عملگر ها در حالت کلی
- تبدیل انواع
- روش ایجاد برنامه
- تعیین نیازمندیهای مسئله
- تحلیل مسئله
- طراحی الگوریتم
- پیاده سازی الگوریتم
- تست برنامه
- نگهداری برنامه
- فرایند آماده سازی و اجرای
- برنامه
- تمرینات
ساختار برنامه C ورودی و خروجی
- ورودی – خروجی داده ها
- چاپ اطلاعات با تابع ()printf
- مشاهده صفحه خروجی برنامه
- پاک کردن صفحه خروجی
- انتقال مکان نما در صفحه خروجی
- چاپ اعداد نوع short و long
- تعیین طول میدان در تابع ()printf
- ورود اطلاعات توسط تابع ()scanf
- ورودی و خروجی کاراکترها
- خواندن کاراکتر با تابع ()getch و ()getche
- خواندن کاراکتر با ()getchar
- نوشتن کاراکتر با توابع ()putch و ()putchar
- تمرینات
حلقه های تکرار و ساختارهای تصمیم
- ساختارهای تکرار
- ساختار تکرار for
- حلقه های تکرار تو در تو
- عملگر کاما و حلقه for
- ساختار تکرار while و do…..while
- از کدام حلقه تکرار استفاده کنیم ؟
- ساختارهای تصمیم
- ساختار تصمیم if
- ساختار تصمیم else if
- انتقال کنترل غیر شرطی
- دستور break
- دستور continue
- دستور goto
- ساختار تصمیم switch
- تمرینات
توابع و کلاس های حافظه
- توابع و برنامه سازی ساخت یافته
- نوشتن توابع
- نکاتی در مورد نوشتن توابع
- تابع چگونه کار می کند
- روشهای ارسال توابع به پارامتر
- توابعی که هیچ مقداری را بر نمی گردانند
- توابعی که یک مقدار را برمی گردانند
- متغییرهای محلی و عمومی
- متغییرهای محلی همنام با متغییرهای عمومی
- بازگشتی
- حالت های بازگشتی و توقف در محاسبه فاکتوریل
- کلاس های حافظه و حوزه متغییرها
- کلاس حافظه اتوماتیک
- کلاس حافظه ثبات
- کلاس حافظه استاتیک
- متغییرهای استاتیک محلی
- متغییرهای استاتیک عمومی
- کلاس حافظه خارجی
- استاتیک عمومی
- نکته ای راجع به الگوی تابع
- تمرینات
آرایه ها و رشته ها
- آرایه های یک بعدی
- آرایه های یک بعدی با عنوان
- آرگومان تابع
- مرتب سازی آرایه ها
- مرتب سازی حبابی
- جستجو در آرایه
- جستجوی ترتیبی
- جستجوی دودویی
- آرایه های چند بعدی
- آرایه های دو بعدی به عنوان آرگومان تابع
- مقداراولیه آرایه ها
- نکته ای راجع به آرایه ها
- رشته ها
- مقدار اولیه دادن به رشته ها
اشاره گرها
- متغییرهای اشاره گر
- عملگرهای اشاره گر
- اشاره گرها و انواع متغییرها
- اعمال روی اشاره گرها
- انتساب اشاره گرها به یکدیگر
- اعمال محاسباتی بر روی اشاره گرها
- مقایسه اشاره گرها
- متغییرهای پویا
- تخصیص حافظه پویا
- برگرداندن حافظه به سیستم
- اشاره گرها و توابع
- اجرای تابع با استفاده از آدرس آن
- اشاره گرها و آرایه ها
- آرایه پویا
- اشاره گرها و رشته ها
- ارزش دهی اولیه به اشاره گرها
- اشاره گر به اشاره گر
- نکاتی در مورد اشاره گرها
- آرگومان تابع ()main
- تمرینات
ساختمان ها
- تعریف نوع ساختمان
- تعریف متغییر نوع ساختمان
- دسترسی به عناصر ساختمان
- ارزش دهی اولیه به ساختمان
- انتساب ساختمان ها به یکدیگر
- آرایه ای از ساختمان ها
- تعریف ساختمان ها به صورت لانه ای
- ساختمان ها به عنوان آرگومان تابع
- انتقال عناصر ساختمان به توابع
- انتقال ساختمان ها به توابع
- اشاره گرهای ساختمان
- ساختمان بیتی
- یونیونها
- ساختمانی از یونیون
- تغییر نام انواع داده ها با typedef
- انواع داده شمارشی
- تمرینات
فایل ها
- انواع فایل از نظر نوع اطلاعات
- سازمان فایل
- باز کردن فایل
- بستن فایل
- ورودی – خروجی کاراکترها
- ورودی خروجی رشته ها
- فایل به عنوان وسیله ورودی – خروجی
- عیب یابی در ورودی – خروجی فایل
- حذف فایل
- بافر
- ورودی و خروجی همراه با فرمت
- ورودی – خروجی رکورد
- حل یک مسئله از طریق فایل تصادفی
- دستگاه های ورودی – خروجی استاندارد
- تمرینات
توابع کتابخانه ای
- توابع ریاضی
- توابع کاراکتری
- توابع رشته ای
- توابع تخصیص حافظه پویا
- توابعی در مورد فایل ها و فهرست ها
صف، پشته، لیست پیوندی و درخت
- صف
- پشته
- لیست پیوندی
- مشخصات گره های لیست
- تعریف گره لیست پیوندی
- تعریف اشاره گرهای خارجی
- ایجاد گره لیست پیوندی
- پیوند دادن گره های لیست پیوندی
- درج گره ای در لیست دو پیوندی
- حذف گره از لیست دو پیوندی
- درختها
- درخت دودویی
- ساختار گره دودویی
- تعریف گره درخت
- ایجاد گره درخت
- ایجاد درخت جستجوی دودویی
- پیمایش درخت
- پیمایش inorder درخت دودویی
- پیمایش preorder
- پیمایش postorder
- تمرینات
روشهای مرتب سازی و جستجو
- روشهای مرتب سازی
- مقایسه الگوریتم های مرتب سازی
- نمونه ای از یک روش مرتب سازی تعویض
- روش مرتب سازی انتخابی
- مرتب سازی به روش درجی
- چند روش مرتب سازی خوب
- الگوریتم مرتب سازی shellsort
- الگوریتم مرتب سازی quicksort
- مرتب سازی رشته ها
- مرتب سازی ساختمان ها
- مرتب سازی فایل های تصادفی
- روشهای جستجو
- تمرینات
ساختمان کامپیوتر و وقفه ها
- ساختمان کامپیوتر
- ثبات های پردازنده 16 بیتی
- ثبات های عمومی
- سگمنت ها
- ثبات های سگمنت
- ثبات های ایندکس
- ثبات های وضعیت و کنترلی
- فلک های کنترلی
- فلک های وضعیت
- ثبات های 32 بیتی
- مفهوم آدرس دهی
- مقدمه ای بر وقفه ها
- انواع وقفه ها
- وقفه های بایوس
- معرفی توابع چند وقفه
- اجرای وقفه ها در C
- توابع DOS
مدل های حافظه و مدیریت
- صفحه کلید
- مدل حافظه tiny
- مدل حافظه small
- مدل حافظه medum
- مدل حافظه compact
- مدل حافظه large
- مدل حافظه huge
- انتخاب مدل حافظه مناسب
- معرفی یک مدل حافظه به کامپایلر
- آدرس دهی به خارج از یک سگمنت حافظه
- کلمه کلیدی far
- کلمه کلیدی huge
- کلمه کلیدی near
رمزگذاری و فشرده سازی متن ها
- انواع رمزگذاری
- رمز گذاری جانشینی
- رمز گذاری جابجایی
- رمز گذاری به وسیله دستکاری بیت ها
- فشرده سازی داده ها
- ذخیره 8 کاراکتر در7 بایت
- فشرده سازی از طریق حذف کاراکترها
- کشف رمزمنتهای رمزی
توابع کتابخانه ای
- توابع گرافیکی
- توابع غیر گرافیکی صفحه نمایش
گرافیک
- تولید رنگ
- از کجا شروع کنم ؟
- نوشتن پیکسل ها
- رسم خط
- رسم مستطیل و پر کردن آن
- رسم دایره و بیضی و پر کردن آنها
- ذخیره و بازیابی گرافیک
- کپی و انتقال گرافیک از نقطه ای به نقطه ی دیگر
- چرخش اشکال گرافیکی
مهندسی نرم افزار به کمک C
- طراحی برنامه
- انتخاب یک ساختمان داده
- پنهان سازی اطلاعات و کد
- برنامه های متشکل از چند فایل
- ایجاد کتابخانه
- مشاهده محتوای فایل کتابخانه
- برنامه GREP
طراحی مفسر زبان های برنامه سازی
- عبارات
- نشانه ها
- چگونگی تولید عبارات
- مفسر زبان بیسیک
- دستور انتساب
- دستور print
- دستور INPUT
- دستور IF
- دستور FOR
- دستور GOSUB
- برنامه کامل مفسر بیسیک
توابع کتابخانه ای
- توابعی در مورد تاریخ، زمان و دیگر توابع سیستم
- توابع تخصیص حافظه پویا
- توابع کنترلی
- توابع ورودی – خروجی
- توابع متفرقه
مدیریت منوها
- ذخیره و بازیابی قسمتی از صفحه نمایش
- ایجاد منوی popup
- ایجاد منوی popup بدون وقفه بایوس
- ایجاد منوی pulldown
ارتباط زبان C با اسمبلی
- دستورات اسمبلی در زبان C
- استفاده از زیر برنامه های اسمبلی در برنامه C
- کوچک و بزرگ بودن حروف و متغییرها
- پیش فرض سگمنت
- ارتباط شناسه های extern و public در توربو C و توربو اسمبلر
- ترجمه چند فابل C واسمبلی
- تبادل پارامترهای بین اسمبلی و TC
- ارسال پارامترها از برنامه C به اسمبلی
- استفاده از پشته برای انتقال پارامترها
- بازگرداندن مقادیر از زبان اسمبلی به زبان C
دستورات پیش پردازنده
- تعریف ماکرو
- ضمیمه کردن فایل ها
- دستورات پیش پردازنده شرطی
- حذف ماکروی تعریف شده
- اسامی مایکروهای از پیش تعریف شده
- دستور پیش پردازنده #line
- دستور پیش پردازنده #error
یکی از بهترین کتاب های برنامه نویسی زبان c همین کتاب است خیلی خوشحال شدم که این کتاب رو به رایگان قرار دادین و باعث یادگیری سریع برنامه نویسی برای دوستان شدید.
بهترین کتاب فارسی موجود برای یادگیری زبان برنامه نویسی سی هستش
پس پاسخ ها کجاست؟
سلام وقت شمام بخیر میخوام برنامه نویسی رو یاد بگیرم بهم گفتن زبان سی و سی ++ رو شروع کنم؟ شما پیشنهادی دارید؟ الان یه نفر که مبتدیه باید از سی شروع کنه یعنی چیز دیگه ای لازمش نیست ؟اشنایی با سیستم عامل یا همچین چیزی؟
سلام...اگه زبان برنامه نویسی سی و سی پلاس پلاس رو خوب یاد بگیرین، خیلی راحت می تونید زبان های مطرح دیگر مانند جاوا، سی شارپ، php، جاوا اسکریپت رو یاد بگیرین
سلام دوست عزیز به نظر من بستگی به این داره که چه کاربردی میخواین داشته باشید. اگر میخواین نرم افزار ویندوزی یا اندروید یا روی وب کار کنید مثلا مستقیم برین سی شارپ کار کنید. ضرر نکردید. مستقیم رفتین سر اصل مطلب چرا بی خودی چیزی یاد بگیرید که خیلی به دردتون نخواهد خورد. سی به نظرم برای کارای امبدد و سخت افزاری خوبه.
سلام لینک دانلود رو پیدا نکردم :
متاسفانه لینک دانلود از سایت پاک شده.
سلام وقت بخیر ، اگه میشه لطف کنید فایل کتاب رو برای بنده ایمیل کنید ممنونتون میشم وگرنه که بازم ممنون بابت فراهم کردن این فضای علمی و شیک.
سلام لطفا کتاب برنامه نویسی جاوا قمی به همراه حل المسائلش را به ایمیلم بفرستید لینک دانلودش را پیدا نکردم با تشکر