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

آموزش سی شارپ

آموزش سی شارپ

پربیننده ترین مطالب
پیوندهای روزانه

برنامه نویسی چیست؟(برای افراد مبتدی)

چهارشنبه, ۲ فروردين ۱۳۹۶، ۰۱:۰۲ ق.ظ

در این جا قصد دارم که یه توضیح مختصر راجع به برنامه نویسی برای افرادی بدم که نمیدونن برنامه نویسی یعنی چی.

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

  1. وارد اتوبان کردستان شمال می شوی
  2. میری بزرگاه نیایش غرب
  3. وارد بزرگاه سئول می شوی
  4. چند کیلومتر جلوتر تابلوی ورودی نمایشگاه بین المللی رو دیدی می تونی بری تو پارکینگ

اما شخص دیگری به شما اینگونه آدرس می دهد:

  1. وارد اتوبان کردستان جنوب می شوی
  2. بعد از آن وارد اتوبان حکیم غرب می شوی
  3. بعد از آن وارد اتوبان چمران شمال می شوی
  4. از آن جا وارد اتوبان سئول می شوی که نمایشگاه بین المللی آنجاست

دقت کنید، مقصدی که گفته شد هر دو یکی است، اما آدرس اول سر راست تر و شما سریع تر به مقصد خود می رسید، زیرا شخص آدرس دهنده آگاهی بهتری نسبت مسیرهای مختلف در شهر تهران دارد. برنامه های کامپیوتری نیز به همین صورت است، ممکن است دو برنامه نویس متفاوت، دستورالعمل های متفاوتی را برای یک وظیفه مشخص بنویسند که این کاملاً بستگی به میزان آگاهی و علم برنامه نویس دارد. ممکن است یک برنامه نویس دستورالعمل های اشتباهی برای برنامه بنویسد که باعث ایجاد خروجی اشتباه برای برنامه کامپیوتری می شود، مشابه اینکه شخص مورد نظر آدرس اشتباه به شما دهد و با انجام دستورالعمل های آن شخص، به جای نمایشگاه بین المللی سر از میدان تجریش در آورید!



فرض کنید به شما  کنترل یه ربات رو بدن که 5 تا کار می تونه انجام بده. مثالا

  • روشن شو(ON)
  •  یک گام به جلو برو(step)
  •  به اندازه دلخواه در جهت عقربه های ساعت بچرخ(rotate)
  •  جسم کوچک جلوت رو بردار(take)
  • خاموش شو(off)

حالا اگه این روبات رو بذارن تویه اتاق و یه توپ کوچیک رو یه طرف اتاق بندازن بگن با این ربات این توپ رو بردار، احتمالا با چند حرکت این کار و انجام میدین.

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

ON

Step

Rotate 45

Step

Step

Step

Rotate 30

Take

Off

برنامه نویسی یه چیزی شبیه به همین کد های بالاست. برنامه نویسی یعنی نوشتن یه سری دستورات برای یه ماشین (کم فهم!) که این ماشین فقط اون دستورات رو می فهمه. حالا نکته اینجاست که شما می تونی این برنامه رو اینقدر خوب بنویسی که بهترین حات ممکن باشه و سریع به جواب برسی و می تونی هم نه این قدر بد و غیر بهینه برنامه بنویسی که دیر یا اصلا به جواب نرسی. مثلا تو همون مثال بالا شما می تونی جوری برنامه ریزی کنی که ماشین مستقیم به توپ برسه میشه هم 10 دور زد بعد رسید به توپه!

حالا اگه تصور کنید که ما می خوایم برای یه کامپیوتر برنامه بنویسیم، اولین چیزی که باید بپرسیم اینه که این ماشین چیا رو می فهمه؟! و چی نمی فهمه! مثالا به ماشین مثال بالا نمی شه گفت خوب یه توپ رو بردار و رنگ سفید بزن! خوب شما سریع جواب میدی که اصلا این ماشین این قابلیت رو نداره. البته ممکنه ماشین شما این قدر هوشمند باشه  بتونه چیز های جدید هم یاد بگیره!

