You are on page 1of 42

‫‌طراحی‌و‌پیاده‌سازی‌زبان‌های‌برنامه‌سازی‬

‫بحث‌انواع‌داده‌اولیه‬
‫استاد‌درس‪‌‌‌‌‌:‬مهدی‌جبل‌عاملی‬
‫‪ -1‬نوع‌داده‌صحیح(‪)Integer‬‬
‫‪ -1‬نوع‌داده‌صحیح(‪)Integer‬‬
‫‪ -1‬نوع‌داده‌صحیح(‪)Integer‬‬
‫• پیاده سازی‬
‫‪ -1‬نوع‌داده‌صحیح(‪)Integer‬‬
‫زیربازه‬
‫‪Type‬‬
‫;‪myint = 1..12‬‬
‫مزیت‪:‬‬
‫زیربازه‬
‫‪Type‬‬
‫;‪myint = 1..12‬‬
‫مزیت‪:‬‬
‫مصرف حافظه کمتر‬
‫کنترل نوع بهتر‬
‫نوع‌داده‌عدد‌اعشاری‬
‫نوع‌داده‌عدد‌اعشاری‬
‫• پیاده سازی‬
‫• روش اول‪ :‬ممیز ثابت‪.‬‬
‫نوع‌داده‌عدد‌اعشاری‬
‫• پیاده سازی‬
‫• روش اول‪ :‬ممیز ثابت‪.‬‬
‫نوع‌داده‌عدد‌اعشاری‬
‫• پیاده سازی‬
‫• روش اول‪ :‬ممیز ثابت (‪.)Fix point‬‬
‫• روش دوم‪ :‬ممیز شناور(‪)Floating Point‬‬
‫نوع‌داده‌عدد‌اعشاری‬
‫• پیاده سازی‬
‫• روش اول‪ :‬ممیز ثابت (‪.)Fix point‬‬
‫• روش دوم‪ :‬ممیز شناور(‪)Floating Point‬‬
‫• استاندارد ‪IEEE‬‬
‫نوع‌داده‌عدد‌اعشاری‬
‫• پیاده سازی‬
‫• روش اول‪ :‬ممیز ثابت (‪.)Fix point‬‬
‫• روش دوم‪ :‬ممیز شناور(‪)Floating Point‬‬
‫• استاندارد ‪IEEE‬‬
‫نوع‌داده‌عدد‌اعشاری‬
‫• پیاده سازی‬
‫• روش اول‪ :‬ممیز ثابت (‪.)Fix point‬‬
‫• روش دوم‪ :‬ممیز شناور(‪)Floating Point‬‬
‫• استاندارد ‪IEEE‬‬
‫نوع‌داده‌عدد‌اعشاری‬
‫• پیاده سازی‬
‫• روش اول‪ :‬ممیز ثابت (‪.)Fix point‬‬
‫• روش دوم‪ :‬ممیز شناور(‪)Floating Point‬‬
‫• استاندارد ‪IEEE‬‬
‫نوع‌داده‌موهومی‌)‪:(Complex‬‬
‫اعداد‌گویا‌یا‌کسری)‪:(Rational‬‬
‫نوع‌داده‌ای‌منطقی(‪:)Boolean‬‬
‫نوع‌داده‌ای‌منطقی(‪:)Boolean‬‬
‫• پیاده سازی‪:‬‬
‫‪ False‬یا‌ ‪ True‬نشان‌دهنده‌‪ 1‬یا‌‪0‬‬

‫هر‌هشت‌بیت‌تعیین‌کننده‌ ‪True‬یا‌ ‪False‬است‬


‫نوع‌داده‌ای‌منطقی(‪:)Boolean‬‬
‫• پیاده سازی‪:‬‬
‫‪ False‬یا‌ ‪ True‬نشان‌دهنده‌‪ 1‬یا‌‪0‬‬

‫• مقایسه‪:‬‬
‫• از نظر مصرف حافظه‪:‬‬
‫• از نظر سرعت زمان اجرا‪:‬‬

‫هر‌هشت‌بیت‌تعیین‌کننده‌ ‪True‬یا‌ ‪False‬است‬


)Enumeration(‫نوع‌داده‌ای‌شمارشی‬
Type
Color=(Red, Blue, Green, White);
Var
x:Color;

X:=Red
‫نوع‌داده‌ای‌شمارشی(‪)Enumeration‬‬
‫نوع‌داده‌ای‌شمارشی(‪)Enumeration‬‬
‫نوع‌داده‌ای‌کاراکتر(‪:)Character‬‬
‫نوع‌داده‌ای‌رشته(‪:)String‬‬
‫نوع‌داده‌ای‌رشته(‪:)String‬‬
‫نوع‌داده‌ای‌رشته(‪:)String‬‬
:)String(‫نوع‌داده‌ای‌رشته‬
:‫ رشته های پویا‬.5
$x = 125

$y = “$xBA”
print $y

$z=‘$xBA’
print $z
‫نوع‌داده‌ای‌رشته(‪:)String‬‬
‫پیاده سازی‪:‬‬
‫نوع‌داده‌ای‌رشته(‪:)String‬‬
‫پیاده سازی‪:‬‬
‫نوع‌داده‌ای‌رشته(‪:)String‬‬
‫پیاده سازی‪:‬‬
‫نوع‌داده‌ای‌اشاره‌گر‬
‫• زبان باید ویژگی های زیر را داشته باشد‬
‫• نوع داده اشاره گر (‪)Pointer‬‬
‫• تخصیص حافظه(‪ Create‬یا ‪ :)New‬جهت تخصیص حافظه به یک‬
‫نوعدادهای استفاده میشود و مقدار بازگشتی آن یک آدرس است‬
‫• دسترسی به محتویات حافظه(‪ :)Dereferencing‬یعنی از طریق‬
‫اشارهگر‪ ،‬به محتویات حافظه دسترسی پیدا کنیم‪.‬‬
‫;‪int *p‬‬
‫نوع‌داده‌ای‌اشاره‌گر‬
‫آدرسها به دو صورت پیادهسازی و استفاده میشوند‪:‬‬
‫• آدرس ممکن است به صورت مطلق(‪ )Absolute‬باش;‬
‫• آدرس ممکن است به صورت نسبی(‪ )Relative‬باشد‬
‫نوع‌داده‌ای‌اشاره‌گر‬
‫آدرسها به دو صورت پیادهسازی و استفاده میشوند‪:‬‬
‫• آدرس ممکن است به صورت مطلق(‪ )Absolute‬باش;‬
‫• آدرس ممکن است به صورت نسبی(‪ )Relative‬باشد‬

‫• در حالت آدرس دهی مطلق‪ ،‬سرعت اجرای برنامه خیلی بیشتر است‬
‫• و در حالت آدرسدهی نسبی‪ ،‬انعطاف پذیری بیشتر است‬
‫• و مصرف حافظه در حالت دوم نسبت به آدرس دهی مطلق‪ ،‬خیلی کمتر است‪.‬‬
‫نوع‌داده‌فایل‬
‫• انواع فایل‪:‬‬
‫• ترتیبی ) ‪:(Sequential‬‬
‫‪Sequential files‬‬
‫• فایل با دسترسی تصادفی یا مستقیم ) ‪:(Direct Access‬‬
‫• فایل های ترتیبی شاخص دار )‪:(Indexed Sequential File‬‬
‫نوع‌داده‌فایل‬
‫• انواع فایل‪:‬‬
‫• ترتیبی ) ‪:(Sequential‬‬
‫‪Sequential files‬‬
‫• فایل با دسترسی تصادفی یا مستقیم ) ‪:(Direct Access‬‬
‫• فایل های ترتیبی شاخص دار )‪:(Indexed Sequential File‬‬
‫فایل‌ترتیبی‬
‫• یک دنباله خطی از عناصر هم نوع است‪.‬‬

‫;‪myfile = file of Student‬‬

‫هر فایل دارای یک اشارهگر است که مکانی که باید عملیات روی آن انجام شود را مشخص‬
‫میکند که بهان ‪File Pointer‬میگویند‪.‬‬
‫عملیات‌روی‌فایل‬
Open •
Read •
Sequential files Write •
End of File •
Close •
‫نوع‌داده‌فایل‬

‫•فایل متنی‬
‫‪Sequential files‬‬

‫•فایل های محاوره‬


‫فایل‌با‌دسترسی‌تصادفی‌یا‌مستقیم‌) ‪‌:(Direct Access‬‬
‫• در این حالت شما میتوانید به هر کدام از عناصر فایل به صورت مستقیم دسترسی پیدا کند‬
‫بهاین صورت که برای نگهداری هر عنصری یک کلید در نظر گرفته میشود و برای هر عنصر‬
‫)‪ (Key ,Position‬ذخیره میشود‪ .‬که در این حالت اگر کلید عنصر را داشته باشید موقعیت‬
‫آن عنصر را به راحتی در دست دارید‪ .‬خود زوج های )‪ (Key , Position‬در جایی به نام‬
‫‪ Index‬نگهداری میشود‪ .‬از نظر ذخیره فیزیکی ممکن است در خود فایل باشد و شاید هم در‬
‫فایل دیگر ذخیره شود‪ .‬در این حالت مشکل فایل های ترتیبی حل میشود ولی مشکل این‬
‫فایل در این است که برای خواندن و نوشتن بهازای هر عنصری باید یک کلید ارائه تا موقعیت‬
‫آن مشخص و خوانده شود که خیلی وقت گیر است‪.‬‬
‫فایل‌های‌ترتیبی‌شاخص‌دار‌)‪‌:(Indexed Sequential File‬‬
‫• ترکیبی از دو نوع فایل قبل یعنی ترتیبی و شاخص دار میباشد‪.‬‬
‫پایان‬

You might also like