برنامه نویسی کامپیوتر یعنی طراحی و ساختن برنامه های قابل اجرا روی کامپیوتر، برای رسیدن به یک نتیجه مشخص. برخلاف انتظار عمومی کامپیوترها دستگاه های هوشمندی نیستند، درواقع آنها بسیار خنگ هستند! 🥴 هوش آنها بستگی به دستوراتی دارد که ما بهعنوان برنامه نویس نوشتهایم.
ما بهعنوان انسان زمانی که به کامپیوترها میگوییم کاری را انجام بدهند باید دقیقاً تعیین کنیم که این کار به چه نحوی و با چه اقداماتی باید انجام شود. برای اینکه دستوراتمان را به کامپیوتر بگوییم و کامپیوتر آنها را اجرا کند، نیاز داریم از طریق یک زبان برنامه نویسی با کامپیوتر صحبت کنیم.
برای اینکه بتوانیم با کامپیوتر صحبت کنیم استانداردهایی در نظر گرفته شده و این استانداردها تبدیل به زبان های برنامه نویسی شدهاند، بهطوری که دستوراتمان را از طریق همان استانداردها مینویسیم و کامپیوتر دقیقاً میداند جملههایی که نوشتیم چه معنایی دارند و چهکارهایی را باید انجام بدهد.
برنامه نویسی برای تهیه یک فنجان چای
فرض کنید میخواهیم یک فنجان چای درست کنیم و برنامهای بنویسیم که این کار را انجام دهد. درواقع میخواهیم یک الگوریتم یا مجموعه اقداماتی برای این کار بنویسیم
۱ جوشاندن مقداری آب
۲ ریختن آب جوش داخل یک فنجان با یک چای کیسهای
۳ منتظر میشویم تا چای دم بکشد
۴ خارج کردن چای کیسهای از فنجان
۵ اضافه کردن شکر یا نبات در صورت تمایل
ما بهعنوان یک انسان از قبل دانشی در این زمینه داریم، یعنی میدانیم که از کجا میتوانیم فنجان را برداریم، میدانیم که شکر در کابینت است و جای نبات را بلدیم.
میدانیم اگر فنجان در جای خودش نبود باید در کابینتهای دیگر دنبال آن بگردیم، اما کامپیوترها این دانش و بینش را ندارند. اگر بخواهیم این فرایند را برای یک کامپیوتر بازنویسی کنیم باید به این شکل عمل کنیم:
۱ برو به آشپزخانه
۲ کتری را پیدا کن
۳ درب کتری را باز کن
۴ داخل کتری آب بریز
۵ زیر کتری را روشن کن
۶ منتظر بمان تا دمای آب به ۱۰۰ درجه برسد
۷ یک فنجان پیدا کن
۸ …
و این پروسه ادامه دارد.
شاید نیاز باشد ما در این پروسه از منطق هم استفاده کنیم، یعنی اگر شرایطی پیش بیاید که کامپیوتر نمیتواند تصمیمگیری کند باید آن شرایط را با منطق به آن توضیح دهیم و بخواهیم که خودش در شرایط مختلف تصمیمگیری کند.
باگ ؟
مثلاً اگر کتری برقی بود باید آن را به برق بزند اگر کتری گازی بود باید آن را روی گاز بگذارد و شعله گاز را روشن کند. در این حالت، برای کامپیوتر شرط تعیین میکنیم که اگر با هر شرایطی روبهرو شد کار خاصی را انجام بدهد.
در این شرایط امکان دارد همهچیز طبق روالی که ما تعریف کردیم پیش نرود یعنی حتی اگر کامپیوتر قدمبهقدم دستوراتی که برای آن نوشتهایم اجرا کند و از همان منطق و شرطهایی پیروی کند که ما تعریف کردهایم، ممکن است به موقعیتی برسد که ما از قبل آن را تعیین نکردهایم و اصطلاحاً در این حالت میگویند در کد ما، باگ (مُشکل) وجود دارد.
مثلاً اگر کتری برقی را به برق زد و کتری کار نکرد، ما در این شرایط از قبل چیزی را پیشبینی نکردهایم. در این حالت کد ما اشکال دارد و برای این موقعیت باید دستورات خاص خودش را بنویسیم.
باگ، مشکل یا خطایی است که در حین اجرای برنامه ممکن است پیش بیاید و روند عادی اجرای برنامه با مشکل روبرو شود و یا حتی برنامه با اعلام خطا از کار بیفتد.
🔴 فرآیند رفع این خطاها را اصطلاحاً دیباگینگ (رفع مشکل – Debugging) میگویند. در برنامه جستجو، مشکلات را شناسایی و برای آنها دستورالعمل خاصی در نظر میگیریم که دیگر آن اتفاقها تکرار نشوند.
کد نویسی چیست و کامپیوتر چطور کدهای مارا متوجه میشود؟
برنامه نویس ها کد مینویسند. کدها برنامههای سطح بالا هستند. برنامههایی که به گفتار روزانه ما یا حداقل گفتار زبان انگلیسی نزدیکتر است و زمانی که نوشته میشوند انسانها میتوانند آن را تا حد زیادی درک کنند.
اما کامپیوتر این زبان را متوجه نمیشود و باید کاری کنیم این زبان تبدیل به زبان قابلفهم برای کامپیوتر شود. مغز کامپیوتر، سی پی یو CPU است. سی پی یو توانایی فهمیدن دستوراتی که توسط یک زبان برنامه نویسی نوشته شدهاند را ندارد. این دستورات باید به کد ماشین تبدیل شوند.
کد ماشین تنها دو چیز دارد، صفر و یک.
۰ ۱
مغز کامپیوتر، تنها چیزی که متوجه میشود، صفر و یک است.
جمله 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 یک زبان برای توصیف است. از آن برای توصیف ساختار یک صفحه، مثل یک صفحه از وبسایت استفاده میکنیم؛ اما هیچ کنترلی روی منطق و رفتار برنامه ما ندارد.
اصول یک زبان برنامه نویسی چیست؟
بعضی چیزها در هر زبان برنامه نویسی وجود دارند که بیشتر استفاده میشوند، مثل متغیرها، حلقهها، شرطها، ساختارهای داده و الگوریتمها.
متغیر چیست؟
برای ذخیره و نگهداری اطلاعات در حین اجرای برنامه، از متغیر استفاده میکنیم. تصور کنید یک جعبه داریم که حق داریم داخل آن فقط یکچیز بریزیم، مثلاً داخل جعبه یک عدد میگذاریم و آن عدد تا زمانی که برنامه ما در حال اجرا باشد در آن جعبه میماند.
اگر کاربران سایت یا اپلیکیشن ما بخواهند اسمشان را داخل سایت وارد کنند، آن اسم را چطور نگهداری کنیم تا به آنها پیغام خوشآمد نمایش دهیم؟
یک جعبه برای اسم کاربر در نظر میگیریم. هر کاربر که اسم خودش را وارد کرد، آن اسم را داخل جعبه ذخیره میکنیم تا بعداً از آن استفاده کنیم.
حلقه 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”
الگوریتم چیست؟
به مجموعه اقداماتی که برای حل یک مسئله انجام میدهیم، الگوریتم میگویند. مراحلی که برای درست کردن یک فنجان چای انجام دادیم، یک الگوریتم محسوب میشود. مجموعهای از اقدامات را انجام دادیم تا یک لیوان چای را درست کنیم.
میانگین امتیاز 5 / 5. تعداد آرا: 2
اولین نفری باشید که امتیاز می دهید