درس اول

c++
به نام خدا حسینی هستم و میخام از این به بعد با هم برنامه نوسی کار کنیم
برنامه نویسی جز اصلی دانش کامپیوتری هست اگه کسی برنامه نویسی بلد نباشه نمیتونه
بگه که من دانش کامپیوتر دارم
اما اصل مطلب
برنامه:به مجموعه دستوراتی (code)که کاربر برای انجام عملی خاص به کامپوتر میدهد گفته میشود
سوال :ایا سیستم عاملها هم برنامه هستند؟
جواب :بله
پس از ان موقع که ما سیستم را روشن میکنیم تا خاموش شدن کنترل کلیه قطعات سخت افزاری به
عهده برنامه ها میباشد.
اما برنامه نویس :به کسی گفته میشود که وظیفه طراحی برنامه را دارد.
تا حالا که سخت نبود
بیایید از اول بررسی کنیم همانطور که میدانید زبان ماشین یا کامپیوتر ها 0و1 است خوب به نظر میاد که
زبان سختی باشه نظر شما چیه؟
در واقع کامپیوتر ها چیزی به جز 0و1 نمیشناسن 0=وقتی جریان الکتریکی در سیم وجود ندارد
1وقتی جریانی جاری است
نوشتن چند خط برنامه به این روش برنامه نویس را پیر میکندکاریست بس طاقت فرسا
اینجا بود که زبانهای برنامه نویسی ایجاد شد
یک زبان برنامه نویسی خواه کامپایلر خواه مفسر(اینا رو بعدا مفصلا توضیح میدم)وظیفه
ترجمه کدهای نوشته شده بوسیله برنامه نویس به زبان ماشین را بر عهده دارد.
قواعد نوشتن برنامه در این محیط بیشترشبیه به زبان ادمی زاد است تا نوشتن برنامه ها بطریق 0و1
اینطوری برنامه نویسی اسانتر شد
و از همین جا بود که زبانهای برنامه نویسی پدیدار شد
و اما زبانهای برنامه نویسی
در کل به دو گروه زبانهای سطح پائین و زبانهای سطح بالا تقسیم میشوند
زبانهای سطح پائین ابتدا بوجود امد (یعنی نصل قدیم)کار با این زبانها گرچه نسبت به زبان ماشین اسانتر شده بود
اما برنامه نویسان مجبور بودن برای انجام مانوری کوچک صدا بلکه هزاران خط برنامه بنویسند
در اینجا بود که زبانهای سطح بالا پدید امد تا برنامه نویسی بیشتر شبیح زبان ادمی زاد شود
زبانهای سطح پائین مثل سمبلی یا بی(پدر سی)
زبانهای سطح بالا مثل سی یا پاسکال
جدایی از این مقوله زبانهای برنامه نویسی سطح بالا به دو دسته روالی یا تابع گرا وشی گرا تقسیم میشوند
(در باره این قضیه بعدا مفصلا صحبت خواهد شد)
اما برنامه ها در کجا اجرا میشوند
ببینید دوستان من فقط مختصرا عرض میکنم چون لازم نمی بینم زیاد در این باره صحبت کنم
حتی به جرعت میگوییم بسیاری از برنامه نویسان خودشان هم نمیدانند برنامه هایشان کجا اجرا میشود
برای درک بهتر این موضوع من خلاصه ای از نحوه کارکرد سیستم عامل را باز کو میکنم
سیستم عامل تشکیل شده از یک هسته یا kernelویک پوسته یا شل
پوسته ظاهر سیستم عامل است و ارتباط بین پوسته و سخت افزار را هسته فراهم میکند
در واقع کاربر با استفاده از پوسته به وسیله هسته به سخت افزار متصل میشود
در زمانهای قدیم پوسته سیستم عامل ها این حالت گرافیکی امروزی را نداشت یک صفحه سیاه که یک
اعلان چشمک زن در ان خود نمایی میکرد نقش پوسته را بر عهده داشت
و اکنون هم اگر دقت کنید این صفحه سیاه به قوت خودش باقی است
همان کامند پرامپت ویندوز یا ترمینال لینوکس و یونیکس
خلاصه تمام برنامه هایی که اجرا میکنید یا مینویسید ابتدا در پوسته اجرا میشود و
سپس به هسته ازسال میگردد بعد با سخت افزار تماس میگیرد(استثنا هم وجود دارد)
مثال اگر بخواهیدحاصل عبارت 2+2را محاصبه کنید
ابتدا محیط کاربری برنامه را بار گذاری میکند(اینم توضیحش مفصله) بعد این دستور از پوسته گذر کرده
برای ارتباط با سخت افزار به هسته میرسد
سپس سی پی یو عبارت را محاسبه میکند و دوباره این مسیر طی میشود تا حاصل عبارت در
پوسته به نمایش در اید
گفتم که لازم نیست همه اینا رو بدونید مگر در موارد استثنا که بخواهید برنامه ای بنویسید
که برای اجرا شدن نیاز به سیستم عامل نداشته باشد
خوب دوستان من امروز خسته شدم اخه تایپ فارسیم زیاد تعریف نداره فکر میکنم برای امروز کافیه بقیش باشه برای جلسه بعد



درس دوم

سلام دوستان بحث امروز در باره نحوه نوشتن یک برنامه است
خوب ادامه میدم. نوشتن برنامه چند مرحله دارد که من ابتدا به اختصار نام میبرم بعد راجع به هر یک توضیحاتی مینویسم
1:بررسی صورت مسئله
2:یافتن راه حل
3:تهیه الگوریتم
4:کد نویسی
5:make
مراحل 1تا3 در کلیه زبانهای برنامه نویسی مشترک است بعد از ان شما باید تصمیم بگیرید که برنامه را به چه زبانی بنویسید که مراحل 4و5بسته به نوع
زبان انتخابی شما متفاوت است
1بررسی صورت مسئله:به مثال زیر توجه کنید
مثال:برنامه ای بنویسید که طول و عرض یک مستطیل را گرفته و مصاحت ان را حساب کند
بیایید این مسئله را با هم بررسی کنیم در مثال بالا از برنامه نویس خواسته شده که یک عمل ریاضی را در برنامه بگنجاند(حساب کردن مساحت)همچنین
با توجه به صورت مسئله داده های خروجی و ورودی مشخص میشود
ورودی:طول وعرض
خروجی :مساحت
خوب به همین سادگی مسئله بررسی شد در واقع هر برنامه ای برای مقاصدی نوشته میشود(به تعریف برنامه در درس اول نگاهی کنید)پس باید برنامه یک عملی انجام
دهد که به بررسی عملکرد برنامه بررسی صورت مسئله میگوییم به بیان ساده تر شما باید معین کنید که می خواهید سیستم چه کاری برای شما انجام دهد.
2یافتن راه حل:بعد از اینکه مشخص شد که در خواست ما از سیستم چه هست نوبت به یافتن را حل مسئله میرسد
در مثال بالا راه حل مسئله بدین شکل است
طول*عرض=مساحت
خوب حالا مسئله هم حل شد
3تهیه الگوریتم:در واقع اکثر برنامه نویسها وقت خود را برای انجام این مرحله نمیگذارند که این اشتباه بزرگی است شاید بتوان برنامه های کوچکی نوشت که
قبلا الگوریتم ان تهیه نشده اما در برنامه های بزرگ قطعا اگر این مرحله را انجام ندهید وقت زیادی از شما گرفته میشود همچنین برنامه
نویس سر در گم میشود به جرآت میگوییم که اکثر این نوع برنامه ها با شکست مواجه میشود به همین دلیل است که بعضی از برنامه نویسان هیچ رشدی در زمینه
برنامه نویسی نمیکنند و به نوشتن برنامه های کوچک اکتفا میکنند.
تهیه الگوریتم خود شامل دو مرحله است:
1نوشتن الگوریتم برنامه
2رسم فلو چارت برنامه
در نوشتن الگوریتم برنامه باید به دادهای ورودی و خروجی همچنین به نحوه هل مسئله دقت کرد
که الگوریتم مثال بالا بدین شکل میشود
1شروع
2طول و عرض را از کاربر دریافت کن
3طول را در عرض ضرب کن و حاصل را در مساحت بریز(طول*عرض=مساحت)
4مساحت را نمایش بده
5 پایان
همانطور که متوجه شدید به نوشتن نحوه عملکرد برنامه به صورت مرحله به مرحله
و الگوریتمی تهیه الگوریتم گفته میشود
شاید به نظر ساده باشد ولی بعدها که خواستید برنامه های بزرگ بنویسید خواهید دید که عمل به این مرحله
چقدر به شما کمک میکند
خوب برای امروز کافیه باید برم کار دارم فعلا بای