زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت مطالب تازه مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم

توضیحات و استفاده

یک نوع ذکر شده به عنوان مجموعه شناسه ها ، از دیدگاه زبان تعریف می شود ، همان نقشی را که ثابت های بنام معمولی دارند ، بازی می کنند ، اما با این نوع همراه هستند. شرح کلاسیک نوع شمارش در پاسکال به شرح زیر است:

Type Cardsuit \u003d (کلوپ ها ، الماس ها ، قلب ها ، لکه ها)؛

در اینجا ، اطلاعیه ای از نوع داده Cardsuit (کت و شلوار کارت) ساخته شده است ، که مقادیر آن می تواند هر یک از چهار ثابت ذکر شده باشد. متغیر تایپ کنید Cardsuit می تواند یکی از ارزشهای باشگاه ، الماس ، قلب ، لکه ها را به خود اختصاص دهد ، می توان مقادیر نوع enumeration را برای برابری یا نابرابری مقایسه کرد و همچنین از آنها در اپراتورهای انتخاب (در Pascal - Case) به عنوان مقادیر مشخص کننده گزینه ها استفاده کرد.

استفاده از موارد ذکر شده به شما امکان می دهد کدهای منبع برنامه هایی که قابل خواندن تر باشند ، زیرا به شما امکان می دهد "اعداد جادویی" که مقادیر خاصی را با اسامی قابل خواندن رمزگذاری می کنید ، جایگزین کنید.

بر اساس شمارش در برخی از زبانها ، می توان انواع مجموعه ای ایجاد کرد. در چنین مواردی ، مجموعه به عنوان یک مجموعه بدون هماهنگ درک می شود (و توصیف می شود) مقادیر منحصر به فرد نوع شمارش.

نوع ذکر شده را می توان در اظهارات متغیرها و پارامترهای رسمی توابع (رویه ها ، روش ها) استفاده کرد. مقادیر نوع شمارش را می توان به متغیرهای مربوطه اختصاص داد و از پارامترهای انواع مربوطه در عملکرد عبور داد. علاوه بر این ، مقایسه مقادیر نوع ذکر شده برای برابری و نابرابری همیشه پشتیبانی می شود. برخی از زبانها همچنین از دیگر اقدامات مقایسه برای انواع ذکر شده پشتیبانی می کنند. نتیجه مقایسه دو مقدار ذکر شده در چنین مواردی ، به عنوان یک قاعده ، با توالی این مقادیر در بیانیه نوع مشخص می شود - مقداری که قبلاً در بیانیه نوع رخ می دهد ، "کمتر" از مقداری است که بعداً رخ می دهد. گاهی اوقات یک نوع شمارش شده یا محدوده ای از مقادیر نوع شمارش نیز می تواند به عنوان یک نوع فهرست برای یک آرایه استفاده شود. در این حالت ، برای هر مقدار از محدوده انتخاب شده در آرایه یک عنصر وجود دارد ، و ترتیب واقعی عناصر با ترتیب مقادیر در اعلامیه نوع مطابقت دارد.

پیاده سازی

به طور معمول ، در هنگام گردآوری ، مقادیر شمارش با استفاده از اعداد صحیح نمایش داده می شود. بسته به زبان برنامه نویسی خاص ، چنین نمایشی می تواند کاملاً از برنامه نویس پنهان شود ، یا با کمک انواع "مانورهای دورگرد" برای وی در دسترس باشد (برای مثال ، تبدیل اجباری یک مقدار از نوع enum به یک مقدار از نوع عدد صحیح) ، یا حتی توسط برنامه نویس کنترل می شود ( در چنین مواردی ، برنامه نویس این توانایی را دارد که صریحا مشخص کند که کدام اعداد همه یا برخی مقادیر از نوع شمارش را رمزگذاری می کنند). همه گزینه ها جنبه های مثبت و منفی دارند. از یک سو ، امکان استفاده از مقادیر عددی ثابتهای تشکیل دهنده نوع ، به ویژه اگر مورد سوءاستفاده قرار گیرد ، استفاده از این نوع ها را بی معنی می کند و خطر خطا را ایجاد می کند (هنگام استفاده از مقادیر عددی که نوع آن دارای ثابت های مربوطه نیست). از طرف دیگر ، مدیریت صریح ارزش برخی از موارد را می دهد ویژگی های اضافی. به عنوان مثال ، در صورت استفاده از مقادیر رمزگذاری شده عدد صحیح از برخی مجموعه های از پیش تعریف شده ، می توانید هنگام سازماندهی رابط با ماژول های نوشته شده به زبان های دیگر ، از انواع شمارش استفاده کنید.

امکان دیگری که انواع ذکر شده در سطح اجرای زبان می دهد صرفه جویی در حافظه است. با مقدار کمی از نوع شمارش ، چند بیت برای ذخیره مقدار این نوع کافی است (نوع Carduit فوق فقط به دو مقدار به دو بیت احتیاج دارد ، در حالی که عدد صحیح استاندارد در بیشتر معماریهای مورد استفاده 32 بیت طول می کشد - 16 برابر بیشتر) و کامپایلر می تواند از آن استفاده کند این واقعیت برای ذخیره اطلاعات در حافظه است. این می تواند به ویژه مهم باشد اگر چندین مقدار از انواع شمارش در یک رکورد ذخیره شوند - فشرده سازی سوابق هنگام پردازش مقادیر زیادی از آنها می تواند حافظه زیادی را آزاد کند. درست است ، لازم به ذکر است که کامپایلرها معمولاً این ویژگی را درک نمی کنند ، حداقل اخیراً ، هنگامی که حافظه کامپیوتر به طور قابل توجهی ارزان تر شده است.

نقد

