تبلیغات
(-_-)★★☺☻دانلود نرم افزار و کلیپ موبایل و آهنگ☺☻★★(-_-) - زبان برنامه‌نویسی C
(-_-)★★☺☻دانلود نرم افزار و کلیپ موبایل و آهنگ☺☻★★(-_-)
این جمله بیان ماست ---> (-_-)★کلبه من کلبه توست پس این کلبه از آن توست★(-_-)

لینکدونی

آرشیو موضوعی

آرشیو

لینکستان

صفحات جانبی

← آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :

تاریخچه

C یک زبان سطح میانی همه منظوره‌است، یعنی هم امکانات زباهای سطح بالا را پشتیبانی میکند و هم امکانات زبانهای سطح پایین ولی در اصل یک زبان سطح بالا است. این زبان به صورت بسیار نزدیکی در ارتباط با سیستم عامل یونیکس(Unix) قرار داشته و در این محیط توسعه و تکامل یافته‌است ،زیرا سیستم عامل یونیکس و بیشتر برنامه‌هایی که روی این سیستم اجرا می‌شود به زبان C نوشته شده‌اند.

با این وجود، این زبان به هیچ سیستم عامل یا ماشین خاصی وابستگی ندارد،و میتوان از آن برای نوشتن برنامه برای میکروکنترلرها، انواع CPUها و سیستم عاملها استفاده کرد. اگرچه این زبان،'زبان برنامه نویسی سیستم' نامیده شده‌است چرا که برای نوشتن برنامه‌های مترجم (کامپایلرها) و سیستم‌های عامل بسیار مفید است، با این وجود این زبان ، برای نوشتن برنامه‌های اصلی در بسیاری از زمینه‌ها ،زبانی کاملاً مناسب و مطلوب است.

بسیاری از ایده‌های مهم و ریشه‌ای زبان C از زبان BCPL گرفته شده‌است که توسط مارتین ریچاردز (Martin Richards) طراحی و توسعه یافت. از طریق زبان B، زبان BCPL به صورت غیر مستقیم بر روی زبان C اثر گذاشت که به نوبهٔ خود در سال ۱۹۷۰ توسط کن تامپسون (Ken Tampson) روی کامپیوتر DEC PDP-7 برای اولین سیستم عامل UNIX نوشته شد.

[ویرایش] ویژگی‌ها


BCPL و B ،زبان‌های بدون نوع داده ای هستند. اما در مقابل آن، در زبان C انواع مختلفی از نوع‌های داده‌ای تدارک دیده شده‌است. نوع‌های اصلی و پایه‌ای انواع کارکتری و اعشاری اعداد با اندازه‌های مختلف هستند. علاوه بر این، سلسله مراتبی از انواع داده‌ای فرعی در زبان C وجود دارد که می‌توان آن‌ها را به همراه اشاره گرها (Pointers)، آرایه (Strings) ، ساختار (Structuers)و Union‌ها ایجاد کرد.

عبارت‌ها، از عملگرها و عملوندها ساخته می‌شوند. هر عبارت از جمله ،یک جایگزینی یا احضار یک تابع میتواند یک دستور باشد. اشاره گرها برای محاسبات روی آدرس‌ها ، که مستقل از ماشین هستند در نظر گرفته شده‌اند.

C، یک زبان نسبتاً سطح پایین محسوب می‌شود، این یک توصیف تحقیرآمیز نبوده، و صرفاً به این معنی است که C با همین نوع از اشیائی سروکار دارد که بیشتر کامپیوترها با آن سروکار دارند، نظیر کارکترها ،اعداد و آدرس‌ها. این اشیا را می‌توان با هم ترکیب کرد و می‌توان روی آنها همان عملیات محاسباتی و منطقی را انجام داد که توسط یک کامپیوتر حقیقی پیاده سازی کرد.

سیستم عامل symbian با زبان c نوشته شده و بهمین دلیل این زبان بعنوان زبان اولیه برای برنامه نویسی در آن انتخاب شده‌است .C بیشترین امکان دسترسی به API‌های سیستم عامل سیمبیان را فراهم میکند و بهترین کارکرد در حافظه و سرعت اجرا را داراست. اما در گزینه‌های زیر باید ازین زبان استفاده شود :

