زنگ

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

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

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

نمای کلی تعریف آرایه:

نوع A \u003d آرایه [نوع شاخص آرایه] از [نوع مؤلفه آرایه]

به عنوان مثال ، M1 \u003d آرایه واقعی؛

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

رکورد یک ساختار داده است که از تعداد مشخصی از مؤلفه ها به نام فیلدهای ضبط تشکیل شده است. بر خلاف یک آرایه ، مؤلفه های ضبط (فیلدها) می تواند باشد انواع مختلف. سوابق به شما امکان می دهد مقادیر مختلفی را با یکدیگر ترکیب کنید.

ماه: (ژانویه ، فوریه ، مارس ، آوریل ، مه ، ژوئن ، جولای ، اوت ، سپتامبر ، اکتبر ، نوامبر ، دسامبر)؛

سال: 2000..2050؛

زیاد - اینها مجموعه اشیاء از یک نوع هستند که منطقی با یکدیگر در ارتباط هستند. تعداد عناصر موجود در مجموعه می تواند از 0 تا 256 متغیر باشد. این عدم تناسب عناصر آنها است که با آرایه ها و رکوردها متفاوت است.

رقم \u003d مجموعه 1..5؛

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

F: پرونده مورد علاقه؛

ما در هنگام مطالعه بیشتر زبان با انواع ساختاری با جزئیات بیشتری آشنا می شویم.

      1. نشانگر (نوع مرجع)

دارای آدرس بایت حافظه است که در آن مقدار داده از نوع خاصی در آن قرار دارد. به این نوع نیز مرجع گفته می شود. از کاراکتر ^ و شناسه نوع برای توضیحات استفاده می شود. به عنوان مثال ، عدد صحیح P \u003d ^؛

استفاده از اشاره گرها ابزاری انعطاف پذیر برای مدیریت حافظه پویا است و امکان پردازش مقادیر زیادی از آرایه های داده را فراهم می کند.

    1. ثابت ها

مقدار ثابت آنها مقداری را می نامند که مقدار آن هنگام اجرای برنامه تغییر نمی کند.

    عددیاز ثابت ها برای نوشتن اعداد استفاده می شود. انواع زیر متمایز می شوند:

کل اعداد: مطابق با قوانین عادی معمول: با علامت + یا - یا علامت گذاری شده یا علامت گذاری شده:

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

ضبط منظم : 2.5 -3.14 2. - توجه داشته باشید که قسمت عدد صحیح از نماد نقطه کسری جدا شده است.

نمایی فرم: در این رکورد تعداد واقعی به صورت m * 10 p نشان داده می شود ، در جایی که m قرار دارد مانتیسا یا پایه یک عدد ، 0.1≤ | m | ≤ 1 ، p - سفارش اعداد ، این یک عدد صحیح است. در واقع ، هر شماره واقعی می تواند به شکل نمایی ارائه شود:

153.5 -0.1535*10 3

99.005 0.99005*10 2

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

153.5 -0.1535 * 10 3 -0.1535E3 یا -1.535E02

99.005 0.99005 * 10 2 0.99005E + 2 یا 9.9005e + 01

بدون اقدامات ویژه ، برنامه در Pascal اعداد واقعی را به شکل روی صفحه و چاپگر نمایش می دهد. علاوه بر این ، این فرم برای نوشتن اعداد بسیار کوچک و بسیار بزرگ مناسب است:

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

اعداد شش ضلعی ارقام شش ضلعی هستند که قبل از علامت $ انجام می شوند. دامنه تعداد hexadecimal از 00000000 دلار تا FFFFFFFF $ است.

علاوه بر ثابت های عددی ، انواع دیگری از آنها نیز وجود دارد:

    تیزر مغز ثابت ها

خدمت برای تأیید صحت یا غلط بودن شرایط خاص در برنامه و فقط می توانید بپذیرید یکی از دو معنی: کلمه خدمات درست است، واقعی حقیقت را بیان می کند ، و نادرست - غلط؛

    نمادین ثابت ها

آنها می توانند مقدار هر کاراکتر چاپ شده را به دست آورند و به عنوان کاراکتر محصور در آن نوشته می شوند رسولان ("به نقل از منفرد"):

در حالت دوم ، مقدار کاراکتر ثابت برابر با شخصیت فضایی است. اگر می خواهید خود نماد آپوستروف را به عنوان ثابت نمادین بنویسید ، در درون آپوستروپ های بیرونی دو برابر می شود: "" ""

نمادها همچنین شامل ثابتهای فرم # X هستند ، جایی که X یک عددی از 0 تا 255 شامل است ، که اعشاری است Asciiکد شخصیت. جداول کدهای ASCII که توسط سیستم عامل های DOS و ویندوز استفاده می شوند در پیوست 1 آورده شده است. برای مثال ، مقدار # 65 با کد شخصیتی لاتین "A" مطابقت دارد.

    رشته ثابت ها

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

"مقدار X را وارد کنید:"

اگر شما نیاز دارید که نماد آپوستروف را به صورت ثابت رشته بنویسید ، این کار به همان روشی انجام می شود که ثابت های نمادین است.

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

const Name1 \u003d Value1؛

name2 \u003d Value2؛

NameN \u003d ValueN؛

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

const e \u003d 2.7182818285؛

lang \u003d "Turbo Pascal 7.1"؛

در اینجا ما ثابت عددی e را با مقدار پایه لگاریتم طبیعی و ثابت رشته با نام lang که شامل رشته "Turbo Pascal 7.1" است ، توصیف می کنیم.

هر اسمی که توسط برنامه نویس داده می شود باید باشد منحصر بفرد در یک برنامه اگر این بخش را در برنامه خود بگنجانیم ، دیگر نمی توانیم اشیاء دیگری را با نام های e و lang ایجاد کنیم.

الگوریتم برنامه نویسی گسسته

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

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

  • * روش استفاده شده برای ضبط اطلاعات در سلول های حافظه؛
  • * مقدار لازم حافظه برای ذخیره آن.

مقدار حافظه برای هر نوع به گونه ای تعیین می شود که می تواند هر مقدار را از یک محدوده قابل قبول مقادیر متناسب کند از این نوع. به عنوان مثال ، نوع "بایت" می تواند مقادیر 0 تا 255 را بدست آورد ، که در کد باینری (255 \u003d 11111111 2) با یک سلول حافظه 8 بیت (یا 1 بایت) مطابقت دارد.

در الگوریتم هایی که در بالا توضیح داده شد ، تمام داده ها به عنوان متغیر ذخیره می شوند. به عنوان مثال ، دستورالعمل "دو عدد را وارد کنید و ، ب " به این معنی که کاربر مقادیر دو متغیر را معرفی می کند ، و دستورالعمل "K \u003d K + 1" به معنی افزایش ارزش متغیر K به یک است.

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

به سایر داده های برنامه که مقادیر آن هنگام عملکرد آن تغییر نمی کند ، گفته می شود ثابت ها یا دائمی ثابت ها مانند متغیرها از نوع هستند. می توان آنها را به صراحت نشان داد ، برای مثال ، در دستورالعمل "K \u003d K + 1" 1 ثابت وجود دارد ، یا برای راحتی می توان آن را با شناسه ها مشخص کرد: پی = 3.1415926536 فقط ارزش پی نمی تواند تغییر کند زیرا یک متغیر ثابت است نه متغیر.

برای افزایش بهره وری و کیفیت کار ، شما باید داده ها را تا حد ممکن نزدیک به همتایان واقعی داشته باشید. یک نوع داده است که به شما امکان می دهد چندین متغیر را در یک نام با هم ذخیره کنید ، نامیده می شود ساختار یافته هر زبان برنامه نویسی انواع ساختاری خاص خود را دارد. ساختاری را در نظر بگیرید که عناصر یک نوع داده را ترکیب کند - یک آرایه .

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

آرایه یک بعدی (کابینت جعبه ها در یک ردیف) فرض می کند که هر عنصر فقط یک شاخص دارد. نمونه هایی از آرایه های یک بعدی دنباله های حساب و هندسی هستند که مجموعه ای از اعداد محدود را تعریف می کنند. به تعداد عناصر آرایه گفته می شود بعد، ابعاد، اندازه. هنگام تعریف یک آرایه یک بعدی ، ابعاد آن در پرانتزهای کنار نام آن نوشته شده است. به عنوان مثال ، اگر می گوید: "آرایه A (10) مشخص شده است" ، این بدان معنی است که عناصر داده می شوند: و ر و 2 ,…, آ ig . بیایید الگوریتم های پردازش عناصر آرایه های یک بعدی را در نظر بگیریم.

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

روش الگوریتم های ساختاری یکی از روش های سیستم برای توسعه الگوریتم ها است. این مبتنی بر نمایش بصری الگوریتم ها به صورت توالی قطعات ساختاری کنترل است.

هر الگوریتم از مراحل ابتدایی تشکیل شده است که می توانند در ساختارهای خاص الگوریتمی ترکیب شوند: خطی (متوالی) انشعاب , چرخه ای .

تعریف 1

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

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

تعریف 2

انشعاب (انشعاب) آنها یک الگوریتم طراحی می نامند که بسته به مقادیر داده های ورودی ، گزینه ای بین 2 راه حل فراهم می کند.

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

  1. شعبه ناقص نوع "اگر پس از آن »، که تحت آن همه اقدامات شرایط واقعی خواهند بود.
  2. انشعاب کامل "اگر - پس - در غیر این صورت" که در آن 2 عمل بسته به حقیقت شرایط انجام خواهد شد.
  3. نوع انشعاب "آن" تحت آن عمل 1 تحت شرایط 1 ، عمل 2 تحت شرایط 2 و غیره انجام خواهد شد.
  4. نوع انشعاب "در غیر این صورت" که در آن در شرایط 1 ، عمل 1 ، تحت شرایط 2 ، عمل 2 و غیره انجام خواهد شد ، در غیر این صورت تمام اقدامات دیگر انجام خواهد شد.

در زیر نمودارهای الگوریتم های انشعاب قرار دارند.

تعریف 3

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

تعریف 4

به این گروه از اقدامات تکراری در هر مرحله از چرخه گفته می شود چرخه بدن .

هر ساختار چرخه ای شامل عناصر ساختار انشعاب الگوریتم است.

3 نوع الگوریتم حلقوی وجود دارد:

  • چرخه با یک پارامتر (چرخه حسابی)؛
  • چرخه پیش شرط؛
  • حلقه با یک پسماند (دو مورد آخر را تکرار می گویند).

چرخه حساب

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

چرخه پیش شرط

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

از ویژگی های این نوع چرخه این است که با دروغ اولیه مقدار بیان شرط ، بدنه چرخه به هیچ وجه اجرا نمی شود.

حلقه Postcondition

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

در کارهای واقعی ، به طور معمول ، هر تعداد چرخه حضور دارد.

در زیر نمودارهای الگوریتم چرخهای قرار دارند.

انواع داده ها: ساده و ساختاری

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

تعریف 5

متغیر یک شیء به نام (سلول حافظه) را نشان می دهد که مقدار آن را تغییر می دهد.

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

