منو
 کاربر Online
768 کاربر online

تعریف متغیر

تازه کردن چاپ
علوم ریاضی > علو م رایانه
(cached)



این مطلب از بخش آموزش وب‌سایت المپیاد کامپیوتر رشد،انتخاب شده که با فرمت pdf نیز در وب‌سایت المپیاد رشدموجود می‌باشد. برای مشاهده این موضوعات در وب‌سایت المپیاد، به آدرس فهرست مطالب کامپیوتر مراجعه کنید. همچنین می‌توانید با کلیک اینجا‌ ، با ویژگی‌های بخش آموزش این وب‌سایت آشنا شوید.


تعریف متغیر


در مورد بدنه اصلی برنامه گفتیم. در آن بخش در مورد تعریف متغیرها توضیحی داده نشد حال به این مساله و مساله تعریف ثوابت می پردازیم.
بخش شکل جزیی زیر را دارد:
در مورد نام متغیر در بخشهای قبل صحبت کردیم و همان قواعد در انتخاب ها لازم و کافیند. بخش یا نوع داده هم در واقع اسامی انواع داده ای است که یا شما در بخش تعریف کرده اید و یا در خود استاندارد است. به عنوان مثال اسم نوع داده " عدد صحیح " است که در خود وجود دارد. نحوه ایجاد انواع داده در بخش در فصل پنجم به تفصیل مورد بحث قرارخواهد گرفت.
در حال حاضر به انواع داده موجود می پردازیم
عدد صحیح 2 بایتی : و عدد صحیح4 بایتی : عدد حسابی 4 بایتی : و عدد صحیح 1 بایتی : عدد حقیقی : و عدد حسابی 1 بایتی : و عدد حسابی 2 بایتی : رشته حروف : و حرف و عدد حقیقی توسعه یافته :


اعداد صحیح


چنانکه قبلاً چند بار ذکر شده داده ها یا همان متغیرها بخشهایی از حافظه اند. لذا خالی از لطف نیست که چگونگی برخورد بصورت عدد صحیح با حافظه را بررسی کنیم!
ساده ترین روش برخورد با حافظه برخورد بصورت عدد حسابی است. در این حالت به سادگی با در نظر گرفتن هر بیت حافظهimg/daneshnameh_up/d/d2/com0109a.jpg رقم دودویی ) بصورت رقم مبنای دوی یک عدد بخش حافظه را عدد حسابی گرفت. مثلاً وقتی ترتیبی از صفر و یکها بصورت زیر در حافظه است:
img/daneshnameh_up/c/ca/com0109b.jpg
در این روش برخورد همه اعداد مثبت و یا صفرند لذا مجموعه حسابی بدستی می آید.
برای آنکه عدد های منفی را نیز داشته باشیم باید بخشی از فضای متغیر عدد را به مثبت یا منفی بودن آن نسبت دهیم. یک روش ساده در نظر گرفتن بیت علامت است مثلاً آخرین بیت سمت چپ را علامت بگیریم.
img/daneshnameh_up/9/9c/com0109c.jpg
حال برای آنکه خود را هم آزموده باشید بدون خواندن پاراگراف بعدی به سئوال پاسخ دهید:
اینگونه در نظر گرفتن منفی و مثبت چه ایرادی است ( راهنمایی : چگونه استفاده ناصحیح از حافظه می کند)؟
در این نوع برخورد عدد صفر دو نماد پیدا می کند یکی (10000000) و یکی (00000000) و این خود عدم استفاده صحیح از حافظه است. اما مساله بعدی جمع و تفریق، دو عدد صحیح به عنوان ساده ترین اعمال روی اعداد است. در جمع اعداد حسابی مشکلی وجود ندارد مانند جمع کردن انسانها رقم به رقم عددها را با هم جمع می کنیم و 2 بر 1 های لازم را هم در نظر می گیریم (‌به این 2 بر 1 ها که مشابه 10 بر 1 در جمع مبنای ده است رقم می گویند. ) تنها اشکال ممکن عدم وجود فضای کافی برای ذخیره نتیجه جمع است. مثلاً
به این حالت یا سرریز می گویند زیرا رقم دودویی از ظرف حافظه سرریز کرده است!
img/daneshnameh_up/8/8f/com0109d.jpg
حال برای جمع دو عدد صحیح چه کنیم؟! با روش بالا این کار بسیار مشکل است لذا روش " مکمل دو برای نمایش اعداد صحیح استفاده می شود. ابتدا به پایه تئوری این روش می پردازیم، گفته شد که حافظه ذخیره هر عدد محدود است مثلاً فرض کنید 1 ( بیت ) است، در این حالت بیت فرضی نهم را در نظر می گیریم که تاثیری در مقدار حافظه ندارد لذا اگر و دو عدد باشند:
از طرفی اگر عدد 8 بیتی باشد حتماً 8 بیتی است یعنی بیت نهم آن صفر است ( چرا؟ ) لذا عمل جمع " با مکمل دو " ی یک عدد معادل تفریق است. این انگیزه باعث می شود که را در حافظه بصورت ذخیره کنیم. ممکن است سئوال پیش بیاید محاسبه چگونه است؟ این کار به سهولت و با منطقی کردن عدد و جمع آن با 1 صورت می پذیرد مثلاً
img/daneshnameh_up/0/02/com0109e.jpg
با این روش علاوه بر آنکه هر عدد حتی نمایش یکتا دارد عمل تفریق هم به سهولت ممکن می شود.


اعداد حقیقی



برای ذخیره اعداد حقیقی چه روشی را پیشنهاد می کنید؟ باز هم از ساده ترین روش شروع کنیم، یک عدد 1 بایتی حقیقی داریم ( چنین نوع داده ای وجود ندارد! ) می توان چهار بیت آن را بعد ممیز و چهار بیت آن را قبل ممیز در نظر گرفت.
img/daneshnameh_up/2/22/com0109f.jpg
باز هم برای آزمودن خود محدودیت های روش را بررسی کنید.
راه دیگر استفاده از روش نماد علمی است. در این روش چه می کردید؟ مثلاً برای نمایش456/232 روش نمایش بصورت است. با این ایده می توان توان ده و مقدار پایه عدد را ذخیره کرد.
img/daneshnameh_up/4/44/com0109g.jpg
با این روش بازه وسیعتری از اعداد حقیقی قابل نمایشند. به روش اول و روش دوم گویند هر روش مزایا و محدودیت های خاص خود را دارد. روش اول برای محاسبات جمع و تفریق و روش دوم برای ضرب و تقسیم بهترند.
روش استاندارد کار با اعداد حقیقی روشاست و لذا هر دو نوع براین مبنا هستند. برای تمرین مشکلات روش را در کار با اعداد بررسی کنید البته در استانداردروش نمایش اندکی با نماد علمی فرق دارد و عدد پایه بجای آنکه بین 0و10 باشد بین 0و1 است یعنی


رشته ها و حروف


حروف در دنیای رایانه همان اعداد هستند. در دنیای قدیمی تعداد حروف 256 عدد بود. از کد 0 الی کد 255 یعنی 1 بایت، لذا در نمایش حروف که هر حرف را قرار می دادیم و شکل آن نمایش داده می شد مثلاً شکل کد 65 حرفو شکل کد 48 حرف بود. در نسخه های قدیمی یعنی 3.1و95و98 هم روش تقریباً بر همین منوال است اما در نسخه های بعدی هر حرف کد 2 بایتی دارد به کدهای حروف در کدهای و به کدهای حروف در کدهای می گویند. مسلماً در روش تعداد بسیار بیشتری حرف و نماد وجود دارد.
پس از این توضیح باید بگوییم که روش ذخیره حروف در یک کد 1 بایتی است و لذا کاملاً با روش است در مورد حروف مساله دیگری وجود ندارد اما در مورد رشته ها. طول یک رشته حرفی چقدر است؟ یعنی یک رشته حرفی تا کجای حافظه ادامه دارد؟ برای معین کردن این مساله باید به نحوه ذخیره سازی رشته ها پرداخت. یک روش، روش img/daneshnameh_up/4/49/com0109h.jpg است. یعنی انتهای یک رشته حرفی کد(0) است. روش دیگر که روش است ذخیره طول و مشخصات رشته حرفی در ابتدای رشته حرفی است. یعنی ابتدا در حافظه طول رشته را می نویسیم و سپس خود رشته را هر جا درون' ' بوده نماد حرف و هر جا \ قرار دارد کد را نوشته ایم.
img/daneshnameh_up/5/57/com0109i.jpg
برای نسبت دادن مقادیر به متغیرها از دستور استفاده می شود بجای اسم متغیر و بجای مقدار آنرا قرار دهید.


مثال












;""



سه نوع دیگر که نام نبردیم ( اشاره گر ) است که در فصل پنجم مورد بررسی قرار می گیرد.
همچنین نوع داده ( منطقی ) که برای ذخیره نتایج منطقی عبارات استفاده می شود.

پیوند های خارجی

http://Olympiad.roshd.ir/computer/content/pdf/0194.pdf




تعداد بازدید ها: 18897


ارسال توضیح جدید
الزامی
big grin confused جالب cry eek evil فریاد اخم خبر lol عصبانی mr green خنثی سوال razz redface rolleyes غمگین smile surprised twisted چشمک arrow



از پیوند [http://www.foo.com] یا [http://www.foo.com|شرح] برای پیوندها.
برچسب های HTML در داخل توضیحات مجاز نیستند و تمام نوشته ها ی بین علامت های > و < حذف خواهند شد..