ویکی‌کتاب fawikibooks https://fa.wikibooks.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C MediaWiki 1.47.0-wmf.7 first-letter مدیا ویژه بحث کاربر بحث کاربر ویکی‌کتاب بحث ویکی‌کتاب پرونده بحث پرونده مدیاویکی بحث مدیاویکی الگو بحث الگو راهنما بحث راهنما رده بحث رده کتاب‌آشپزی بحث کتاب‌آشپزی ویکی‌کودک بحث ویکی‌کودک موضوع بحث موضوع TimedText TimedText talk پودمان بحث پودمان Event Event talk زبان برنامه نویسی سی/پیش درآمدی بر برنامه نویسی 0 19330 134401 134388 2026-06-21T01:35:40Z HadiLovelorn 23337 134401 wikitext text/x-wiki [[پرونده:Cprogramming.jpg|جایگزین=زبان برنامه‌نویسی سی C|وسط|جلد کتاب]] {{سرص|زبان برنامه نویسی سی|زبان برنامه نویسی سی/آشنایی با زبان های برنامه‌نویسی}} ''این کتاب را تقدیم می‌کنم به سرکار علّیه خانم '''شقایق جعفری جوزانی''''' <br> <br> <br> امروزه بیشتر امور ، به صورت خودکار انجام می‌شوند . بعد از انقلاب رنسانس و صنعتی در اروپا ، جهان به سمت ماشینی و روتین ( خودکار ) شدن پیش رفت . اما علم الکترونیک باعث شد تا کارها با دقت و کلیت و سرعت بیشتری انجام پذیرند . اختراع ترانزیستورها و در نهایت مدارهای مجمتمع ( IC ها ) و میکروسکوپی و مدارهای کوانتومی ، منجر به پیشرفت چشمگیر علم الکترونیک شد و در همین مابین بود که رایانه ( کامپیوتر Computer ) ، اختراع شد و پا به عرصه وجود گذاشت . رایانه برخلاف دستگاه‌های الکترونیکی دیگر ، قابل برنامه‌ریزی است . اما این برنامه‌ریزی در ابتدا با ورق‌هایی پر از حفره انجام می‌شد که می‌توانست به پردازشگر بفهماند که باید چه کاری انجام دهد ( به این ورقه‌ها پانچ کارد punch card گفته می‌شد )<br> برخلاف یک دستگاه دی‌وی‌دی‌پلیر که تنها می‌تواند کارهایی را که از پیش برای آن در نظر گرفته شده انجام دهد ؛ یک رایانه که امروزه شامل تبلت‌ها و گوشی‌های همراه هوشمند و بسیاری دیگر از دستگاه‌های الکترونیکی دیگر می‌شود می‌تواند مدام برنامه‌های مختلفی را دریافت کند و بر اساس آنها عمل کند . همان طور که گفته شد در ابتدای امر ، کار برنامه دادن به رایانه ، بسیار مشکل بود ، گرچه کارهایی که در آن زمان انجام می‌شدند آنقدر ساده بودند که به هیچ وجه با پردازش‌هایی که رایانه‌ها و برنامه‌های امروزی انجام می‌دهند قابل مقایسه نیستند . اما این حفره ها به مثابه 0 و 1 بودند ! اما 0 و 1 چیستند ؟ رایانه ، یک دستگاه دیجیتالی است ؛ بر خلاف دستگاه‌های الکترونیکیِ قدیمی که آنالوگ بودند و سیگنال‌ها از طریق موج‌های پیوسته‌ای که بر روی جریان الکتریکی یا امواج الکترومغناطیسی ایجاد می‌شدند ، رفت و آمد می‌کردند ؛ در دستگاه‌های الکترونیکی دیجیتالی ، سیگنال‌ها با ولتاژ یا شدّت جریان یا بسامد ( فریکوانسی که به صورت متداول فرکانس تلفظ می شود Frequency ) پائین و یا ولتاژ یا شدّت جریان یا بسامد بالا و نهایی ، رفت و آمد می‌کنند . عدد « ۱ » نماینده جریان بالا ( یا وجود بار با ولتاژ یا میدان مغناطیسی با یکای تسلای بالا و وجود موج الکترومغناطیسی با بسامد بالا ) و عدد « ۰ » نماینده جریان کم ( یا وجود بار با ولتاژ یا تسلای پائین یا وجود موج الکترومغناطیسی با بسامد کم ) می‌باشند و بدین‌ترتیب با جریان الکتریکی که مرتب کم-زیاد می‌شود که تحت استانداردها و پروتکل‌های الکترونیکی بین‌المللی یا اختصاصی شرکت‌ها و کمپانی‌ها هستند ، سیگنال‌ها رفت و آمد می‌کنند ( سیگنال به معنی پیام است که در علوم برق و الکترونیک به جریان الکتریکی یا امواج الکترومغناطیسی‌ای گفته می‌شود که دارای معنای خاصی باشد ) برخلاف دستگاه‌های ( Device دیوایس ) های دیجیتالی ، دستگاه‌های آنالوگ با موج انداختن در تمام طیف‌‌های ولتاژ یا شدّت جریان یا بسامد یا میدان مغناطیسی ، پیام‌ها را جا به جا کرده و پردازش ساده‌ای انجام می‌دادند ( از معایب دیگر عمده آنها وجود پارازیت و نویز بسیار و آسیب‌پذیری بسیاری بالای سیگنال‌ها بود ) بنابراین زبان واقعی ماشین و از جمله رایانه ، زبان 0 و 1 می‌باشد که جهت سهولت در کار ، سیگنال ها را که همان 0 و 1 می‌باشند و در مبنای ۲ هستند ( دودویی ) به مبناهای دیگری همچون ۴ ، ۸ ، ۱۰ و ۱۶ تبدیل می‌نمایند . اما این کار باز هم باعث سهولت مطلوبی نمی گردد . برنامه‌نویسی به زبان ماشین فوق‌العاده امری دشوار و وقت‌گیر است . اما فراموش نکنید که برای نوشتن هسته مرکزی ( کرنل ) یک سیستم‌عامل ( که مجموعه ای از نرم افزارها و میان افزارها جهت مدیریت سخت‌افزار و ترجمه برنامه‌های نوشته شده به زبان ماشین و از طرفی فراهم نمودن محیطی برای ایجاد برنامه می‌باشد ) یا درایور یک دستگاه الکترونیکی و یا کامپایلر که کدهای سطح بالا مثل زبان C را به زبان ماشین ترجمه می‌کند ، مطمئناً باید از زبان‌های سطح پائین نیز استفاده نمائید و با مقادیر دیجیتالی ( معمولاً ) در مبنای ۲ ( به ندرت ) یا ۱۶ ( هگزادسیمال که متداول‌ترین شکل آن می‌باشد ) با سخت‌افزار ارتباط برقرار نمائید<br> در دهه های دور ، زبانی برای تلفیق با زبان ماشین و سهولت در برنامه‌نویسی ابداع شد که زبان اسمبلی ( Assembly ) نام دارد و هنوز هم به کار می‌رود و این زبان ( البته اسمبلی سطح پائین ) دارای کدهایی می‌باشد که که هر کد ، نماینده یک عمل پردازنده رایانه ( واحد پردازش مرکزی Central Processing Unit - CPU ) می‌باشد و بدین ترتیب کار تا حدی آسان شد . بعد از گذشت زمان ، مهندسین دانش رایانه ، زبان‌های بسیار زیادی را ارائه کردند که همگی جزء زبان‌های سطح بالا ( زبان‌های نزدیک به زبان و فهم انسان ) به شمار می‌روند و کار نوشتن برنامه و برنامه دادن به رایانه را تا حد زیادی آسان می‌نمایند<br> این نکته را فراموش نکنید که زبان ماشین برای هر پردازنده مجزا می‌باشد . به دنبال آن نیز زبان اسمبلی سی‌پی‌یو ( و نه اسمبلیِ سطح بالا ) نیز برای هر پردازنده جدا می‌باشد . به غیر از این دو زبان ، تمامی زبان‌ها ، سطح بالا به شمار می‌روند . مزیت زبان‌های سطح پائین این است که شما هیچ گونه محدودیتی در نوشتن برنامه ندارید و از کرنل سیستم‌عامل گرفته تا برنامه‌های جانبی ، خدماتی ، کاربردی و . . . همه را می‌توانید بنویسید . اما این نکته مهم ، همچنان وجود دارد که اگر برنامه‌ای را بخواهید برای ماشین های مختلف بنویسید باید برای هر کدام از نو برنامه را نوشته و سپس اجرا کنید و نکته مهم دیگر اینکه اگر به زبان‌های سطح بالا برنامه‌نویسی کنید برنامه را می‌توانید ظرف چند ساعت یا چند هفته و یا نهایتاً چند ماه بنویسید اما اگر بخواهید با اسمبلی یک پیرایشگر تصویری رستر ( Raster Graphics Editor ) مثل فتوشاپ یا گیمپ را بنویسید یا این کار می‌تواند تا چند سال یا چند دهه طول بکشد ! از طرفی اگر اشتباهی مرتکب شوید ممکن است به سیستم آسیب وارد کنید . از زبان‌های سطح پائین ، معمولاً فقط در نوشتن میان‌افزار و کرنل سیستم‌عامل استفاده می‌شود و البته تمام کرنل یا سیستم‌عامل را به زبان اسمبلی نمی‌نویسند ؛ بلکه از زبانی نزدیک به اسمبلی مثل سی استفاده می‌کنند و در داخل کدهای C از کدهای اسمبلی کمک می‌گیرند ( هرگاه زبان سی پاسخگوی نیاز ما برای ارتباط با سخت‌افزار نباشد )<br> ربان برنامه‌نویسی ، زبانی برای نوشتن کدهایی است که در چارچوب خاصی برای کامپایلر یا مفسر مفهوم دارند ، تا ترجمه آن به زبان ماشین یا کرنل و سیستم‌عامل ، امکان‌پذیر باشد و سپس توسط پیاده‌ساز زبان ( مثلاً کامپایلر Compiler ) به زبان ماشین یا زبان سیستم‌عامل ترجمه می‌شوند و یا توسط مفسر ( Interpreter ) بدون ترجمه به زبان ماشین ، تفسیر شده و به اجرا در می‌آیند . هر چه زبان ، سطح پائین‌تری داشته باشد ، در نوشتن برنامه وظیفه بیشتری به شما واگذار می‌شود و حتی برای نوشتن برنامه‌های ساده نیز باید مدت‌های طولانی‌تری نسبت به زبان‌های سطح بالا کدنویسی کنید ، زبان‌های سطح بالا ، زبان‌هایی هستند که مجموعه‌ای از نیاز های برنامه‌نویسی را که به صورت متداول در برنامه‌نوسی به کار می‌روند را با زبان‌های سطح پائین نوشته‌اند تا برنامه‌نویس به راحتی و در کم‌ترین زمان ، برنامه مورد نیاز خود را بنویسد و بدون نیاز به تغییر کد ( یا با کم‌ترین تغییر در کد ) آن را روی هر ماشینی پیاده سازی نماید . زبان‌هایی همچون Pascal ، ALGOL 68 ، Ada و در نهایت زبان C و خانواده آن که شامل Objective-C و ++C هم می‌شود و بسیاری از زبان‌ها که تأثیر گرفته از سی هستند همگی زبان‌های سطح بالا هستند و زبان‌هایی همچون COBOL ( کوبول ) یا Python ( پایتان ) زبان‌های خیلی سطح بالا محسوب می‌شوند . با نوشتن برنامه ، شما این قابلیت را به رایانه می‌دهید تا کارهای مورد نیاز یا مد نظر شما را به صورت خودکار ( روتین Routine ) انجام دهد<br> زبان‌های برنامه‌نویسی با کمک دستورها ، عملگرها و داده‌ها ، امکاناتی را نظیر پردازش بر روی اعداد ، حروف و متون ، برقراری ارتباط با سخت افزار و ارتباط با ورودی‌ها و خروجی‌های سیستم را فراهم می‌نمایند . ضمن اینکه خطاهایی که خارج از استاندارد هستند ، در زبان‌های سطح بالا توسط مجموعه برنامه‌های پیاده‌ساز جلوگیری می‌شوند تا رفع اشکال و به عبارتی دیباگ و خطازدایی Debug شوند ، همچنین زبان‌های سطح بالا مثل C ، برنامه دیباگر Debugger دارند تا مرحله به مرحله برنامه را ارزیابی و اجرای برنامه را از ابتدا تا انتهای آن به شما نشان دهد تا بتوانید خطای برنامه خود را بیابید در همین ابتدا نیز عرض می‌کنم که در این کتاب از ۰ تا ۱۰۰ زبان برنامه‌نویسی C مرحله به مرحله نوشته و تشریح خواهد شد و در پایان ، شما می‌توانید با استعداد و پشتکار خود یک برنامه‌نویس حرفه‌ای C بشوید ؛ اما در ابتدای کتاب که اصطلاحاتی را می‌بینید که برای شما نامعلوم است و نیاز به تعریف و تمثیل و تفسیر دارند ؛ در ادامه کتاب ، تمام آنها را نوشته و خواهیم نوشت . ضمن اینکه با مرور چندباره کتاب و تمرین در کد زدن و استمرار در آن حتماً موفق خواهید شد [[رده:زبان برنامه نویسی سی]] r12omwpv5wj13603lrsyzr8zxs0hmq9 ویکی‌کتاب:GUS2Wiki 4 35947 134399 134365 2026-06-20T18:22:08Z Alexis Jazz 21103 Updating gadget usage statistics from [[Special:GadgetUsage]] ([[phab:T121049]]) 134399 wikitext text/x-wiki {{#ifexist:Project:GUS2Wiki/top|{{/top}}|This page provides a historical record of [[Special:GadgetUsage]] through its page history. To get the data in CSV format, see wikitext. To customize this message or add categories, create [[/top]].}} داده‌های زیر در حافظهٔ نهانی وجود دارند و آخرین بار در 2026-06-19T11:23:58Z روزآمدسازی شده‌اند. حداکثر {{PLURAL:5000|یک نتیجه|5000 نتیجه}} در حافظۀ نهان موجود است. {| class="sortable wikitable" ! ابزار !! data-sort-type="number" | شمار کاربران !! data-sort-type="number" | کاربران فعال |- |BiDiEditing || 16 || 0 |- |Cat-a-lot || 38 || 0 |- |CleanDeleteReasons || 1 || 0 |- |Contributions-report || 19 || 0 |- |GreenRedirect || 34 || 0 |- |HotCat || 51 || 0 |- |ShortLink || 18 || 0 |- |UserisOnlineOrNo || 5 || 0 |- |XTools || 47 || 0 |- |contribsrange || 12 || 0 |- |defaultsummaries || 32 || 0 |- |diffswitchdir || 19 || 0 |- |editzero || 22 || 0 |- |lastdiff || 20 || 0 |- |localclock || 28 || 0 |- |mobile-common || 11 || 0 |- |popups || 65 || 0 |- |purgetab || 23 || 0 |} * [[ویژه:استفاده ابزار]] * [[m:Meta:GUS2Wiki/Script|GUS2Wiki]] <!-- data in CSV format: BiDiEditing,16,0 Cat-a-lot,38,0 CleanDeleteReasons,1,0 Contributions-report,19,0 GreenRedirect,34,0 HotCat,51,0 ShortLink,18,0 UserisOnlineOrNo,5,0 XTools,47,0 contribsrange,12,0 defaultsummaries,32,0 diffswitchdir,19,0 editzero,22,0 lastdiff,20,0 localclock,28,0 mobile-common,11,0 popups,65,0 purgetab,23,0 --> fpd4wh7goasm25f5mstge0zbtqmdqp6 بحث:اچ‌تی‌ام‌ال/رویدادها 1 42004 134400 2026-06-20T20:33:14Z ~2026-35902-13 28172 /* آزادی حقیقت */ بخش جدید 134400 wikitext text/x-wiki == آزادی حقیقت == @ [[ویژه:مشارکت‌ها/&#126;2026-35902-13|&#126;2026-35902-13]] ([[بحث کاربر:&#126;2026-35902-13|بحث]]) ۲۰ ژوئن ۲۰۲۶، ساعت ۲۰:۳۳ (UTC) gi74ikws1ym1c96dtz3lwyv57mj9oin 134402 134400 2026-06-21T04:27:37Z Vivairan2 28134 صفحه را خالی کرد 134402 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1