نوع شمارش برای زبانهای برنامه نویسی توسعه یافته سنتی است ، بسیار مورد استفاده قرار می گیرد و غالباً مورد استفاده قرار می گیرد. با این حال ، این نوع نیز بدون انتقاد نظریه پردازان و دست اندرکاران برنامه نویسی نیست. بنابراین ، هنگام تدوین زبان برنامه نویسی اوبرون ، انواع ذکر شده در لیست ویژگی های حذف شده از زبان قرار گرفتند. Nicklaus Wirth ، توسعه دهنده زبان ، دلایل زیر را شناسایی کرد:

از طرف دیگر ، به عنوان مثال ، در جاوا ، که در ابتدا حاوی یک نوع شمرده نشده بود ، این نوع متعاقبا به دلایل نه تنها راحتی بلکه همچنین قابلیت اطمینان نیز معرفی شد: مشکل استفاده از ثابت های نامگذاری شده به جای شمارش موارد ذکر شده این است که هیچ کنترلی از طرف کامپایلر در مورد منحصر به فرد بودن مقادیر وجود ندارد. ثابت ها ، و برای امکان اختصاص دادن تصادفی به مقادیر متغیرهایی که با هیچ یک از این ثابت ها مطابقت ندارد.

توضیحات نقل و انتقالات به زبانهای مختلف

آدا

کارت لباس Enum (CLUBS ، الماس ، قلب ، اسپند)؛

زبانهای تایپ ضعیف ضعیف با نحو C مانند (مانند پرل یا جاوا اسکریپت) معمولاً هیچ شماره شماری ندارند.

C ++

C #

Enum Cardsuituit (کلوپ ها ، الماس ها ، قلاده ها ، قلب ها).

جاوا

Enum Cardsuit (کلوپ ها ، الماس ها ، قلاده ها ، قلب ها)

هاسکل

در برخی از زبانهای برنامه نویسی (به عنوان مثال ، در زبان هاسکل) ، با استفاده از انواع جبری ، می توانید از شمارش موارد استفاده کنید. به عنوان مثال ، یک نوع بولی از این طریق کدگذاری می شود ، که حاوی دو شناسه برای نشان دادن مقادیر حقیقت است:

داده بول \u003d غلط | درست است، واقعی

یادداشت


بنیاد ویکی مدیا. 2010

ویکیپدیا

به دلایل فنی ، بول در اینجا هدایت می شود. در مورد بول می توانید اینجا بخوانید: stdbool.h. منطقی ، بولی (نوع داده بولی یا منطقی انگلیسی) نوع داده یک نوع داده اولیه در علم کامپیوتر است که می تواند دو احتمال ممکن را از آن خود کند ... Wikipedia

در تئوری برنامه نویسی ، هر نوع که مقادیر آن مقادیر برخی از انواع دیگر است که توسط سازندگان از نوع جبری "پیچیده می شوند". به عبارت دیگر ، یک نوع داده جبری دارای مجموعه ای از سازنده های نوع است که هرکدام ... ... ویکی پدیا

Integer ، یک نوع داده عدد صحیح (Eng. Integer) ، در علوم رایانه یکی از ساده ترین و رایج ترین انواع داده ها در زبان های برنامه نویسی است. برای نمایندگی اعداد صحیح خدمت می کند. تعداد زیادی از این نوع ... ... ویکی پدیا است

یک نوع اولیه (داخلی ، داخلی) نوع داده ای است که توسط زبان برنامه نویسی به عنوان واحد داخلی زبان ساخته شده است. بسته به زبان و اجرای آن ، مجموعه این نوع ها می تواند بسیار متفاوت باشد. مشخص شده است ... ... ویکی پدیا

معانی دیگری برای این اصطلاح وجود دارد ، به مجموعه (معانی) مراجعه کنید. نوع و ساختار داده ها در علوم رایانه ، اجرای شیء مجموعه ای ریاضی است. بسیاری از انواع داده ها به شما امکان می دهند تعداد محدودی از مقادیر را ذخیره کنید ... ... ویکی پدیا

برخی از زبانهای برنامه نویسی نوع خاصی از داده ها را برای شماره های پیچیده ارائه می دهند. وجود یک نوع داخلی ، ذخیره مقادیر پیچیده و محاسبات بر روی آنها را ساده می کند. مطالب 1 حسابی بیش از پیچیده 2 پشتیبانی از زبان ها ... ویکی پدیا

برای بهبود این مقاله در فناوری اطلاعات مطلوب؟ با قرار دادن پاورقی ، دقیق تر در ... ویکی پدیا

متغیرهامقادیری که مقادیر نامیده می شود ممکن است متفاوت باشددر طول اجرای برنامه هر متغیر با نام منحصر به فرد خود تعریف می شود ، طبق قوانینی که در ابتدای فصل مشخص شده است. حداکثر طول ممکن یک نام بستگی به اجرای پاسکال دارد ؛ از لحاظ تئوری می توانید نام متغیرها را تا 63 نویسه به طول بدهید ، که به سختی مرتبط است - معمولاً اسامی بیشتر از 5-10 نویسه نیستند.

