آموزش پایه ای زبان برنامه نویسی C

بازدید56.7kپست ها5آخرین فعالیت9 سال پیش
0
0

همانطور که میدانید زبان C در سال 1972 توسط آقای ریچی طراحی شد. علت نامگذاری زبان C این است که چون بعد از زبان B طراحی شده است آن را C نامیده اند .
برنامه نویسان زبان های برنامه نویسی را به سه دسته مختلف زبان های سطح بالا . زبان های میانی و زبان های سطح پایین طبقه بندی می کنند . زبان C در این طبقه بندی در جمع زبانهای میانی قرار می گیرد علت آن هم این است که چون همانند زبان های سطح پایینی مثل زبان اسمبلی می تواند مستقیما به حافظه دسترسی داشته باشد و همچون زبان سطح بالای پاسکال قابلیت خوانایی بالایی دارد ...
زبان C جزو یکی از قدرتمند ترین زبان های موجود می باشد (بوده و هست )..قابلیت های انعطاف بالای این برنامه قابلیت بهره برداری از سخت افزار و... جزو عوامل قدرتمند نگه داشتن این زبان می باشند .

majidonline.com

0

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

1-تعین نیازهای برنامه
2-تحلیل برنامه
3-طراحی الگوریتم برنامه
4-پیاده سازی الگوریتم
5-تست و کنترل برنامه
6-ذخیره برنامه


یک مثال : فرض کنید از ما می خواهند برنامه ای بنویسیم تا میانگین دو عدد را پیدا کند ؟

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

همانطور که می بینید این گونه ای از پیاده سازی یک طرح برای برنامه(الگوریتم برنامه ) است که سپس می توان آن را به شکل کد در آورد و پیاده سازی کرد ....
آیا به نظرتان این طرح (الگوریتم )نمی تواند در تمام برنامه ها یکسان باشد؟

0

يكي از بهترين مشخصه هاي اين زبان اين است به هيچ سخت افزار يا سيستمي بسته نيست.
اين باعث مي شود تا برنامه هايي بنويسيد كه بدون هيچ تغييري در تمام ماشين ها اجرا ميشود.در واقع اين زبان داراي مشخصه ي "قابليت حمل"است.مثلا شما برنامه هايي را به اين زبان در يك نوع كامپيوتر مثل Ibm نوشته شده اند؛بدون انجام تغييرات يا تغييارات اندك در كامپيوترهاي ديگر قابل استفاده اند.
 c ساخته شده،تاثير گرفته و تست شده به وسيله كار برنامه نويسان است.نتيجه آخر اين است كه C برنامه اي را مي دهد كه برنامه نويس مي خواهد.

0

اولین برنامه :
در پست های قبل تا حدودی با الگوریتم و طرح آشنا شدیم و چند دستور پایه ای زبان سی را فرا گرفتیم .در این پست قصد دارم تا با نوشتن اولین برنامه شما را تا حدی با دستورات گفته شده آشنا کنم ..
همانند اکثر آموزش زبان های برنامه نویسی ما هم اولین برنامه خود را با برنامه hello world آغاز خواهیم کرد ..در این برنامه ما قصد داریم تا تنها یک نوشتهhello world را در خروجی چاپ کنیم .

کد:

#include <stdio.h>
void main()
{
  printf("hello world");
}

کد نویسی این برنامه به صورتی که من در بالا نوشته ام است.من با دادن توضیحات شما را با تک تک کد های این برنامه آشنا می کنم .
خوب ببینید همانطور که گفتیم ما می خواهیم برنامه ای بنویسیم که یک نوشته را در صفحه خروجی عینا چاپ کند ... همانطور که به یاد دارید گفتم برای چاپ بر روی صفحه نمایش از دستور printf استفاده می کنیم (و متذکر شدم که اگر بخواهیم عبارتی عینا چاپ شود باید مابین "" قرار گیرد ).

یادتان می آید که گفتم هر تابعی که در برنامه می نویسیم (مثل همین printf ) باید به برنامه تعریفش کنیم که آقا این تابع فلان کار را انجام میدهد ... (البته نگران نباشید ما نباید برای برنامه این تعریفات را بنویسیم خود نویسنده برنامه این کار را انجام داده ..تنها لازم است ما جای این تعریفات را به برنامه بگوییم ..... دقت کنید هر تابع(هر چند تابع ) در یک فایل سرآیند قرار دارد که داخل آن فایل ها این تعریفات تابع به برنامه قرار دارد..پس فقط لازم است تا اسم این فایل (یا فایل های ) سرآیند را با توجه به تابع مربوطه به اول کد نویسی اضافه کنیم ) ...

اسم فایل سرآیند(header file) ای که در آن تعریفات printf (و چند تابع دیگر ) وجود دارد stdio است ..
طریقه معرفی این فایل هم بدین گونه است که قبل از شروع برنامه بنویسید <include <stdio.h#

دقت کنید جمله include# در تعریف همه این فایل های سرآیند ثابت است تنها جمله بین <> بسته به نوع تابع ها تغیر می کند ...

مورد دیگر نیز h. بعد از stdio است که آن نیز به برنامه میگوید این فایل از نوع فایل سرآیند است (header file ) پس باید بعد از قرار دادن نام هر کدام از فایل های سر آیند بین <> یک h. نیز بعد از نام آن فایل سرآیند بگذاریم

