لوگو چندوجهی
برنامه نویسی چیست و چه کاربردی دارد ؟

برنامه نویسی چیست و چه کاربردی دارد ؟

#عمومی #برنامه نویسی  

حمید صالحی حمید صالحی      25 تیر 1400 , 0  

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

⚠️ برخلاف انتظار عمومی کامپیوترها دستگاه‌ های هوشمندی نیستند، درواقع آن‌ها بسیار خنگ هستند! 🥴
هوش آن‌ها بستگی به دستوراتی دارد که ما به‌عنوان برنامه نویس نوشته‌ایم.

 

ما به‌عنوان انسان زمانی که به کامپیوترها می‌گوییم کاری را انجام بدهند باید دقیقاً تعیین کنیم که این کار به چه نحوی و با چه اقداماتی باید انجام شود. برای این‌که دستوراتمان را به کامپیوتر بگوییم و کامپیوتر آن‌ها را اجرا کند، نیاز داریم از طریق یک زبان برنامه نویسی با کامپیوتر صحبت کنیم.

برای اینکه بتوانیم با کامپیوتر صحبت کنیم استانداردهایی در نظر گرفته شده و این استانداردها تبدیل به زبان های برنامه نویسی شده‌اند، به‌طوری که دستوراتمان را از طریق همان استانداردها می‌نویسیم و کامپیوتر دقیقاً می‌داند جمله‌هایی که نوشتیم چه معنایی دارند و چه‌کارهایی را باید انجام بدهد.

 

 

یک فنجان چای

برنامه نویسی برای تهیه یک فنجان چای

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

 

1️⃣ جوشاندن مقداری آب

2️⃣ ریختن آب جوش داخل یک فنجان با یک چای کیسه‌ای

3️⃣ منتظر می‌شویم تا چای دم بکشد

4️⃣ خارج کردن چای کیسه‌ای از فنجان

5️⃣ اضافه کردن شکر یا نبات در صورت تمایل

 

ما به‌عنوان یک انسان از قبل دانشی در این زمینه ‌داریم، یعنی می‌دانیم که از کجا می‌توانیم فنجان را برداریم،
می‌دانیم که شکر در کابینت است و جای نبات را بلدیم.

می‌دانیم اگر فنجان در جای خودش نبود باید در کابینت‌های دیگر دنبال آن بگردیم، اما کامپیوترها این دانش و بینش را ندارند. اگر بخواهیم این فرایند را برای یک کامپیوتر بازنویسی کنیم باید به این شکل عمل کنیم:
1️⃣ برو به آشپزخانه
2️⃣ کتری را پیدا کن
3️⃣ درب کتری را باز کن
4️⃣ داخل کتری آب بریز
5️⃣ زیر کتری را روشن کن
6️⃣ منتظر بمان تا دمای آب به ۱۰۰ درجه برسد
7️⃣ یک فنجان پیدا کن
8️⃣ ...
و این پروسه ادامه دارد.

 

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


مثلاً اگر کتری برقی بود باید آن را به برق بزند اگر کتری گازی بود باید آن را روی گاز بگذارد و شعله گاز را روشن کند.
در این حالت، برای کامپیوتر شرط تعیین می‌کنیم که اگر با هر شرایطی روبه‌رو شد کار خاصی را انجام بدهد.


در این شرایط امکان دارد همه‌چیز طبق روالی که ما تعریف کردیم پیش نرود یعنی حتی اگر کامپیوتر قدم‌به‌قدم دستوراتی که برای آن نوشته‌ایم اجرا کند و از همان منطق و شرط‌هایی پیروی کند که ما تعریف کرده‌ایم، ممکن است به موقعیتی برسد که ما از قبل آن را تعیین نکرده‌ایم و اصطلاحاً در این حالت می‌گویند در کد ما، باگ (مُشکل) وجود دارد.


مثلاً اگر کتری برقی را به برق زد و کتری کار نکرد، ما در این شرایط از قبل چیزی را پیش‌بینی نکرده‌ایم.
در این حالت کد ما اشکال دارد و برای این موقعیت باید دستورات خاص خودش را بنویسیم.

 

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

🔴 فرآیند رفع این خطاها را اصطلاحاً دیباگینگ (رفع مشکل - Debugging) می‌گویند.
در این حالت، ما در برنامه جستجو می‌کنیم و مشکلاتی که به وجود آمده‌اند را شناسایی و برای آن‌ها دستورالعمل خاصی در نظر می‌گیریم که دیگر آن اتفاق‌ها تکرار نشوند.

 

 

کد نویسی چیست و کامپیوتر چطور کدهای ما را متوجه می‌شود؟

اکثر برنامه نویس ها کد می‌نویسند و کد در دنیای کامپیوتر به برنامه‌های سطح بالا گفته می‌شود، برنامه‌هایی که به گفتار روزانه ما یا حداقل گفتار زبان انگلیسی نزدیک‌تر است و زمانی که نوشته می‌شوند انسان‌ها می‌توانند آن را تا حد زیادی درک کنند.

اما کامپیوتر این زبان را متوجه نمی‌شود و باید کاری کنیم این زبان تبدیل به زبان قابل‌فهم برای کامپیوتر شود.
مغز کامپیوتر، سی پی یو CPU است. سی پی یو توانایی فهمیدن دستوراتی که توسط یک زبان برنامه نویسی نوشته شده‌اند را ندارد. این دستورات باید به کد ماشین تبدیل شوند.
کد ماشین تنها دو چیز دارد، صفر و یک.

0     1

مغز کامپیوتر، تنها چیزی که متوجه می‌شود، صفر و یک است.
برای مثال در مغز کامپیوتر ما جمله Hello World این‌طور دیده می‌شود:

01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100

✔️ به کدهای بالا، کد باینری (binary) گفته می‌شود.
👨‍💻 همان‌طور که می‌بینید، هر انسانی نمی‌تواند کدهای باینری را به راحتی متوجه شود، درنتیجه ما برنامه‌هایمان را با کد ماشین نمی‌نویسیم. برنامه‌ها را توسط زبان‌های برنامه نویسی و این زبان‌ها، توسط کدهای باینری به کد ماشین تبدیل می‌شوند.

 

زبان برنامه نویسی دقیقاً چیست؟

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

 

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

انگلیسی: Hello
فرانسوی: Bonjour
اسپانیایی: Hola

 

می‌بینیم که در زبان‌های مختلف کلمه سلام، متفاوت نوشته می‌شود، اما معنای همه آن کلمات، *سلام* است. در زبان‌های برنامه نویسی هم دقیقاً همین اتفاق افتاده است. در هر زبان برنامه نویسی می‌توانیم به شیوه خاص خودش کلمه سلام را بنویسیم. به‌عنوان‌مثال:

JavaScript: alert(“Hello”);
Python: print(“Hello”)
Perl: print "Hello";


برای فهمیدن یک‌ زبان مثل زبان انگلیسی، مجموعه قواعدی داریم به‌عنوان گرامر. برای فهمیدن یک زبان برنامه نویسی این مجموعه قواعد سینتکس syntax نام دارند.

 

 

چطور بفهمیم یک زبان برنامه نویسی یک زبان برنامه نویسی است؟!

احتمالاً برای شما این عجیب باشد که ما برای نوشتن بعضی از برنامه‌هایمان در قسمت‌هایی کُد نمی‌نویسیم یعنی چیزی که ما می‌نویسیم، کُد نیست.

🟡 یکی از بزرگ‌ترین سوءتفاهم‌ها این است که بعضی‌ها فکر می‌کنند HTML یک زبان برنامه نویسی است درصورتی‌که این‌طور نیست. HTML یک زبان برای توصیف است. از آن برای توصیف ساختار یک صفحه، مثل یک صفحه از وب‌سایت استفاده می‌کنیم؛ اما هیچ کنترلی روی منطق و رفتار برنامه ما ندارد.

 

اصول یک زبان برنامه نویسی چیست؟

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

 

متغیر چیست؟

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

اگر کاربران سایت یا اپلیکیشن ما بخواهند اسمشان را داخل سایت وارد کنند، آن اسم را چطور نگهداری کنیم تا به آن‌ها پیغام خوش‌آمد نمایش دهیم؟
یک جعبه برای اسم کاربر در نظر می‌گیریم. هر کاربر که اسم خودش را وارد کرد، آن اسم را داخل جعبه ذخیره می‌کنیم تا بعداً از آن استفاده کنیم.

let Name = "Hamid Salehi";

 

حلقه for چیست؟

برای اینکه بخواهیم یک کار را چندین بار پشت سرهم انجام بدهیم می‌توانیم از این قابلیت استفاده کنید.
فرض کنید ۵ مهمان داریم و می‌خواهیم برای هرکدام از آن‌ها یک فنجان چای بریزیم.

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

for (let i = 0; i < 5; i++) {
  console.log("Make Tea!");
}

//expected output: 
"Make Tea!"
"Make Tea!"
"Make Tea!"
"Make Tea!"
"Make Tea!"

 

 

شرط چیست؟

وقتی می‌خواهیم برنامه ما بر اساس شرایط مختلف اقدامات مختلفی انجام بدهد از شرط‌ها استفاده می‌کنیم.
فرض کنید ۲ نفر از مهمان‌ها به همراه چای، نبات (RockCandy) می‌خواهند. برای اینکه به برنامه خودمان بفهمانیم این کار را در موقع لازم انجام دهد می‌توانیم از شرط‌ها استفاده کنیم.
در جاوا اسکریپت برای این کار از چیزی به‌نام if...else استفاده می‌کنیم.

if(RockCandy == true) {
  // add RockCandy
  } else {
  // don't add RockCandy
}

 

 

ساختارهای داده چه هستند؟

سازمان‌دهی داده‌ها برای استفاده بهتر و مؤثرتر.

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

coffees = [“Latte”, “Cappuccino”, “Espresso”];

 

این قهوه‌ها در حافظه ذخیره می‌شوند و شما به‌عنوان برنامه نویس می‌توانید با استفاده از چیزی به نام ایندکس به آن‌ها دسترسی داشته باشید.
ایندکس‌ها در آرایه از عدد صفر شروع می‌شوند.

coffees[0]; // “Latte”
coffees[1]; // “Cappuccino”
coffees[2]; // “Espresso”

 

الگوریتم چیست؟

به مجموعه اقداماتی که برای حل یک مسئله انجام می‌دهیم، الگوریتم می‌گویند.
مراحلی که برای درست کردن یک فنجان چای انجام دادیم، یک الگوریتم محسوب می‌شود.
مجموعه‌ای از اقدامات را انجام دادیم تا یک لیوان چای را درست کنیم.

برای ارسال دیدگاه باید وارد سایت شوید ورود به سایت

این مقاله‌ها را هم ببینید