از آنجا که هر داده ای در حافظه کامپیوتر به صورت عددی ذخیره می شود و سیستم شماره باینری علاوه بر نام ، لازم است یک متغیر را اختصاص دهید و یک نوعتعریف کردن دامنه مقادیرگرفته شده توسط متغیر ، و روش پردازش آنبا ماشین. بگذارید موارد بالا را با یک مثال توضیح دهیم. همانطور که از پیوست 1 مشاهده می شود ، حروف بزرگ لاتین "A" دارای کد اعشاری 65 یا 01000001 در نمایندگی باینری است. اطلاعات بیشتر در مورد نوعاین غیر ممکن است برای یک کامپیوتر تصمیم بگیرد که دقیقاً این داده چیست - شماره 65 ، کد شخصیت "A" یا چیز دیگری. در هر زبان برنامه نویسی ، از جمله پاسکال ، یک مجموعه استاندارد از انواع مختلفی وجود دارد که می توان این یا همان مجموعه سلول های حافظه را اختصاص داد. اطلاعات در مورد انواع داده های پاسکال به راحتی جدول بندی می شود. ردیف های این جدول بر اساس طبقه بندی می شوند تقدم نوع، از "کوچکترین" ، کمترین تعداد بایت را نشان می دهد ، و بر این اساس ، نشان دهنده کوچکترین محدوده مقادیر ممکن ، تا "قدیمی" ، که بزرگترین دامنه مقادیر را نشان می دهد. در جدول همه موارد ممکن ، اما فقط انواع اصلی داده های پاسکال نشان داده نشده است.

کلید واژه پاسکال

نام و توضیحات را وارد کنید

مقدار حافظه ، بایت

دامنه مقادیر ممکن

بولی: یک متغیر بولی را ذخیره می کند

کاراکتر: کد یک کاراکتر را از مجموعه کدهای ASCII ذخیره می کند

از 0 تا 255 فراگیر (2 8 \u003d 256)

علاقه

عدد صحیح امضا نشده

16 2 16 - دامنه دو برابر بزرگتر است ، زیرا 16 بیت با علامت شماره اشغال نمی شود

عدد صحیح طولانی: برای نشان دادن مقادیر عدد صحیح بزرگ

یک عدد واقعی با دقت بازنمایی تا 11-12 کاراکتر در بخش کسری

~ 2.9*10 -39 - 1.7*10 38

یک عدد واقعی با دقت بازنمایی تا 15-16 کاراکتر در قسمت کسری

~ 5*10 -324 – 1.7*10 308

دنباله ای از شخصیت های نوع Chardlin از 1 تا 255

2-256 (داده خط + 1 بایت برای ذخیره طول آن)

هر سطر متن متشکل از کاراکترهای قابل چاپ

از لحاظ تئوریکی ، برای نوشتن متغیر از نوع Boolean ، 1 بیت کافی خواهد بود ، اما حداقل واحد قابل هدایت حافظه 1 بایت است (به پیوست 1 مراجعه کنید). در همان ضمیمه ، مشخص کنید که دقیقاً چقدر میزان حافظه بایت های اختصاص داده شده برای یک متغیر ، دامنه مقادیر ارائه شده برای آن را تحت تأثیر قرار می دهد.

انواع علاقه و شخصیت به صورت دسته جمعی خوانده می شوند آیین نامهبا تأکید بر اینکه این نوعها مجموعه ای از مقادیر محدود دارند که می توانند سفارش داده یا لیست شوند. به یاد بیاورید که مقادیر واقعی در حافظه رایانه متفاوت از اعداد صحیح ذخیره می شوند - یعنی به عنوان ترکیبی از مانتیسا و سفارش.

البته وظیفه انتخاب انواع داده های مناسب کاملاً مربوط به برنامه نویس است. به عنوان مثال ، اگر برخی از برنامه های شما می توانند مقادیر عدد صحیح را از 1 تا 100000 بگیرند ، اشتباه است که آن را به عنوان متغیری از نوع Integer توصیف کنید - از این گذشته ، 2 15 \u003d 32768 و وقتی شمارنده به این مقدار رسید ، تخلیهمقدار آن برابر است با -32768. در این حالت منطقی خواهد بود که پیشخوان را به عنوان متغیری از نوع Longint توصیف کنید.

متغیرها توسط یک اپراتور به شکل زیر در برنامه توضیح داده می شوند:

var List1: Type1؛

لیست2: Type2؛

ListN: TypeN؛

اینجا لیست- مجموعه ای از اسامی متغیر که با کاما (یا یک متغیر) جدا می شوند ، و یک نوع- هر یک از انواع داده مورد بحث در بالا. به عنوان مثال ، ساخت و ساز

2 متغیر واقعی با نامهای t و r و همچنین یک متغیر عدد صحیح با نام i را توصیف می کند. کلمه کلیدیvar را می توان تکثیر کرد ، اما معمولاً چنین نیازی نیست. مخفف var از کلمه انگلیسی "متغیر" (متغیر) گرفته شده است.

این درس الگوریتم ایجاد انواع داده های کاربر را در Pascal (Type) توضیح می دهد. نمونه ها تجزیه خواهند شد.

انواع داده های پاسکال به ساده و پیچیده تقسیم می شوند.

انواع ساده شامل استاندارد ، حساب شده و محدود.

به انواع پیچیده - آرایه ها ، مجموعه ها ، سوابق ، پرونده ها. عناصر انواع پیچیده می توانند انواع ساده و پیچیده ای باشند. بعداً در مورد انواع داده های پیچیده اطلاعات بیشتری کسب خواهیم کرد.

یکی از رایج ترین نوع ها ، نوع استاندارد معمولی است.
نوع استاندارد معمولی مجموعه ای از مقادیر خطی محدود را مشخص می کند. معمولاً به آن گفته می شود انواع عدد صحیح ، بایت ، کاراکتر و منطقی.

انواع جدید (سفارشی) انواع داده در درجه اول برای وضوح و راحتی مورد نیاز:

مثال: یک ماتریس 10 50 50 مشخص شده است. توضیحات ماتریس را با استفاده از یک نوع داده سفارشی اجرا کنید

روش p (a: آرایه ای از علاقه)؛

ولی باید یک نوع داده ایجاد کند و آن را مانند این بنویسید:

1 2 نوع بردار \u003d آرایه [1 .. 10] عدد صحیح؛ روش p (A: بردار)؛