نوع متغیر تنظیم شده است:

  • روش استفاده شده برای ضبط اطلاعات در سلول های حافظه؛
  • مقدار لازم حافظه برای ذخیره آن

برای هر نوع ، مقدار حافظه به گونه ای تعیین می شود که می تواند هر مقدار را از یک محدوده قابل قبول از مقادیر برای این نوع جا دهد.

تعریف 6

متغیرهایی که در کل برنامه در کل دوره کار آن وجود دارد ، نامیده می شوند ایستا .

تعریف 7

متغیرهایی که در مراحل مختلف اجرای برنامه ایجاد و نابود می شوند ، نامیده می شوند پویا تعریف 10

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

عناصر آرایه برخلاف عناصر واحد ، در حافظه رایانه در محله ذخیره می شوند. آرایه ها با تعدادی از شاخص های عناصر متمایز می شوند.

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

تعریف 11

به تعداد عناصر آرایه گفته می شود بعد، ابعاد، اندازه .

در یک آرایه تک بعدی ابعاد آن در کنار نام در پرانتز نوشته شده است.

عناصر یک آرایه یک بعدی به ترتیب لازم برای حل یک مشکل خاص به صورت ابتدایی معرفی می شوند. در صورت نیاز به وارد کردن کل آرایه ، عناصر به ترتیب شاخص صعودی وارد می شوند.

فصل 6. ساختار
انواع داده ها انواع داده های ساختار یافته مجموعه ای از اجزای مشابه یا ناهمگن را تعریف می کنند. انواع مؤلفه ها از انواع دیگر (ساده ، ساختاری ، اشاره گر و ...) از داده ها تشکیل می شوند. انواع ساختار زیر در Pascal وجود دارد: - نوع آرایه. - نوع رکورد؛ - مجموعه نوع؛ - نوع فایل. AT توربو pascal دو نوع ساختار دیگر وجود دارد: - رشته ای از نوع رشته و - رشته PChar از نوع رشته ای ، که انواع آرایه هستند. در آینده ، به دلیل کوتاه بودن ، اشیاء انواع ساختار یافته با نامهای مشابه با نامهایشان خوانده می شوند ، بدون مشخص کردن کلمه "نوع": آرایه ، ضبط ، تنظیم ، پرونده ، رشته. در ساختار زبان انواع ساختاری بسته بندی شده و بسته بندی نشده وجود دارد. در Turbo Pascal ، کلمه بسته بندی شده ، که نوع بسته بندی شده ای را توصیف می کند ، هیچ تاثیری ندارد. در صورت امکان ، داده ها بصورت خودکار بسته بندی می شوند. 6.1. Array Type-array یک تعداد ثابت از اجزای سفارش داده شده از همان نوع است که مجهز به شاخص ها است. می تواند یک بعدی و چند بعدی باشد. برای مشخص کردن نوع آرایه ، کلمه رزرو شده آرایه ای استفاده می شود و پس از آن ، نوع شاخص (های) مؤلفه (در براکت مربع) و بعد از کلمه - نوع اجزای خود: نوع<имя типа> \u003d آرایه [<тип индекса(индексов)>] از<тип компонент>؛ مثال. نوع Arr \u003d array of Real؛ (نوع آرایه از 3 عدد واقعی) ماتریس \u003d آرایه از علاقه؛ (یک نوع - آرایه دو بعدی اعداد صحیح ، متشکل از 3 ردیف و 2 ستون) با وارد کردن نوع آرایه ، می توانید متغیرها یا ثابت تایپ شده از این نوع را مشخص کنید. ابعاد آرایه می تواند باشد ، اجزای آرایه می توانند از هر نوع باشند ، از جمله ساختاری ، این شاخص (ها) می توانند از هر نوع ترتیب باشند ، بجز نوع Longint. در هنگام مشخص کردن مقادیر ثابت آرایه ، مؤلفه ها در پرانتزها مشخص شده و با کاما از هم جدا می شوند ، و اگر آرایه چند بعدی باشد ، پرانتزهای بیرونی با شاخص سمت چپ مطابقت دارند ، پرانتزهای محصور شده در آنها مطابق با شاخص بعدی و غیره است. بنابراین ، برای انواع معرفی شده در بالا می توانید مشخص کنید. به عنوان مثال ، متغیرها و ثابت های زیر: var Ml ، M2: Arr؛ ماتریس: ماتریس؛ const M3: Arr \u003d (1 ، 2 ، 3)؛ مات: ماتریس \u003d ((1 ، 2) ، (3 ، 4) ، (5 ، 6))؛ آخرین ثابت با ساختار زیر مطابقت دارد: 1 2 3 4 5 6 توجه. یک نوع آرایه نیز می تواند هنگام تعریف متغیرهای مربوطه یا ثابت تایپ شده مستقیماً وارد شود. به عنوان مثال: var Ml، M2: array of Real؛ Matr: آرایه ای از علاقه؛ آرایه ها مانند مثال قبلی در اینجا تعریف شده اند. با چنین اعلامیه ای از آرایه ها ، باید به خاطر داشته باشید که انواع آنها حتی با وجود یک ساختار یکسان ، با انواع دیگر یکسان نخواهد بود. بنابراین ، شما نمی توانید آنها را به عنوان پارامترهای فرعی (زیر بخش 10.3 ببینید) ، همچنین نمی توانید مقادیر آرایه های دیگر (و برعکس) را به آنها اختصاص دهید ، حتی اگر ساختارهای آنها همزمان باشد. دسترسی به اجزای آرایه با مشخص کردن نام آرایه انجام می شود و به دنبال آن مقدار شاخص (های) مؤلفه در براکت های مربع انجام می شود. در حالت کلی ، هر شاخص مؤلفه را می توان با عبارتی از نوع مربوطه تعریف کرد ، به عنوان مثال: M1 ، ماتریس ، M2 و غیره. به یک آرایه می توان مقدار یک آرایه دیگر را اختصاص داد ، اما فقط از همان نوع. بنابراین ، اگر آرایه های زیر داده شده است: var A، B: array of interes؛ ج: آرایه از علاقه؛ سپس عملگر زیر را فرض کنید: A: \u003d B؛ از طرف دیگر ، اپراتور C: \u003d A؛ غیرقابل قبول است ، زیرا آرایه های A و C انواع یکسان نیستند. در کار با آرایه های یک بعدی کاراکترها تفاوت هایی وجود دارد (نباید با مقادیر نوع رشته اشتباه گرفته شود - به بخش 6.2 مراجعه کنید). بنابراین ، با ثابت کردن رشته ای از کاراکترهای موجود در آپوستروپ ، می توانید ثابتهای تایپ شده از این نوع را به دست آورید ، به عنوان مثال const A: array of Char \u003d "aaaaa"؛ B: array of Char \u003d "bbb"؛ برای چنین آرایه ها ، و همچنین برای رشته ها ، می توانید از عملیات مقایسه (حتی اگر آنها از نوع یکسان نیستند و حتی اگر اندازه های مختلفی دارند) استفاده کنید و جمع بندی (اتحادیه) - را ببینید بخش 6.2. آنها را می توان در عبارت های خروجی نوشتن و نوشتن نامه استفاده کرد. به عنوان مثال ، برای آرایه های معرفی شده در بالا ، می توانید بنویسید که A\u003e B سپس WritLn (A) دیگری WritLn (B) را بنویسید؛ 6.2 رشته رشته در Turbo Pascal ، نوع رشته (نوع استاندارد رشته) دنباله ای از شخصیت های طول دلخواه (حداکثر 255 نویسه) است. یک رشته می تواند به عنوان مجموعه ای از کاراکترها در نظر گرفته شود ، اما به دلیل استفاده گسترده از رشته ها و برخی ویژگی ها در مقایسه با آرایه های استاندارد ، آنها به یک نوع داده جداگانه اختصاص می یابد. نوع رشته ای در براکت های مربع می تواند اندازه آن (از 1 تا 255) را نشان دهد. اگر اندازه رشته مشخص نشده باشد ، برابر با 255 در نظر گرفته می شود ، برای مثال: var Str: string؛ MaxStr: رشته؛ (رشته 255 کاراکتر) const January: string \u003d "ژانویه"؛ جمع بندی (+) و عملیات مقایسه برای رشته ها کاربرد دارد. عملیات جمع بندی یک ثانیه به خط اول اضافه می کند. مثال. به دو خط بپیوندید. Str، Strl، Str2: string؛ start Strl: \u003d "Turbo"؛ Str2: \u003d "پاسکال"؛ Str: \u003d Strl + Str2؛ (در متغیر Str - "Turbo Pascal") پایان می یابد. می توانید رشته هایی با طول های مختلف را مقایسه کنید. مقایسه از چپ به راست مطابق با کدهای ASCII کاراکترهای مربوطه انجام می شود. شخصیت های گمشده در خط کوتاه تر در نظر گرفته می شوند که دارای کد کمتر از کد هر شخصیت معتبر باشند. به عنوان مثال ، "XS" از "X" بزرگتر است. مثال. بررسی کنید که آیا مجموعه کاراکترهای وارد شده نام ماه به زبان روسی است یا خیر. برنامه EXAMPLE11؛ const Instance: array of string! 10] \u003d ("ژانویه" ، "چهارشنبه" ، "مارچ" ، "آوریل" ، "مه" ، "ژوئن" ، "ژوئیه" ، "اوت" ، "سپتامبر" ، "اکتبر") ، "نوامبر دسامبر")؛ ماه: بولی \u003d غلط؛ var Str: رشته؛ من: علاقه؛ شروع Writeln ("حروف بزرگ را وارد کنید:")؛ ReadLn (خ)؛ برای i: \u003d 1 تا 12 انجام دهید اگر Str \u003d نمونه [i] سپس ماه: \u003d True؛ اگر Month سپس WritLn ("نام ماه وارد شده است") دیگری WritLn ("نام ماه وارد نشده است") پایان یابد. در حقیقت ، یک رشته از نویسه N آرایه ای از شخصیت های N + 1 است: string [N] \u003d arrau از Char. یک کاراکتر تهی برای مشخص کردن تعداد کاراکترهای مورد استفاده در یک رشته استفاده می شود و می تواند از یک کاراکتر با کد 0 تا کاراکتری با کد N. متغیر باشد. شما می توانید با آن کار کنید مانند سایر شخصیت های رشته (نوشتن و خواندن مقدار آن و غیره) ، اما فراموش نکنید. هدف اصلی آن 6.3 رشته ASCIIZ در نسخه 7.0 ، برای سازگاری با سایر زبان های برنامه نویسی و محیط ویندوز ، نوع دیگری از رشته ها معرفی می شود - رشته هایی که با یک بایت صفر پایان می یابد - یک کاراکتر با کد 0 (به اصطلاح رشته های ASCIIZ). برخلاف رشته های رشته ای نوع ، این رشته ها محدودیتی در اندازه آنها اعمال نمی کنند (در حقیقت ، اندازه می تواند تا 65535 بایت باشد). به این خطوط از نوع استاندارد PChar داده می شود. در واقع ، این نوع نشانگر یک کاراکتر است (برای اشاره گرها ، بند 7 را ببینید): PChar \u003d ^ Char؛ با این حال ، استفاده از نحو گسترده (کلید (X +) - به صفحه 17.7.1 مراجعه کنید) به شما امکان می دهد از متغیرهایی مانند معادل رشته با آرایه ای از نوع pChar \u003d آرایه ای از Char استفاده کنید ، جایی که K تعداد کاراکترهای رشته است ، و کاراکتر خاتمه دهنده را با کد 0 محاسبه نمی کنید. بر خلاف نوع رشته ، کاراکتر با index 0 اولین کاراکتر رشته است و آخرین شخصیت با شاخص K شخصیت نهایی با کد 0 است. هنگام کار با رشته های ASCIIZ ، توصیه می شود نحو گسترده را مشخص کنید. در این حالت ، هنگام استفاده از روالهای مختلف استاندارد که با رشته ها کار می کنند ، هیچ مشکلی وجود ندارد. مثال. استفاده از رشته های نوع PChar با نحو گسترده. برنامه مثال؛ ($ X +) (لازم نیست زیرا به طور پیش فرض از آن استفاده می شود) نوع Т \u003d آرایه از Char؛ (آرایه ای برای یک رشته از 7 کاراکتر) var Str: PChar؛ const A: T \u003d "سلام!" # 0؛ شروع Str: \u003d "HELLO!"؛ WritLn (خ)؛ (خروجی خط: HELLO Str:= @А; {допустимо также: Str:=A} WriteLn(Str); {вывод строки: привет!} WriteLn(Str);{вывод символа "р"} ReadLn end. Если используется ключ {$Х-}, переменная типа PChar в этом случае рассматривается как указатель на один единственный символ. В этом случае ни один из операторов предыдущего примера, за исключением операторов Str:!} [ایمیل محافظت شده]؛ و ReadLn معتبر نیست ، و عبارت WritLn (Str ^) که بعد از عبارت Str اجرا شده است: [ایمیل محافظت شده]؛ ، یک شخصیت "p" تولید خواهد کرد. برای کار با رشته های ASCIIZ در نسخه 7.0 ، از ماژول های استاندارد استاندارد (رشته ها به بخش 16.2 مراجعه کنید) و WinDos (به بخش 16.6 مراجعه کنید). 6.4 Record نوع ضبط شامل تعدادی از مؤلفه ها به نام فیلدها است که می تواند از انواع مختلفی باشد. هنگام تعیین نوع رکورد پس از ثبت کلمه رزرو شده ، باید کلیه فیلدهای از نوع رکورد را با یک کولون درج کنید که انواع آنها را نشان می دهد و تعریف نوع را با کلمه انتهایی پایان دهید زمینه ها با یک قطعه جدا می شوند. تعداد قسمتهای ضبط می تواند باشد. مثال. نوع پیچیده \u003d ضبط (نوع اعداد پیچیده) پاسخ: واقعی؛ من: پایان واقعی؛ داده \u003d ضبط (نوع - تاریخ تولد) سال: علاقه؛ ماه: 1..12؛ روز: 1..31 پایان؛ شخص \u003d ضبط (نوع - اطلاعات کارمند) نام: رشته؛ جنس: (مرد ، زن)؛ سن: علاقه؛ متاهل: پایان بولی؛ توجه داشته باشید. اگر چندین فیلد از نوع ضبط از یک نوع باشد ، می توان نام آنها را با کاما ذکر کرد و سپس این نوع متداول را مشخص کرد. بنابراین ، نوع اعداد پیچیده ای که در مثال در نظر گرفته شده است می تواند به روش دیگری معرفی شود: نوع Complex \u003d record Re، Im: End real؛ بعد از معرفی یک نوع رکورد ، می توانید متغیرها یا ثابت های تایپ شده از این نوع را تنظیم کنید - رکوردها. هنگام تنظیم مقادیر ثابت ، زمینه های آن از طریق یک قطعه در پرانتز نوشته می شوند. برای تنظیم مقدار هر فیلد ، ابتدا نام فیلد و سپس از طریق روده بزرگ - مقدار آن را مشخص کنید. بنابراین ، برای انواع معرفی شده در بالا ، به عنوان مثال می توانید متغیرها و ثابت های زیر را تنظیم کنید: var X، Y، Z: Complex؛ Dat: data؛ const Birthday: Data \u003d (سال: 1971؛ ماه: 12؛ روز: 9)؛ ایوانف: شخص \u003d (نام: "ایوانف" ؛ سکس: مذکر ؛ سن: 40 ؛ متاهل: حقیقی)؛ توجه داشته باشید. یک نوع رکورد همچنین می تواند هنگام تعریف متغیرها یا ثابت های تایپ شده ، مستقیماً وارد شود. به عنوان مثال ، قطعه var ، X ، Y ، Z: record Re، Im: پایان واقعی؛ همان متغیرهای پیچیده را مانند مثال قبلی تعریف می کند. دسترسی به فیلدهای رکورد با مشخص کردن نام متغیر (ثابت) و نام فیلد نوشته شده از طریق نقطه انجام می شود ، به عنوان مثال: Ivanov.Age ، X.Re ، Dat.Day و موارد دیگر. استفاده از زمینه های ضبط. X.Re:\u003d 1.5؛ X.Im:\u003d1.7؛ Y.Re:\u003d -X.Re؛ Y.Im:\u003d -X.Im؛ Ivanov.Married: \u003d نادرست؛ برای اینکه در هنگام دستیابی به فیلدهای آن ، نام رکورد را هر بار ننوشتن ، می توانید از اپراتور روی Record Records استفاده کنید. ساختار آن به شرح زیر است: با<имя записи> انجام دادن<оператор>؛ در این حالت ، فقط قسمت ضبط را می توان درون اپراتور مشخص کرد. به عنوان مثال ، یک قطعه: با X شروع می شود Re: \u003d 1.5؛ Im: \u003d 1.7؛ Y.Re:\u003d -Re؛ Y.Im:\u003d -Im؛ با ایوانف انجام ازدواج: \u003d نادرست؛ معادل قطعه قطعه از مثال قبلی یک نوع رکورد می تواند یک قسمت متغیر داشته باشد که با پیاده سازی های مختلف متفاوت باشد ، برای مثال در یک نوع ضبط پارامترهای ارقام هندسی ، یک ضلع برای یک مربع مشخص می شود ، برای یک مثلث - دو طرف و یک زاویه بین آنها ، برای یک دایره - شعاع و غیره. فقط یک و باید در انتهای ضبط قرار داشته باشد. مثال. استفاده از قسمت نوع. نوع شکل \u003d (مربع ، مثلث ، دایره)؛ Param \u003d ضبط X، Y: Real؛ (مختصات نقطه لنگر) مورد: شکل: شکل (پارامترهای شکل) مربع: (سمت: واقعی)؛ مثلث: (Sidel، Side2، Angle: Real)؛ دایره: (شعاع: واقعی) پایان؛ var MySquare ، MyCircle: Param؛ قسمت واریت با کلمه مورد شروع می شود و به دنبال آن متغیر انتخاب نوع (در مثال شکل) با ذکر نوع. در زیر ثابت هایی از مقدار وجود دارد که متغیر انتخاب نوع می تواند از آن استفاده کند (به عنوان مثال مربع ، مثلث ، دایره). هر ثابت توسط روده بزرگ در براکت ها دنبال می شود. این گزینه سوابق موجود در انواع آنها پرانتز حتی اگر قسمت دیگری برای این گزینه وجود نداشته باشد ضروری است. لازم به ذکر است که قسمت نوع با انتهای براکت اپراتور آن پایان نمی یابد ، همانطور که در ساخت معمول CASE ، از آنجا که انتهای براکت اپراتور نهایی از نوع کامل به شرح زیر است. در استاندارد زبان Pascal ، قبل از استفاده از یکی از گزینه های ضبط ، باید مقدار مناسب را به متغیر انتخاب گزینه اختصاص دهید: شکل: \u003d مربع؛ MySquare.Side: \u003d 5.0؛ شکل: \u003d دایره؛ MyCircle.Radius: \u003d 7.5؛ در Turbo Pascal ، این عمل اختیاری است ، اگرچه اگر متغیر انتخاب تنظیم شود ، می توان در برنامه مشاهده کرد تا مشخص شود کدام گزینه مشخص شده است. علاوه بر این ، تعیین مقدار متغیر انتخاب هیچ تاثیری روی هر چیزی ندارد ، و قطعه زیر معادل آن است که در بالا مورد بررسی قرار می گیرد: شکل: \u003d دایره. MySquare.Side: \u003d 5.0؛ شکل: \u003d مربع؛ MyCircle.Radius: -7.5؛ مجاز به وارد کردن یک متغیر انتخاب نوع در نوع رکورد نیست ، بلکه فقط گزینه های مختلف را ذکر کنید ، برای مثال: انتقال \u003d پرونده ضبط علاقه 1: (_Word: Word)؛ 2: (_TwoSymb: آرایه ای از Char) پایان؛ 6.5 مجموعه In Pascal ، مجموعه ای از نوع مجموعه ای از مجموعه اصلی اشیاء از نوع نظم است ، یعنی مجموعه انواع ترکیبات اشیاء از مجموعه اصلی. تعداد عناصر اصلی در Turbo Pascal نمی تواند بیش از 256 باشد و تعداد سریال عناصر (یعنی مقدار عملکرد Ord) باید بین 0 تا 255 باشد. برای مشخص کردن نوع مجموعه ، از کلمات رزرو شده set و of استفاده کنید و سپس عناصر این مجموعه را معمولاً به صورت شمارش یا دامنه مشخص کنید ، برای مثال: نوع Alfa \u003d مجموعه "A" را تایپ کنید .. "Z"؛ تعداد \u003d مجموعه (به علاوه ، منهای ، چند ، تقسیم)؛ ده \u003d مجموعه 0..9؛ شماره \u003d مجموعه "0" .. "9"؛ با وارد کردن یک نوع مجموعه می توانید متغیرها یا ثابت های تایپ شده از این نوع مجموعه را تعیین کنید. هنگام تنظیم مقادیر روی یک مجموعه ثابت ، عناصر آن با کاما ذکر شده اند (تعیین محدوده مجاز است) و در براکت های مربع قرار می گیرند. به عنوان مثال ، برای انواع معرفی شده در بالا ، می توانید چنین متغیرها و ثابت های تایپ شده را تنظیم کنید: var CharVal: Alfa؛ عملیات: شمارش؛ شاخص const: ده \u003d؛ رقم: Number \u003d ["0" .. "9"]؛ توجه داشته باشید. مانند سایر انواع ساختاری ، هنگام تعریف متغیرها یا ثابت های تایپ شده ، می توان یک نوع مجموعه را مستقیماً وارد کرد: var CharVal: مجموعه ای از "A" .. "Z"؛ عملیات: مجموعه ای از (Plus ، Minus، Mult، Divid)؛ شاخص const: مجموعه 0..9 \u003d؛ رقم: مجموعه "0" .. "9" \u003d ["0" .. "9"]؛ به بسیاری از آنها می توان مقدار خاصی را در برنامه اختصاص داد. به طور معمول ، یک مقدار با استفاده از سازنده تنظیم شده تنظیم می شود. سازنده مجموعه ای از عناصر را با ذکر کردن در براکت های مربع عباراتی که مقادیر آنها به عناصر این مجموعه می پردازد تعریف می کند. استفاده از محدوده عناصر قابل قبول است. مثال. سازه های زیر سازنده هایی هستند: به اصطلاح مجموعه خالی بدون عناصر. سازنده مجموعه همچنین می تواند به طور مستقیم در عملیات روی مجموعه ها استفاده شود. عملیات زیر برای مجموعه ها تعریف شده است: + - اتحاد مجموعه؛ - - تفاوت مجموعه؛ * - تقاطع بسیاری؛ \u003d - بررسی هم ارزی دو مجموعه؛<> - تأیید عدم وجود دو مجموعه.<= - проверка, является ли левое множество подмножеством правого множества; > \u003d - بررسی کنید که آیا مجموعه سمت راست زیر مجموعه ای از مجموعه سمت چپ است. در - بررسی کنید که آیا عنصر ذکر شده در سمت چپ در مجموعه موجود در سمت راست قرار دارد یا خیر. نتیجه اتحادیه ، اختلاف یا عملیات تقاطع مجموعه مربوطه است ، عملیات باقیمانده نتیجه ای از نوع منطقی می دهد. مثال. یک رشته کاراکتر متشکل از حروف لاتین ، اعداد و فاصله ها را وارد کنید. اعتبار سنجی کاراکترهای وارد شده را انجام دهید. برنامه EXAMPLE13؛ var Str: رشته؛ ل: بایت؛ Tru: Boolean؛ شروع WritLn ("رشته ای را وارد کن")؛ ReadLn (خ)؛ L: \u003d طول (خیابان)؛ (تعداد کاراکترهای وارد شده) Tru: \u003d L\u003e 0؛ (درست است ، اگر یک خط خالی نباشد) در حالی که Tru و (L\u003e 0) انجام می دهند (از انتهای خط بررسی کنید) Tru را شروع می کنیم: \u003d Str [L] را در ["0" .. "9" ، "A" ، "Z" ، "a" .. "z" ، ""]؛ (اعتبار سنجی شخصیت) دسامبر (L) (شخصیت قبلی) پایان یافت؛ اگر Tru سپس WritLn ("خط صحیح") دیگری WritLn ("خط نادرست") پایان یافت. 6.6. File Type-file دنباله ای از مؤلفه هایی از همان نوع است که در یک دستگاه خارجی قرار دارد (در استاندارد زبان ، محل قرارگیری داده ها روی نوارهای مغناطیسی به عنوان پایه گرفته می شود). مؤلفه ها می توانند از هر نوع باشند ، بجز نوع پرونده (یا حاوی مؤلفه های نوع فایل) و نوع شی. تعداد مؤلفه های موجود در پرونده اعلام نشده است. برای مشخص کردن نوع پرونده ، از فایل کلمات رزرو شده و از آن استفاده کنید ، و سپس نوع مؤلفه های پرونده را مشخص کنید. مثال. نوع شماره \u003d پرونده مورد علاقه؛ (نوع پرونده اعداد صحیح) Symb \u003d پرونده "A" .. "Z"؛ (نوع پرونده حروف بزرگ لاتین) نوع استاندارد متن نوع پرونده حاوی کاراکترهای ترکیبی را در رشته ها تعریف می کند. به خاطر داشته باشید که نوع Text در Turbo Pascal معادل پرونده نوع Char نیست. با وارد کردن نوع پرونده می توانید متغیرهایی از نوع پرونده تعریف کنید: var Fl، F2: Number؛ F3: متن؛ FF4: Symb؛ در Turbo Pascal می توانید از یک پرونده بدون نوع استفاده کنید ، تعریف آن نوع کامپوننت را مشخص نمی کند. در این حالت کار با پرونده مطابق با فرم داخلی داده های آن در سطح فیزیکی انجام می شود. در این حالت ، مؤلفه های واقعی پرونده می توانند نوع متفاوتی داشته باشند. مثال. نوع UnTyp \u003d پرونده را تایپ کنید. نوع پرونده را می توان مستقیماً هنگام اعلام متغیرهای پرونده نیز تعیین کرد: var Fl، F2: file of Integer؛ متغیرهای پرونده کاربرد خاصی دارند. هیچ عملیاتی روی آنها انجام نمی شود (یک مقدار اختصاص دهید ، مقایسه کنید و غیره). آنها فقط می توانند برای انجام عملیات با پرونده ها (خواندن ، نوشتن ، حذف پرونده و غیره) استفاده شوند. کار با پرونده ها در بند 11 بحث خواهد شد. علاوه بر این ، از طریق متغیر پرونده می توانید اطلاعات مربوط به یک پرونده خاص (نوع ، پارامترها ، نام پرونده و غیره) را بدست آورید. د.)

یک نوع داده مجموعه ای از مقادیر معتبر و مجموعه ای از عملیات معتبر را تعریف می کند.

انواع ساده

انواع ساده به ORDER و MATTER تقسیم می شوند.

1. نوع سفارش دهید , به نوبه خود ، موارد زیر وجود دارد:

الف) کل

در پاسکال 5 نوع عدد صحیح تعریف می شود که بسته به علامت و مقدار مورد نظر از متغیر تعیین می شود.

نام را تایپ کنید

طول (بایت)

دامنه ارزش

32 768...+32 767

2 147 483 648...+2 147 483 647

ب) منطقی

نام این نوع BOOLEAN است. مقادیر یک نوع منطقی می تواند یکی از ثابت های منطقی باشد: حقیقت (درست) یا FALSE (نادرست).

ج) نمادین

نام این نوع CHAR است - 1 بایت را اشغال می کند. مقدار نوع کاراکتر مجموعه ای از تمام شخصیت های PC است. به هر کاراکتر یک عدد صحیح در محدوده 0 ... 255 اختصاص داده می شود. این شماره به عنوان کدی برای نمایش داخلی شخصیت است.

2. نوع واقعی .

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

طول نوع داده عددی ، بایت

نام نوع داده عددی

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

دامنه اعشار از یک نوع داده عددی

2*1063 +1..+2*1063 -1

انواع ساختاری

انواع داده های ساخت یافته مجموعه ای از متغیرهای مقیاس را تعریف می کنند و با توجه به نوع اجزای آنها مشخص می شوند.

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

چندین روش ساختاری وجود دارد. با روش سازماندهی و نوع مؤلفه ها در انواع داده های پیچیده ، انواع زیر مشخص می شوند: نوع منظم (آرایه ها)؛ نوع ترکیبی (سوابق)؛ نوع پرونده (پرونده ها)؛ نوع (ها) جمع نوع رشته (رشته ها)؛ در Turbo Pascal نسخه 6.0 و بعد از آن ، یک نوع شی (اشیاء) معرفی می شود.

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

1. آرایه ها

آرایه ها در توربو پاسکال از بسیاری جهات شبیه به داده های مشابه در سایر زبان های برنامه نویسی هستند. ویژگی بارز آرایه ها این است که تمام مؤلفه های آنها داده هایی از یک نوع (احتمالاً ساختاری) هستند. این عناصر را می توان به راحتی و با ذکر شماره سریال به راحتی سفارش داد و دسترسی به هر یک از آنها را فراهم کرد.

توضیحات آرایه به شرح زیر است:

<имя типа> \u003d آرایه [<сп.инд.типов>] از<тип>

اینجا<имя типа> - شناسه صحیح؛

آرایه ، کلمات محفوظ (آرایه ، از)

<сп.инд.типов> - لیستی از یک یا چند نوع فهرست ، که با کاما از هم جدا می شوند. براکت های مربع اطراف لیست الزامات نحوی هستند.

<тип> - هر نوع توربو پاسکال.

به عنوان انواع فهرست در Turbo Pascal ، می توانید از انواع معمولی به جز LongInt و انواع برد با نوع پایه LongInt استفاده کنید.

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

2. ورودی ها

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

ساختار اظهارنامه نوع ارسال به شرح زیر است:

< ناماز نوع\u003e \u003d ضبط کنید< cn. زمینه هایپایان

اینجا<имя типа> - شناسه صحیح؛

ضبط ، پایان - کلمات محفوظ (ضبط ، پایان).

<сп.полей> - لیست زمینه ها؛ نشان دهنده دنباله ای از بخش هایی از یک رکورد است که بین آنها یک نقطه جمع قرار داده شده است.

3. مجموعه ها

مجموعه ها مجموعه ای از همان نوع اشیاء منطقی هستند که با یکدیگر ارتباط دارند. ماهیت اتصالات بین اشیاء فقط توسط برنامه نویس تلویح می شود و به هیچ وجه توسط توربو پاسکال کنترل نمی شود. تعداد عناصر موجود در یک مجموعه می تواند از 0 تا 256 متغیر باشد (مجموعه ای که عناصر را شامل نمی شود خالی نامیده می شود) .با این عدم تناسب است که تعداد عناصر آن در مجموعه با آرایه ها و رکوردها متفاوت است.

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

توضیحات نوع مجموعه فرم دارد:

< ناماز نوع\u003e \u003d مجموعه OF< پایه ها. یک نوع>

اینجا<имя типа> - نشانگر صحیح؛

تنظیم ، OF - کلمات محفوظ (تنظیم شده ، خارج)

<баз.тип> - نوع پایه عناصر مجموعه ، که می تواند به عنوان هر نوع ترتیب استفاده شود ، به جز WORD ، INTEGER و LONGINT.

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

4. پرونده ها

یک پرونده به معنای ناحیه ای از حافظه خارجی یک کامپیوتر یا یک دستگاه منطقی است - یک منبع یا گیرنده اطلاعات بالقوه.

هر پرونده ای دارای سه ویژگی منحصر به فرد است.

    این یک نام دارد ، که به برنامه اجازه می دهد تا همزمان با چندین پرونده به طور همزمان کار کند.

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

    دوباره طول پرونده ایجاد می شود در اطلاعیه خود به هیچ وجه مشخص نشده است و فقط با ظرفیت دستگاههای حافظه خارجی محدود است.

نوع پرونده یا متغیر نوع پرونده می تواند به یکی از سه روش تنظیم شود:

< نام\u003e \u003d پرونده از< یک نوع>;

< نام\u003e \u003d TEXT؛

<имя> \u003d پرونده؛

اینجا<имя> - نام نوع پرونده (شناسه معتبر)؛

فایل ، OF - کلمات محفوظ (پرونده ، از)

متن - نام نوع استاندارد فایلهای متنی؛

<тип> - هر نوع Turbo Pascal ، به جز پرونده ها.

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

· پرونده های تایپ شده (مشخص شده توسط بند FILE ...)؛

· فایلهای متنی (تعریف شده توسط نوع TEXT)؛

· پرونده های بدون نسخه (تعریف شده توسط نوع FILE).

درباره تبدیل انواع داده های عددی پاسکال

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

Var X: عدد صحیح؛ Y: واقعی؛

سپس اپراتور

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

زنگ

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