رفتن به مطلب

ارسال های توصیه شده

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

دراین تاپیک به صورت گام به گام به اموزش برنامه نویسی با ++C (سی پلاس پلاس یا Borland C) پرداخته میشود

برنامه ++C را میتوانید ازلینک زیر دانلود نمایید.

پس از دانلود فایل را ازحالت زیپ خارج کرده ودر داخل پوشه روی Install کلیک کنید تا برنامه نصب شود سپس درمسیری که نصب کرده اید روی Bin کلیک کنید تا برنامه اجرا شود

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

نکته : این برنامه روی ویندوز 32 بیتی نصب میگردد.

لینک به دیدگاه

قسمت اول

-------

 

 

کليات و مفاهيم

هدف کلی

آشنایی با مفاهیم اولیه و ویژگیهای کلی زبانc

هدفهای رفتاری

 

پس از مطالعه این فصل انتظار می‌رود دانشجو بتواند:

1. تاریخچه پیدایش زبان c را بگوید.

2. ویژگیهای اصلی این زبان را شرح دهد.

3. کاراکترهای این زبان را تشخیص دهد.

4. ویژگی شناسه‌های c را بیان کند.

5. متغیرها را شناسایی کند.

6. قسمتهای مختلف برنامه نوشته شده به این زبان را شرح دهد.

 

مقدمه

 

در اوايل دهه 1970 ميلادی، «دنيس ريچي» در آزمایشگاه كمپاني بل زبان c را برای برنامه‌نويسي سيستمها طراحي کرد. اين زبان از دو زبان پيشين به نامهاي bcpl و b منتج شده است که ‌اين دو نيز در همين آزمایشگاه نوشته شدند. زبان c تا سال 1978 منحصر به استفاده در همين آزمایشگاه بود تا اينکه «ريچی» و «کرنيه» نسخه نهايي اين زبان را منتشر کردند. به سرعت مفسرهاي متعددي از c تهیه شد، ليکن براي جلوگيری از ناسازگاريهای ايجاد شده و نيز حفظ قابليت حمل زبان، استاندارد ansi تعاريف متحدالشکلي مطرح کرد. آنچه در اين کتاب مطرح می‌شود بر اساس همين استاندارد است. مفسر خود برنامه‌اي کامپيوتري است که برنامة سطح بالا دادة ورودي آن و برنامة ‌ايجاد شده به زبان ماشين خروجي آن را تشکیل می‌دهد.

به طور كلي ويژگيهاي مهم زبان c به اختصار به شرح زير است:

• زبان c به طور گسترده‌اي در دسترس است. مفسرهاي تجارتي آن در بيشتر کامپيوترهاي شخصي، ميني‌‌کامپيوترها و نيز در کامپیوترهای بزرگ قابل استفاده‌اند.

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

• برنامه‌هاي نوشته شده به زبان c به طور كلي مستقل از ماشين يا نوع كامپيوتر است و تقريباً تحت كنترل هر سيستم عاملي اجرا مي‌شود.

• مفسرهاي c معمولاً فشرده و كم ‌حجم‌اند و برنامه‌هاي هدف ايجاد شده با آنها در مقايسه با ساير زبانهاي برنامه‌سازي سطح بالا، خيلي كوچك و كارآمدند.

• برنامه‌هاي c در مقايسه با ساير زبانهاي برنامه‌سازي سطح بالا، به ‌راحتي قابل انتقال‌‌اند. دليل آن اين است كه c خيلي از ويژگيهاي وابسته به نوع كامپيوتر را در توابع كتابخانه‌اي خود منظور داشته است. بنابراين هر نسخه از c با مجموعه‌اي از توابع كتابخانه‌اي مخصوص به خود همراه است كه براساس ويژگيهاي كامپيوتر ميزبان مربوط نوشته شده است. اين توابع كتابخانه‌اي تا حدودي استاندارد است و معمولاً هر تابع كتابخانه‌اي در نسخه‌هاي متعدد c به شکل يكسان در دسترس است.

• c روش برنامه‌سازي ماژولار را پشتيباني مي‌كند. همچنين از نظر عملگرها نيز زبانی قوي است که عملگرهاي گوناگوني براي دستكاري روي داده‌ها در سطح بیت داراست.

• به طور کلي جامعيت، عموميت، خوانايي، سادگي، کارآيي و پيمانه‌اي بودن که همگي از مشخصات برنامه‌ای ‌ايده‌‌آل‌اند در زبان c پياده‌‌سازي مي‌‌شوند.

ويژگيهاي فوق موجب شده زبان c يکي از قوي‌ترين و محبوب‌ترين زبانهاي برنامه‌‌سازي در دنيا مطرح شود.

كاراكترها

زبان برنامه‌نويسي c مجموعه‌اي خاص از كاراكترها را شناسايي مي‌كند. اين مجموعه که در حکم مصالح اوليه جهت شکل دادن به اجزای اصلي برنامه‌اند عبارت‌اند از:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

انواع داده‌ها

 

هدف کلی

 

آشنایی با انواع داده‌های زبان برنامه‌نویسی C و کاربردها و شیوه‌های معرفی آنها

 

هدفهای رفتاری

 

از دانشجو انتظار می‌رود پس از خواندن این فصل:

1. انواع داده‌های زبان C را نام برد.

2. مقادیر متغیر و ثابت داده‌ها را بشناسد.

3. انواع مقادیر ثابت را نام برد و تشریح کند.

4. داده‌های اسکالر و مجموعه‌ای را بشناسد.

5. چگونگی اعلان متغیرها در زبان C را بداند.

6. ویژگیهای داده‌های صحیح و شیوه‌های معرفی آنها را بداند.

7. ویژگیهای مقادیر ثابت صحیح بر مبنای 8، 10 و 16 و چگونگی معرفی آنها را بداند.

8. در داده‌های‌اعشاری، روشهای‌نوشتن‌ثابتهای‌با ممیزشناور را شرح‌دهدوکاربرد هریک‌را بداند.

9. در داده‌های کاراکتری کد اسکی و ebedic را تعریف کند.

10. تفاوت بین عدد و کاراکتر را در زبان C بداند.

11. طریقة شناساندن ثابتهای حرفی به مفسر را بداند.

12. طریقة شناسایی حروف کوچک و بزرگ را در کد اسکی بداند.

13. رشته یا ثابت رشته‌ای و طریقة معرفی آن را به مفسر بداند.

14. تفاوت ثابت حرفی و ثابت رشته‌ای تک‌حرفی را بداند.

15. مقداردهی اولیه متغیرها را بداند.

16. وظیفة‌ عملگر cast را شرح دهد.

17. داده‌های تهی و void را بشناسد.

18. پیش‌پردازنده و شیوه معرفی آن را بشناسد.

19. وظیفة فرمان #include و چگونگی تعریف آن را بداند.

20. وظیفة‌ فرمان #define و فواید آن را بداند.

مقدمه

 

دسته‌بندي داده‌ها به انواع مختلف، يكي از تواناييهاي جدید زبانهاي برنامه‌نويسي است. زبان C مجموعة کاملي از انواع داده‌ها را پشتیباني مي‌كند که عبارت‌اند از:

- داده‌هاي صحيح (integer)

- داده‌هاي اعشاري (floating point)

- داده‌هاي کاراکتری (character).

همچنين داده‌ها در زبانهاي برنامه‌‌‌نويسي به صورت مقادير ثابت و مقادير متغير به كار می‌روند. متغيرها در طول اجراي برنامه، مقادير مختلفي از داده‌ها را می‌پذيرند. اما مقادير ثابت مقاديري‌اند كه در طول برنامه تغيير نمي‌كنند. در زبان C چهار نوع ثابت وجود دارد که عبارت‌اند از ثابتهاي صحيح، ثابتهاي با مميز شناور، ثابتهاي کاراکتري و ثابتهاي رشته‌اي.

مقادير صحيح ثابت را مي‌توان علاوه بر روش معمول دهدهي، در مبناهاي هشت و شانزده نيز نوشت. مجموعه داده‌هاي از نوع صحيح و اعشاري را داده‌هاي از نوع محاسباتي يا arithmetic مي‌نامند. دو نوع ديگر از داده‌ها، نوع اشاره‌گر يا pointer و نوع شمارشي يا enumerated است، كه همراه با نوع محاسباتي، داده‌هاي نوع اسكالر ناميده مي‌شود. اين نوع داده‌ها را از اين لحاظ اسكالر مي‌نامند كه قابل مقايسه يا قابل سنجش با همنوع خودند. علاوه بر داده‌هايي از نوع اسكالر، داده‌هايي از نوع مجموعه‌اي وجود دارند از جمله آرايه‌، ركورد، ساختار و اجتماع كه در سازماندهي متغيرهايي مفیدند كه به طور منطقي به يكديگر مرتبط‌اند. اين نوع داده‌ها را نيز در فصلهای بعدي بررسي می‌کنیم.

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

 

اعلان، گروهي از متغيرها را به نوع داده خاصي مربوط مي‌سازد. در زبان C هر متغير، پيش از آنكه در دستوري از برنامه به كار رود، بايد تعريف شود. دستورهای مربوط به تعريف متغيرها، اطلاعات لازم در مورد نوع داده‌هايي را كه متغيرهاي مورد نظر مي‌پذيرند و اينكه چند بايت حافظه اشغال مي‌كنند و چگونگي تفسير آنها را در اختيار كامپايلر قرار مي‌دهند. اعلان شامل نوع داده و به همراه آن نام يک يا چند متغير است و به سميکولون ختم مي‌شود. براي اعلان يا تعريف متغيرهايي از نوع صحیح (integer) كلمة كليدي int و به دنبال آن اسامي متغيرهاي مورد نظر را كه با كاما از يكديگر تفكيك مي‌شوند مي‌نويسيم.

int a , b , c ;

البته مي‌توان هريك از متغيرها را در دستوري جداگانه و يا در سطري جداگانه معرفي كرد.

int a ;

int b ; int c ;

كه در سطر اول يک متغير اعلان شده و در سطر دوم با دو دستور جداگانه متغير دوم و سوم اعلان شده است. واضح است روش اول كه در آن هر سه متغير در يك سطر و با يك دستور اعلان شده ساده‌تر است. كلمات كليدي براي اعلان داده‌هايي از نوع اسكالر در جدول 2ـ1 نشان داده شده است.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

قسمت سوم

