مقدمه مبانی کامپیوتر و برنامه نویسی
شاید با خواندن این پست خاطرات دوران دانشگاهتان را به یاد آورید؛ انگار همین دیروز بود، ترم اول رشته فناوری اطلاعات بودیم و در اولین انتخاب واحد، درس مبانی کامپیوتر و برنامه نویسی را به عنوان یکی از دروس اصلی انتخاب کردیم. در ترم اول به عنوان یک درس اصلی یکی از شیرینترین واحدها بود. در سایر رشتهها نیز این کتاب به عنوان یک درس عمومی تدریس میشود.
همانطور که میدانید امروزه کامپیوتر به ابزار قدرتمندی تبدیل شده است که بسیاری از فعالیتهای پژوهشی بدون وجود کامپیوتر سخت و غیر ممکن میشود. شاید خالی از لطف نباشد نگاهی کوتاه به نسلهای مختلف کامپیوتر بیندازیم:
- کامپیوترهای نسل اول: در اوایل دهه ۱۹۵۰ ساخته شد، جزو اصلی این کامپیوترها لامپ خلاء بود که حجم بسیار زیادی داشت و انرژی زیادی را مصرف میکرد.
- کامپیوترهای نسل دوم: در اوایل دهه ۱۹۶۰ معرفی شد. در این کامپیوترهای به جای لامپ خلاء از ترانزیستور استفاده کردند.
- کامپیوترهای نسل سوم: در سال ۱۹۶۴ ساخته شد. با مدارات مجتمع یا همان IC ایجاد شدند. ICها باعث افزایش سرعت و کاهش حجم کامپیوتر شده بود.
- کامپیوترهای نسل چهارم: در اواسط سال ۱۹۷۰ با اختراع مدارات مجتمع که با فشردگی بالا انجام میشد، حجم کامپیوترها دوباره کاهش یافت و باعث شد کامپیوترها در خانهها و ادارهها کاربرد داشته باشد.
سیستم کامپیوتری
سیستم کامپیوتری تشکیل شده از سخت افزار و نرم افزار که برای انجام کار خاصی با همدیگر همکاری میکنند. اگر بخواهیم یک معنای علمیتر برای سیستم کامپیوتری تعریف کنیم، این تعریف به این صورت است که هر سیستم کامپیوتری تشکیل شده است از وسایل الکترونیکی و الکترومکانیکی که دادهها را از ورودی دریافت کرده و بعد از انجام عملیات روی دادهها، نتایج را به عنوان خروجی تولید میکند. در شکل زیر یک سیستم کامپیوتری نشان داده شده است:
- داده: به مطالبی که وارد کامپیوتر میشود را داده میگویند. دادهها مثل عدد، حروف، صدا، تصویر و غیره است.
- پردازش: به دستورالعملها و عملیاتی که روی داده انجام میپذیرد پردازش داده میگویند.
- خروجی: به اطلاعاتی که بعد از پردازش دادهها تولید میشود، خروجی گویند.
انواع کامپیوترها
کامپیوترها از نظر قدرت پردازش انواع مختلفی دارد:
- ریز کامپیوترها: ریزکامپیوترها یا همان کامپیوترهای شخصی با قیمت پایین نسبت به کامپیوترهای دیگر و حجم کم وارد بازار شد و بسیار مورد استقبال مردم قرار گرفت.
- کامپیوترهای کوچک: به خاطر قیمت بالای کامپیوترهای بزرگ در سال ۱۹۵۰ کامپیوترهای کوچک به بازار وارد شد. این کامپیوترها در مقایسه با کامپیوترهای بزرگ از توان محاسباتی کمتری برخوردار بودند و در سازمانهای کوچک استفاده میشود.
- کامپیوترهای بزرگ: از نظر قدرت و سرعت از توان بالایی برخوردار هستند، در دانشگاهها و سازمانهای بزرگ برای انجام محاسبات سنگین مورد استفاده قرار میگیرد. توان محاسباتی این کامپیوترها از ابر ریانهها کمتر است.
- ابر رایانهها: از قویترین و گرانترین نوع کامپیوترها است که از سرعت بسیار بالا و قدرت اجرایی بالایی برخوردار است. ابر رایانهها در زمینههای نظامی، تحقیقاتی، فضایی و پروژههای بزرگ علمی مورد استفاده قرار میگیرند.
اجزای کامپیوتر
کامپیوترها به دو دستهی اصلی تقسیم میشوند:
- نرم افزار: به مجموعهای از برنامهها که برای کاربردی خاص نوشته شدهاند و بدون آنها سخت افزار قادر به انجام کاری نیست.
- سخت افزار: به دستگاههای الکتریکی و الکترونیکی که از آنها کامپیوتر تشکیل شده است را سخت افزار گویند.
سخت افزار کامپیوتر
اجزایی که سخت افزار کامپیوتر را تشکیل میدهد عبارتند از: واحد ورودی و خروجی، واحد حافظه، محاسبه و منطق، واحد کنترل و حافظه جانبی. برای یادگیری معماری کامپیوتر که توسط مهندس منوچهر بابایی تدریس شده است میتوانید از آموزش معماری کامپیوتر با رویکرد حل مساله فرادرس استفاده کنید.
در ادامه به توضیح هرکدام از اجزای سخت افزاری کامپیوتری میپردازیم. اجزای سخت افزاری در تصویر زیر آورده شده است.
- واحد محاسبه ومنطق: همانطور که از نامش پیداست برای انجام عملیات ریاضی مثل جمع، ضرب، تفریق و تقسیم و مقایسه مقدارها، انجام میشود.
- واحد کنترل: این بخش وظیفه کنترل بخشهای مختلف را دارد و این واحد تصمیم میگیرد چه عملی در چه زمانی انجام بگیرد. به طور کلی نظارت و کنترل ورود اطلاعات، ذخیره آن، انتقال اطلاعات و خروج اطلاعات از طریق واحد خروجی بر عهده این واحد میباشد.
- واحد حافظه: نگهداری اطلاعات و دادهها به صورت دائمی و موقتی وظیفه این واحد است که به دو دسته تقسیم میشود: حافظه اصلی و جانبی
- حافظه اصلی: هر برنامه ای که اجرا میشود ابتدا باید وارد حافظه اصلی شود. این حافظه سرعت بالایی دارد. اشکالی که در این حافظه وجود دارد این است که با قطع برق اطلاعات نیز از بین میرود.
- حافظه با دستیابی تصادفی: RAM حافظهای با قابلیت خواندن و نوشتن میباشد که برای ذخیره اطلاعات کاربران استفاده میکنند.
- حافظه فقط خواندنی: ROM حافظهای فقط خواندنی و غیر قابل تغییر؛ از این حافظه که در کارخانه سازنده کامپیوتر پر شده است، دارای دستورالعملی است برای راه اندازی اولیه کامپیوتر.
- حافظه جانبی: سرعت این حافظه نسبت به حافظه اصلی کم است اما اطلاعاتی که ذخیره میشود با قطع برق از بین نمیرود. از انواع مختلف حافظه جانبی میتوان به هارد دیسک، سی دی، DVD و غیره اشاره کرد.
نرم افزار کامپیوتر
در ادامه پست مبانی کامپیوتر و برنامه نویسی سخت افزار را توضیح دادیم و حالا نوبت به نرم افزار میرسد. سخت افزارها به تنهایی قادر به اجرای برنامهها نخواهند بود، بنابراین برای به کارگیری سخت افزارها از نرم افزارها استفاده میکنند. نرم افزارهای کامپیوتر به دو دسته تقسیم بندی میشوند:
- نرم افزارهای کاربردی: نرم افزارهایی هستند که برای استفاده کاربران طراحی شده اند مثل نرم افزار WORD، ویرایشگر عکس و غیره.
- نرم افزارهای سیستمی: این نرم افزارها برای ایجاد و اجرای نرم افزارهای کاربردی نوشته و طراحی میشوند و به سه دسته تقسیم میشوند:
- سیستم عامل: سیستم عاملها نرم افزارهایی هستند که بین کاربر و سخت افزار ارتباط ایجاد میکند. یک لحظه فکر کنید اگر سیستم عامل نبود چه اتفاقی میافتاد؟ همه کسانی که با کامپیوتر کار میکنند باید به زبان ماشین با سخت افزار حرف میزدند که خیلی کار مشکلی بود؛ اما با وجود سیستم عامل کاربران به راحتی میتوانند با سیستم ارتباط برقرار کنند. در حال حاضر Windows بیشتر در کامپیوترهای خانگی و اداری استفاده میشود. از سیستم عامل Linux در دانشگاهها و Unix در کامپیوترهای بزرگ مورد استفاده قرار میگیرد. سیستم عامل اندروید نیز که به صورت وسیع و گسترده در موبایلها و تبلتها یافت میشود.
- برنامههای کمکی: برنامه هایی که کمک میکند تا کاربر به آسانی از کامپیوتر استفاده کند. با کمک این برنامه ارتباط کاربر با سخت افزار به راحتی انجام می گیرد. مانند نرم افزارهای ویروس یاب.
- مترجمها: شاید بدانید که زبان کامپیوتر، زبان ماشین است و برنامه نویسی به زبان ماشین مشکل است، بنابراین برای اینکه کامپیوتر بتواند برنامه هایی که به زبان سطح بالا توسط برنامه نویس نوشته شده است، را بخواند و درک کند از مترجم استفاده میکنند؛ پس با توضیحی که دادیم مترجم را اینگونه تعریف میکنیم: مترجم دستورات زبان سطح بالا را به زبان قابل فهم برای کامپیوتر تبدیل میکند. مترجم ها دو نوع هستند: ۱) کامپایلر ۲) مفسر.
سیستم اعداد در مبانی کامپیوتر
اگر یادتان باشد در مقطع ابتدایی اعداد را به صورت ده دهی شمارش میکردند و با یکان و دهگان و صدگان و غیره آشنایی دارید، در ریاضی هر عدد N را به صورت زیر تفسیر میکنند. به عنوان مثال عدد ۹۸۰۶۵ را به صورت زیر نشان میدهد:
میتوان اعداد را در مبناهای مختلف نشان داد؛ بنابراین هر عدد N در مبنای b به صورت زیر نمایش داده میشود:
تبدیل مبنا
یکی از مباحث درس مبانی کامپیوتر و برنامه نویسی تبدیل مبنا است. در تبدیل مبنا یک عدد از مبنای ۱۰ به مبنای دلخواه A، کار سختی نخواهید داشت و با انجام تقسیمهای متوالی به جواب خواهید رسید، به اینصورت که عدد دلخواه را بر A تقسیم می کنید و باقیماندهها را نگه میدارید، سپس این تقسیم را به صورت متوالی انجام میدهید تا اینکه خارج قسمت صفر شود. در انتها باقی ماندههایی را که ذخیره کردید از آخرین باقیمانده تا اولین از چپ به راست بنویسید. برای اینکه بیشتر متوجه توضیحات شوید به مثال زیر دقت کنید:
برای اینکه مبناهای دیگر را به مبنای ۱۰ تبدیل کنید باید عددها را در ارزش مکانی خود ضرب کنید و حاصل ضربها را با یکدیگر جمع میکنید، حالا عدد به دست آمده در مبنای ۱۰ است. به مثال زیر توجه کنید:
الگوریتم در مبانی کامپیوتر و برنامه نویسی
مبانی کامپیوتر و برنامه نویسی به دو بخش تقسیم شده است که بخش اول مبانی و مفاهیم کامپیوتر بود و توضیح داده شد، بخش دوم الگوریتم و فلوچارت است که در ادامه به توضیح آن خواهیم پرداخت. سیستمهای کامپیوتری برای انجام کار نیاز به برنامه و نرم افزار دارند. برای اینکه کامپیوتر بتواند کار محول شده را انجام دهد باید مراحل کار به صورت دقیق برای سیستم مشخص شود. الگوریتم به معنی روش حل مسئله است.
تعریف الگوریتم را اینگونه بیان کنیم که به مجموعهای از دستورالعملها که مراحل حل مسئله را با جزئیات نشان میدهد که در آن ترتیب مراحل مهم است. در نوشتن الگوریتمها نکاتی مثل ورودی، خروجی، جزئیات، ترتیب مراحل و کارایی مراحل وجود دارد، که باید رعایت شود.
در مثال زیر از الگوریتمی نوشته شده است که سه عدد را از ورودی دریافت میکند و میانگین آن را در خروجی چاپ مینماید:
- شروع
- A و B و C را بخوان
- Z ← A+B+C
- Average ← Z/3
- Average را چاپ کن
- پایان
در نوشتن الگوریتم بعضی مواقع از جملات شرطی استفاده میشود که درست یا غلط بودن شرط را مشخص میکند در صورت درست بودن شرط عملیات خاصی روی آن انجام میشود و در صورت نادرست بودن شرط عملیات دیگری را انجام دهد. در مثال زیر الگوریتم نوشته شده عددی را دریافت میکند با این جمله شرطی که اگر عدد صفر بود در خروجی زوج چاپ کن و در غیر اینصورت فرد را در خروجی چاپ کن:
- شروع
- عدد Z را بگیر
- C←A/2
- D←A-2*B
- اگر D صفر بود پس در خروجی زوج چاپ کن در غیر اینصورت عدد فرد را چاپ کن
- پایان
فلوچارت در مبانی کامپیوتر و برنامه نویسی
برای اینکه الگوریتم را بهتر درک کنند و برای آسانتر کردن دستورالعملهای الگوریتم نوشته شده، از شکلهای مختلف استفاده کردند و نام آن را فلوچارت گذاشتند. اگر بخواهیم تعریف سادهای از فلوچارت بیان کنیم به این صورت خواهد بود؛ به مجموعهای از علائم و اشکال ساده که الگوریتم به صورت نماد یا تصویری نشان میدهد فلوچارت گویند.
اگر در حل مسئله بتوانید الگوریتم و فلوچارت را یاد بگیرید به راحتی میتوانید از روی فلوچارت برنامه نویسی کنید. به عبارت سادهتر با استفاده از فلوچارت حل مسئله قدم به قدم انجام میشود. اگر مسئلهای که به شما دادند گرفتن میانگین از ۹ عدد باشد، جمع اعداد و تقسیم حاصل جمع به دست آمده بر تعداد مراحل الگوریتم را نشان میدهد.
در رسم فلوچارت ۵ نماد و شکل وجود دارد که به آن اشاره میکنیم:
- علامت شروع و پایان
- علامت ورودی
- علامت انتساب و جایگزینی
- علامت شرطی
- علامت خروجی
اگر بخواهیم یک نمای کلی از فلوچارت را نشان دهیم به این صورت خواهد بود:
آشنایی با زبان ++C
در آموزش مبانی کامپیوتر و برنامه نویسی، بعد از یادگیری مبانی و مفاهیم و کامپیوتر و آشنایی با الگوریتم و فلوچارت نوبت به یادگیری زبان برنامه نویسی میرسد که ما در این پست به توضیح مختصری از زبان سی پلاس پلاس میپردازیم. زبان برنامه نویسی ++C توسعه یافته از زبان C میباشد بنابراین علاوه بر اینکه ویژگیهای زبان C را درا است خاصیت شی گرایی نیز دارد. سی پلاس پلاس دارای کتابخانهای از کلاس و توابع است که در طول ترم دانشگاهی با این مفاهیم بیشتر آشنا خواهید شد.
در توضیحات بالا گفتیم که الگوریتمی را که نوشته و طرح کردیم توسط کامپیوتر اجرا شود، باید با استفاده از یک زبان سطح بالا در کامپیوتر نوشته شود و پس از برگردانده شدن برنامه به زبان ماشین برای کامپیوتر قابل فهم و اجرا میباشد. اجرای برنامه در زبان سی پلاس پلاس در مرحلههای مختلفی از جمله تولید برنامه، کامپایل، بارگذاری و اجرا انجام میگیرد.
در اجرای برنامه ها خطاهایی به وجود میآید. خطای زمان کامپایل و خطای زمان اجرا از جمله خطاهای به وجود آمده در یک برنامه هستند. به خطای زمان کامپایل خطای نحوی نیز گفته میشود که باعث آن رعایت نکردن دستورات زبان ++C است که در ابتدا به برنامه نویس نشان داده میشود. این خطاها در اثر اشتباه برنامه نویس به وجود میآید که خود برنامه نویس باید این خطاها را پیدا و اشکال زدایی کند.
چون در این بخش هدف آشنایی مختصر با زبان ++C است، با یک برنامه ساده صورت کلی زبان ++C را توضیح دادهایم. برای مطالعه بیشتر در مورد زبان ++C میتوانید به مجموعه آموزش سی پلاس پلاس فرادرس که توسط دکتر فرشید شیرافکن تدریس شده است مراجعه کنید.
نمونه برنامه در ++C
یک مثال ساده در زبان سی پلاس پلاس را بیان میکنیم که نکتههای موجود را با استفاده از این برنامه توضیح دهیم.
// This is a program in C++ #include <iostream> /* allows program to output data to the screen */ using namespace std; // function main begins program execution Void main() { cout << "Welcome to C++!\n "; // display message } // end function main
خروجی به شکل زیر خواهد بود:
WELCOM TO C++!
خط اول برنامه را توضیح میدهد. در زبان سی پلاس پلاس برای اینکه خطی را توضیح دهیم از علامت // استفاده میکنیم. هر دستوری که با علامت شارپ یا # شروع میشود حتما یک دستور ++C نیست جزو دستور پیش پردازنده محسوب میشود.
در ++C وقتی قرار است اطلاعات در خروجی چاپ شوند از پیش پیش پردازنده <include <iostream # استفاده میکنند. main تابعی است که باعث شروع اجرای برنامه میشود. وجود این تابع الزامی است. در این زبان هر بلوک از برنامه با آکولاد یا } میشود و با { پایان مییابد.
;”!cout << “Welcome to ++C به سیستم دستور میدهد تا رشتهای را در خروجی چاپ نماید. یک رشته از چند کاراکتر تشکل شده که برای نشان دادن آن در زبان ++c آن را در کوتیشن مارک (” “) قرار میدهند. وقتی یک دستور تمام شد در آخر از علامت سمیکالن (;) استفاده میکنیم.
سخن آخر در مبانی کامپیوتر و برنامه نویسی
به پایان این پست رسیدیم امیدواریم یک دید کلی از مبانی کامپیوتر و برنامه نویسی به دست آورده باشید. چون در پستهای قبلی الگوریتم و رسم فلوچارت را با توضیحات کامل شرح دادیم بنابراین در این مقاله توضیح مختصری از فلوچارت ارائه کردیم. برای مطالعه در این مورد میتوانید پست آموزش رسم فلوچارت — گام به گام همراه با مثال را مطالعه کنید. سعی کردیم در هر بخش توضیح کافی همراه با مثال داده باشیم تا بهتر بتوانید مطالب را درک کنید. این پست برای کسانی که در ابتدای راه برای آموزش کامپیوتر و برنامه نویسی هستند، پیشنهاد میشود.
پاورپوینت آماده الگوریتم و فلوچارت در ۱۷ اسلاید در قالب ppt. یا pptx. با قابلیت ویرایش برای ارائه درسی آماده دانلود میباشد. با خرید و دانلود پاورپوینت الگوریتم و فلوچارت می توانید ارائه جامع و کاملی داشته باشید.