بخشی از پاورپوینت

اسلاید 1 :

طراحي و پياده سازي زبانهاي برنامه سازي

اسلاید 4 :

فصل پنجم :
انواع داده اولیه

اسلاید 5 :

آنچه در این فصل خواهید آموخت
شی داده
انقیاد شی داده
متغیرها و ثوابت
نوع داده
مشخصات انواع داده اولیه
پیاده سازی انواع داد اولیه
اعلان
اهداف اعلان
کنترل نوع
کنترل نوع پویا
کنترل نوع ایستا
تبدیل نوع و تبدیل نوع ضمنی
انتساب و مقدار دهی اولیه
انواع داده اسکالر
نوع صحیح
زیر بازه
اعداد حقیقی ممیز شناور
اعداد حقیقی ممیز ثابت
نوع شمارشی
نوع بولین
نوع کاراکتری
انواع داده مرکب
رشته ها
اشاره گرها
فایل ها

اسلاید 6 :

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

5-1- شی داده (D.O)

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

اسلاید 7 :

اشیا داده به دو دسته تقسیم می شوند :

تعریف شده توسط برنامه نویس

اشیا داده هایی هستند که توسط برنامه نویس تعریف می شوند مانند متغیرها ، مقادیر ثابت ، آرایه و فایل و.
تعریف شده توسط سیستم
اشیا داده هایی هستند که توسط سیستم به وجود می آیند و مستقیماً در اختیار برنامه نویس نیستند. مثل پشته های زمان اجرا ، رکورد های فعالیت زیر برنامه ها، بافرهای فایل و لیست فضای آزاد، جدول نماد ها .

اسلاید 8 :

طول عمر

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

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

اسلاید 9 :

ساختار شی داده :

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

شی داده اولیه : یک شی داده اولیه است اگر تنها شامل یک محل حافظه برای مقدار داده باشد. مانند اشیا داده از نوع … , CHAR , FLOAT , INT
شی داده ساختاری : اگر شی داده شامل مجموعه ای از سایر اشیا داده ای باشد. مانند رکورد ،آرایه مقدار یک شی داده ای توسط الگویی از بیت ها مشخص میشود .

اسلاید 10 :

به مثال زیر دقت کنید:

اسلاید 11 :

5-1-1-انواع مختلف انقیاد یک شی داده

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

انقیاد شی داده به محلی از حافظه : محلی در حافظه برای شی در نظر گرفته می شود. این کار (انقیاد) از دید برنامه نویس مخفی بوده و توسط روال های مدیریت حافظه کامپیوتر مجازی انجام می شود.

انقیاد شی داده به یک یا چند ارزش (مقدار) : این نوع انقیاد توسط دستورات انتساب مثل A:=13 انجام می گیرد.
انقیاد یک شی داده به یک یا چند نام : این انقیاد توسط اعلان ها انجام پذیرفته و هنگام فراخوانی زیر برنامه و برگشت از آن اصلاح میشود.

انقیاد شی داده به یک یا چند شی داده دیگر : این انقیاد در هنگام استفاده از متغیرهای نوع اشاره گر انجام می گیرد .

اسلاید 12 :

5-1-2- متغیرها و ثوابت

متغیرها : یک شی داده ای است که توسط برنامه نویس تعریف شده و به صورت صریح استفاده می شود.
Int n ;
Char ch;

ثابت : یک شی داده ای با نام است و مقداری که به آن نسبت داده می شود در طول عمر آن ثابت است.
Const int max =30;

ثابت لیترال : یک ثابت لیترال ، ثابتی است که نام آن همان نمایش مقدارش است . مثلاً “37” یک ثابت لیترال است که یک شی داده با مقدار 37 می باشد.

نکته : چون مقدار ثابت به طور دائم در طول عمرش به آن مقید می شود. بنابراین این انقیاد توسط مترجم شناخته شده است و کامپایلر می تواند از اطلاعات مربوط به مقادیر ثابت برای کاهش تولید کد استفاده کند.
گاهی اوقات کامپایلر می تواند از اطلاعات مربوط به مقادیر ثابت به منظور اجتناب از تولید کد برای یک کلمه یا عبارت استفاده نماید.

اسلاید 13 :

مثال :
If (max <2)then

else

در این حالت مترجم از قبل مقادیر داده ها را برای ثابت های max و 2 دارد و می تواند محاسبه نماید که شرط فوق درست است یا خیر. به طور کلی از هر کد نوشته شده داخل دستور if در یکی از قسمت های آن خودداری می کند.