;("printf("hello world

این هم کد چاپ کردن نوشته ما است .. همانطور که گفتم باید در زبان سی در انتهای هر خط کد نویسی (بجز بعضی مورد ها ) باید یک**;** بگذاریم

خوب اگر دقت کنید دیگر چیز خاصی در کد نویسی این برنامه نمی ماند بجز یک خط و آن هم ()void main است ....این دستور چیست؟؟؟

دقت کنید زبان سی به صورت پیش فرض دوست دارد تا به شکل تابعی عمل کند (در این مورد بعدا مفصل بحث خواهیم کرد) و تمایل دارد یک مقدار را به جایی برگرداند ..ما فعلا نمی خواهیم تا یک همچین اتفاقی رخ دهد پس با نوشتن این یک خط مانع از این کار می شویم (تا به توضیحاتش برسیم یادتان باشد فعلا در ابتدای هر برنامه {مابینinclude# و } در یک خط این دستور را بنویسید )

خوب برنامه اول ما تمام شد

شاید بگویید "وای یه نوشتن hello world این قدر مکافات داشتش خدا بخیر کنه" و ممکن است کمی دلسرد شوید و بگویید باید خیلی سخت باشد اما باور کنید بسیار آسان تر از چیزی که شنا فکر می کنید است این فقط تعریفاتش بود تا با کار آشنا شوید وگر نه از این به بعد که فهمیدیم چه هست دیگر آسان می شود.

0

آموزش کامپایل کردن برنامه اول توسط ویژوال سی پلاس پلاس :

این بخش را برای دوستانی که بر روی دستگاهشان برنامه ++ Visual C را نصب کرده اند توضیح می دهم ...
دقت داشته باشید که این روش کامپایل کردن برای تمامی برنامه های دیگری که می نویسید هم یکسان خواهد بود (البته شایان ذکر می شوم که این راه برای ابتدای کار است و در ادامه راه اصلی را به شما آموزش خواهم داد ..اما چون در حال حاضر تنها با سی کار داریم من این راه را برای جلوگیری از سردرگمی شما در برنامه ++ Visual C توصیه می کنم )

فرض کنید ما کد برنامه خود را در محیطی مثل Notepad نوشته ایم ... گزینه Save As را که در بخش File است زده و برنامه را به نام دلخواه خود و با پسوند c در محلی که مورد نظرمان است ذخیره می کنیم فرضا من می خواهم اسم برنامه خود را با نام Dreamer ذخیره کنم پس باید به صورت Dreamer.c آن را ذخیره کنیم ...
سپس به جایی که تعیین کرده ایم می رویم و مشاهده می کنیم که یک آیکون با شکل c در آن محل ذخیره شده ..بر روی آن دابل کلیک کرده تا برنامه ++Visual C باز شود ...برای کامپایل کردن برنامه به بخش Build که در نوار بالایی برنامه است می رویم و گزینه Compile را می زنیم تا برنامه ما را کامپایل کنید ( یا به جای طی این مراحل یک باره F7 + Ctrl را فشار دهیم ) .

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

و اگر برنامه دارای خطا باشد که تعداد خطا ها را می نویسد اگر اسکرول کنار آن نوار را مقداری بالا تر ببرید می توانید ببینید که خطا های شما چه می باشد (و اگر روی خطا ها دابل کلیک کنید مکان خطا در کد شما را نشان می دهد )

دقت داشته باشید تا زمانی که Error ها را به صفر نرسانید برنامه شما اجرا نمی شود ولیwarning ها مانعی برای اجرا نمی باشند (همانطور که از نامش پیداست فقط هشدار است )

حال که برنامه را کامپایل کردیم وقت آن رسیده تا برنامه را به فایل EXE تبدیل کنیم برای این کار گزینه زیر کامپایل که همانBuild...exe را می زنیم ( یا F7 ) وقتی این کار را انجام دادیم و برنامه ایرادی نگرفت فایل EXE ما ساخته شده و ما می توانیم نتیجه زحمات خودمان را ببینیم ..
به جایی که فایل خود را ذخیره کرده بودیم می رویم مشاهده می کنیم که چندین آیکون جدید نیز ساخته شده است در این میان یک پوشه (Folder) ساخته شده است به نام Debug خوب وارد این پوشه شوید و فایلی خود را که به همان نامی که دخیره کرده بودید را با پسوند EXE مشاهده کنید ...می توانید آن را اجرا کنید تا نتیجه کار خود را ببینید.

0

حلقه های تکرار

ما هنگامی که می خواهیم دستور ( یا دستورات ) معینی به تعداد مشخصی بار در برنامه اجرا شود از حلقه ها استفاده می کنیم

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

1-حلقه for : این حلقه یکی از پرکاربرد ترین حلقه ها در زبان سی می باشد و شکل کلی نوشتن حلقه به صورت زیر می باشد
کد:

for( نوع افزایش ; مقدار نهایی ; مقدار اولیه )

همانطور که در بالا می بینید برای تشکیل حلقه for ما نیاز به تعین سه چیز داریم ..(به ترتیب از سمت چپ ) ..در ابتدا باید نقطه شروع خود را به حلقه بگوییم (یا به عبارتی دیگر مقدار اولیه ) سپس باید نقطه پایان را به حلقه بگوییم (مقدار نهایی) و در پایان باید نحوه افزایش را برای حلقه مشخص کنیم (کاهشی یا افزایشی یا ....
همانطور که می بینید برای تفکیک این دستورات از هم از ; استفاده می شود

--- در زیر به عنوان مثال حلقه ای را می بینیم که از 1 شروع شده و تا 8 ادامه دارد و نحوه افزایش آن به صورت افزایشی (یک پله یک پله افزایش است )
کد:

for(i=1;i<8;i++)

---حلقه زیر هم حلقه ای است که از 4 شروع می شود و تا 1 ادامه دارد و نوع آن نیز کاهشی است
کد:

for(i=4;i>1;i--)

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

خوب حال که با نوشتن این حلقه آشنا شدید نحوه کار آن در برنامه را خدمتتان عرض خواهم کرد ...

اگر ما تنها یک دستور داشتیم که بخواهیم در این حلقه ما اجرا شود دستور را در خط پایین حلقه خود می نویسیم و در انتهای آن یک ; می گذاریم ...

به عنوان مثال تکه کد زیر حلقه ای را نشان می دهد که به ازای a=0 تا a<10 واژه Dreamer را چاپ می کند یعنی اینکه در خروجی ما واژه ایران 10 بار چاپ می شود
کد:

for(a=0;a<10;a++)
printf("Dreamer");

حال اگر ما بیش از یک دستور برای تکرار شدن در این حلقه داشته باشیم باید این دستورات را در میان } و { قرار دهیم و در اتهای { نیز از ; استفاده کنیم ..برای مثال تکه کد زیر حلقه ای را نشان می دهد که به ازای a=1 تا a<5 واژه ایران را چاپ می کند و مقدار a را با sum جمع می کند
کد:

for(a=1;a<5;a++)
{
printf("IRAN");
sum+=a;
};

(البته قابل ذکر است که برای یک دستور هم می توان از شیوه بالا استفاده کرد )

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.