حالا کاری به اینا نداریم. کامپیوتر چیا می فهمه؟ اگه بخوام خلاصه بگم میگم کامپیوتر های امروزه فقط یک چیز می فهمن. اونم اینه که باشن یا نباشن! یعنی آره  یا نه! یعنی 0 یا 1. شاید این مسائل خیلی پیچیده باشه که از پایه حرف بزنیم. که مثلا وقتی کامپیوتر می خواد یه عدد رو تو حافظه بذاره یه مداری یه جایی بسته میشه یا باز میشه! واقعیت اینه که اگه در سطح برنامه نویسی assemblyنگاه کنیم شاید کل دستوراتی که میشه به CPUداد صد نوع هم نشه، ولی بیاید از این جا شروع کنیم که کامپیوتر ما یه سری دستورات رو می فهمه و می تونه اون ها رو با یه سری ترفند هایی به همون زبان قابل فهم کامپیوتر تبدیل کنه. در واقع تمام زبان هایی که ما می شناسیم  مثل pascalو Cو fortranو همین کارو می کنن. یعنی یه چیزی بنام کامپایلر(compiler) میاد و برنامه هایی که شما به اون زبان نوشتید رو به زبان سطح پایین قابل فهم واسه ماشین مثه assemblyدر میاره که بعد به زبان 1و0 در میاد.

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

از این حرفا که بگذریم می خوام خلاصه بگم با یه زبان برنامه نویسی سطح بالا مثل Cچیا میشه به کامپیوتر گفت. در واقع مثل اون مثال رباته، Cمثلا چند تا دکمه داره که میشه به کامپیوتر گفت چی کار کنه؟! آیا میشه یه دستور داد کامپیوتر رو خاموش کرد؟ آیا میشه یه دستور بدیم یه فایل رو پرینت بگیره؟ میشه یه دستور بدیم دترمینان ماتریس بگیره؟ اصلا می فهمه ماتریس چیه؟! و ...

نحوه اجرای برنامه های کامپیوتری

در ادامه مطلب

نحوه اجرای برنامه های کامپیوتری


بعد از نوشتن برنامه، یک فایل اجرایی تولید می شود که دیگران می توانند با اجرای آن، از برنامه استفاده کنند. کامپیوتر شما برنامه ها را بوسیله واحد پردازشگر مرکزی (Central Processing Unit) که همان CPU خودمان است اجرا می کند. کامپیوتر تنها زبان ماشین را متوجه می شود. زبان ماشین، زبانی است که از اعداد 0 و 1 تشکیل می شود. یعنی تنها دو عدد 0 و 1 برای کامپیوتر قابل فهم است. برنامه نویس ها می توانند برنامه ها را تحت یک زبان مشخص بنویسند، اما مهم این است که تمامی این برنامه ها، بعد از نوشته شدن باید به زبان ماشین تبدیل شوند تا قابل اجرا باشند. می توان کامپیوتر و برنامه نویس را تشبیه کرد به یک فارسی زبان و یک شخص انگلیسی زبان، برای اینکه شخص انگلیسی زبان، صحبت های شخص فارسی زبان را متوجه شود باید از یک مترجم استفاده کند که صحبت ها را به زبان مورد نظر ترجمه کند. زبان های برنامه نویسی نیز به همین صورت هستند، هر زبان برنامه نویسی نیاز به یک مترجم دارد که دستورات نوشته شده تحت آن زبان برنامه نویسی را به زبان ماشین تبدیل کند تا برای کامپیوتر قابل فهم باشد.

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




منبع:http://programming.itpro.ir

منبع:http://zatkhahi.ir/node/9

  • متین تیماسی ، مبین خسروی و عمران جودکی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی