کتاب Learn C Programming (یادگیری برنامهنویسی C: راهنمای مبتدی برای یادگیری آسانترین و همهمنظورهترین زبان برنامهنویسی، ویرایش دوم) از جدیدترین و کاملترین منابع آموزش زبان برنامهنویسی C میباشد. این کتاب در 27 فصل به آموزش مقدماتی تا بیان نکات مهم و پیشرفتهی این زبان خواهد پرداخت.
در ادامه مقدمهای از کتاب Learn C Programming را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Learn C Programming:
پیشگفتار چاپ دوم کتاب Learn C Programming
در مقدمه نسخه اول، من بیان کردم که “شما یک راه خاص پیدا خواهید کرد که C را برای شما کار کند.” باید اعتراف کنم که من خودم قربانی این تله بودم. معلوم شد که چون C را قبل از سال 1990 یاد گرفته بودم، آنطور که باید با ویژگیهای مهم C99 آشنا نبودم. من مقصر بودم که به عادتهای نسخه C قدیمی خود فکر میکردم.
این تفکر منسوخ تا حد زیادی در فصل شمارشها و بهویژه در فصل معرفی آرایهها منعکس شد، جایی که آرایههای با طول متغیر (VLA) – یکی از ویژگیهای اصلی C99 – به خوبی پوشش داده نشدند. هر دوی این فصلها به طور کامل بازنویسی شده اند تا به طور دقیق استاندارد C را نشان دهند.
من به ویژه میخواهم از خوانندگانی که به اشتباهات تایپی متن و کد منبع مختلف اشاره کردند تشکر کنم. من درک میکنم که وقتی کدی که از کتاب استفاده میکنید کار نمیکند چقدر خستهکننده است. به همین دلیل، توجه بیشتری به کد منبع در کتاب و برنامههای نمونه موجود در مخزن شده است.
این نسخه آن اشتباهات تایپی را هم در متن و هم در کد نمونه تصحیح میکند. همچنین برخی از اشتباهات مفهومی را تصحیح میکند که یا ضعیف توصیف شده اند یا فقط اشتباه هستند. من صمیمانهترین پوزش خود را از خوانندگان آن نسخه تقدیم میکنم. هر گونه خطایی که باقی بماند کاملاً مسئولیت من است.
این نسخه، تا حد امکان، نکاتی را در مورد آنچه در نسخه بعدی استاندارد C – C23 ارائه میشود، ارائه میدهد. اینها اصلاحات اضافه شده ای هستند که هسته C را تغییر نمیدهند، اما وضوح و مفید بودن C را افزایش میدهند.
یکی دیگر از موارد اضافه شده به این نسخه، سوالات پایان هر فصل برای تقویت مفاهیم کلیدی آن فصل است. اینها باید به ویژه برای مبتدیان برنامهنویسی مفید باشند.
در نهایت، فصل 27 اضافه شده است که دو بازی کارتی کامل و در عین حال ساده را پیادهسازی میکند. اینها نحوه استفاده از ساختارها و توابع از پیش ساخته شده و همچنین نحوه به کارگیری کتابخانه را در این مورد نشان میدهند. کتابخانه لیست پیوندی خودمان، برای قابلیتهای اضافه شده.
پیشگفتار چاپ اول کتاب Learn C Programming
یادگیری برنامهنویسی فرآیند یادگیری حل مسائل با کامپیوتر است. سفر شما در به دست آوردن این دانش طولانی و دشوار همراه با پیچ و تاب های غیرمنتظره خواهد بود، با این حال پاداش این سفر، چه کوچک و چه بزرگ، بسیار زیاد است. رضایت اولیه زمانی حاصل میشود که برنامه خود را به کار بگیرید و نتایج صحیح را ارائه دهید. رضایت شما افزایش مییابد زیرا قادر به حل مشکلات بزرگتر و پیچیده تر از آن چیزی هستید که فکرش را میکردید.
شروع سفر شما یادگیری یک زبان برنامهنویسی است. این کتاب در درجه اول به آن شروع میپردازد: یادگیری یک زبان برنامهنویسی – در این مورد، C. اولین قدم در یادگیری یک زبان برنامهنویسی، یادگیری نحو آن است. این به معنای درک و به خاطر سپردن کلمات کلیدی مهم، علائم نقطه گذاری و بلوکهای اساسی ساختار برنامه است.
هدف از رویکردی که در Learn C Programming اتخاذ شده است، ابزارها، روشها و شیوههایی است که به شما کمک میکند تا ناامیدیهایی را که با آن مواجه میشوید به حداقل برسانید. هر برنامه ارائه شده یک برنامه کامل و کارآمد با استفاده از سینتکس مدرن C است. خروجی مورد انتظار برای هر برنامه نیز ارائه شده است.
یادگیری برنامهنویسی به ویژه خستهکننده است زیرا قطعات متحرک بسیار زیادی وجود دارد. منظور من این است که هر جنبه ای از فرآیند برنامهنویسی در طول زمان تغییر کرده است و در آینده نیز تغییر خواهد کرد.
سختافزار کامپیوتر و سیستم عاملها برای مقابله با کاربردها و چالشهای جدید تکامل خواهند یافت. زبانهای رایانه نیز برای رفع کمبودهای زبان قدیمی و همچنین سازگاری با حل مشکلات جدید، تکامل یافته و تغییر خواهند کرد. شیوهها و روشهای برنامهنویسی مورد استفاده امروزه با تکامل زبانها تغییر خواهند کرد. انواع مشکلاتی که باید حل شوند نیز تغییر خواهند کرد زیرا مردم از رایانه برای مصارف مختلف استفاده میکنند. و در نهایت، شما تغییر خواهید کرد.
همانطور که از یک زبان برنامهنویسی استفاده میکنید، طرز فکر شما را در مورد مشکلات تغییر میدهد. همانطور که مشکلات و راه حلها تغییر میکنند، تفکر ما در مورد آنچه ممکن میشود نیز تغییر میکند. این منجر به تغییراتی در زبان کامپیوتر میشود. این یک چرخه بیپایان است.
C به طور قابل توجهی از زبانی که برای اولینبار توسط دنیس ریچی در اوایل دهه 1970 توسعه یافت، تکامل یافته است. این بسیار ساده و در عین حال به اندازه کافی قدرتمند بود که بتواند نسخههای اولیه سیستم عامل یونیکس را در آزمایشگاههای بل توسعه دهد.
آن نسخههای اولیه C برای برنامه نویسان تازه کار نبود. این نسخهها به دانش پیشرفته و مهارتهای برنامهنویسی نیاز داشتند تا برنامهها را قوی و پایدار کنند. در طول سالها، زمانی که کامپایلرهای C بسیار گستردهتر شدند، تلاشهای متعددی برای مهار ویژگیهای زبان نامحدود و گاهی خطرناک صورت گرفته است. اولین مورد ANSI C بود که در سال 1989 تدوین شد. اصلاح عمده بعدی با C99 بود که در سال 1999 تدوین شد. شامل اضافات زبانی قابل توجهی بود و بسیاری از رفتارهای C را روشن کرد. از آن زمان، دو تجدید نظر اضافی انجام شده است، C11 و C17، که هر دو بر اضافات جزئی زبان و اصلاحات داخلی زبان متمرکز شدهاند.
امروزه C بسیار محدودتر و پیچیدهتر از نسخههای اولیه C است. با این حال، قدرت، عملکرد و مناسب بودن خود را برای طیف وسیعی از مشکلات محاسباتی حفظ میکند. این کتاب در تلاش است تا جدیدترین نحو و مفاهیم را همانطور که در C99، C11 و C17 مشخص شده است، ارائه دهد. هر برنامه با استفاده از استاندارد C11 کامپایل و اجرا شده است. با گذشت زمان، انطباق با C17 بسیار گستردهتر از امروز خواهد شد. با این حال، من انتظار دارم که همه این برنامهها مطابق با استاندارد C17 کامپایل و اجرا شوند.
همیشه چیزهای بیشتری برای یادگیری وجود خواهد داشت، حتی بدون حرکت قطعات. پس از خواندن برنامهنویسی زبان C، راه خاصی را پیدا خواهید کرد که C برای شما کار کند. با کسب تجربه در حل مشکلات با C، چیزهای جدیدی – ویژگیها، کاربردها و محدودیتها – در مورد C خواهید دید که قبلاً ندیده اید. بنابراین، میتوان گفت که یادگیری برنامهنویسی به همان اندازه که در مورد یادگیری نحوه یادگیری است، به همان اندازه که در مورد حل مشکلات با برنامهها است.
در طول مسیر، شما در مورد مفاهیم برنامهنویسی دیگری که مستقیماً با C مرتبط نیستند آشنا خواهید شد. چرخه توسعه کلی نه تنها مورد بحث قرار خواهد گرفت، بلکه در توسعه یک برنامه معاملات کارت نیز نشان داده خواهد شد. در حالی که ممکن است به کارتها علاقه نداشته باشید، به روند توسعه این برنامه توجه ویژهای داشته باشید. در سراسر، شیوههای اساسی آزمایش و اعتبار سنجی نشان داده خواهد شد.
کتاب Learn C Programming برای چه کسی است؟
زمانی که این کتاب شکل گرفت، برای دو مخاطب بسیار متنوع در نظر گرفته شد، برنامهنویسی مبتدی مطلق و برنامه نویس باتجربهای که میخواهد C را یاد بگیرد. هر یک از این مخاطبان نیازهای بسیار متفاوتی دارند.
برای مبتدیان برنامهنویسی، من این کتاب را طوری نوشتهام که انگار کنار شما نشسته ام و مهمترین مفاهیم و اقداماتی را که برای تبدیل شدن به یک برنامهنویس موفق C باید بدانید را توضیح میدهم. من سعی کرده ام هر مفهوم را به طور کامل توضیح دهم و هر مفهوم را با یک برنامه کاری تقویت کرده ام. مبتدی باید با عملکرد کلی کامپیوتر خود آشنا باشد. هیچ دانش دیگری فرض نمیشود.
برای برنامه نویس با تجربه، من طیف کاملی از نحو C و همچنین اصطلاحات رایج C را ارائه کرده ام. میتوانید توضیحات را مرور کنید و اساساً روی کد منبع ارائه شده تمرکز کنید. برنامهها برای ارائه یک مرجع به نحو C در نظر گرفته شده اند.
برای هر دو، بیش از 100 برنامه کاربردی وجود دارد که هم نحو زبان C و هم طعم اصطلاحات برنامهنویسی C را نشان میدهد – چیزهایی که در C رایج هستند اما در زبانهای دیگر یافت نمیشوند. من شیوهها و تکنیکهای برنامهنویسی را به کار برده ام که در نزدیک به 35 سال تجربه به من خدمت کردهاند.
آنچه کتاب Learn C Programming پوشش میدهد:
قسمت 1، C Fundamentals، مفاهیم بسیار اساسی سینتکس و ساختار برنامه را معرفی میکند.
فصل 1، Running Hello, World!، چرخه توسعه برنامه و ابزارهایی را که برای بقیه کتاب نیاز دارید معرفی میکند. این ابزارها برای ایجاد، ساخت و اجرای اولین برنامه C شما، یک “Hello, world!” برنامه مفاهیم نظر دادن کد و آزمایش با کد نیز معرفی شده است.
فصل 2 کتاب Learn C Programming، درک ساختار برنامه، عبارات و بلوکها را معرفی میکند. همچنین تعاریف تابع و اعلانهای تابع را که به عنوان نمونههای اولیه تابع نیز شناخته میشوند، توضیح میدهد. نحوه فراخوانی توابع و ترتیب اجرای آنها نشان داده شده است. دستورات، بلوکها و توابع ساختار برنامههای C را تعریف میکنند.
فصل 3 کتاب Learn C Programming، کار با انواع دادههای پایه، چگونگی نمایش مقادیر C را به طرق مختلف از طریق استفاده از انواع دادهها بررسی میکند. هر نوع داده دارای اندازه و محدوده ممکنی از مقادیر است که C برای تفسیر یک مقدار استفاده میکند.
فصل 4 کتاب Learn C Programming، با استفاده از متغیرها و انتسابها، متغیرها و ثابتها را معرفی میکند که برای حاوی مقادیر استفاده میشوند. برای اینکه یک متغیر یک مقدار را دریافت کند، باید آن مقدار به آن نسبت داده شود. انواع مختلفی از تکلیف توضیح داده شده است.
فصل 5 کتاب Learn C Programming، کاوش در عملگرها و عبارات، عملیات – راههایی برای دستکاری مقادیر – در هر یک از انواع دادههای مختلف را معرفی و نشان میدهد.
فصل 6 کتاب Learn C Programming، بررسی جریان برنامه شرطی، جریان عبارات کنترلی را معرفی میکند که بسته به نتیجه یک عبارت، گروهی از دستورات را اجرا می کنند.
فصل 7 کتاب Learn C Programming، بررسی حلقهها و تکرارها، هر یک از عبارات حلقه را معرفی میکند. همچنین استفاده درست و نادرست از goto را توضیح میدهد. ابزارهای اضافی برای تکرار حلقه کنترلکننده توضیح داده شده است.
فصل 8 کتاب Learn C Programming، ایجاد و استفاده از شمارشها، ثابتهای نامگذاری شده، شمارشها و نحوه استفاده از آنها را توضیح میدهد.
بخش 2، انواع دادههای پیچیده، درک شما را از مفاهیم انواع دادههای اساسی یا ذاتی به انواع پیچیدهتر گسترش میدهد.
فصل 9، ایجاد و استفاده از ساختارها، چگونگی نمایش اشیاء پیچیده را با گروههایی از متغیرها، به نام ساختار، بررسی میکند. عملیات روی سازهها بررسی میشود. چگونگی ارتباط ساختارها با برنامهنویسی شیگرا شرح داده شده است.
فصل 10 کتاب Learn C Programming، ایجاد انواع دادههای سفارشی با typedef، نحوه تغییر نام enum و struct را شرح میدهد. گزینههای کامپایلر و فایلهای هدر بررسی میشوند.
فصل 11 کتاب Learn C Programming، کار با آرایهها، نحوه تعریف، مقداردهی اولیه و دسترسی به آرایههای ساده را نشان میدهد. استفاده از حلقهها برای عبور از آرایهها بررسی شده است. عملکرد آرایهها از طریق توابع نشان داده شده است.
فصل 12 کتاب Learn C Programming، کار با آرایههای چند بعدی، درک شما از مفهوم آرایههای یک بعدی را به آرایههای دو، سه و n بعدی گسترش میدهد. اعلام، مقداردهی اولیه و دسترسی به این آرایههای چند بعدی در حلقهها و توابع نشان داده شده است.
فصل 13 کتاب Learn C Programming، با استفاده از اشارهگر، آدرسدهی مستقیم و غیرمستقیم را با اشارهگرها بررسی میکند. عملیات با اشاره گر نشان داده شده است. نحوه تفکر و صحبت در مورد اشارهگرها شرح داده شده است. استفاده از اشارهگر در توابع و استفاده از اشارهگر به ساختارها نشان داده شده است.
فصل 14 کتاب Learn C Programming، درک آرایهها و اشارهگرها، شباهتها و تفاوتهای بین اشارهگرها و آرایهها را بررسی میکند.
فصل 15، کار با رشتهها، مجموعه کاراکترهای ASCII و رشتههای C را معرفی میکند که آرایههایی با دو ویژگی خاص هستند. برنامهای برای چاپ مجموعه کاراکترهای ASCII در یک جدول ایجاد شده است. عملیات رشته کتابخانه استاندارد C معرفی شده است.
فصل 16 کتاب Learn C Programming، ایجاد و استفاده از ساختارهای پیچیدهتر، بر مفاهیم ساختارها و آرایهها استوار است تا چگونگی ایجاد ترکیبهای مختلف از ساختارهای پیچیده را بررسی کند. در سرتاسر فصل، هر ساختار پیچیده از طریق توسعه یک برنامه کامل معامله کارت نشان داده شده است. این فصل جامع ترین مثال از روش توسعه گام به گام و تکراری برنامه را ارائه میدهد.
بخش 3، دستکاری حافظه، چگونگی تخصیص و تخصیص حافظه را به روشهای مختلف بررسی میکند.
فصل 17 کتاب Learn C Programming، درک تخصیص حافظه و طول عمر، مفاهیم کلاسهای ذخیرهسازی حافظه خودکار در مقابل پویا و همچنین کلاسهای ذخیرهسازی داخلی در برابر خارجی را معرفی میکند. کلاس ذخیره سازی استاتیک نشان داده شده است.
فصل 18 کتاب Learn C Programming، با استفاده از تخصیص حافظه پویا، استفاده از حافظه پویا را معرفی میکند و عملیاتهای مختلف بر روی حافظه پویا را شرح می دهد. یک برنامه لیست پیوندی پویا نشان داده شده است. مروری بر سایر ساختارهای دینامیکی ارائه شده است.
بخش 4، ورودی و خروجی، طیف گسترده ای از موضوعات مرتبط با خواندن (ورودی) و نوشتن (خروجی) مقادیر را بررسی میکند.
فصل 19، بررسی خروجی فرمتشده، به جزئیات کامل در مورد تعیینکنندههای قالب مختلف printf() برای هر یک از انواع دادههای ذاتی میپردازد: اعداد صحیح علامتدار و بدون علامت، شناورها و دوبلها، و رشتهها و کاراکترها.
فصل 20 کتاب Learn C Programming، دریافت ورودی از خط فرمان، نحوه استفاده از پارامترهای argc و argv main() را برای دریافت مقادیر از خط فرمان نشان میدهد.
فصل 21 کتاب Learn C Programming، بررسی ورودی قالببندی شده، نحوه خواندن مقادیر از یک جریان ورودی با استفاده از scanf() را نشان میدهد. روشن میکند که چگونه مشخصکنندههای قالب برای printf() و scanf()، در حالی که مشابه هستند، واقعاً بسیار متفاوت هستند. تبدیل دادههای داخلی و ورودی و خروجی فرمت نشده نیز نشان داده شده است.
فصل 22، کار با فایلها، یک فصل عمدتاً مفهومی است که مفاهیم اساسی فایل را معرفی میکند. این نشان میدهد که چگونه فایلها را از داخل یک برنامه و از خط فرمان باز و بسته کنید.
فصل 23 کتاب Learn C Programming، با استفاده از ورودی فایل و خروجی فایل، نحوه استفاده از سوئیچهای خط فرمان با ()getopt را برای خواندن و نوشتن فایلها نشان میدهد. سپس برنامه اصلی برای خواندن نامها از ورودی، مرتب کردن آنها از طریق یک لیست پیوندی و سپس نوشتن آنها به ترتیب مرتب شده گسترش مییابد.
بخش 5، بلوکهای ساختمان برای برنامههای بزرگتر، نحوه ایجاد و مدیریت برنامههایی که از چندین فایل تشکیل شدهاند را شرح میدهد.
فصل 24 کتاب Learn C Programming، کار با برنامههای چند فایلی، نشان میدهد که چگونه میتوان برنامه فایل منبع تکی را که در فصل 16 ایجاد و استفاده از ساختارهای پیچیدهتر توسعه داده شد، برداشت و آن را به چندین فایل منبع جدا کرد. هر یک از فایلهای منبع دارای توابعی است که به طور منطقی بر اساس ساختارهایی که دستکاری میکنند گروهبندی میشوند. کاربردهای مؤثر و ایمن برای پیش پردازنده شرح داده شده است.
فصل 25 کتاب Learn C Programming، درک محدوده، اجزای مختلف دامنه و نحوه ارتباط آنها با برنامههای تک و چند فایلی را تعریف میکند. جزئیات دامنه متغیر و دامنه تابع توضیح داده شده است.
فصل 26 کتاب Learn C Programming، ساخت برنامههای چند فایل با make، ویژگیهای اساسی ابزار make را معرفی میکند. make سپس برای ساختن یک برنامه چند فایلی استفاده میشود. یک فایل عمومی همه منظوره ایجاد شده است.
فصل 27 کتاب Learn C Programming، ایجاد دو برنامه کارت، با برنامه فروشنده توسعهیافته در فصل 16، ایجاد و استفاده از ساختارهای پیچیدهتر، برای ایجاد دو بازی متفاوت و در عین حال کامل و قابل بازی با ورق شروع میشود: بلک جک، یا 21، و بازی یک نفره یک دست. رابط کاربری محدود به ورود کاراکترها در خط فرمان است.
Epilogue برخی از گامهای مفید بعدی را که باید در یادگیری C و برنامهنویسی برداشته شود، تشریح میکند.
ضمیمه تعدادی راهنمای مرجع مفید ارائه میدهد. اینها عبارتند از کلمات کلیدی C، اولویت عملگر، خلاصه ای از برخی از گزینههای مفید GCC و Clang، کاراکترهای ASCII، استفاده از Bstrlib، مروری کوتاه بر یونیکد، تاریخچه مشروح نسخههای C، و بخشی از کتابخانه استاندارد C.
سرفصلهای کتاب Learn C Programming:
- Contributors
- About the author
- About the reviewers
- Preface
- Part 1: C Fundamentals
- Chapter 1:Running Hello, World!
- Chapter 2: Understanding Program Structure
- Chapter 3: Working with Basic Data Types
- Chapter 4: Using Variables and Assignments
- Chapter 5: Exploring Operators and Expressions
- Chapter 6: Exploring Conditional Program Flow
- Chapter 7: Exploring Loops and Iterations
- Chapter 8: Creating and Using Enumerations
- Part 2: Complex Data Types
- Chapter 9: Creating and Using Structures
- Chapter 10: Creating Custom Data Types with typedef
- Chapter 11: Working with Arrays
- Chapter 12: Working with Multi-Dimensional Arrays
- Chapter 13: Using Pointers
- Chapter 14: Understanding Arrays and Pointers
- Chapter 15: Working with Strings
- Chapter 16: Creating and Using More Complex Structures
- Part 3: Memory Manipulation
- Chapter 17: Understanding Memory Allocation and Lifetime
- Chapter 18: Using Dynamic Memory Allocation
- Part 4: Input and Output
- Chapter 19: Exploring Formatted Output
- Chapter 20: Getting Input from the Command Line
- Chapter 21: Exploring Formatted Input
- Chapter 22: Working with Files
- Chapter 23: Using File Input and File Output
- Part 5: Building Blocks for Larger Programs
- Chapter 24: Working with Multi-File Programs
- Chapter 25: Understanding Scope
- Chapter 26: Building Multi-File Programs with Make
- Chapter 27:Creating Two Card Programs
- Appendix
- Epilogue
- Assessments
- Other Books You May Enjoy
جهت دانلود کتاب Learn C Programming میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.