ساختارها
ساختار چند دادهی مرتبط را زیر یک نام جمع میکند و روالهایی (روشها) دارد که روی همان داده کار میکنند.
تعریف ساختار
هر فیلد نام، گونه و میتواند مقدار پیشفرض داشته باشد. فیلدها و روشها بهطور پیشفرض خصوصیاند؛ همگانی آنها را بیرون ساختار در دسترس میکند. درون روشها با این به خود ساختار اشاره میکنید.
ساختار مستطیل:
همگانی پهنا: صحیح = ۱
همگانی بلندی: صحیح = ۱
همگانی روال مساحت(): صحیح:
برگشت این.پهنا * این.بلندی
پایان
پایان
روال ریشه:
زمین := مستطیل { پهنا = ۱۲, بلندی = ۸ }
سرچاپ "مساحت زمین:", زمین.مساحت()
پایانساختن و چاپ
در ساختن نمونه، هر فیلدی که ننویسید مقدار پیشفرضش را میگیرد. ساختارها را میشود مستقیم چاپ کرد:
ساختار نقطه:
همگانی ایکس: صحیح = ۰
همگانی وای: صحیح = ۰
پایان
روال ریشه:
ن := نقطه { ایکس = ۳، وای = ۴ }
سرچاپ ن
سرچاپ نقطه {}
پایانروش ناپایا
روشی که فیلدهای ساختار را تغییر میدهد با ناپایا روال تعریف میشود و فقط روی متغیری که خودش ناپایاست صدا زده میشود. روشهای دیگر نمیتوانند ساختار را تغییر دهند.
ساختار شمارنده:
مقدار: صحیح = ۰
همگانی روال خواندن(): صحیح:
برگشت این.مقدار
پایان
همگانی ناپایا روال یکیبیشتر():
این.مقدار += ۱
پایان
پایان
روال ریشه:
ناپایا ش := شمارنده {}
ش.یکیبیشتر()
ش.یکیبیشتر()
سرچاپ ش.خواندن()
پایانعضو ایستا
ایستا روال و پایا درون ساختار به خودِ گونه تعلق دارند، نه به یک نمونه؛ با نام ساختار صدایشان بزنید. جای مناسبی برای ساختن نمونههای آماده است.
ساختار رنگ:
همگانی سرخ: صحیح = ۰
همگانی سبز: صحیح = ۰
همگانی آبی: صحیح = ۰
همگانی پایا بیشینه := ۲۵۵
همگانی ایستا روال خاکستری(مقدار: صحیح): رنگ:
برگشت رنگ { سرخ = مقدار، سبز = مقدار، آبی = مقدار }
پایان
پایان
روال ریشه:
سفید := رنگ.خاکستری(رنگ.بیشینه)
سرچاپ سفید
پایانترکیب با شامل
شامل یک ساختار را درون ساختار دیگر میگذارد و فیلدها و روشهای همگانیاش را مستقیم در دسترس میکند؛ ترکیب بهجای ارثبری.
ساختار جانور:
همگانی نام: رشته = ""
همگانی روال معرفی(): رشته:
برگشت "من " + این.نام + " هستم"
پایان
پایان
ساختار سگ:
همگانی شامل جانور
همگانی نژاد: رشته = ""
پایان
روال ریشه:
س := سگ { نام = "رکس"، نژاد = "شکاری" }
سرچاپ س.معرفی()
سرچاپ س.نام، س.نژاد
پایان