170 likes | 326 Views
انواع داده : مبحث تکمیلی. تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86. مروری بر مطالب. با نوع های تعریف شده در پاسکال استاندارد آشنا شدیم: Boolean, char, real, Integer با نوع داده string در توربو پاسکال آشنا شدیم.
E N D
انواع داده : مبحث تکمیلی تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
مروری بر مطالب • با نوع های تعریف شده در پاسکال استاندارد آشنا شدیم: • Boolean, char, real, Integer • با نوع داده string در توربو پاسکال آشنا شدیم. • با نوع های دیگر آشنا خواهیم شد. • پاسکال به ما اجازه می دهد تا برای خودمان نوع داده تعریف کنیم.
توابع ترتیبی • نوع داده های integer، boolean و char به عنوان داده های ترتیبی طبقه بندی می شوندو • Ord : موقعیت نسبی یک مقدار ترتیبی را در سری مقادیر مربوط به خودش تعیین می کند. • Pre: عنصر قبل از پارامترش را نشان می دهد. • Succ: عنصر بعد از پارامترش را نشان می دهد
تعريف يک نوعداده Type نام دلخواه = نوع داده جديد ; Var نام متغير : همان نام دلخواه ;
انواع زیر داده ای • زیر بازه زیرمجموعه ای از مقادیر وابسته به نوع ترتیبی خاص است • نوع ترتیبی : integer, char, boolean • حوزه مقادیر مجاز برای یک متغیر ترتیبی را نشان می دهد. • اگر به یک متغیر مقداری خارج از محدوده داده شود، خطا رخ می دهد.
Type Days = 1 .. 31 ; Letters = ‘A’ .. ‘Z’ , ‘a’ .. ‘z’ ; Var a, b : Days; c : Letters; انواع زیر داده ای (ادامه) • اولین زیر بازه از نوع میزبان integer است. • نوع میزبان توسط دو مقدار که زیر بازه را مشخص می کند تعیین می شود که عدد ترتیبی اولین مقدار بایستی کوچکتر یا مساوی عدد ترتیبی دوم باشد. • کلیه اعمالی که برای نوع میزبان معتبر است، روی هر نوع زیربازه- اش نیز می تواند انجام شود.
انواع زیر داده ای (ادامه) • نوع دیگری از تعریف آرایه Type matrix : array[1..10,1..10] of byte; Var a,b,c: matrix;
ترتیب تعاریف در پاسکال • در پاسکال استاندارد، تعریف نوع داده یا هر نوع تعریف شده توسط کاربر، باید بین تعریف ثابت ها و متغیرها باشد: • تعریف ثابت ها • تعریف نوع ها • تعریف متغیرها • تعریف رویه ها و توابع • در توربو پاسکال به این ترتیب نیازی نیست و تنها باید هر نوع داده قبل از اولین استفاده اش تعریف شده باشد.
نوع های مشابه • در توربو پاسکال دو نوعداده تشابه دارند، هنگامی که: • طوری تعریف شوند که مشابه یکدیگر باشند. • هر نوع داده تعریف شده، مشابه نوع شناسه سوم باشد. Type Numbers = Integer; posAndNeg = Numbers; IntType = PosAndNeg; Type percent = 1...100; hundred = 1..100;
سازگاری نوع • دو نوع داده در توربو پاسکال با هم سازگارند: • تشابه نوع دارند • هر دو نوع از انواع صحیح باشند که لزومی ندارد هر دو یک نوع صحیح باشند. • از نوع های حقیقی باشند که لزومی ندارد هر دو یک نوع حقیقی باشند. • یک نوع زیربازه ای از دیگری باشد. • هر دو نوع زیربازه ای از یک نوع میزبان باشند.
سازگاری انتساب • در توربو پاسکال یک عبارت با یک متغیر سازگاری انتساب دارد: • نوع آن ها یکسان باشد • سازگاری نوع داشته باشند و مقدار عبارت در بازه ممکن برای متغیر باشد • متغیر یکی از انواع حقیقی باشد، نوع عبارت صحیح باشد و مقدار عبارت، در بازه ممکن برای متغیر باشد.
انواع شمارشی Type Seasons = (spring, summer, fall, winter); Var s : seasons; Begin if s=spring then writeln(‘all months have 31 days’);
انواع شمارشی(ادامه) • مقادیر یک نوع شمارشی، شناسه است و نمی تواند عدد، کاراکتر یا رشته ای از حروف باشد. • مقادیر و ترتیب مربوط به این نوع در لیست شناسه ها مشخص می شود Type day = (Sunday, Monday,Tuesday, Wednesday, Thursday, Friday); Sunday<monday
انواع شمارشی(ادامه) • متغیرها از نوع شمارشی توسط هر کدام از مقادیر لیست شده منسوب شوند. • توابع ترتیبی ord, pre, succ قابل استفاده است و در رابطه های ترتیبی >,<,=,<> صدق می کنند.
خواندن و نوشتن مقادیر با نوع شمارشی Type color = (Red,Green,Blue, Yellow); Var eyes : color; Begin eyes := red; write(ord(eyes)); end.