آموزش مبانی کامپیوتر و برنامه نویسی به زبان c

c programing آموزش برنامه نویسی c قسمت 2

همانطور که در قسمت اول خلاصه ای از توضیحات و روش های طراحی یک الگورتیم بیان شد در این قسمت نحوه کار با کامپایلر های بورلند c و توربو c و همچنین ساختار برنامه گفته خواهد شد.

برای اینکار ابتدا وارد محیط برنامه بورلند c شوید

Start > All programs > Borland c++ 5.02

پس ار ورود به محیط برنامه بورلند c پروژه جدیدی ایجاد کنید برای اینکار مراحل زیر را طی کنید :

File > New > Text Edit

پس از انجام مراحل وارد محیط برنامه نویسی یا همان کدنویسی کامپایلر میشوید و میتوانید برنامه و یا … مورد نطر خود را در آن وارد کنید در ادامه توضیحات بیشتری داده میشود.

ابتدا خلاصه ای از مراحل برنامه نویسی و نکات کلیدی را به شما خواهیم گفت به توضیحات زیر توجه نمائید :

***پس از اینکه الگوریتم را به برنامه تبدیل کرده و برنامه تان را نوشتید , باید آن را وارد کامپیوتر نموده , ترجمه و اجرا نمایید , برای اینکار برنامه را در یک محیط ویراستاری وارد میکنیم , پسوندی که فایل ها در زبان c ذخیره میشوند c میباشد.

مرحله بعدی ترجمه برنامه و اشکال زدایی برنامه است , اگر برنامه اشکالات نحوی داشته باشد , باید آن ها را برطرف کرده و برنامه را دوباره ترجمه کنید , این مرحله را تا زمانی که کلیه اشکالات برنامه برطرف شوند باید تکرار کنید , پس از ترجمه برنامه فایل با پسوند obj ایجاد میشود که به زبان ماشین می باشد.***

برای اینکه شما را با نحوه انجام عملیات ورود , نگهداری , تست و اجرای برنامه ها در زبان c آشنا کنیم به مثال زیر دقت کنید :

برنامه ای به زبان c بنویسید که دو عدد را از ورودی خوانده و حاصل جمع آن ها را در خروجی چاپ نماید؟

cab 300x211 آموزش برنامه نویسی c قسمت 2

به طور کلی ساختار برنامه در زبان c به صورت زیر میباشد :

<فایل سرآیند> include#

 () int main#

}

اعلان متغییرها

دستورات

                                                                                                     ;Return 0