برنامه‌هایی که مانند سرور عمل میکنند مانند برنامه‌هایی که در پشت صحتنه کار میکنند و یکی از بخش‌های سیستم را مدیریت میکنند. مانند پورت های COM

PLUG in‌ها که محیطی را بر پایه سیستم عامل ایجاد میکنند . بطور مثال برنامه‌ای که فایل‌های html را به فایل‌های word سیمبیان تبدیل میکند از کتابخانه مبدل سیستم عامل استفاده میکند .

درایورهای دستگاه که با Kernel کار متعامل میکنند.

استفاده از زبان C در سیستم عامل سیمبیان بر روی مناسب بودن کارکرد گوشی‌ها متمرکز شده‌است ، که بدین معناست که چند تا از عملگرهای استاندارد زبان C مانند مدیریت استثناها قابل استفاده در برنامه نویسی سیمبیان نیستند

با تشکر

[ویرایش] کلمات کلیدی

auto , double , int , struct , break , else , long , switch , case , enum , register , typedef , char , extern , return , union , const , float , short , unsigned , continue , for , signed , void , default , goto , sizeof , volatile , do , if , static , while




زبان برنامه‌نویسی C

از ویکی‌پدی، دانشنامهٔ آزاد.

برای بررسی تاریخچه زبان C باید به سال ۱۹۶۷ بازگردیم که مارتین ریچاردز زبان BCPL را برای نوشتن نرم افزارهای سیستم عامل و کامپایلر در دانشگاه کمبریج ابداع کرد. سپس در سال ۱۹۷۰ کن تامپسون زبان B را بر مبنای ویژگی‌های زبان BCPL نوشت و از آن برای ایجاد اولین نسخه های سیستم عامل یونیکس در آزمایشگاه‌های بل استفاده کرد. زبان C در سال ۱۹۷۲ توسط دنیس ریچی از روی زبان B و BCPL در آزمایشگاه بل ساخته شد و ویژگی‌های جدیدی همچون نظارت بر نوع داده ها نیز به آن اضافه شد. ریچی از این زبان برای ایجاد سیستم عامل یونیکس استفاده کرد اما بعدها اکثر سیستم عاملهای دیگر نیز با همین زبان نوشته شدند. این زبان با سرعت بسیاری گسترش یافت و چاپ کتاب "The C Programming Language" در سال ۱۹۷۸ توسط کرنیگان و ریچی باعث رشد روزافزون این زبان در جهان شد.

متاسفانه استفاده گسترده این زبان در انواع کامپیوترها و سخت افزارهای مختلف باعث شد که نسخه‌های مختلفی از این زبان بوجود آید که با یکدیگر ناسازگار بودند. در سال ۱۹۸۳ انستیتوی ملی استاندارد آمریکا (ANSI) کمیته ای موسوم به X3J11 را را مأمور کرد تا یک تعریف فاقد ابهام و مستقل از ماشین را از این زبان تدوین نماید. در سال ۱۹۸۹ این استاندارد تحت عنوان ANSI C به تصویب رسید و سپس در سال ۱۹۹۰، سازمان استانداردهای بین المللی (ISO) نیز این استاندارد را پذیرفت و مستندات مشترک آنها تحت عنوان ANSI/ISO C منتشر گردید.

در سالهای بعد و با ظهور روشهای برنامه‌نویسی شئ‌گرا نسخه جدیدی از زبان C بنام C++ توسط بیارنه استراوستروپ در اوایل ۱۹۸۰ در آزمایشگاه بل توسعه یافت. در C++ علاوه بر امکانات جدیدی که به زبان C اضافه شده است، خاصیت شئ‌گرایی را نیز به آن اضافه شده‌است.

با گسترش شبکه و اینترنت، نیاز به زبانی احساس شد که برنامه‌های آن بتوانند برروی هر ماشین و هر سیستم عامل دلخواهی اجرا گردد. شرکت سان مایکروسیستمز در سال ۱۹۹۵ میلادی زبان جاوا را برمبنای C و C++ ایجاد کرد که هم اکنون از آن در سطح وسیعی استفاده می‌شود و برنامه های نوشته شده به آن برروی هر کامپیوتری که از چاوا پشتیبانی کند (تقریبا تمام سیستمهای شناخته شده) قابل اجرا می‌باشد. شرکت مایکروسافت در رقابت با شرکت سان، در سال 2002 زبان جدیدی بنام C# (سی شارپ) را ارائه داد که رقیبی برای Java بشمار می‌رود.