اسلاید 14 :

مثال 1:
F ( ) {
int N;
N =27;
}
این اعلان یک شی داده اولیه از نوع صحیح را مشخص می کند. (type)
این شی داده هنگام ورود به زیر برنامه ایجاد میشود و هنگام خروج از آن از بین میرود یعنی طول عمر آن برابر زمان اجرای زیر برنامه است . (life time)

در اثنای طول عمر این شی داده به نام N مقید میشود که از این طریق به آن مراجعه میشود اگر شی داده به عنوان پارامتر به زیر برنامه ارسال شود نام دیگری به آن مقید می شود. (name)
مقدار اولیه به شی داده مقید نمی شود. اما دستور انتساب مقدار 27 را به آن مقید می کند. (value )

اسلاید 15 :

مثال 2:
Const int max =30;
int N;
N=27
N=N+max
n متغیر ی ساده است . max (توسط کاربر )، 27 و 30 (لیترال )ثابت هستند.
نام اشیاء : “30” ، “27” ، n , max

تفاوت بین مقدار 27: 27 , “27” مقداری صحیح است که بصورت دنباله ای از بیت ها در حافظه نمایش داده می شود و نام 27 دنباله ای از دو کاراکتر “2” و “7” است که بصورت دهدهی نمایش داده شده است.

ثابت 30 دو نام دارد : نام تعریف شده توسط برنامه نویس و نام لیترال که هر دو به یک محل از حافظه اشاره دارد.
#define max 30 یک دستور است که موجب می شود مترجم max را برابر 30 قرار دهد در حالیکه صفت const در زبان c راهنمای مترجم است و می گوید متغیر max همیشه دارای مقدار 30 است.

اسلاید 16 :

ماندگاری داده :

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

اسلاید 17 :

5-2- نوع داده

نوع داده طبقه ای از اشیا داده به همراه مجموعه ای از عملیات برای تولید و دستکاری می باشد. هر زبان مجموعه ای از انوع داده اولیه مانند char , int , bool , float دارد که هنگام تعریف زبان مشخص شده اند. علاوه بر این زبان ممکن است به برنامه نویس اجازه دهد انواع جدیدی را تعریف کند. در زبانهای جدید مثل جاوا و ada کاربران می توانند انواع داده های جدیدی برای خود تعریف کنند ولی چنین کاری در فرترن و کوبول امکان پذیر نیست . نوع داده معمولا در دو سطح مختلف بررسی می شود :
مشخصات : تعریف خصوصیات و مشخصات
پیاده سازی کردن : پیاده سازی آن نوع داده و عملیات روی آن .

اسلاید 18 :

5-2-1- در سطح مشخصات چند عنصر اساسی میتواند مطرح شود.

صفات : ویژگی است که اشیاء داده از یک نوع را با دیگر نوع ها متمایز می کند. صفات اصلی هر شی داده مانند نوع داده و نام معمولاً در طول عمر آن عوض نمی شود.

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

مقادیر : مجموعه ای از مقادیر ممکن که یک شی داده میتواند داشته باشد که تا حد زیادی به سخت افزار وابستگی دارد. مجموعه مقادیر تعریف شده توسط نوع داده اولیه را معمولاً مجموعه مرتب می گویند زیرا دارای کمترین و بیشترین مقدار است و برای هر دو مقدار یکی کوچکتر و دیگری بزرگتر است .

اسلاید 19 :

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

برای مثال در سطح مشخصات عناصر اساسی برای نوع داده آرایه عبارت است از :

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

اسلاید 20 :

5-2-2- عناصر اساسی جهت پیاده سازی عبارتند از :

5-2-2-1- پیاده سازی عملیات : ( نحوه پیاده سازی عملیات)

سه روش برای پیاده سازی عملیات روی اشیاء داده وجود دارد :

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

به صورت زیر برنامه یا تابع : مثلاً عمل جذرگیری که توسط سخت افزار به طور مستقیم پشتیبانی نمی شود. برای پیاده سازی عملیات، یک زیر برنامه مثلا SQRT نوشته می شود .

به صورت دستوراتی که داخل برنامه نوشته می شوند : این روش نیز مانند روش قبلی نرم افزاری است اما به جای زیر برنامه ، دستورات مربوطه در خود برنامه نوشته می شوند مثل عمل قدرمطلق گیری :
Abs (x)=if x<0 then –x else x

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید