0

زبان برنامه نویسی پاسکال

 
golami1223
golami1223
کاربر برنزی
تاریخ عضویت : آبان 1389 
تعداد پست ها : 683
محل سکونت : بوشهر

ساختارهای داده
یک شنبه 28 آذر 1389  7:25 AM

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

انواع داده‌ای ساده پاسکال عبارتند از real,integer,character,Boolean,enumeration که enumeration یک نوع داده جدید می‌باشد که توسط پاسکال معرفی شد.

var
  r: Real;
  i: Integer;
  c: Char;
  b: Boolean;
  e: (apple, pear, banana, orange, lemon);

زیرحوزه‌های هر نوع داده ترتیبی وصفی ( هر نوع ساده به غیر از real ) را می‌توان تغییر داد و ساخت.

var
  x: 1..10;
  y: 'a'..'z';
  z: pear..orange;

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

   (set type)
var
  set1: set of 1..10;
  set2: set of 'a'..'z';
  set3: set of pear..orange;

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

if i in [5..10] then
...

بسیار سریع تر است از

if (i>4) and (i<11) then
...

تایپ‌ها می‌توانند از دیگر تایپ‌ها با استفاده از اعلان تایپ تعریف شوند:

type
  x = Integer;
  y = x;
...

علاوه بر این، نوع‌های پیچیده می‌توانند از نوع‌های ساده ساخته شوند:

type 
  a = Array [1..10] of Integer;
  b = record
        x: Integer;
        y: Char
      end;
  c = File of a;

همان طور که در مثال بالا نشان داده شده است فایل‌های پاسکال سلسله‌ای از اجزا هستند. هر فایل یک متغیر بافر دارد که با f^ مشخص می‌شود. رویه‌ها (procedure) متغیر بافر را برای خواندن(get) و نوشتن(put) به المان بعدی حرکت می‌دهند. خواندن به این صورت معرفی می‌شود که read(f,x) همانند x:=f^ ; get(f) می‌باشد. نوشتن به این صورت معرفی می‌شود که write(f,x) مانند f^:=x ; put(f) است. نوع داده متن به عنوان فایلی از کاراکترها از پیش تعریف شده است. هنگامی که متغیر بافر برای رسیدگی به کاراکتر بعدی می‌تواند مورد استفاده قرار گیرد، از آن استفاده به عمل خواهد آمد (بررسی یک رقم قبل از خواندن یک مقدار صحیح). این مفهوم منجر به اشکالات جدی برای برنامه‌های محاوره‌ای با پیاده سازی‌های جدید شد، اما بعدها توسط مفهوم “lazy I/O” حل شد.
در پاسکال Jensen و Wirth رشته‌ها به صورت آرایه بسته بندی شده‌ای از کاراکترها نمایش داده می‌شوند. بنابراین آنها دارای طول ثابت اند و معمولاً دارای فضای خالی می‌باشند. بعضی گونه‌ها یک نوع رشته سفارشی دارند.

تشکرات از این پست
دسترسی سریع به انجمن ها