برنامه نویسی ساخت یافته

در دهه ۱۹۶۰ میلادی توسعه نرم‌افزار دچار مشکلات عدیده‌ای شد. در آن زمان سبک خاصی برای برنامه نویسی وجود نداشت و برنامه‌ها بدون هیچگونه ساختار خاصی نوشته می‌شدند. وجود دستور پرش (goto) نیز مشکلات بسیاری را برای فهم و درک برنامه توسط افراد دیگر ایجاد می‌کرد، چرا که جریان اجرای برنامه مرتبا دچار تغییر جهت شده و دنبال کردن آن دشوار می‌گردید. لذا نوشتن برنامه ها عملی بسیار زمان بر و پرهزینه شده بود و معمولا اشکال زدایی، اعمال تغییرات و گسترش برنامه ها بسیار مشکل بود. فعالیتهای پژوهشی در این دهه باعث بوجود آمدن سبک جدیدی از برنامه نویسی بنام روش ساخت‌یافته گردید؛ روش منظمی که باعث ایجاد برنامه‌هایی کاملا واضح و خوانا گردید که اشکال‌زدایی و خطایابی آنها نیز بسیار ساده‌تر بود.

اصلی‌ترین نکته در این روش عدم استفاده از دستور پرش (goto) است. تحقیقات بوهم و ژاکوپینی نشان داد که می‌توان هر برنامه ای را بدون دستور پرش و فقط با استفاده از ۳ ساختار کنترلی ترتیب، انتخاب و تکرار نوشت.

ساختار ترتیب، همان اجرای دستورات بصورت متوالی (یکی پس از دیگری) است که کلیه زبانهای برنامه نویسی در حالت عادی بهمان صورت عمل می‌کنند.

ساختار انتخاب به برنامه‌نویس اجازه می‌دهد که براساس درستی یا نادرستی یک شرط، تصمیم بگیرد کدام مجموعه از دستورات اجرا شود.

ساختار تکرار نیز به برنامه نویسان اجازه می‌دهد مجموعه خاصی از دستورات را تا زمانیکه شرط خاصی برقرار باشد، تکرار نماید.

هر برنامه ساخت‌یافته از تعدادی بلوک تشکیل می‌شود که این بلوکها به ترتیب اجرا می‌شوند تا برنامه خاتمه یابد (ساختار ترتیب). هر بلوک می‌تواند یک دستور ساده مانند خواندن، نوشتن یا تخصیص مقدار به یک متغیر باشد و یا اینکه شامل دستوراتی باشد که یکی از ۳ ساختار فوق را پیاده سازی کنند. نکته مهم اینجاست که درمورد دستورات داخل هر بلوک نیز همین قوانین برقرار است و این دستورات می‌توانند از تعدادی بلوک به شرح فوق ایجاد شوند و تشکیل ساختارهایی مانند حلقه‌های تودرتو را دهند.

نکته مهم اینجاست که طبق قوانین فوق یک حلقه تکرار یا بطور کامل داخل حلقه تکرار دیگر است و یا بطور کامل خارج آن قرار می‌گیرد و هیچگاه حلقه های روی هم افتاده نخواهیم داشت.

از جمله اولین تلاشها در زمینه ساخت زبانهای برنامه نویسی ساخت‌یافته، زبان پاسکال بود که توسط پروفسور نیکلاس ویرث در سال ۱۹۷۱ برای آموزش برنامه نویسی ساختیافته در محیطهای آموزشی ساخته شد و بسرعت در دانشگاهها رواج یافت. اما بدلیل نداشتن بسیاری از ویژگیهای مورد نیاز مراکز صنعتی و تجاری در بیرون دانشگاهها موفقیتی نیافت.

کمی‌بعد زبان C ارائه گردید که علاوه بر دارا بودن ویژگیهای برنامه نویسی ساختیافته بدلیل سرعت و کارایی بالا مقبولیتی همه گیر یافت و هم اکنون سالهاست که بعنوان بزرگترین زبان برنامه نویسی دنیا شناخته شده است.

[ویرایش] مراحل اجرای یک برنامه C

برای اجرای یک برنامه C ابتدا باید آن را نوشت. برای اینکار می‌توان از هر ویرایشگر متنی موجود استفاده کرد و سپس فایل حاصل را با پسوند .C ذخیره نمود (فایلهای C++ با پسوند.CPP ذخیره می‌گردند). به این فایل، کد مبدأ (source code) گفته می‌شود. مرحله بعدی تبدیل کد مبدا به زبان ماشین است که به آن کد مقصد (object code) گفته می‌شود. همانطورکه قبلا نیز گفته شد برای اینکار از یک برنامه مترجم بنام کامپایلر استفاده می‌شود. کامپایلرهای متعددی برای زبان C توسط شرکتهای مختلف و برای سیستم عاملهای مختلف نوشته شده است که می‌توانید برحسب نیاز از هریک از آنها استفاده نمایید. اما هنوز برنامه برای اجرا آماده نیست. معمولا برنامه نویسان از در برنامه های خود از یک سری از کدهای از پیش آماده شده برای انجام عملیات متداول (مانند محاسبه جذر و یا سینوس) استفاده می‌کنند که برنامه آنها قبلا نوشته و ترجمه شده است. این برنامه ها یا در قالب کتابخانه‌های استاندارد توسط شرکتهای ارائه کننده نرم افزار عرضه شده است و یا توسط دیگر همکاران برنامه نویس اصلی نوشته و در اختیار وی قرار داده شده است. در این مرحله باید کد مقصد برنامه اصلی با کدهای مربوط به این برنامه های کمکی پیوند زده‌شود. برای اینکار نیاز به یک پیوند‌زننده (Linker) داریم و نتیجه این عمل یک فایل قابل اجرا خواهد بود (در سیستم عامل ویندوز این فایل پسوند .EXE خواهد داشت). مرحله بعدی اجرای برنامه و دادن ورودیهای لازم به آن و اخذ خروجیها می‌باشد. در شکل زیر این مراحل نشان داده شده اند.

تصویر:Sample program with input output.GIF
یک برنامه ساده با ورودی و خروجی

مسلما طی مراحل بالا برای اجرای هر برنامه زمانبر می‌باشد، بهمین دلیل اکثر تولید کنندگان کامپایلرها، محیطهایی را برای برنامه نویسی ارائه کرده اند که کلیه مراحل بالا را بطور اتوماتیک انجام می‌دهند.

به این محیطها IDE (Integrated Development Environment) یا محیط مجتمع توسعه نرم‌افزار گفته می‌شود. این محیطها دارای یک ویرایشگر متن می‌باشند که معمولا دارای خواص جالبی همچون استفاده از رنگهای مختلف برای نشان دادن اجزای مختلف برنامه مانند کلمات کلیدی و قابلیت تکمیل اتوماتیک قسمتهای مختلف برنامه می‌باشد. پس از نوشتن برنامه و با انتخاب گزینه ای مانند Run کلیه عملیات فوق بطور اتوماتیک انجام شده و برنامه اجرا می‌گردد. علاوه براین، این محیطها معمولا دارای امكانات اشكالزدایی برنامه (Debug) نیز می باشند كه شامل مواردی همچون اجرای خط به خط برنامه و یا دیدن محتویات متغیرها در زمان اجرا است. چند محیط معروف برنامه نویسی عبارتند از :

[ویرایش] خطاهای برنامه نویسی

