مجتمع آموزشی زردآلو | وب سایت زرسل


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

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



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