نوع بردار \u003d آرایه عدد صحیح؛ روش p (A: بردار)؛

نمونه هایی از توصیف آرایه ها با استفاده از انواع جدید

نوع بردار \u003d آرایه عدد صحیح؛ matritsa \u003d آرایه بردار؛

  • 1 نوع matritsa \u003d آرایه [1 .. 8] آرایه [1 .. 10] عدد صحیح.

    نوع matritsa \u003d آرایه آرایه عدد صحیح؛

  • 1 نوع matritsa \u003d آرایه [1 .. 8، 1 .. 10] عدد صحیح؛

    نوع matritsa \u003d آرایه عدد صحیح؛

  • در مثال زیر متغیرها ج و د به همان روش شرح داد:

    1 2 3 4 5 6 نوع بردار \u003d آرایه [1 .. 10] عدد صحیح؛ بردار \u003d matritsa \u003d array [1 .. 8]؛ var a، b: بردار؛ c: matritsa؛ d: آرایه [1 .. 8] بردار؛

    نوع بردار \u003d آرایه عدد صحیح؛ matritsa \u003d آرایه بردار؛ var a، b: بردار؛ c: matritsa؛ d: آرایه بردار؛

    نوع 1: آرایه a ، b و c داده شده است. میانگین حسابی حداقل عناصر آرایه (استفاده از تشکیل آرایه و) را پیدا کنید.
    هنگام توصیف مراحل ، از آن استفاده کنید انواع سفارشی داده ها

    نوع و نوع بازه شمارش شده در پاسکال

    نوع ذکر شده

    در برنامه می توانید از متغیرهایی از نوع استفاده کنید که با هیچ یک از انواع استاندارد مطابقت ندارد.

    بنابراین ، یک نوع را می توان با شمارش مقادیر در هنگام اعلام ، مشخص کرد. متغیر از این نوع می تواند هر یک از این مقادیر را بگیرد.

    این مقادیر نمی توانند رشته باشند ، قابل چاپ نیستند و نمی توانند وارد رایانه شوند با استفاده از اپراتورهای Read and Writ

    نمونه ای از ایجاد یک نوع شمرده شده در Pascal را در نظر بگیرید:

    نوع pt \u003d (word1، word2، ... wordN)؛ var w: pt؛

    نوع pt \u003d (word1، word2، ... wordN)؛ var w: pt؛

  • شناسه pt - نوع (دلخواه) ،
  • word1، word2 ... - مقادیر خاصی که متغیر w متعلق به نوع pt می تواند در نظر بگیرد
  • مقادیر این نوع مرتب در نظر گرفته می شوند ، یعنی توضیحات نوع به طور همزمان سفارش را معرفی می کند word1
  • نوع فاصله

    نوع فاصله یک زیرمجموعه خاص از مقادیر را تعریف می کند که یک متغیر معین می تواند بگیرد. با تنظیم کوچکترین و بزرگترین مقدار ایجاد شده است نوع نظم . به عنوان ثابت (حداقل و حداکثر مقادیر) ، مقادیر هر انواع ساده به جز انواع واقعی

    نمونه ای از اظهارات نوع فاصله را در نظر بگیرید:

    a: min .. حداکثر؛
  • آ - متغیر فاصله
  • دقیقه - خط پایین
  • حداکثر - قسمت بالایی زیر مجموعه
  • مرزهای دامنه با دو نقطه از هم جدا می شوند
  • مرز دقیقههمیشه باید کمتر باشد حداکثر
  • ثابت ها دقیقهو حداکثرباید به همان نوع تعلق داشته باشد آنها نوع پایه متغیر را تعیین می کنند. آ.
  • انواع مشترک و شمرده شده

    متغیر نوع فاصله را می توان با یک پایه به یک نوع شمارش پایه تنظیم کرد. یک نمونه را در نظر بگیرید:

    مثال: اگر متغیر باشد ب می تواند یکی از مقادیر را بگیرد قرمز, رنگ زرد, سبزسپس می توان این متغیر را اینگونه توصیف کرد: b: red..green؛ نوع پایه برای ب یک نوع است رنگ:

    نوع رنگ \u003d (قرمز ، زرد ، سبز ، آبی)؛ var b: قرمز .. سبز؛ شروع ب: \u003d قرمز؛ نوشتن (ب)؛ b: \u003d زرد؛ نوشتن (ب)؛ b: \u003d سبز؛ نوشتن (ب)؛ پایان readln

    نوع رنگ \u003d (قرمز ، زرد ، سبز ، آبی)؛ var b: red..green؛ شروع ب: \u003d قرمز؛ نوشتن (ب)؛ b: \u003d زرد؛ نوشتن (ب)؛ b: \u003d سبز؛ نوشتن (ب)؛ پایان readln

    که در این مثال نوع رنگ - پایه است. متغیر b از نوع بازه با استفاده از نوع شمارش پایه تعریف می شود.

    مثال: مشخص است که در هر ماه از سال چند روز است. چند روز در تابستان؟
    31,28,31,30,31,30,31,31,30,31,30,31

    یکی از گزینه های حل این مشکل به نظر می رسد:

      نمایش راه حل:

      1 2 3 4 5 6 7 8 const dni: array [1 .. 12] byte \u003d (31، 28، 31، 30، 31، 30، 31، 31، 30، 31، 30، 31)؛ var s، i: عدد صحیح؛ start s: \u003d 0؛ برای من: \u003d 6 تا 8 do s: \u003d s + dni [i]؛ (ماه های تابستان - 6 ، 7 ، 8) پایان نامه ها

      const dni: array of byte \u003d (31،28،31،30،31،30،31،31،30،31،30،31)؛ var s، i: عدد صحیح؛ start s: \u003d 0؛ برای من: \u003d 6 تا 8 do s: \u003d s + dni [i]؛ (ماه های تابستان - 6 ، 7 ، 8) Writeln (s) پایان می یابد.

      کد این تصمیم این بهترین دید را ندارد ، علاوه بر این ، شما باید تعداد ماه های آغاز و پایان تابستان را خودتان محاسبه کنید (6 و 8).
      راحتی و دید چنین برنامه هایی می تواند به شرح زیر باشد:

      نمایش راه حل:

      1 2 3 4 5 6 7 8 9 TYPE mes \u003d (ژانویه ، فوریه ، راهپیمایی ، آوریل ، ماه ژوئن ، ژوئیه ، اوت ، سپتامبر ، اکتبر ، نوامبر ، دسامبر)؛ CONST dni: array [january .. December] of Byte \u003d (31، 28، 31، 30، 31، 30، 31، 31، 30، 31، 30، 31)؛ VAR: علاقه؛ من: مس؛ (متغیر حلقه شمارنده i روی mes تنظیم شده است ، نه Integer) شروع: \u003d 0؛ برای من: \u003d ژوئن تا آگوست do s: \u003d s + dni [i]؛ WritLn (s) End.

      TYPE mes \u003d (ژانویه ، فوریه ، راهپیمایی ، آوریل ، ماه ژوئن ، ژوئیه ، اوت ، سپتامبر ، اکتبر ، نوامبر ، دسامبر)؛ CONST dni: array of Byte \u003d (31،28،31،30،31،30،31،31،30،31،30،31)؛ VAR: علاقه؛ من: مس؛ (متغیر حلقه حلقه i روی mes تنظیم شده است ، نه Integer) BEGIN s: \u003d 0؛ برای من: \u003d ژوئن تا آگوست do s: \u003d s + dni [i]؛ WritLn (s) End.

    نوع 2: با نام روز هفته تعیین کنید که آیا این تعطیلات یا یک روز کاری است.

  • یک نوع شمرده شده با مقادیر روزانه هفته تعریف کنید ( دو, سه شنبه, گوه, پنجشنبه, fri, نشست, آفتاب).
  • در برنامه ، مقدار را به یک متغیر اختصاص دهید (از مقادیر نوع ، به عنوان مثال ، دو).
  • متغیر را بررسی کنید: اگر مقدار شنبه یا یکشنبه است - پیام دهید "خروجی!"در غیر این صورت "ما در حال کار هستیم!".
  • نوع 3: بسته به ماه سال پیام دهید "سرد" - اگر ماه زمستان است ، و "به گرمی" - اگر تابستان است.

  • نوع ذکر شده را با نام ماه های سال تعریف کنید.
  • متغیری از این نوع را اعلام کنید.
  • در برنامه ، مقدار را به متغیر اختصاص دهید (از مقادیر نوع).
  • متغیر را بررسی کنید: اگر مقدار به ماه زمستان اشاره دارد ، پیام دهید "سرد" در غیر این صورت - "به گرمی".
  • از چند طریق پیاده سازی کنید.
  • پایان Writeln (pribitie).

    var otpravlenie ، pribitie: بایت؛ شروع otpravlenie: \u003d 22؛ pribitie: \u003d otpravlenie + 10؛ پایان نامه نویس (pribitie).

    به جای جواب "8" برنامه پاسخ "32" را چاپ می کند.
    معرفی یک نوع محدوده محدود از نتیجه اشتباه جلوگیری می کند ، اما کامپایلر هنوز خطایی را به وجود می آورد:

    1 2 3 4 5 6 var otpravlenie ، pribitie: 0 .. 24؛ شروع otpravlenie: \u003d 22؛ pribitie: \u003d otpravlenie + 10؛ Writeln (pribitiedeva)؛ var a: znak؛ شروع کنید: \u003d lev؛ اگر یک<= strelets then writeln ("огонь" ) ; if (a>\u003d vesi) و (ع<= bliznetsi) then writeln ("воздух" ) ; if (a>\u003d رک) و (الف)<= ribi) then writeln ("вода" ) ; if (a>\u003d kozerog) و (ع<= deva) then writeln ("земля" ) ; end .

    نوع znak \u003d (اجاق گاز ، lev ، strelets ، vesi ، vodoley ، bliznetsi ، rak، skorpion، ribi، kozerog، telets، deva)؛ var a: znak؛ شروع کنید: \u003d lev؛ اگر یک<=strelets then writeln("огонь"); if (a>\u003d vesi) و (ع<=bliznetsi) then writeln ("воздух"); if (a>\u003d رک) و (الف)<=ribi) then writeln ("вода"); if (a>\u003d kozerog) و (ع<=deva) then writeln ("земля"); end.

    نوع 5: بسته به نام گل ، موضوع مربوط به کدام فصل از سال است:

  • بهار: برف ، عنبیه ، دلمه
  • تابستان: بابونه ، قاصدک ، خشخاش
  • پاییز: aster، chrysanthemum، phlox
  • هنگام توصیف متغیر ، باید نوع آن را مشخص کنید. یک نوع متغیر مجموعه ای از مقادیر را می تواند انجام دهد و کارهایی که می توان بر روی آن انجام داد. توضیحات نوع ، شناسه ای را تعیین می کند که یک نوع را تعیین می کند.

    انواع ساده به استاندارد (منظم) و شمرده شده (محدود) تقسیم می شوند.

    انواع استاندارد

    Turbo Pascal چهار نوع استاندارد داخلی دارد: عدد صحیح (عدد صحیح) ، واقعی (واقعی) ، بولی (منطقی) و کاراکتر (کاراکتر).

    نوع علاقه

    Turbo Pascal دارای پنج نوع عدد صحیح داخلی است: میانبر (عدد صحیح کوتاه) ، عدد صحیح (عدد صحیح) ، longint (عدد صحیح بلند) ، بایت (طول بایت) و کلمه (طول کلمه). هر نوع زیر مجموعه خاصی از اعداد صحیح را نشان می دهد ، همانطور که در جدول زیر نشان داده شده است.

    انواع عدد صحیح داخلی

    دامنه

    قالب

    8 بیت با نشانه

    16 بیت با نشانه

    2147483648 +2147483647

    32 بیت با یک علامت

    8 بیت بدون امضا

    16 بیت بدون امضا

    عملیات حسابی در مورد نوع عدد صحیح مطابق با قوانین زیر انجام می شود:

    1. نوع ثابت عدد صحیح یک نوع عدد صحیح داخلی با کمترین محدوده از جمله مقدار این ثابت عدد صحیح است.
    2. در مورد عمل دودویی (عملیاتی با استفاده از دو عملگر) ، هر دو عمل قبل از انجام عمل روی آنها به نوع متداول خود تبدیل می شوند. یک نوع معمول یک نوع عدد صحیح تعبیه شده با کوچکترین محدوده شامل تمام مقادیر ممکن هر دو نوع است. به عنوان مثال ، یک نوع مشترک برای یک عدد صحیح و یک بایت عدد صحیح یک عدد صحیح است و یک نوع مشترک برای یک عدد صحیح و یک کلمه عدد صحیح یک عدد صحیح طولانی است. عمل مطابق با دقت در نوع عمومی انجام می شود و نوع نتیجه نوع کلی است.
    3. عبارت در سمت راست در اپراتور واگذاری صرف نظر از اندازه متغیر در سمت چپ محاسبه می شود.

    عملیات انجام شده بر روی اعداد صحیح:

    "+" - علاوه بر این

    "-" - منها کردن

    "*" - ضرب

    SQR - مربع

    DIV - پس از تقسیم ، قسمت کسری را دور می کند

    وزارت امور خارجه - پس از تقسیم کل قسمت باقیمانده

    ABS - ماژول شماره

    RANDOM (X) - گرفتن عدد تصادفی از 0 تا X

    پاسخ: \u003d 100؛ b: \u003d 60؛ یک نتیجه DIV b - 1 و نتیجه MOD b - 40

    متغیرهایی از نوع عدد صحیح به شرح زیر است:

    لیست متغیرها: نوع؛

    به عنوان مثال: var a، p، n: عدد صحیح؛

    نوع واقعی

    نوع واقعی زیرمجموعه ای از اعداد واقعی است که می تواند در قالب نقطه شناور با تعداد ثابت رقم نشان داده شود. نوشتن یک مقدار با فرمت نقطه شناور معمولاً شامل سه مقدار - m ، b و e است - به گونه ای که m * b e ، جایی که b همیشه 10 است و m و e مقادیر عدد صحیحی در محدوده نوع واقعی هستند. این مقادیر m و e محدوده و دقت نوع ماده را تعیین می کند.

    پنج نوع نوع ماده وجود دارد: واقعی ، مجرد ، دوبله ، exnende ، Comp. انواع واقعی در دامنه و دقت مقادیر مرتبط با آنها متفاوت است.

    رقم و رقم اعشاری برای انواع واقعی

    دامنه

    ارقام

    2.9x10Е-39 تا 1.7x10Е 38

    1.5x10Е-45 تا 3.4x10Е 38

    5.0x10E-324 تا 1.7x10E 308

    3.4x10E-493 تا 1.1x10E 403

    2E 63 تا 2E 63

    عملیات انجام شده بر روی شماره های واقعی:

    • کلیه عملیات ها برای اعداد صحیح معتبر است.
    • SQRT (x) ریشه مربع x است.
    • SIN (X) ، COS (X) ، ARCTAN (X).
    • LN (X) لگاریتم طبیعی است.
    • EXP (X) -شامل X (e x).
    • EXP (X * LN (A)) - نمایی (A x).
    • عملکردهای تبدیل را تایپ کنید:
      • TRUNC (X) - قسمت کسری را دور می کند.
      • دور (X) گرد.
    • برخی از قوانین عملیات حسابی:
      • اگر در عملیات حساب با اعدادی مانند واقعی و عدد صحیح روبرو شویم ، نتیجه از نوع واقعی خواهد بود.
      • تمام مؤلفه های بیان در یک خط نوشته شده اند.
      • فقط از پرانتز استفاده می شود.
      • شما نمی توانید دو علامت حسابی را در یک ردیف قرار دهید.

    متغیرهای یک نوع واقعی به شرح زیر است:

    لیست متغیرها: نوع؛

    مثلا:

    var d، g، k: real؛

    نوع کاراکتر (کاراکتر)

    نوع کاراکتر شخصیتی است که در آپوستروپس محصور شده است. برای نشان دادن ارتداد به عنوان یک متغیر نمادین ، \u200b\u200bباید آن را در آپوسترو: "" "محصور کنید.

    هر کاراکتر کد و شماره خاص خود را دارد. شماره سریال اعداد ۰ ۱ 9 ۹ به ترتیب صعودی طبقه بندی شده اند. تعداد ترتیب حروف نیز به ترتیب صعودی طبقه بندی شده اند ، اما لزوماً از یکدیگر پیروی نمی کنند.

    علائم مقایسه برای داده های کاراکتر اعمال می شود:

    > , < , >=, <=, <> .

    به عنوان مثال: "A"< ‘W’

    توابع مربوط به متغیرهای کاراکتر:

    1. ORD (X) - شماره سریال شخصیت X را تعریف می کند. ord (‘a ') \u003d 97؛
    2. CHR (X) - یک کاراکتر را با شماره مشخص می کند. chr (97) \u003d 'a'؛
    3. PRED (X) - شخصیت قبل از X. pred ("B") \u003d "A" را صادر می کند؛
    4. SUCC (X) - شخصیت زیر شخصیت را چاپ می کند. succ (‘A ') \u003d' B '؛

    نوع ذکر شده

    یک نوع داده ذکر شده به این دلیل نامگذاری شده است زیرا به صورت شمارش ثابت در یک ترتیب کاملاً مشخص و با یک مقدار کاملاً تعریف شده مشخص می شود. یک نوع شمرده شده شامل لیستی از ثابت ها است. متغیرهایی از این نوع می توانند ارزش هر یک از این ثابت ها را بدست آورند. شرح نوع ذکر شده:

    تایپ کنید<имя типа>\u003d (لیست ثابت)؛ وار<имя переменной>:<имя типа>;

    جایی که<список констант> - این یک نوع ثابت است که از طریق کاما مشخص می شود و شماره سریال خود را دارد و از 0 شروع می شود.

    مثلا:

    جهت نوع \u003d \u003d (شمال ، جنوب ، غرب ، شرق)؛ ماه \u003d (ژوئن ، جولای ، آگوست ، ژانویه)؛ ظرفیت \u003d (سطل ، بشکه ، قوطی ، مخزن)؛ چرخش var: جهت؛ عزیمت: ماه؛ حجم: ظرفیت؛ چرخش var: (شمال ، جنوب ، غرب ، شرق)؛ عزیمت: (ژوئن ، ژوئیه ، آگوست ، ژانویه)؛ حجم: (سطل ، بشکه ، قوطی ، مخزن)؛

    می توانید اپراتورهای واگذاری زیر را اجرا کنید:

    چرخش: \u003d جنوب؛ عزیمت: \u003d اوت؛ حجم: \u003d مخزن؛

    اما شما نمی توانید تکالیف مختلط انجام دهید:

    عزیمت: \u003d جنوب؛ حجم: \u003d اوت؛

    توابع زیر برای متغیرهای نوع شمارش اعمال می شود:

    1. ORD - شماره سریال

    2. PRED - عنصر قبلی

    3. SUCC - عنصر بعدی.

    PRED (بشکه) \u003d سطل؛ SUCC (جنوب) \u003d غرب؛ ORD (جولای) \u003d 1؛

    متغیرهای نوع شمارش را می توان مقایسه کرد ، همانطور که مرتب و شماره گذاری می شوند. بنابراین عبارات: شمال< юг, июнь < январь имеют значения TRUE, а юг>غرب و تانک<бочка значение FАLSE.

    نوع محدود

    اگر یک متغیر تمام مقادیر از نوع خود را قبول نکند ، بلکه فقط در یک محدوده معین باشد ، می توان آن را به عنوان متغیری از نوع محدود در نظر گرفت. هر نوع محدود با اعمال محدودیتی در انواع پایه مشخص می شود.

    به شرح زیر است:

    تایپ کنید<имя типа>\u003d ثابت 1 .. ثابت2

    قوانین زیر باید رعایت شود:

    1. هر دو ثابت محدود باید از یک نوع باشند.
    2. به عنوان یک نوع پایه ، می توانید از هر نوع ساده به جز نوع واقعی استفاده کنید.
    3. مقدار اولیه هنگام تعریف نوع محدود نباید از مقدار نهایی بیشتر باشد.
    فهرست نوع \u003d 0 ..63؛ حرف \u003d "a" .. "z"؛ var char1، char2: نامه؛ a، g: index؛

    می توانید بلافاصله در بخش توضیحات متغیر توضیح دهید:

    var a، g: 0 ..63؛ char1، char2: "a" .. "z".

    مجموعه ای از ارزش ها ، لیست محدودی از شناسه ها است.

    دانشنامه YouTube

    • 1 / 5

      یک نوع ذکر شده به عنوان مجموعه شناسه ها ، از دیدگاه زبان تعریف می شود ، همان نقشی را که ثابت های بنام معمولی دارند ، بازی می کنند ، اما با این نوع همراه هستند. شرح کلاسیک نوع شمارش در پاسکال به شرح زیر است:

      نوع Cardsuit \u003d (کلوپ ها ، الماس ها ، قلب ها ، لکه ها)؛

      در اینجا ، اطلاعیه ای از نوع داده Cardsuit (کت و شلوار کارت) ساخته شده است ، که مقادیر آن می تواند هر یک از چهار ثابت ذکر شده باشد. متغیری از نوع Carduit می تواند یکی از ارزش های باشگاه ، الماس ، قلب ، لکه ها را به خود اختصاص دهد ، می توان مقادیر نوع شمارش را برای برابری یا نابرابری مقایسه کرد و همچنین از آنها در اپراتورهای انتخاب (در Pascal - Case) به عنوان مقادیر مشخص کننده گزینه ها استفاده کرد.

      استفاده از شمارش به شما امکان می دهد تا کدهای منبع برنامه ها را بیشتر بخوانید ، زیرا این امکان را به شما می دهد تا جایگزین کردن "اعداد جادویی" با رمزگذاری مقادیر خاص با نام های قابل خواندن شوید.

      بر اساس شمارش در برخی از زبانها ، می توان انواع مجموعه ای ایجاد کرد. در چنین مواردی ، مجموعه به عنوان مجموعه ای از هماهنگ از مقادیر منحصر به فرد نوع شمارش درک می شود (و توصیف می شود).

      نوع ذکر شده را می توان در اظهارات متغیرها و پارامترهای رسمی توابع (رویه ها ، روش ها) استفاده کرد. مقادیر نوع شمارش را می توان به متغیرهای مربوطه اختصاص داد و از پارامترهای انواع مربوطه در عملکرد عبور داد. علاوه بر این ، مقایسه مقادیر نوع ذکر شده برای برابری و نابرابری همیشه پشتیبانی می شود. برخی از زبانها همچنین از دیگر اقدامات مقایسه برای انواع ذکر شده پشتیبانی می کنند. نتیجه مقایسه دو مقدار ذکر شده در چنین مواردی ، به عنوان یک قاعده ، با توالی این مقادیر در بیانیه نوع مشخص می شود - مقداری که قبلاً در بیانیه نوع رخ می دهد ، "کمتر" از مقداری است که بعداً رخ می دهد. گاهی اوقات یک نوع شمارش شده یا محدوده ای از مقادیر نوع شمارش نیز می تواند به عنوان یک نوع فهرست برای یک آرایه استفاده شود. در این حالت ، برای هر مقدار از محدوده انتخاب شده در آرایه یک عنصر وجود دارد ، و ترتیب واقعی عناصر با ترتیب مقادیر در اعلامیه نوع مطابقت دارد.

      پیاده سازی

      به طور معمول ، در هنگام گردآوری ، مقادیر شمارش با استفاده از اعداد صحیح نمایش داده می شود. بسته به زبان برنامه نویسی خاص ، چنین نمایشی می تواند کاملاً از برنامه نویس پنهان شود ، یا با استفاده از "مانورهای چرخشی" مختلف برای وی در دسترس باشد (برای مثال ، مجبور کردن تبدیل مقدار از نوع enumeration به مقداری از نوع "عدد صحیح") ، یا حتی توسط برنامه نویس کنترل می شود ( در چنین مواردی ، برنامه نویس این توانایی را دارد که صریحا مشخص کند که کدام اعداد همه یا برخی مقادیر از نوع شمارش را رمزگذاری می کنند). همه گزینه ها جنبه های مثبت و منفی دارند. از یک طرف ، امکان استفاده از مقادیر عددی ثابتهایی که یک نوع شمارش را تشکیل می دهند ، به خصوص اگر مورد سوءاستفاده قرار گیرد ، استفاده از این نوع ها را بی معنی می کند و خطر خطاها را ایجاد می کند (وقتی مقادیر عددی استفاده می شود که نوع آن دارای ثابت های مربوطه نیست). از طرف دیگر ، مدیریت صریح صریح برخی قابلیت های اضافی را فراهم می کند. به عنوان مثال ، در صورت استفاده از مقادیر رمزگذاری شده عدد صحیح از برخی مجموعه های از پیش تعریف شده ، می توانید هنگام سازماندهی رابط با ماژول هایی که به زبان های دیگر نوشته شده است ، از انواع شمارش استفاده کنید.

      امکان دیگری که انواع ذکر شده در سطح اجرای زبان می دهد صرفه جویی در حافظه است. با مقدار کمی از نوع شمارش ، چند بیت برای ذخیره مقدار این نوع کافی است (نوع Carduit فوق فقط به دو مقدار به دو بیت احتیاج دارد ، در حالی که عدد صحیح استاندارد در بیشتر معماریهای مورد استفاده 32 بیت طول می کشد - 16 برابر بیشتر) و کامپایلر می تواند از آن استفاده کند این واقعیت برای ذخیره اطلاعات در حافظه است. این می تواند به ویژه مهم باشد اگر چندین مقدار از انواع شمارش در یک رکورد ذخیره شوند - فشرده سازی سوابق هنگام پردازش مقادیر زیادی از آنها می تواند حافظه زیادی را آزاد کند. درست است ، لازم به ذکر است که کامپایلرها معمولاً این ویژگی را درک نمی کنند ، حداقل اخیراً ، هنگامی که حافظه کامپیوتر به طور قابل توجهی ارزان تر شده است.

      نقد

      نوع شمارش برای زبان های برنامه نویسی توسعه یافته سنتی است ، بسیار گسترده استفاده می شود و اغلب مورد استفاده قرار می گیرد. با این حال ، این نوع نیز بدون انتقاد نظریه پردازان و دست اندرکاران برنامه نویسی نیست. بنابراین ، هنگام تدوین زبان برنامه نویسی اوبرون ، انواع ذکر شده در لیست ویژگی های حذف شده از زبان قرار گرفتند. Nicklaus Wirth ، توسعه دهنده زبان ، دلایل زیر را شناسایی کرد:

      از طرف دیگر ، به عنوان مثال ، در جاوا ، که در ابتدا حاوی یک نوع شمرده نشده بود ، این نوع متعاقبا به دلایل نه تنها راحتی بلکه همچنین قابلیت اطمینان نیز معرفی شد: مشکل استفاده از ثابت های نامگذاری شده به جای شمارش موارد ذکر شده این است که هیچ کنترلی از طرف کامپایلر در مورد منحصر به فرد بودن مقادیر وجود ندارد. ثابت ها ، و برای امکان اختصاص دادن تصادفی به مقادیر متغیرهایی که با هیچ یک از این ثابت ها مطابقت ندارد.

      توضیحات نقل و انتقالات به زبانهای مختلف

      کارت لباس Enum (CLUBS ، الماس ، قلب ، اسپند)؛

      زبانهای تایپ ضعیف ضعیف با نحو C مانند (مانند perl یا JavaScript) ، به طور معمول ، هیچ شماره شماری ندارند.

    زنگ

    کسانی هستند که این خبر را قبل از شما می خوانند.
    برای دریافت مطالب تازه مشترک شوید.
    پست الکترونیک
    نام
    نام خانوادگی
    چگونه می خواهید The Bell را بخوانید
    بدون اسپم