--------------

 

توابع ورودي و خروجي

 

هدف کلی

آشنایی با هشت تابع ورودی و خروجی زبان C

هدفهای رفتاری

 

انتظار می‌رود پس از مطالعه این فصل دانشجو:

1. با کاربرد و ویژگیهای تابع خروجی printf() آشنا شود.

2. فرامین فرمت را در تابع آرگومان‌دار ‌printf() بشناسد.

3. با کاربرد و ویژگیهای تابع ورودی scanf() آشنا شود.

4. تفاوت و تشابه توابع printf() و scanf() را بداند.

5. با کاربرد و ویژگیهای تابع ورودی getchar() آشنا شود.

6. با کاربرد و ویژگیهای تابع خروجی putchar() آشنا شود.

7. با کاربرد و ویژگیهای تابع ورودی getche() آشنا شود.

8. با کاربرد و ویژگیهای تابع ورودی getch() آشنا شود.

9. با کاربرد و ویژگیهای تابع ورودی ـ خروجی gets() و puts() آشنا شود.

مقدمه

 

زبان C با مجموعه‌اي از توابع كتابخانه‌اي همراه است كه تعدادي از آنها تابع ورودي و خروجي‌اند. برخي از اين توابع متداول را كه اغلب در كتابخانه يا فايل stdio.h قرار دارند در اين فصل بررسي می‌کنیم.

توابع فرمت‌‌دار scanf و printf امکان انتقال اطلاعات ميان كامپيوتر و دستگاههاي ورودي و خروجي استاندارد را فراهم می‌کنند. در واقع این توابع فرمت‌‌دار روي داده‌‌هايي که به شکل پيش‌‌فرض براي کامپایلر شناخته شده‌اند عمل مي‌کنند. دو تابع getchar وputchar موجب انتقال يك كاراكتر به حافظه و بالعكس مي‌گردند. دو تابع gets و puts نيز ورود و خروج رشته‌ها را ساده‌تر مي‌سازند. برخي از توابع ورودي و خروجي به آرگومان نیاز ندارند. بعضي از اين توابع مقداري را برنمي‌گردانند. برخي به صورت مستقل به كار می‌روند و برخي ممكن است در داخل عبارات و دستورها به كار روند.

تابع printf()

داده‌‌هاي خروجي استاندارد در کامپيوتر با استفاده از اين تابع نوشته می‌شود. اين تابع به تعداد دلخواه آرگومان می‌پذيرد كه آرگومان اول داراي مفهوم خاص است و رشته فرمت يا رشته كنترل ناميده مي‌شود. رشتة كنترل در داخل زوج گيومه قرار مي‌گيرد و شامل اطلاعات قالب‌‌بندي است؛ يعني، مشخص مي‌كند كه بايد چند قلم آرگومان داده چاپ شود و فرمت آنها چگونه است. فرم كلي اين تابع به صورت زير است.

printf ("control string", arguments list) ;

يا

printf ("control string", arg1, arg2,…, argn) ;

رشتة كنترل دربردارندة دو نوع اقلام داده است. نوع اول شامل رشته يا كاراكترهايي است كه به همان صورت روي صفحه نمايش داده خواهد شد. نوع دوم شامل فرامين فرمت است كه با علامت "%" آغاز مي‌گردد و به دنبال آن كد فرمت يا مشخص‌كنندة فرمت مي‌آيد. فرمان فرمت، قالب يا فرمت و تعداد متغيرها يا آرگومانهايي را كه بايد چاپ شوند مشخص مي‌سازد و به آن type conversion نيز مي‌گويند و در آن براي مشخص ‌ساختن فرمت هر آرگومان يك گروه از كاراكترها كه با "%" آغاز مي‌گردند به كار مي‌رود.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

قسمت چهارم

-------------

 

عبارت، دستور، عملگر

 

هدف کلی

آشنایی با عبارتها، دستورهای ساده و ساخت‌یافته، و عملگرهای مختلف

هدفهای رفتاری

 

انتظار می‌رود پس از خواندن این فصل دانشجو بتواند،

1. مفهوم عبارت را تعریف کند.

2. عبارتهای محاسباتی، قیاسی، و منطقی را بشناسد.

3. مفهوم دستور را تعریف کند.

4. انواع دستورهای ساده را بشناسد.

5. انواع دستورهای ساخت‌یافته را بشناسد.

6. مفهوم عملگر را تعریف کند.

7. عملگرهای محاسباتی را بشناسد.

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

9. عملگرهای یکانی را بشناسد.

10. چند عملگر تک‌عملوندی را نام ببرد.

11. عملگرهای رابطه‌ای (مقایسه‌ای) را بشناسد.

12. عملگر منطقی را بشناسد.

13. عملگر شرطی را بشناسد.

14. عملگر کاما را بشناسد.

15. عملگرهای حافظه را بشناسد.

عبارت

 

در زبان برنامه‌نويسي، عبارت مجموعه‌اي معني‌دار از داده‌ها (مقادير عددي و متغيرها) است كه با استفاده از نشانه‌‌ها يا عملگرهاي محاسباتي، قياسي و منطقي با يكديگر تركيب شده‌اند. در زبان C عبارات را به‌ شکل زير دسته‌بندي می‌کنند.

عبارت محاسباتي

تركيبي از مقادير ثابت، متغيرهاي صحيح و اعشاري با استفاده از مجموعه عملگرهاي محاسباتي است كه با قاعدة خاصي تشكيل مي‌شود، مانند مثالهاي زير.

1. a * x + b

2. (a + b) / c

در مثال اول مقدار a در مقدار x ضرب و نتيجه با مقدار b جمع مي‌شود.

در مثال دوم ابتدا مقدار b با مقدار a جمع و سپس بر مقدار c تقسيم مي‌شود.

مثال 4ـ1 جدول 4ـ1 نمونه‌‌هايي از عبارات محاسباتي را نشان می‌دهد.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

قسمت پنجم

------------

 

دستورهای كنترلي

 

هدف کلی

آشنایی با مهم‌ترین دستورهای کنترلی در زبان C و کاربرد آنها

 

هدفهای رفتاری

 

از دانشجو انتظار مي‌رود پس از خواند این فصل،

1. با کاربرد دستورهای کنترلی آشنا شود.

2. شکل کلی و کاربرد دستور while را بداند.

3. شکل کلی و کاربرد دستور while‌do- را بداند و تفاوت آن را با while بیان کند.

4. شکل کلی و کاربرد دستور for را بداند.

5. شکل کلی و کاربرد دستور عملگر کاما را بداند.

6. شکل کلی و کاربرد دستورهای ‌if و if-else را بداند.

7. شکل کلی و کاربرد دستور switch را بداند.

8. شکل کلی و کاربرد دستور break را بداند.

9. شکل کلی و کاربرد دستور continue را بداند.

10. شکل کلی و کاربرد دستور goto را بداند.

11. شکل کلی و کاربرد تابع exit را بداند.

مقدمه

 

يکي از امکانات زبانهاي برنامه‌نویسی جدید، استفاده از دستورها و ساختارهاي كنترلي است و در نتيجه ‌اين امكان را فراهم مي‌‌سازند كه قطعه‌ای از برنامه تا موقعي كه شرط ويژه‌اي برقرار است چندين بار اجرا شود.

زبان برنامه‌‌نويسي C داراي قلمرو گسترده‌اي از اين نوع ساختارهاست. در حالت عادي دستورهاي هر برنامه به طور متوالي اجرا مي‌شود. اما اگر نياز باشد كه دستور يا مجموعه‌اي از دستورها در صورت وجود يا عدم وجود شرط يا شرايط خاصي اجرا گردند بايد شيوة ديگري به کار برد. ساختارهاي كنترلي دستورهايي‌اند كه چنين زمينه‌اي را در برنامه‌نويسي فراهم مي‌كنند.

مهم‌ترين دستورهاي كنترلي عبارت‌اند از do _ while و while _ forکه ساختارهاي حلقه‌هاي تكرار را تشکیل می‌دهند و دستورهاي switch و if که دستورهاي شرطي يا ساختارهاي تصميم‌گيري‌اند و بالاخره دستورهاي goto , ،continue ،break ، و exit.

حال به دو مفهوم درست يا true و نادرست يا false توجه کنيد. اغلب دستورهاي كنترلي برنامه در زبان C بر نتيجة وجود شرط تكيه مي‌كند تا برحسب برقراري آن شرط عملي انجام گيرد يا انجام نگيرد. درواقع نتيجة آزمايش اين شرط مقدار درست يا نادرست است. اغلب زبانهاي كامپيوتري مقاديري را به عنوان ارزش درستي يا نادرستي مشخص مي‌كنند (مثلاً 1 براي درست و 1- براي نادرست)، اما در زبان C هر مقدار غيرصفر (مثبت يا منفي) درست يا true (يعني شرط مورد نظر برقرار است) و مقدار صفر نيز نادرست يا false تلقي مي‌گردد.

در اين فصل، مهم‌ترين دستورها و ساختارهاي كنترلي زبان C را بررسي مي‌کنیم.

دستور while

 

اين دستور يكي از دستورهاي كنترلي زبان C است كه براي انجام عمليات تکراري به کار مي‌رود. با استفاده از اين دستور، حلقه تا موقعي كه شرط معيني برقرار باشد اجرا مي‌گردد. شکل كلي اين دستور به صورت زير است.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

قسمت ششم

-----------

 

توابع و کلاس حافظه

 

هدف کلی

آشنایی با توابع، پارامترهای خط فرمان، آرگومانهای argc و argv و حافظه‌های C

 

هدفهای رفتاری

 

از دانشجو انتظار مي‌رود پس از مطالعه این فصل،

1. تابع و انواع آن را تعریف کند.

2. مزایای تعریف تابع فرعی را بیان کند.

3. عناصر تشکیل‌دهندة هر تابع را بشناسد.

4. کاربرد دستور return را بیان کند.

5. نحوة فراخوانی تابع را بشناسد.

6. روش انتقال آرایه به تابع را بیان کند.

7. روشهای تعریف پارامتری که اشاره‌گر آرایه دریافت مي‌کند بیان کند.

8. توابع بازگشتی یا خودگردی را بشناسد.

9. پارامترهای خط فرمان را بشناسد.

10. آرگومانهای argc و argv را بشناسد.

11. تفاوت فراخوانی توابع در C و پاسکال را بیان کند.

12. متغیرهای محلی یا خصوصی و متغیرهای عمومی را بشناسد.

13. کلاس حافظه و کاربرد هریک را شرح دهد.

مقدمه

 

در حالت كلي و بدون توجه به زبان برنامه‌نویسی خاص، برنامة مورد نظر براي پياده‌سازي هر پیمانه یا ماژول را زيربرنامه گويند. در زبان پاسكال به آنها تابع يا رويه گویند. پيمانه يا ماژول را در زبان C تابع نامند؛ يعني براي پياده‌سازي هر ماژول مي‌توان يك تابع نوشت. تابع قطعه برنامه‌اي کامل است که کار معيني انجام مي‌دهد و موجب جلوگيري از برنامه‌‌نويسي تکراري در بين برنامه‌‌ها مي‌شود.

گفتیم هر برنامه در زبان C، مجموعه‌اي از يك يا چندين تابع است كه يكي و فقط يكي از آنها تابع اصلي یا main است و بقيه تابع فرعي‌اند. توابع به دو گروه دسته‌بندي مي‌شوند. يك سري توابع از پيش تعريف شده‌اند و آنها را توابع كتابخانه‌اي نامند. كتابخانه استاندارد C، مجموعه‌اي غني از اين گونه توابع دارد كه محاسبات رياضي، انجام عمليات روي نوشته‌ها و كاراكترها، انجام عمليات ورودي و خروجي، انجام عمليات در زمينه‌هاي گرافيكي و جز آن را به عهده دارند كه متداول‌ترين آنها را بررسي می‌کنیم. توربو C و همين طور گونه‌هاي ديگر C، از اين لحاظ كتابخانه‌هاي گسترده‌تري دارند كه آنها را نيز به اختصار بررسي می‌کنیم. وجود اين ‌گونه توابع از پيش‌ تعريف شده كار برنامه‌نويسان را ساده‌تر می‌کند و توانمندي آنها را براي نوشتن برنامه‌هاي كارآمد بالا مي‌برد.

گروه ديگر از توابع فرعي را برنامه‌نويس تعريف مي‌کند. C، مشابه ساير زبانهاي برنامه‌نویسي، اجازه مي‌دهد كه برنامه‌نويس، برحسب سليقه خود، زيربرنامه‌هايي را به عنوان تابع فرعي طراحي كند و آنها را برحسب نياز در برنامه يا تابع اصلي و يا ساير توابع فراخواند. اين شيوه، به برنامه‌نویس امكان مي‌دهد كه برنامه‌ای بزرگ را به صورت ماژول‌‌شده طراحي کند؛ يعني كار يا پروژة مورد نظر را به قسمتهاي كوچك‌تري تجزيه کند، براي هر قسمت يك تابع بنويسد و آنها را به كمك تابع اصلي به يكديگر پيوند دهد و برحسب لزوم آنها را فراخواند.

طراحي برنامه به صورت پيمانه‌اي يا ماژول‌‌شده، يعني به صورت مجموعه‌اي از توابع، مزايايي دارد كه مهم‌ترين آنها عبارت‌اند از:

ـ امکان استفاده مجدد از تابع

ـ ساده ‌شدن كنترل و خطايابي

ـ امکان انجام تغييرات در برنامه و اصلاح آن

ـ امكان همكاري برنامه‌نويسان متعدد در نوشتن يك برنامه.

در اين فصل ايجاد و کاربرد توابع را بررسي می‌کنیم.

نحوه تعريف تابع

 

چنانکه گفتیم هر برنامه C‌ از يك يا چندين تابع تشكيل مي‌گردد كه فقط يكي از آنها تابع اصلي است. به طور كلي هر تابع شامل عناصر زير است:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

قسمت هفتم

------------

 

آرايه‌ها

 

هدف کلی

 

آشنایی با قابلیتهای متعدد آرایه‌ها

 

هدفهای رفتاری

 

از دانشجو انتظار می‌رود، پس از خواندن این فصل،

1. با مفهوم آرایه آشنا شود.

2. بردار و ماتریس را بشناسد.

3. نحوه تعریف آرایه‌های یک‌بعدی را بیان کند.

4. کلاس حافظه در آرایه‌ها و نحوه مقداردهی اولیه آنها را بشناسد.

5. چگونگی تعریف آرایه‌های چندبعدی را بداند.

6. با نحوه انتقال آرایه به تابع آشنا شود.

7. با رشته‌ها، ثابت رشته‌ای،‌ و متغیر رشته‌ای آشنایی پیدا کند.

8. هدف از به کاربردن آرایه‌ها در مرتب‌سازی و روشهای آن را بداند.

9. انواع رشته‌های جستجو را نام ببرد.

10. با توابع کتابخانه‌ای strcpy، strcat، strlen، strcmp، و strcmoi آشنا شود.

مقدمه

 

آرايه مجموعه عناصري است كه ويژگيها و صفات يكسانی دارند. به عبارت ديگر آرايه فضاي پيوسته‌ای از حافظة اصلي كامپيوتر است كه مي‌تواند چندين مقدار را در خود جاي دهد. همة عناصر يك آرايه از يك نوع‌اند و با انديس مشخص مي‌شوند.

از نظر رياضي معمولاً آرايه‌هاي يك‌بعدي را بردار و آرايه‌هاي دوبعدي را ماتريس نامند. همچنين به طريق مشابه مي‌توان آرايه‌هاي چندبعدي را تعريف كرد.

تعريف آرايه‌ها

 

در زبان C، آرايه‌‌ها به شکل متغيرهاي معمولي تعريف مي‌شوند با اين تفاوت که نام آرايه بايد با مشخصه اندازه همراه باشد.

آرایه یک‌بعدی

 

آرايه يك‌ بعدي به صورت زير تعريف مي‌شود.

type array-name [array-size] ;

كه در آن array-name نام آرايه است كه از قانون نامگذاري متغيرها پيروي مي‌كند، array-size بزرگي و يا تعداد عناصر آرايه است و type نيز نوع عناصر آن را مشخص مي‌كند. براي مثال اگر آراية a داراي 7 عنصر از نوع int باشد، به‌اين صورت معرفي مي‌شود.

int a[7] ;

و خانه‌هاي اختصاص داده شده به آن به صورت متوالي و به شكل زير خواهد بود.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

قسمت هشتم

-------------

 

اشاره‌گرها

 

هدف کلی

آشنایی با کاربردهاي متعدد اشاره‌گرها در زبان C

هدفهای رفتاری

 

از دانشجو انتظار می‌رود پس از مطالعه این فصل،

1. با تعریف و کاربردهای اشاره‌گرها آشنا شود.

2. با نحوه معرفی اشاره‌گرها در برنامه آشنا شود.

3. کاربرد اپراتور یکانی & و عملگر * را بشناسد.

4. با نحوه آدرس‌دهی داده‌ها آشنا شود.

5. نحوة مقداردهی اولیه به اشاره‌گرها را بداند.

6. کاربرد اشاره‌گر تهی را بشناسد.

7. با سه عملیات انتساب، محاسبه و مقایسه بر روی اشاره‌گرها آشنا شود.

8. نحوه گذردادن آرگومانها با آدرس و با مرجع را بداند.

9. با کاربرد انتقال دوطرفه اطلاعات در اشاره‌گرها آشنا شود.

10. رابطة بین اشاره‌گرها و آرایه‌های تک‌بعدی و دوبعدی را بداند.

11. با تعریف آرایه به صورت قراردادی آشنا شود.

12. با نحوه انتقال آرایه به تابع آشنا شود.

13. نحوه تعریف آرایه‌ای از اشاره‌گرها را بداند.

14. مفهوم اشاره‌گر به اشاره‌گر با بشناسد.

15. نحوه ارسال اشاره‌گرها به آرگومان به توابع را بداند.

مقدمه

 

در اغلب زبانهاي برنامه‌‌نويسي قديمي، مانند فورترن و کوبول، مفهومي به نام اشاره‌گر وجود ندارد. اما يكي از ويژگيهاي بارز زبان C، كاربرد متعدد اشاره‌گرها و انجام عمليات محاسباتي روي آنهاست. اشاره‌گر متغيري است كه آدرس متغير ديگري را در خود نگه مي‌دارد؛ يعني به آدرس متغير ديگر اشاره مي‌كند. به عبارت ديگر مقدار آن، آدرس يك خانه از حافظه است. اشاره‌‌گر روش غيرمستقيم دسترسي به داده‌‌هاست و كاربردهاي زيادي در C دارد كه از آن جمله مي‌توان موارد زير را عنوان كرد.

- انتقال آدرس متغيرها به تابع فرعي

- برگرداندن چندين مقدار از تابع فرعي

- دستيابي به عناصر آرايه‌ها

- تشكيل ساختارهاي پيچيده‌تر مانند فهرستهاي پيوندي، درختها و نمودارها

- عمل تخصيص‌ حافظه به صورت پويا.

نحوه معرفی اشاره‌گر

 

براي استفاده از اشاره‌‌گر در برنامه، ابتدا بايد اشاره‌‌گر تعريف شود. روش كلي تعريف متغيري از نوع اشاره‌گر به صورت زير است.

data-type * ptvar ;

كه در آن ptvar نام متغير مورد نظر و data-type نوع متغيري است كه آدرس آن در متغير اشاره‌گر ptvar قرار می‌گيرد. نماد `*´ نيز اپراتور اشاره‌گر است.

متغيرهاي اشاره‌‌گر ممکن است به متغيرهاي عددي، کاراکتري، آرايه‌‌ها، توابع، ساختارها يا ديگر متغيرهاي اشاره‌‌گر اشاره کند. در حالت كلي هر نوع داده ذخيره شده در حافظة كامپيوتر يك يا چند بايت متوالي از خانه‌هاي حافظه را اشغال مي‌كند. در صورتي مي‌توان به داده دسترسي داشت كه آدرس اولين خانه يا اولين بايت آن را در حافظه بدانيم. آدرس محل متغير a در حافظه با عبارت &a تعيين مي‌گردد كه در آن & اپراتور يكاني يا تك‌اپراندي است و اپراتور آدرس ناميده مي‌شود و آدرس اپراند يا عملوند خود را به دست مي‌دهد. حال فرض كنيد كه متغير a از نوع int و متغير pa نيز متغير اشاره‌گر باشد و به صورت زير توصيف كرده باشيم.

int *pa ;

در اين صورت با دستور جايگذاري pa = &a ; آدرس متغير a به اشاره‌گر pa نسبت داده می‌شود. pa را اشاره‌گر a می‌نامند، زيرا به محلي از حافظه اشاره مي‌كند كه مقدار متغير a در آن ذخيره شده است. به هرحال به‌خاطر بسپاريد كه pa مقدار a را معرفي نمي‌كند، بلكه آدرس a را معرفي مي‌کند و به همين لحاظ آن را متغير اشاره‌گر نامند. شكل 8ـ1 رابطه بين pa و a را نشان مي‌دهد.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

قسمت نهم

-----------

 

نوعهاي تعريف شده

 

هدف کلی

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

 

هدفهای رفتاری

 

از دانشجو انتظار می‌رود پس از خواندن این فصل،

1. با ساختار در نوع داده‌ای با صفات مختلف و تفاوت آن با رکورد آشنا شود.

2. با متداول‌ترین کاربرد ساختار، یعنی آرایه‌ای از ساختارها آشنایی بیابد.

3. نحوه پردازش در ساختار را بشناسد.

4. نحوه انتقال ساختار به تابع را بشناسد.

5. شکل کلی و کاربرد دستور typedef و مزیت آن را بر ساختار درک کند.

6. ساختار داده‌ها و اشاره‌گرها را بشناسد.

7. متغیر اشاره‌گر در عضو ساختار را بشناسد.

8. با اجتماع در نوع داده‌ای با صفات مختلف آشنا شود.

9. با شمارشی در نوع داده‌ای با صفات مختلف آشنا شود.

مقدمه

 

اغلب در كاربردهاي مختلف برنامه نويسي، با مجموعه‌اي از داده‌ها كه ويژگيهاي يكسان ندارند مواجهیم و در اين حالت، آرايه‌ها قابل استفاده نيستند. در زبان C این مشکل رفع شده است و اجازه مي‌دهد كه كاربر چند نوع داده‌ با توجه به نياز خود ايجاد کند كه عبارت‌اند از:

الف) ساختار. عبارت است از دسته‌بندي متغيرهايي با صفات مختلف تحت يك نام.

ب) typedef. نام جديدي براي نوع (type) موجود ايجاد مي‌كند.

ج) اجتماع. با آن مي‌توان قسمتي از حافظه را براي استقرار دو يا چندين نوع متفاوت از داده‌ها تعريف كرد.

د) شمارشي. فهرستی از نشانه‌ها يا سمبولهاست كه مي‌توان با مقادير صحيح شمارشي 1، 2، 3 و... به آنها مراجعه كرد.

ساختار

 

ساختار مجموعه‌اي از متغيرهاست كه با يك نام به آنها مراجعه مي‌شود. در واقع ساختار داده جديدي است که هر عنصر آن از نوع داده متفاوت است. اين شيوه وسيلة ساده‌اي براي يكپارچه ساختن مجموعه‌اي از داده‌ها يا اطلاعات مربوط به هم در اختيار برنامه نويس قرار مي‌دهد. برای مثال فرض كنيد كه از هر دانشجویي شمارة دانشجويي، نام و نمره امتحاني وي با فرمت زير مورد نياز باشد.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

قسمت دهم

--------

 

فایلها

 

 

هدف کلی

آشنایی با انواع فایل و توابع مربوط به آنها

 

هدفهای رفتاری

 

از دانشجو انتظار مي‌رود پس از خواندن این فصل،

1. فایل را تعریف کند و انواع آن را بشناسد.

2. تفاوت فایلهای متنی و باینری و کاربرد هر یک را بداند.

3. با نحوة ذخیره و بازیابی داده‌ها آشنا شود.

4. با بازکردن فایل و اطلاعاتی که همزمان با بازشدن فایل مشخص مي‌شود آشنایی یابد.

5. فایل ورودی، خروجی، و ورودی-خروجی را بشناسد.

6. با توابع fopen و fclose آشنایی یابد.

7. توابع putc و getc را بشناسد.

8. کاربرد توابع getw و putw را بداند.

9. کاربرد توابع fget و fputs را بداند.

10. نقش فایل را به عنوان وسیله‌ای هم ورودی و هم خروجی بداند و تابع rewind را بشناسد.

11. با کاربرد تابع ferror آشنایی بیابد.

12. با کاربرد تابع remove آشنایی بیابد.

13. توابع fscanf و fprintf را بشناسد.

14. توابع fwrite و fread را بشناسد.

15. با کاربرد تابع fseek آشنایی بیابد.

16. دستگاههای ورودی - خروجی استاندارد را بشناسد.

مقدمه

 

متغيرهاي معمولي، آرايه‌ها و ساختمانها همگي در حافظه RAM قرار دارند. لذا پس از خاموش شدن كامپيوتر يا خروج از برنامه داده‌هايي كه در آنها ذخيره شده‌اند از بين مي‌روند و براي استفادة مجدد بايد دوباره آنها را وارد کرد كه قطعاً اين كار مقرون به صرفه نيست، زيرا نه‌تنها مستلزم صرف وقت زيادي است، بلكه حوصلة انجام كار را نيز از برنامه‌نويس سلب مي‌کند. براي رفع اين مشكل از نوعي ساختمان دادة ديگر به نام فايل استفاده می‌شود. اين نوع ساختمان داده روي حافظة جانبي مثل ديسك، نوار و جزآن تشكيل مي‌گردد. چون اطلاعات موجود در روي حافظة جانبي با قطع جريان برق، قطع اجراي برنامه يا دلايلي از اين قبيل از بين نمي‌روند، به دفعات زيادي مورد استفاده قرار مي‌گيرند.

هر فايل شامل مجموعه‌اي از داده‌هاي مرتبط به هم است، مانند داده‌هاي مربوط به كلية دانشجويان دانشگاه. داده‌هاي مربوط به هر يك از اجزاي فايل ركورد نام دارد. برای مثال، در دانشگاهی داده‌هاي مربوط به هر دانشجو تشكيل يك ركورد را مي‌دهند، لذا مي‌توان گفت كه هر فايل مجموعه‌اي از چند ركورد است. اگر باز هم دقيق‌تر به فايل دانشجويان دانشگاه بپردازیم ، مشاهده مي‌کنیم كه هر دانشجو ممكن است چند قلم داده داشته باشد، مثل نام دانشجو، تعداد واحدهايي كه گذرانده، نمرة هر درس و جز آن. به هريك از اجزاي يك ركورد فيلد گویند. لذا مي‌توان گفت كه هر ركورد مجموعه‌اي از چند فيلد است.

در زبان C فايل داده ممکن است هر دستگاهي مثل صفحة نمايش، صفحه كليد، چاپگر، ترمينال، ديسك، نوار و جز آن باشد. داده‌ها ممكن است به چهار روش در فايل ذخيره و سپس بازيابي شوند:

- داده‌ها كاراكتر به كاراكتر در فايل نوشته و سپس كاراكتر به كاراكتر از فايل خوانده شوند.

- داده‌ها به صورت رشته‌اي از كاراكترها در فايل نوشته شوند و سپس به صورت رشته‌اي از كاراكترها در دسترس قرار گيرند.

- داده‌ها در حين نوشتن بر روي فايل با فرمت خاصي نوشته و سپس با همان فرمت خوانده شوند.

- داده‌ها به شكل ساختمان (ركورد) روي فايل نوشته و سپس به صورت ساختمان از فايل خوانده شوند.

براي هريك از موارد فوق توابع خاصي در زبان C منظور شده‌اند كه در اين فصل بررسي می‌کنیم.

انواع فايل

 

داده‌ها ممكن است در فايل به‌ دو صورت متنی و باینری وجود داشته باشند. اين دو روش ذخيره‌ شدن داده‌ها در موارد زير با يكديگر تفاوت دارند.

- تعيين انتهاي خط؛

- تعيين انتهاي فايل؛

- نحوة ذخيره شدن اعداد روي ديسك.

در فايل متنی اعداد به صورت رشته‌اي از كاراكترها ذخيره مي‌شوند، ولي در فايل باينري اعداد با همان صورتي كه در حافظه قرار مي‌گيرند روي ديسك ذخيره مي‌شوند. برای مثال، در فايل متنی عدد 526، سه بايت را اشغال مي‌كند، زيرا هر رقم آن به صورت كاراكتر در نظر گرفته مي‌شود، ولي در فايل باينري اين عدد در 2 بايت ذخيره مي‌گردد (چون عدد 526 عدد صحيح است و اعداد صحيح در حافظة کامپيوتر در دو بايت ذخيره مي‌شوند).

در فايل متنی، كاراكتري كه پايان خط را مشخص مي‌كند، در حين ذخيره‌ شدن روي ديسك بايد به كاراكترهاي CR/LF، line feed، carriage تبديل شود و در حين خوانده شدن عكس اين عمل بايد صورت گيرد؛ يعني كاراكترهاي CR/LF بايد به كاراكتر تعيين‌كنندة پايان خط تبديل شوند. بديهي است كه ‌اين تبديلها مستلزم صرف وقت است،‌ لذا دسترسي به اطلاعات موجود در فايلهاي متنی كندتر از فايلهاي باينري است.

اختلاف ديگر فايلهاي متنی و باينري در تشخيص انتهاي فايل است. در هر دو روش ذخيرة فايلها، طول فايل را سيستم نگهداري مي‌کند و انتهاي فايل با توجه به ‌اين طول مشخص مي‌گردد. در حالت متنی كاراكتر 1A (در مبناي 16) يا 26 (در مبناي 10) مشخص‌كنندة انتهاي فايل است (كليد z + Ctrl). در حين خواندن داده‌ها از روي فايل متنی، وقتي كنترل به ‌اين كاراكتر رسيد بيانگر اين است كه داده‌هاي موجود در فايل تمام شده‌اند. در فايل باينري ممكن است عدد 1A (در مبناي 16) يا 26 (در مبناي 10) جزئي از اطلاعات باشند و بيانگر انتهاي فايل نباشند. لذا نحوه تشخيص انتهاي فايل در فايل باينري با فايل متنی متفاوت است.

از نظر نحوه ذخيره و بازيابي داده‌ها در فايل دو روش وجود دارد:

- سازمان فايل ترتيبي

- سازمان فايل تصادفي.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه
  • 4 سال بعد...

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...