بنظر می‌رسد خطاها جزء جداناپذیر برنامه ها هستند. بندرت می‌توان برنامه ای نوشت که در همان بار اول بدرستی و بدون هیچگونه خطایی اجرا شود. اما خطاها از لحاظ تاثیری که بر اجرای برنامه ها می‌گذارند، متفاوتند. گروهی ممکن است باعث شوند که از همان ابتدا برنامه اصلا کامپایل نشود و گروه دیگر ممکن است پس از گذشت مدتها و در اثر دادن یک ورودی خاص به برنامه، باعث یک خروجی نامناسب و یا یک رفتار دور از انتظار (مانند قفل شدن برنامه) شوند. بطور کلی خطاها به دو دسته تقسیم می‌شوند:

  1. خطاهای نحوی (خطاهای زمان کامپایل): این خطاها در اثر رعایت نکردن قواعد دستورات زبان C و یا تایپ اشتباه یک دستور بوجود می‌آیند و در همان ابتدا توسط کامپایلر به برنامه نویس اعلام می‌گردد. برنامه نویس باید این خطا را رفع کرده و سپس برنامه را مجددا کامپایل نماید. لذا معمولا این قبیل خطاها خطر کمتری را در بردارند.
  2. خطاهای منطقی (خطاهای زمان اجرا): این دسته خطاها در اثر اشتباه برنامه نویس در طراحی الگوریتم درست برای برنامه و یا گاهی در اثر درنظر نگرفتن بعضی شرایط خاص در برنامه ایجاد می‌شوند. متأسفانه این دسته خطاها در زمان کامپایل اعلام نمی‌شوند و در زمان اجرای برنامه خود را نشان می‌دهند. بنابراین، این خود برنامه‌نویس است که پس از نوشتن برنامه باید آن را تست کرده و خطاهای منطقی آن را پیدا کرده و رفع نماید. متاسفانه ممکن است یک برنامه‌نویس خطای منطقی برنامه خود را تشخیص ندهد و این خطا پس از مدتها و تحت یک شرایط خاص توسط کاربر برنامه کشف شود. بهمین دلیل این دسته از خطاها خطرناکتر هستند. خود این خطاها به دو دسته تقسیم می‌گردند:
    1. خطاهای مهلک: در این دسته خطاها کامپیوتر بلافاصله اجرای برنامه را متوقف کرده و خطا را به کاربر گزارش می‌کند. مثال معروف این خطاها خطای تقسیم بر صفر می‌باشد.
    2. خطاهای غیرمهلک: در این دسته خطا،d. اجرای برنامه ادامه می‌یابد ولی برنامه نتایج اشتباه تولید می‌نماید. بعنوان مثال ممکن است دراثر وجود یک خطای منطقی در یک برنامه حقوق و دستمزد،e. حقوق کارمندان اشتباه محاسبه شود و تا مدتها نیز کسی متوجه این خطا نشود!

با توجه به آنچه گفته شد، در می‌یابیم که رفع اشکال برنامه ها بخصوص خطاهای منطقی از مهمترین و مشکلترین وظایف یک برنامه نویس بوده و گاهی حتی سخت‌تر از خود برنامه‌نویسی است! بهمین دلیل است که بسیاری از شرکتها(همانند مایکروسافت) ابتدا نسخه‌ی اولیه نرم‌افزار خود را در اختیار کاربران قرار می‌دهند تا اشکالات آن گزارش شده و رفع گردد. بسیار مهم است که در ابتدا سعی کنید برنامه‌ای بنویسید که حداقل خطاها را داشته باشد، در گام دوم با آزمایش دقیق برنامه خود هرگونه خطای احتمالی را پیدا کنید و در گام سوم بتوانید دلیل بروز خطا را پیدا کرده و آنرا رفع نمایید. هر سه عمل فوق کار سختی بوده و نیاز به تجربه و مهارت دارد.

آخرین نکته اینکه در اصطلاح برنامه نویسی به هرگونه خطا، bug و به رفع خطا debug گفته می‌شود.

[ویرایش] یك برنامه نمونه

در این قسمت برای آشنایی اولیه با زبان C یك برنامه نمونه آورده شده است كه بدون هیچ تغییری در محیط BorlandCPP قابل اجرا است.

<source lang="c"> // This Program Computes the Area of a Circle

  1. include <stdio.h>

int main() {

 int radius;
float area;
 printf( "please enter radius : " );
scanf( "%d", &radius );
area = 2 * 3.14 * radius;
printf( "Area is %f \n", area );

} </source>

please enter radius : 10
Area is 62.8


درمورد برنامه فوق به نکات زیر توجه کنید:


درباره وبلاگ

بسم الله الرحمن الرحیم
پیام از مدیر وبلاگ: فرشید احمدی
به شما كاربر گرامی سلام عرض می كنم . امیدوارم در این وبلاگ دقایقی خوبی را سپری كنید . برای آگاهی از امكانات این وبلاگ خواهشمندم كه تا آخر صفحه این وبلاگ را مشاهده نمایید .
از حسن انتخابتون متشکرم

(-_-)(-_-)(-_-)(-_-) (-_-)(-_-)(-_-)
مدیر وبلاگ : شاهرخ احمدی

آخرین پست ها

جستجو

نظرسنجی

  • شما پرسپولیسی هستین یا استقلالی




نویسندگان