{

  همانطور که در ساختار ملاحظه میکنید برنامه ها در زبان c را مجموعه ای از دستورات و توابع تشکیل میدهند که در بخش های آینده توابع را به تفضیل بررسی میکنیم , توجه کنید بدنه اصلی برنامه تابعی به نام main می باشد.

پس این تابع یعنی تابع main یکی از اجزای مهم در زبان c میباشد , علاوه بر این تابع , توابع دیگری وجود دارند که از قبل نوشته شده و به همراه کامپایلر زبان c ارائه میشوند و در برنامه ها میتوانید از آن ها استفاده کنید.

این توابع و بسیاری از اطلاعاتی که کامپایلر برای اجرای برنامه به آن نیاز دارد , در فایل به نام سرآیند یا (header) قرار دارند این فایل ها در شاخه ای به نام include قرار دارند که برای اتصال این فایل ها به برنامه باید بدانیم هر تابع در کدام فایل header قرار دارند به عنوان مثال تابع ()printf در فایلی به نام stdio.h قرار دارد.

برای انجام اتصال بین فایل های سرآیند و توابع باید از دستور include# استفاده کنیم.

باید توجه داشته باشیم که نباید بعد از دستور از علامت ; سمی کلون استفاده کنیم این دستور به صورت زیر به کار برده میشود :

<نام فایل سرآیند>include#

 مورد دیگری که باید به آن توجه نمایید وجود دستور ;Return 0 در انتهای تمام برنامه ها می باشد با این کار برنامه عدد ۰ صفر را به سیستم عامل باز می گرداند تا سیستم عامل توجه شود برنامه با موفقیت کامل به پایان رسیده است این مقدار باید از نوع int (در فصل بعد درباره تمام داده های عددی بحث خواهد شد) باشد , لذا تابع main می خواهد مقداری از نوع int برگرداند پس باید خود نیز در ابتدای برنامه از نوع int تعریف شود بنابراین تابع ()main در برنامه باید به صورت زیر تعریف شود :

()int main

تعریف انواع داده ها :

به طور کلی هدف از برنامه نویسی ورود داده های اولیه به کامپیوتر و تبدیل آن ها به اطلاعات مورد استفاده برای کاربر می باشد , بنابراین داده ها نقش مهمی در برنامه نویسی دارند در زبان c پنج نوع داده وجود دارد که به شرح آن ها می پردازیم :

  1. داده هایی از نوع char : برای ذخیره داده هایی از نوع کارکتر مانند : ‘p’و’a’ به کار میرود.
  2. داده هایی از نوع int : که برای ذخیره داده هایی از نوع صحیح به کار میرود مانند : ۷۸ به کار میرود.
  3. داده هایی از نوع float : برای ذخیره اعداد اعشاری مانند : ۱۲,۳۶ به کار میرود.
  4. داده هایی از نوع double : برای ذخیره داده هایی از نوع اعضاری که طول شان بیشتر از float است به کار میرود.
  5. داده هایی از نوع void که تهی یا خالی میباشند.

تعریف متغییر ها در برنامه :

متغییر ها را میتوان به هنگام تعریف مقدار دهی کرد , در ادامه میخواهیم ۳ متغییر تعریف کرده و آن ها را به هنگام تعریف مفدار دهی نماییم.

همانطور که گفته شد یک برنامه در زبان c از توابع مختلفی تشکیل می شود که باید در ابتدای برنامه عمل الصاق آن توابع به برنامه انجام شود در ادامه با استفاده از دستور include اینکار را انجام می دهیم به طوری که قبلا بیان شده است.

<نام فایل سرآیند>include#

فایل سرآیند میتواند تابع های مختلفی باشد مانند stdio.h و یا condio.h و غیره باشد.

پس از آن از دستور :

 ()int main

استفاده میکنیم که تابع اصلی برنامه میباشد

حال اگر میخواهید چند دستور وارد کنید از علامت مجموعه } برای شروع و پایان { استفاده میکنیم در غیر اینصور لزومی به نوشتن آن نداریم.

در این مرحله نوبت به اعلان یا تعریف متغییر ها میباشد برای مثال ما متغییر هایی از نوع صحیح و اعشاری به صورت زیر تعیرف خواهیم کرد و آن ها را مقدار دهی اولیه میکنیم :

;int a,b=5,c

;float m=2.5,n

همانطور که مشاهده میکنید متغییر a از نوع صحیح بدون مقدار اولیه میباشد و متغییر b دارای مقدار ۵ میباشد و c بدون مقدار میباشد.

متغییر از نوع اعشاری نیز m دارای مقداردهی اولبه ۲٫۵ و n بدون مقداردهی میباشد که مشخص نیست چه عددی است هر عددی میتواند باشد

توجه کنید متغییر هایی که دارای مقدار اولیه نیست مشخص نیست که برابر با چه عددی میباشند.

در ادامه میخواهیم توسط دستور انتساب به متغییر c عدد ۶ را اختصاصی دهیم :

;c=6

اکنون میخواهیم با استفاده از تابع() scanf یک عدد را از کاربر دریافت کنیم و آن را در متغییر n قرار دهیم در بخش بعد به معرفی بیشتر تابع scanf می پردازیم تا شما بیشتر با آن آشنا شوید.

تعریف مقادیر ثابت ها:

با استفاده از دستور const میتوانیم ثابت های مورد نظر را تعریف کنیم , ساختار کلی ثابت ها به صورت زیر میباشد :

  مقدار ثابت = نام ثابت نوع داده const

در ساختار بالا نوع ثابت یکی از انواعی که در قسمت متغییرها بررسی کردیم نوشته میشود , نام ثابت از همان قانون نام گذاری متغییر ها استفاده میکند مقدار ثابت بعد از علامت = قرار میگیرد.

به تصویر زیر دقت کنید :

c programing tamrin 300x209 آموزش برنامه نویسی c قسمت 2در این قطعه از برنامه ثابتی با نام pi از نوع float با مقدار ۳٫۱۴ تعریف شده است , برای مثال در صورتی که بخواهیم مساحت و محیط دایره را محاسبه کنیم لازم نیست هر بار ۳٫۱۴ را وارد کنیم بلکه از ثابت pi استفاده میکنیم , در این حالت اگر بخواهیم دقت محاسبه را بالا ببریم لازم نیست که تمامی خطوط را تغییر دهیم بلکه فقط مقدار ثابت را از ۳٫۱۴ میتوانیم به ۳٫۱۴۱۵ تغییر می دهیم.

تعریف انواع عملگرها :

به وسیله عملگرها اعمال خاصی بر روی یک یا دو مقدار صورت میگیرد , به این مقادیر عملوند میگویند , به عنوان مثال در عبارت ۸-b عدد ۸ و متغییر b عملوندهای عملگر – میباشند عملگرها به چهار دسته تقسیم میشوند :

محاسباتی

منطقی

رابطه ای

و عملگرهای بیتی تقسیم میشوند.

 به عملگرهایی که اعمال ریاضی (+-*/) را بر روی عملوندشان انجام میدهند , عملگرهای محاسباتی میگویند.

از دیگر عملگرهای محاسباتی عملگر افزایش (++) میباشد که یک واحد به عملوندش اضافه میکند و نتیجه را در آن عملوند قرار میدهد.

عملگر کاهش (–) درست عکس عملگر افزایش , عمل میکند و یک واحد از عملوندش کم میکند.

عملگر دیگر عملگر باقیمانده % است که باقیمانده تقسیم را نمایش میدهد.

به مثال زیر توجه کنید :

amalgar آموزش برنامه نویسی c قسمت 2

در مثال بالا دستور ;++s یک واحد به s اضافه میکند و مقدار آن برابر با ۱۱ میشود , در خط بعدی دستور ;c– یک واحد از مقدار متغییر c می کاهد میکند و مقدار آن برابر با ۵ میشود.

دقت کنید که در این نوع دستورات چه عملوند قبل از عملگر و چه بعد از آن باشد هیچ فرقی در عملکرد دستورات ندارد , ولی در شرایط دیگری محل قرار گیری مهم میباشد در جدول زیر تمام عملگرهای محاسباتی به همراه یک مثال نمایش داده شده اند.

amalgaramalvand 300x207 آموزش برنامه نویسی c قسمت 2

ترکیبی از متغییر ها , ثابت ها و عملگرها عبارات را تشکیل میدهند , به عنوان مثال x+y یک عبارت محاسباتی می باشد , اگر عملگر افزایش و کاهش در عبارت بعد از عملوند باشند مقادیرشان تغییری نمیکند و مقدار فعلی عملوند مورد استفاده قرار میگیرد.

در صورتی که یک عبارت دارای چندین عملگر باشد عملگرها به ترتیب تقدم شان اجرا میشوند , در جدول زیر تقدم عملگرها به ترتیب از بالا به پایین نمایش داده شده است , بعضی از عملگرها از نظر حق تقدم در یک سطح میباشند برای مثال عملگرهای ضرب و تقسیم در یک سطح قرار دارند.

amalgartable آموزش برنامه نویسی c قسمت 2

عملگرهای رابطه ای : به عمگرهایی که بین دو عملوند رابطه برقرار میکنند عملگرهای رابطه ای میگویند که عبارتند از :

(>) , (=>) , (<) , (<=) , (==) , (=!) که به تریتیب از سمت چپ به راست میشوند برابر با کوچکتر , کوچکتر مساوی , بزرگتر , بزرگتر مساوی , مساوی و نامتساوی میباشند , در مثال زیر بررسی میشود که آیا s برابر با b میباشد یا خیر؟

;s==b

عملگرهایی که بر روی عبارات منطقی به کار میروند عملگرهایی منطقی میباشند , عبارات منطقی دارای دو ارزش درست (غیر صفر) و نادرست (صفر) میباشند.

عملگرهای منطقی عبارتند از :

عملگر ! نقیض : وقتی درست است که عملوند آن دارای ارزش نادرست باشد.

عملگر && (و) : زمانی درست است که هر دو عملوند دارای ارزش درست باشند.

عملگر || (یا) : زمانی درست است که یکی از عملوندهای آن دارای ارزش درست باشد.

در جدول رو به رو حق تقدم عملگرهای منطقی و رابطه ای از بالا به پایین به ترتیب اولویت نمایش داده شده است.

amalgar 1 آموزش برنامه نویسی c قسمت 2

اگر عملگرهای محاسباتی به همراه علامت = به کار روند عملگرهای ترکیبی ایجاد میشوند.

که در جدول زیر این عملگرها به همراه مثالی اورده شده است :

amalgar 2 300x146 آموزش برنامه نویسی c قسمت 2

عملگرهای دیگری نیز وجود دارند که به عملگرهای بیتی معروفند از این عملگرها برای دستکاری بیت ها استفاده میشود , در جدول زیر این عملگرها را مشاهده میکنید :

amalgar 3 آموزش برنامه نویسی c قسمت 2

در این جدول میتوانید نحوه عملرکرد عملگرهای بیتی را مشاهده کنید :

amalgar 4 300x67 آموزش برنامه نویسی c قسمت 2

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

تعداد شیفت << متغییر

تعداد شیفت >> متغییر

در این دستورات متغییر به تعداد مشخص شده در قسمت تعداد شیفت باید به سمت راست (خط اول) یا چپ (خط دوم) شیفت داده شود.

 عملگر ? علامت سوال : برای ارزیابی یک عبارت به کار میرود.

   عبارت سوم : عبارت دو ? عبارت یک=متغییر

اگر عبارت یک دارای ارزش درست باشد عبارت دو محاسبه شده و در متغییر قرار میگیرد و اگر دارای ارزش نادرست باشد عبارت سوم محاسبه شده و در متغییر قرار میگیرد برای مثال دستور زیر را در نظر بگیرید :

amalgar 5 آموزش برنامه نویسی c قسمت 2

در این مثال اگر مقدار m+1>12 محاسبه میشود چنانچه m+1 بزرگتر از ۱۲ باشد , مقدار عبارت m-2 محاسبه شده و در متغییر n قرار میگیرد و اگر مقدار m+1 کوچکتر از ۱۲ باشد مقدار عبارت سوم محاسبه شده و حاصل در متغییر n قرار میگیرد.

عملگر , کاما : با استفاده از عملگر کاما میتوان چند عمل را در یک دستور قرار داد , به طوری که ابتدا عبارت سمت چپ محاسبه شده و سپس عبارت بعدی محاسبه گردد ضمن اینکه میتواند از نتیجه به دست آمده در عبارت اول در محاسبه عبارت دوم استفاده کرد شکل کلی استفاده از عملگر کاما به صورت زیر است :

 <عبارت ۲> , <عبارت ۱>=متغییر

به مثال زیر توجه کنید :

amalgar 6 1 آموزش برنامه نویسی c قسمت 2 در این مثال مقدار ۵ در متغییر b قرار گرفته سپس مقدار متغییر b در ۸ ضرب شده و نهایت باقیمانده بر ۲ محاسبه میشود و در متغییر a قرار میگیرد در این مثال چون (% و *) در یک تقدم مکانی قرار دارند عبارت سمت چپ به راست محاسبه میشود یعنی ابتدا * ضرب و سپس % باقیمانده محاسبه میشود.

عملگر sizeof : توسط عملگر sizeof میتوانیم مقدار فضایی که یک متغییر یا یک داده بر حسب بایت از حافظه را اشغال میکند محاسبه نماییم , شکل کلی این دستور به صورت زیر است:

; متغییر sizeof

; نوع داده sizeof

به مثال زیر توجه کنید :

amalgar 7 آموزش برنامه نویسی c قسمت 2

در این مثال ابتدا مقدار فصای اشغال شده توسط متغییر b محاسبه شده و در a قرار میگیرد و سپس طول نوع double محاسبه شده و در متغییر c قرار میگیرد.

 عملگر () پرانتز باز و بسته : آخرین عملگر مورد بحث عملگر (و) میباشد , هر عملگری داخل دو علامت (و) قرار بگیرد تقدم بالاتری نسبت به سایر عملگرها پیدا میکند به عنوان مثال در عبارت زیر ابتدا ۱+۴ محاسبه شده و سپس حاصل آن در عدد ۵ ضرب میشود , در صورتی که عملگر پرانتز نبود ۱+۴*۵ ابتدا ۵ در ۴ ضرب شده و سپس حاصل آن با عدد ۱ جمع میشد نتیجه به دست آمده در دو حالت ممکن با یکدیگر متفاوت میباشد.

;(۴+۱)*۵=E