بنام خدا Prentice Hall, 2002 انواع داده انتزاعی تکامل مفهوم نوع داده • مفهوم اولیه نوع داده نوع را به صورت مجموعه ای از مقادیر تعریف می کند که یک متغیر می تواند آنها را بپذیرد. • نمایش حافظه مربوط به مقادیر حقیقی و صحیح کالمًا بسته بندی شده است یعنی از برنامه نویس پنهان است. • برنامه نویس بدون اینکه از جزئیات نمایش حافظه و از نوع عملیات این انواع اطالع داشته باشد از اشیای داده آنها استفاده می کند. • برنامه نویس فقط نام نوع و عملیاتی را برای دستکاری آن نوع فراهم می بیند انواع داده انتزاعی تکامل مفهوم نوع داده • در برنامه های بزرگ برنامه نویس با طراحی و پیاده سازی انواع داده جدید سروکار دارد. – برای نوشتن برنامه پایگاه داده آمار ایران • اصالعات هر فرد باید ذخیره گردد (.نام سرپرست ،تعداد ،شماره شناسنامه و).. • اینها صفات نوع داده بخش هستند .هر بخش لیستی از خانوار است • یک شی داده از این نوع یک کالس را نشان میدهد .که عملیات خاصی روی آن شی داده انجام میدهد. • ایجاد ،اضافه کردن فرزند ،حذف دارایی و ..این فعالیتها را میتوان مشخصات این نوع داده در نظر گرفت انواع داده انتزاعی تکامل مفهوم نوع داده • برای ایجاد داده جدید و عملیات بر روی آن – زیربرنامه • می توان زیربرنامه هایی ایجاد کرد که عملکرد خاصی برای یک نوع داده جدید داشته باشد. – اعالن نوع • زبانهایی مثل Cو ادا ،میتوان داده های جدید با عملکرد جدید ایجاد کرد – وراثت • در فصل بعدی. انواع داده انتزاعی انواع داده انتزاعی: • در زبانهای اولیه( فرترن و کوبول) انواع جدید فقط توسط زیربرنامه تولید میشد ،اما زبانهای بعدی انواع کاملی را ارائه دادند: – Packageدر ادا – Classدر ++C انواع داده انتزاعی(ادامه) تکامل مفهوم نوع داده انتزاع داده ها • نوع داده انتزاعی : • مجموعه ای از اشیای داده (معموًال با استفاده از یک یا چند تعریف نوع) • مجموعه ای از عملیات انتزاعی (بر روی آن انواع داده) • بسته بندی (تمام آنهابه طوری که کاربر نوع جدید نتواند اشیای داده ای از آن نوع را به جز از طریق عملیاتی که برای آن تعریف شده است دستکاری کند) انواع داده انتزاعی (ادامه) پنهان سازی اطالعات • برای نوشتن برنامه بزرگ باید از استراتژی تقسیم و حل استفاده کرد. – برنامه ها به قطعاتی به نام ماژول تقسیم می شوند. – هر ماژول مجموعه ای محدود از عملیات روی داده های محدود • طراحی ماژول معموًال به دوروش انجام می شود: – ماژولهای تجزیه تابعی ( )1960 – ماژولهای تجزیه داده ای انواع داده انتزاعی (ادامه) پنهان سازی اطالعات(ادامه) • زبان برنامه سازی انتزاع را به دو روش پشتیبانی می کند: – با تدارک کامپیوتر مجازی که کاربرد آن ساده تر و قدرت آن بیش از کامپیوتر سخت افزار است. – زبان امکاناتی را فراهم می کند که برنامه نویس می تواند انتزاعها را به وجود آورد .مثل زیربرنامه ،کالس و پکیچ. • بسته بندی اصالح برنامه را آن می کند. • زیربرنامه ها مکانیزم بسته بندی را شکل می دهند که تقریبًا در هر زبانی وجود دارد. انواع داده انتزاعی (ادامه) پنهان سازی اطالعات(ادامه) • پنهان سازی اطالعات ،اصطالح مهمی در طراحی انتزاعهای برنامه نویسی است. • هر قطعه باید تا آنجا که ممکن است اطالعات را از کاربر پنهان کند. – مثال :تابع جذر یک عدد :زیرا الگوریتم محاسبه را از کاربر پنهان کرده • نوع داده تعریف شده در صورتی موفق است که الگوریتم هایی که توسط عملیات استفاده میشود خوب پنهان باشند. انواع داده انتزاعی (ادامه) پنهان سازی اطالعات(ادامه) • وقتی اطالعات در یک انتزاع بسته بندی شد: – الزم نیست کاربر از اطالعات مخفی اطالع داشته باشد – در صورت لزوم نمی تواند مستقیما آن اطالعات را دست کاری کند. • مثل :نوع داده صحیح(در پاسکال) – نه تنها جزئیات نمایش پنهان هستند برنامه نویس نمی تواند بیتهای عدد را دستکاری کند. بسته بندی با زیربرنامه ها • زیربرنامه یک عملیات انتزاعی است که توسط برنامه نویس تعریف میشود .و عناصر تشکیل دهنده بنامه ها هستند. • دو دیدگاه از زیربرنامه در اینجا مهم است: – در سطح طراحی برنامه ( عملیاتی که برنامه نویس طراحی می کند) – در سطح طراحی زبان ( امکاناتی که برای تعریف وفراخوانی زیربرنامه ها) بسته بندی با زیربرنامه ها(ادامه) همانند عملیات اولیه زیربرنامه 2بخش دارد( مشخصات – پیاده سازی) • مشخصات زیربرنامه: – نام – امضای زیربرنامه(تعداد آرگومان ،ترتیب ،نوع آنها وخروجی) – فعالیتی که توسط زیربرنامه انجام می شود. ;)Float FN(float x, int y • پیاده سازی زیربرنامه شامل: • پیاده سازی توسط بدنه ;real FN:که real*intشود > -تعریف می زیربرنامه متشکل از اعالن داده های محلی است • دستوراتی که عملکرد زیربرنامه را مشخص می کند. بسته بندی با زیربرنامه ها (ادامه) تعریف و فراخوانی زیربرنامه • ایستایویک برنامه خاصیت زیربرنامه تعریف پیاده سازی تعریف است. فراخوانی: برنامه اگر زیربرنامه ای فراخوانی • درحین اجرای شود سابقه فعالیتی از آن زیربرنامه ایجاد می شود. بستگی به زبان های مختلف • تعریف زیربرنامه قالبی برای ایجاد سابقه فعالیت است ، C .فرترن )... ، (پاسکال ، در حین اجرا بسته بندی با زیربرنامه ها (ادامه) تعریف و فراخوانی زیربرنامه(ادامه) پیاده سازی تعریف و فراخوانی زیربرنامه • الگو به دو بخش تقسیم می شود: – بخش ایستا که سگمنت کد نام دارد و حاوی ثوابت و کد اجرایی است. • دستورات ،زیربرنامه های داخلی و ... – بخش پویا که رکورد فعالیت نام دارد • نوع داده نتیجه ،پارامتر ها و داده های محلی و .. )بسته بندی با زیربرنامه ها (ادامه Python: :زیر برنامه های کلی @abstract راdefآرگمانها collide(a, b): و نوع، ترتیب، تعداد،• مشخصات زیر برنامه "Process collision of two objects" مشخص می کند @when(collide, (Asteroid, Asteroid)) def collide_asteroids(asteroid1, asteroid2): subprogram ( • زیر برنامه کلی ) generic pass – یک نام با چندین امضا @when(collide, (Spaceship, Asteroid)) from peak.rules import abstract, when def collide_spaceship_with_asteroid(spaceship, asteroid): pass @when(collide, (Asteroid, Spaceship)) def collide_asteroid_with_spaceship(asteroid, spaceship): return collide_spaceship_with_asteroid(spaceship, asteroid) # etc... بسته بندی با زیربرنامه ها (ادامه) تعریف زیربرنامه به عنوان اشیای داده • در Cو پاسکال و ..تعریف زیربرنامه مستقل از اجراست. • ترجمه عملیاتی است که تعریف زیربرنامه را به شکل رشته کاراکتری گرفته شی داده زمان اجرا را تولید می کند که این تعریف را نمایش می دهد. • اجرا عملیاتی است که تعریفی به شکل زمان اجرا را گرفته سابقه فعالیتی را از آن ایجاد می کند و آن سابقه فعالیت را اجرا می نماید (.صدا زده میشود) تعریف نوع • مکانیزمی برای توصیف دسته ای از اشیاء داده به همراه عملیات آنها. • در تعریف : – نام نوع – ساختار – عملیات آن نوع تعیین میگردد • تعریف نوع به عنوان الگویی برای ساخت اشیاء در حین اجرای برنامه میباشد. تعریف نوع(ادامه) هم ارزی نوع • نوع داده :بتوانیم آن را به طور ایستا تعیین کنیم • یک موضوع معنایی در تعین مقدار راست شی داده • تساوی نوع • هم ارزی نام – معایب: • هر شی که در انتساب بکار می رود باید دارای نام باشد • یک تعریف نوع باید در سراسر برنامه یا بخش بزرگی از برنامه قابل استفاده باشد تعریف نوع(ادامه) هم ارزی نوع(ادامه) • هم ارزی ساختاری – معایب • آیا ترتیب فیلدها باید یکی باشد ... • دو متغیر ممکن است به طور تصادفی از نظر ساختاری یکسان باشند • تعیین هم ارزی ساختاری در مورد انواع پیچیده هزینه ترجمه دارد. • تساوی اشیای داده • تساوی پشته • تساوی مجموعه تعریف نوع با پارامتر ها تعریف انواعی که پارامتردارند • پیاده سازی :تعریف نوع پارامتردار به عنوان الگویی در زمان ترجمه منظور می شود با این تفاوت که وقتی کامپایلر اعالن یک متغیر را با لیست پارامترهایی که بعد از نام نوع می آید را ترجمه می کند. پایان Prentice Hall, 2002
سایر • آموزش • علوم انسانی و علوم اجتماعی
دانلود پاورپوینت انواع داده انتزاعی
80,000 تومان