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

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

انواع داده پاسکال

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

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

1) انواع ساده:

- واقعی؛

- نمادین

- بولی (منطقی)؛

- برشمرده شده؛

- رنج محدود شده).

2) انواع ترکیبی (ساخت یافته):

- منظم (آرایه ها)؛

- ترکیبی (سوابق)؛

- فایل؛

- چندگانه؛

- رشته؛

- اشیاء.

3) انواع مرجع (نشانگرهای تایپ شده و تایپ نشده).

4) انواع رویه ای.

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

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

جدول 6

انواع داده های عدد صحیح

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

i, j, k: عدد صحیح;

داده های نوع صحیح دقیقاً در حافظه ذخیره می شوند. به عنوان مثال، متغیرهای نوع عدد صحیح 2 بایت (16 بیت) در حافظه اشغال می کنند که به صورت زیر تخصیص داده می شود: 1 بیت برای ذخیره علامت عدد اختصاص داده می شود (اگر عدد مثبت باشد 0 و اگر عدد منفی باشد 1) و 15 بیت برای ذخیره عدد به صورت باینری. حداکثر عدد اعشاری که می توان به صورت دودویی 15 بیتی نوشت 32767 است.

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

برای نوع صحیح، پنج عملیات اساسی تعریف شده است که نتیجه آن نیز یک عدد صحیح است: +، -، *، div، mod (جمع، تفریق، ضرب، تقسیم اعداد صحیح و باقیمانده تقسیم اعداد صحیح). در عبارات حسابی، عملیات *، div، mod اولویت بیشتری نسبت به عملیات +، - دارند. نمونه هایی از عبارات نوشتاری:

فهرست رویه ها و توابع قابل اعمال برای انواع عدد صحیح در جدول آورده شده است. 7. حروف b، s، w، i، l به ترتیب بیانگر عباراتی از نوع byte، shortint، word، integer و longint هستند. x بیانی از هر یک از این انواع است. شناسه‌های vb، vs، vw، vi، vl، vx متغیرهایی از انواع مربوطه را نشان می‌دهند. یک پارامتر اختیاری در پرانتز نشان داده شده است.

جدول 7

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

درخواست نوع نتیجه عمل
شکم (x) ایکس ماژول x را برمی گرداند
Chr(b) Char یک کاراکتر را با کد آن برمی گرداند
دسامبر (vx[,i]) - مقدار vx را به مقدار i و در صورت عدم وجود i – 1 کاهش می دهد
Inc(vx[,i]) - مقدار vx را i و در غیاب i - 1 افزایش می دهد
سلام (من) بایت بایت بالای آرگومان را برمی گرداند
سلام (من) بایت یکسان
Lo(i) بایت بایت کم آرگومان را برمی گرداند
کم) بایت یکسان
فرد (l) بایت اگر آرگومان یک عدد فرد باشد، true را برمی‌گرداند
تصادفی (w) همانند پارامتر یک عدد شبه تصادفی را برمی‌گرداند که به طور یکنواخت در محدوده 0...(w-1) توزیع شده است.
مربع (x) ایکس مربع استدلال را برمی گرداند
تعویض (i) عدد صحیح
تعویض (w) کلمه بایت ها را در یک کلمه جابجا می کند
موفق (x) همانند پارامتر مقدار صحیح بعدی را برمی گرداند، یعنی. x+1
Pred(x) همانند پارامتر مقدار صحیح قبلی را برمی‌گرداند، یعنی. x-1

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

نوع واقعی.مقادیر انواع واقعی یک عدد دلخواه را با دقت محدودی بسته به قالب داخلی عدد واقعی تعریف می‌کنند. پنج نوع واقعی در توربو پاسکال وجود دارد (جدول 8).

جدول 8

انواع داده های واقعی

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

یک عدد واقعی در حافظه کامپیوتر از 3 قسمت تشکیل شده است:

رقم علامت یک عدد؛

بخش نمایی؛

مانتیس شماره.

مانتیس دارای طولی از 23 (تک) تا 63 (Extended) رقم باینری است که دقت 7-8 را برای ارقام اعشاری منفرد و 19-20 را برای ارقام اعشاری Extended ارائه می دهد. نقطه اعشار (کاما) قبل از رقم چپ (مهمترین) آخوندک نشان داده می شود، اما هنگام کار بر روی یک عدد، موقعیت آن مطابق با ترتیب باینری عدد ذخیره شده در قسمت نمایی به چپ یا راست منتقل می شود. بنابراین عملیات روی اعداد حقیقی را محاسبات ممیز شناور (کاما) می نامند.

انواع Single، Double و Extended فقط تحت حالت های ویژه کامپایل قابل دسترسی هستند. برای فعال کردن این حالت ها، آیتم منو را انتخاب کنید گزینه ها, کامپایلر…و گزینه را فعال کنید 8087/80287 در گروه پردازش عددی.

موقعیت خاصی در توربو پاسکال توسط نوع Comp اشغال شده است که به عنوان یک عدد واقعی بدون قطعات نمایی و کسری در نظر گرفته می شود. در واقع Comp یک عدد صحیح امضا شده بزرگ است که 19...20 رقم اعشاری قابل توجه را ذخیره می کند. در عین حال، در عبارات، Comp کاملاً با هر نوع واقعی دیگر سازگار است: تمام عملیات واقعی بر روی آن تعریف شده است، می توان از آن به عنوان یک استدلال برای عملیات ریاضی و غیره استفاده کرد.



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

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

0.087 4.0 23.5 0.6

که در فرم ممیز شناورورودی حاوی حرف E است که به معنی ضرب در ده در توان است و توان یک عدد صحیح است، برای مثال:

7E3 6.9E-8 0.98E-02 45E+04

عملیات زیر بر روی اشیاء از نوع واقعی تعریف شده است: +، -، *، /.

عملیات "*" و "/" اولویت بیشتری نسبت به عملیات "+" و "-" دارند.

اگر حداقل یک عملوند واقعی باشد، عملیات +، -، *، / منجر به یک نتیجه واقعی می شود. عمل تقسیم / حتی در مورد دو عملوند عدد صحیح به یک نتیجه واقعی منجر می شود، به عنوان مثال: 9/3 = 3.0.

برای کار با داده های واقعی، می توان از توابع ریاضی استاندارد ارائه شده در جدول استفاده کرد. 9. نتیجه این توابع نیز واقعی است.

جدول 9

توابع ریاضی که با داده های واقعی کار می کنند

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

– در توابع pred(x)، succ(x)، ord(x)؛

- به عنوان شاخص های آرایه؛

- به عنوان برچسب در بیانیه های انتقال کنترل؛

- به عنوان متغیرهای کنترل (پارامترهای چرخه).

برای تبدیل یک عدد واقعی به عدد صحیح می توانید از توابع زیر استفاده کنید:

trunc(x) – قسمت صحیح x (x – real);

round(x) - گرد کردن به نزدیکترین عدد صحیح (x واقعی است).

نوع کاراکتر.متغیرهای کاراکتر با استفاده از کلمه رزرو شده char توصیف می شوند:

مقادیر این نوع از مجموعه کاراکترهای مرتب شده (مجموعه ASCII) متشکل از 256 کاراکتر انتخاب می شوند. به هر کاراکتر یک عدد صحیح از محدوده 0..255 اختصاص داده می شود. برای مثال حروف بزرگ الفبای لاتین A..Z دارای کد 65..90 و حروف کوچک دارای کد 97..122 هستند.

مقدار متغیر نوع کاراکتر یک کاراکتر منفرد است که با آپوستروف احاطه شده است، به عنوان مثال:

'F' '8' '*'

متغیرهای کاراکتر را می توان با یکدیگر مقایسه کرد و کدهای کاراکتر را مقایسه کرد.

توابعی وجود دارند که بین یک نماد و کد آن مطابقت دارند:

ord(c) - عدد نماد c را می دهد.

chr(i) – عدد کاراکتر i را برمی گرداند.

این توابع معکوس یکدیگر هستند.

نوع بولی. متغیرهای Boolean با استفاده از کلمه رزرو شده boolean توصیف می شوند:

p1, p2: boolean;

متغیرهای نوع بولی دو مقدار دارند: درست است، واقعی(درست است، واقعی)، نادرست(دروغ).

این مقادیر به صورت زیر مرتب می شوند: false< true. false имеет порядковый номер 0, true имеет порядковый номер 1.

به متغیرهای بولی می توان مستقیماً یک مقدار اختصاص داد یا از عبارت بولی استفاده کرد. مثلا،

a, d, g, b: boolean;

عملیات رابطه (<, <=, >, >=, =, <>) که برای متغیرهای عدد صحیح، واقعی و نمادین اعمال می شود، یک نتیجه منطقی ایجاد می کند.

عملیات منطقی روی عملوندهای از نوع منطقی نیز نتیجه منطقی ایجاد می کند (عملیات به ترتیب اولویت نزولی فهرست شده اند) (برای جزئیات بیشتر به جداول 3 و 5 مراجعه کنید):

نه - نفی (عملیات NO)؛

و - ضرب منطقی (عملیات AND)؛

یا – اضافه منطقی (عملیات OR)؛

xor – اختصاصی OR.

عبارت (نه الف) به معنای مخالف الف است.

اگر فقط a و b هر دو درست باشند، عبارت (a و b) به درستی ارزیابی می شود، در غیر این صورت، مقدار این عبارت نادرست است.

عبارت (a یا b) به نادرست ارزیابی می شود اگر فقط هر دو a و b نادرست ارزیابی شوند، در غیر این صورت، نتیجه درست است.

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

x = (w1، w2، ...، wn)؛

جایی که x نام نوع است، w1، w2،...، wn مقادیری هستند که یک متغیر از نوع x می تواند بگیرد.

این مقادیر به ترتیب w1 هستند

توابع استاندارد زیر برای آرگومان w از نوع شمارش شده اعمال می شوند:

succ(w)، pred(w)، ord(w).

رنگ = (قرمز، سیاه، زرد، سبز)

ww=(چپ، بالا، راست، پایین);

f: آرایه ww;

succ(d) = زرد؛

متغیرهای a و b از نوع w هستند. آنها می توانند یکی از سه مقدار را با on بگیرند

عملیات رابطه ای برای مقادیر از نوع شمارش شده قابل اعمال است: =،<>, <=, >=, <, >.

مجاز است که ثابت های نوع شمارش شده را مستقیماً در بخش مشخص کنید varبدون استفاده از پارتیشن نوع، مثلا

ج، د: (قرمز، سیاه، زرد، سبز)؛

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

شرح نوع محدود از این شکل است

در اینجا a نام نوع است، min، max ثابت هستند.

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

- هر دو ثابت مرزی min و max باید از یک نوع باشند.

- یک نوع محدود از داده های یک نوع پایه ایجاد می شود که می تواند یک عدد صحیح، کاراکتر یا نوع برشماری باشد. مثلا:

col = قرمز.. زرد;

حرف = 'a'..'f';

– متغیرهای نوع محدود شده را می توان در بخش var بدون مراجعه به بخش type اعلام کرد:

- یک نوع محدود تمام ویژگی های نوع پایه ای را که از آن ایجاد شده است به ارث می برد.

- حد حداقل باید همیشه کمتر از حد حداکثر باشد.

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

آ: آرایه از t2;

جایی که a نام آرایه است، آرایه, از- کلمات خدمات (به معنی "آرایه ...")، t1 - نوع شاخص. t2 – نوع جزء (نوع پایه).

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

مثال 1.یک آرایه یک بعدی C را در نظر بگیرید که مقادیر آن پنج عدد واقعی است:

4.6 6.23 12 -4.8 0.7

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

ج: آرایه واقعی;

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

مثال 2.یک آرایه دو بعدی B (ماتریس B) را در نظر بگیرید که مقدار آن جدولی از اعداد صحیح است:

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

b عدد صحیح؛

در اینجا b نام آرایه است، شاخص اول شماره ردیف است و مقادیر 1 تا 2 را می گیرد، دومی شماره ستون است و مقادیر از 1 تا 4 را می گیرد. بر اساس مقادیر شاخص خاص، می توانید یک جزء آرایه خاص را انتخاب کنید (به عنوان مثال، b به معنای یک عنصر جدول است که در ردیف اول و ستون سوم قرار دارد، یعنی عدد -4).

ایندکس ها می توانند عبارات دلخواه مطابق با نوع شاخص از توضیحات آرایه باشند:

الف: آرایه واقعی؛

a[(i+1)*2] := 24;

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

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

ب: رشته ;

ویژگی ها:

- مقدار یک متغیر رشته را می توان با استفاده از صفحه کلید وارد کرد، در یک عملگر انتساب تخصیص داد، یا از یک فایل خواند. در این مورد، طول رشته وارد شده می تواند هر باشد (کمتر از اندازه مشخص شده، برابر با اندازه یا بزرگتر، در مورد دوم، کاراکترهای اضافی دور ریخته می شوند). a:= 'نتایج';

- استفاده از عملیات الحاق در عملگر انتساب مجاز است، زیرا رشته ها می توانند به صورت پویا طول خود را تغییر دهند: a:= a + 'calculations';

- حداکثر طول یک متغیر رشته 255 کاراکتر است، این علامت طول را می توان حذف کرد:

آ: رشته;

a1: رشته ;

متغیرهای a و a1 یکسان هستند (توضیحات معادل).

- حافظه برای متغیرهای نوع رشته به حداکثر اختصاص داده می شود، اما تنها بخشی از حافظه که در حال حاضر توسط کاراکترهای رشته اشغال شده است استفاده می شود. برای توصیف یک متغیر رشته ای به طول n، از n+1 بایت حافظه استفاده می شود: n بایت برای ذخیره کاراکترهای رشته، n+1 بایت برای ذخیره طول فعلی.

- عملیات مقایسه بر روی مقادیر انواع رشته ها تعریف می شود:< <= > >= = <>. یک رشته کوتاه همیشه کوچکتر از یک رشته بلند است. اگر طول رشته ها یکسان باشد، کدهای کاراکتر با هم مقایسه می شوند.

- دسترسی به عناصر منفرد یک رشته مانند دسترسی به عناصر آرایه امکان پذیر است: a, a. تعداد عنصر خط در پرانتز نشان داده شده است.

رویه ها و توابع جهت کار با رشته ها.

concat (s1, s2,…)- تابع ادغام رشته ها، s1، s2،... - خطوط، تعداد خطوط می تواند دلخواه باشد. نتیجه تابع یک رشته است. اگر رشته به دست آمده بیشتر از 255 کاراکتر باشد، رشته به 255 کاراکتر کوتاه می شود.

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

حذف (ها، فهرست، شمارش)- روش حذف یک رشته فرعی از رشته شمردنکاراکترها، با شماره کاراکتر شروع می شوند فهرست مطالب.

درج (s1, s2, index)- روش درج ردیف s1به خط کشیدن s2، با کاراکتر با عدد شروع می شود فهرست مطالب.

طول(ها)– تابع برای تعیین طول رشته فعلی، عددی برابر با طول رشته فعلی برمی گرداند.

pos(s1, s2)- تابع جستجو در یک رشته s2رشته های فرعی s1. شماره موقعیت اولین کاراکتر یک زیررشته را برمی گرداند s1در صف s2(یا 0 اگر این خط وجود نداشته باشد).

val (st، x، کد)– روش تبدیل رشته s به یک عدد صحیح یا متغیر واقعی ایکس. پارامتر کددر صورت موفقیت آمیز بودن تبدیل، حاوی 0 است (و در ایکسنتیجه تبدیل قرار می گیرد)، یا شماره موقعیت خط که در آن کاراکتر اشتباه شناسایی می شود (در این مورد، مقدار ایکستغییر نمی کند).

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

دو نوع سازگار در نظر گرفته می شوند اگر:

- هر دو از یک نوع هستند.

- هر دو واقعی هستند؛

- هر دو دست نخورده هستند.

- یک نوع یک نوع محدوده از نوع دوم است.

- هر دو نوع محدوده از یک نوع پایه هستند.

- هر دو مجموعه ای هستند که از عناصر یک نوع اصلی تشکیل شده اند.

- هر دو رشته های بسته بندی شده (تعریف شده با کلمه قبلی packed) با حداکثر طول یکسان هستند.

– یکی از نوع رشته ای و دیگری از نوع رشته ای یا کاراکتری است.

– یک نوع هر اشاره گر است و دیگری اشاره گر به شی مرتبط با آن است.

- هر دو نوع رویه ای با نوع نتیجه یکسان (برای یک نوع تابع)، تعداد پارامترها و نوع پارامترهای متناظر متقابل هستند.

سازگاری نوع به ویژه در عملگرهای انتساب مهم است. بگذارید t1 نوع متغیر و t2 نوع عبارت باشد، یعنی تخصیص t1:=t2 انجام شود. این واگذاری در موارد زیر امکان پذیر است:

– t1 و t2 یک نوع هستند و این نوع به فایل‌ها، آرایه‌های فایل‌ها، رکوردهای حاوی فیلدهای فایل یا آرایه‌هایی از این قبیل رکوردها اشاره نمی‌کند.

- t1 و t2 انواع ترتیبی سازگار هستند و مقدار t2 در محدوده مقادیر ممکن t1 قرار دارد.

- t1 و t2 انواع واقعی هستند و مقدار t2 در محدوده مقادیر ممکن t1 قرار دارد.

– t1 – نوع واقعی و t2 – نوع عدد صحیح.

– t1 – خط و t2 – کاراکتر؛

– t1 – رشته و t2 – رشته بسته بندی شده؛

– t1 و t2 – رشته های بسته بندی شده سازگار؛

- t1 و t2 مجموعه های سازگار هستند و همه اعضای t2 به مجموعه مقادیر ممکن t1 تعلق دارند.

- t1 و t2 نشانگرهای سازگار هستند.

- t1 و t2 انواع رویه ای سازگار هستند.

– t1 یک شی و t2 از نسل آن است.

در یک برنامه، داده های یک نوع را می توان به داده های نوع دیگر تبدیل کرد. این تبدیل می تواند صریح یا ضمنی باشد.

تبدیل نوع صریح، توابع تبدیل خاصی را فراخوانی می‌کند که آرگومان‌های آن‌ها به یک نوع تعلق دارند و مقادیر آن‌ها به نوع دیگری تعلق دارند. به عنوان مثال، توابع ord، trunc، round، chr قبلاً مورد بحث قرار گرفته است.

تبدیل ضمنی تنها در دو مورد امکان پذیر است:

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

- همان ناحیه حافظه به طور متناوب به عنوان حاوی داده های یک یا دیگر نوع (ترکیب داده های انواع مختلف در حافظه) در نظر گرفته می شود.

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

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

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

توربو پاسکال دارای چهار نوع استاندارد داخلی است: عدد صحیح، واقعی، بولی و کاراکتر.

نوع عدد صحیح (عدد صحیح)

توربو پاسکال دارای پنج نوع عدد صحیح داخلی است: shortint، integer، longint، byte و word. همانطور که در جدول زیر نشان داده شده است، هر نوع نشانگر زیرمجموعه خاصی از اعداد صحیح است.

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

دامنه

قالب

8 بیت امضا شده

16 بیت امضا شده

2147483648 +2147483647

32 بیت امضا شده

8 بیت بدون علامت

16 بیت بدون علامت

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

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

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

"+" - اضافه کردن

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

"*" - ضرب

SQR - مربع

DIV - بخش کسری را پس از تقسیم دور می اندازد

MOD - بدست آوردن باقیمانده عدد صحیح پس از تقسیم

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

تصادفی (X) - به دست آوردن یک عدد تصادفی از 0 تا X

A: = 100 ; b:=60 ; a DIV b نتیجه - 1 a MOD b نتیجه - 40

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

لیست متغیر var: type;

به عنوان مثال: var а,р,n:integer;

نوع واقعی (واقعی)

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

پنج نوع از انواع واقعی وجود دارد: واقعی، تک، دو، exnende، comp. انواع واقعی در محدوده و دقت مقادیر مرتبط با آنها متفاوت است

محدوده و ارقام اعشاری برای انواع واقعی

دامنه

شماره

2.9x10E-39 تا 1.7x10E 38

1.5x10E-45 تا 3.4x10E 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) - بخش کسری را دور می اندازد.
    • ROUND (X) - گرد کردن.
  • برخی از قوانین عملیات حسابی:
    • اگر یک عملیات حسابی شامل اعدادی از نوع واقعی و صحیح باشد، نتیجه از نوع واقعی خواهد بود.
    • تمام اجزای عبارت در یک خط نوشته می شود.
    • فقط از پرانتز استفاده می شود.
    • شما نمی توانید دو علامت حسابی را پشت سر هم قرار دهید.

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

لیست متغیر var: type;

مثلا:

var d,g,k:real ;

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

نوع کاراکتر هر کاراکتری است که در آپاستروف محصور شده باشد. برای نشان دادن آپوستروف به عنوان یک متغیر کاراکتری، باید آن را در یک آپاستروف قرار دهید: ''''.

هر کاراکتر کد و شماره مخصوص به خود را دارد. شماره سریال ارقام 0,1..9 به ترتیب صعودی مرتب شده اند. شماره سریال حروف نیز به صورت صعودی مرتب شده اند، اما لزوماً به دنبال یکدیگر نیستند.

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

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

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

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

  1. ORD(X) - شماره سریال نماد X را تعیین می کند. ord (‘a’) =97 ;
  2. CHR(X) - یک کاراکتر را با عدد مشخص می کند. chr(97) =’a’;
  3. PRED(X) - کاراکتر قبل از کاراکتر X را برمی گرداند. pred ('B') ='A';
  4. SUCC(X) - کاراکتر پس از نویسه X را برمی گرداند. succ (‘A’) =’B’;

نوع Enum

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

تایپ کنید<имя типа>=(لیست ثابت ها) ; Var<имя переменной>:<имя типа>;

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

مثلا:

نوع جهت=(شمال، جنوب، غرب، شرق) ; month=(خرداد، تیر، مرداد، ژانویه) ; ظرفیت=(سطل، بشکه، قوطی، مخزن) ; var rotation:direct; حرکت: ماه; حجم: ظرفیت var turn: (شمال، جنوب، غرب، شرق) ; حرکت: (ژوئن، ژوئیه، آگوست، ژانویه)؛ حجم: (سطل، بشکه، قوطی، مخزن)؛

می توانید عملگرهای انتساب زیر را انجام دهید:

چرخش:= جنوب; خروج:=آگوست; حجم:=مخزن;

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

حرکت:=جنوب; volume:=آگوست;

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

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

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

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

PRED (بشکه) = سطل; SUCC (جنوب) =غرب; ORD (ژوئیه) =1 ;

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

نوع محدود

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

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

تایپ کنید<имя типа>=constant1 ..constant2

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

  1. هر دو ثابت محدود باید از یک نوع باشند.
  2. هر نوع ساده ای به جز واقعی را می توان به عنوان نوع پایه استفاده کرد.
  3. مقدار اولیه هنگام تعریف یک نوع محدود نباید از مقدار نهایی بیشتر باشد.
نوع شاخص =0 ..63 ; letter=’a’..’z’; var char1,char2:letter; a,g:index ;

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

var a,g:0 ..63 ; char1,char2:'a'..'z'.

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

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

مثلا:

n:عدد صحیح

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

[نام] = [نوع]

سیستم انواع استاندارد دارای ساختاری منشعب و سلسله مراتبی است.

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

انواع ساختار یافتهطبق قوانین خاصی از انواع ساده ساخته می شوند.

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

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

اشیاءهمچنین یک نوآوری هستند و قصد دارند از زبان به عنوان یک زبان شی گرا استفاده کنند.

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

هنگام استفاده از اعداد صحیح، باید با تودرتوی انواع هدایت شوید، یعنی. انواع با برد کمتر را می توان در انواع با برد بزرگتر تودرتو کرد. نوع Byte را می توان در همه انواعی که 2 و 4 بایت اشغال می کنند تودرتو کرد. در عین حال، نوع Short Int که 1 بایت را اشغال می کند، نمی تواند در نوع Word تودرتو شود، زیرا مقادیر منفی ندارد.

5 نوع واقعی وجود دارد:

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

2358.8395

0.23588395*10 4

0.23588395*E 4

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

انواع ترتیبی

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

  • همه انواع عدد صحیح؛
  • نوع شخصیت؛
  • نوع بولی؛
  • محدوده نوع؛
  • نوع برشماری شده

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

برای مقادیر یک نوع ترتیبی، تابع ODD(x) را می توان اعمال کرد که عدد ترتیبی آرگومان x را برمی گرداند.

تابع PRED(x) - مقدار قبلی یک نوع ترتیبی را برمی گرداند. PRED(A) = 5.

تابع SUCC(x) - مقدار ترتیبی بعدی را برمی گرداند. SUCC(A) = 5.

نوع کاراکتر

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

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

ج:= 'الف'

نوع منطقی (بولی).

دو مقدار بولی وجود دارد: True و False. متغیرهای این نوع با استفاده از کلمه تابع BOOLEAN مشخص می شوند. مقادیر بولی یک بایت در RAM اشغال می کند. مقادیر True و False با مقادیر عددی 1 و 0 مطابقت دارد.

محدوده نوع

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

[حداقل مقدار]…[حداکثر مقدار]

نوع محدوده را می توان در قسمت Type، به عنوان یک نوع خاص یا مستقیماً در بخش Var مشخص کرد.

هنگام تعیین محدوده نوع، باید از موارد زیر راهنمایی کنید:

  • مرز سمت چپ نباید از مرز راست تجاوز کند.
  • یک نوع محدوده تمام ویژگی‌های نوع پایه را به ارث می‌برد، اما با محدودیت‌هایی مرتبط با توان پایین‌تر آن.

نوع Enum

این نوع متعلق به انواع ترتیبی است و با برشمردن مقادیری که می تواند برشمرد مشخص می شود. هر مقدار یک شناسه مشخص نامیده می شود و در لیست قرار دارد و در پرانتز قرار دارد. نوع برشماری شده در Type مشخص شده است:

مردم = (مردان، زنان)؛

مقدار اول 0، مقدار دوم 1 و غیره است.

حداکثر توان 65535 مقادیر.

نوع رشته

نوع رشته ای متعلق به گروه انواع ساختار یافته است و از نوع پایه Char تشکیل شده است. نوع رشته ای از نوع ترتیبی نیست. بسیاری از رشته های کاراکتر با طول دلخواه تا 255 کاراکتر را تعریف می کند.

در یک برنامه، یک نوع رشته با کلمه String اعلان می شود. از آنجایی که String یک نوع پایه است، در زبان تعریف می شود و اعلان یک متغیر از نوع String در Var انجام می شود. هنگامی که یک متغیر از نوع رشته را به عنوان String اعلام می کنید، توصیه می شود طول رشته را در براکت نشان دهید. یک عدد صحیح از 0 تا 255 برای نشان دادن استفاده می شود.

فام: رشته;

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

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

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

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

بیایید به رایج ترین انواع داده در پاسکال نگاه کنیم.

انواع داده های عدد صحیح در پاسکال

تایپ کنید دامنه حافظه مورد نیاز (بایت)
بایت 0..255 1
کوتاه -128..127 1
عدد صحیح -32768.. 32767 2
کلمه 0..65535 2
طولانی -2147483648..2147483647 4

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

نمونه هایی از نحوه توصیف (اعلام) متغیرها در پاسکال:

برنامه a1; var x,y:integer; (نوع عدد صحیح) myname:string; (نوع رشته) شروع x:=1; y:=x+16; myname:="پیتر"; writeln("name: ",myname, ", age: ", y) end.

نتیجه:
نام: پیتر، سن: 17

نظرات در پاسکال

توجه کنید که چگونه نظرات در پاسکال استفاده می شود. در نظرات مثال، i.e. متن سرویس که برای کامپایلر "مشاهده نمی شود" در بریس های فرفری محصور می شود. به طور معمول، نظرات توسط برنامه نویسان برای توضیح قطعات کد ارائه می شود.

وظیفه 3.جمعیت مسکو یک = 9000000 نفر است. جمعیت نیو واسیوکی b=1000 نفر است. برنامه ای بنویسید که تفاوت تعداد ساکنان دو شهر را مشخص کند. از متغیرها استفاده کنید

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

اعداد حقیقی در پاسکال و به طور کلی در برنامه نویسی نام اعداد کسری است.

تایپ کنید دامنه حافظه مورد نیاز (بایت)
واقعی 2.9 * 10E-39 .. 1.7 * 10E38 6
تنها 1.5 * 10 E-45 .. 3.4 * 10E38 4
دو برابر 5 * 10E-324 .. 1.7 * 10E308 8
تمدید شده 1.9 * 10E-4951 .. 1.1 * 10E4932 10

نوع واقعی در پاسکال رایج ترین نوع واقعی است.

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

  • ترتیبی
  • کل
  • بازی فکری
  • شخصیت
  • فهرست پذیر
  • فاصله
  • واقعی

برای نمایش مقادیر متغیرهای نوع واقعی معمولاً از خروجی فرمت شده استفاده می شود:

  • قالب از یک عدد استفاده می کند که تعداد موقعیت های اختصاص داده شده به این عدد را به صورت نمایی نشان می دهد.
  • p:=1234.6789; Writeln(p:6:2); (1234.68)

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

    ثابت ها در پاسکال

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

    اعلان یک ثابت در پاسکال قبل از اعلان متغیرها (قبل از کلمه سرویس var) اتفاق می افتد و به شکل زیر است:

    نمونه ای از توصیف ثابت در پاسکال:

    1 2 3 4 5 6 const x= 17 ; var myname: string ; Begin myname: = "Peter" ; Writln("name: ", myname, ", age: ", x) end.

    const x=17; var myname:string; Begin myname:="Peter"; writeln("name: ",myname, ", age: ", x) end.

    خروجی "زیبا" از اعداد صحیح و واقعی

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


    عملیات حسابی در پاسکال

    ترتیب عملیات ها

    1. ارزیابی عبارات داخل پرانتز؛
    2. ضرب، تقسیم، div، mod از چپ به راست.
    3. جمع و تفریق از چپ به راست.

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

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

    • عملیات inc در پاسکال، افزایش تلفظ می شود، یک رویه پاسکال استاندارد است که به معنای افزایش یک عدد است.
    • نمونه ای از عملیات inc:

      x:=1; inc(x); (x را 1 افزایش می دهد، یعنی x=2) writeln(x)

      استفاده پیچیده تر از رویه inc:
      Inc(x,n) که در آن x یک نوع ترتیبی است، n یک نوع عدد صحیح است. روند افزایش x در n.

    • رویه Dec در پاسکال به طور مشابه عمل می کند: Dec(x) - x را 1 کاهش می دهد (کاهش) یا Dec(x,n) - x را n کاهش می دهد.
    • عملگر abs نشان دهنده مدول یک عدد است. اینطوری کار میکنه:
    • a: =- 9; b:=abs(a) ; (b=9)

      a:=-9; b:=abs(a); (b=9)

    • عملگر div در پاسکال اغلب استفاده می شود، زیرا تعدادی از وظایف شامل عملیات کل تقسیم می شود.
    • باقی مانده تقسیم یا عملگر mod در پاسکال نیز برای حل تعدادی از مشکلات ضروری است.
    • نکته قابل توجه تابع فرد استاندارد پاسکال است که مشخص می کند یک عدد صحیح فرد است یا خیر. یعنی برای اعداد فرد true و برای اعداد زوج false برمی گرداند.
    • مثالی از استفاده از تابع فرد:

      var x:integer; شروع x:=3; writeln(sqr(x)); (پاسخ 9) پایان.

    • عملیات توان در پاسکالبه این ترتیب گم شده است. اما برای بالا بردن یک عدد به توان، می توانید از تابع exp استفاده کنید.
    • فرمول این است: exp(ln(a)*n)، که در آن a یک عدد است، n یک درجه است (a>0).

      با این حال، در کامپایلر پاسکال abc، توان بسیار ساده تر است:

      var x:integer; شروع x:=9; writeln(sqrt(x)); (پاسخ 3) پایان.

    وظیفه 4.ابعاد جعبه کبریت مشخص است: ارتفاع - 12.41 سانتی متر، عرض - 8 سانتی متر، ضخامت - 5 سانتی متر. مساحت پایه جعبه و حجم آن را محاسبه کنید.
    (S=عرض*ضخامت، V=مساحت*ارتفاع)

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

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

    آژانس فدرال آموزش

    انشا

    "انواع داده در پاسکال"

    1. انواع داده ها

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

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

    داده های پردازش شده در برنامه به متغیرها، ثابت ها و لفظ ها تقسیم می شوند:

    ثابت ها نشان دهنده داده هایی است که مقادیر آنها در قسمت اعلان ثابت تنظیم شده است و در طول اجرای برنامه تغییر نمی کند.

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

    تحت اللفظی هیچ شناسه ای ندارد و مستقیماً با مقدار موجود در متن برنامه نشان داده می شود.

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

    این و چهار فصل بعدی توضیحات مفصلی در مورد هر نوع ارائه می دهند.

    1.1 انواع ساده

    انواع ساده شامل انواع ترتیبی، واقعی و تاریخ است.

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

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

    نوع تاریخ و زمانبرای ذخیره تاریخ و زمان طراحی شده است. در واقع از قالب واقعی برای این اهداف استفاده می کند.

    1.1.1 انواع ترتیبی

    انواع ترتیبی شامل (نگاه کنید به شکل 1.1) انواع عدد صحیح، منطقی، کاراکتر، شمارش شده و محدوده می باشد. تابع Ord(x) را می توان برای هر یک از آنها اعمال کرد که عدد ترتیبی مقدار عبارت X را برمی گرداند.


    برنج. 1.1 - ساختار نوع داده

    برای کلنوع، تابع ord(x) مقدار خود x را برمی گرداند، یعنی Ord(X) = x برای x متعلق به هر کلنوع اعمال دستور (x) به منطقی , نمادین و قابل شمارشانواع یک عدد صحیح مثبت در محدوده 0 تا 1 می دهد ( نوع بولی، از 0 تا 255 ( نمادین، از 0 تا 65535 ( قابل شمارش). محدوده نوعتمام خصوصیات نوع ترتیبی پایه را حفظ می کند، بنابراین نتیجه اعمال تابع ord(x) به آن به ویژگی های این نوع بستگی دارد.

    همچنین می توانید توابع را برای انواع ترتیبی اعمال کنید:

    pred(x)- مقدار قبلی نوع ترتیبی را برمی گرداند (مقداری که مربوط به عدد ترتیبی ord(x) -1 است، یعنی ord(pred(x)) = ord(x) - 1؛

    succ(x)- مقدار بعدی نوع ترتیبی را که مربوط به عدد ترتیبی ord(x) +1 است، یعنی ord(Succ(x)) = ord(x) + 1 برمی گرداند.

    به عنوان مثال، اگر یک برنامه یک متغیر را تعریف کند

    سپس تابع PRED(c) کاراکتر "4" و تابع SUCC(c) کاراکتر "6" را برمی گرداند.

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

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

    جدول 1.1 - انواع عدد صحیح

    نام طول، بایت محدوده ارزش ها
    اصلی 4 0. .. 2 147 483 647
    بایت 1 0...255
    کوتاه 1 -128...+127
    اسمالینت 2 -32 768...+32 767
    کلمه 2 0...65 535
    عدد صحیح 4
    Longint 4 -2 147 483 648...+2 147 483 647
    Int64 8 -9*1018...+9*1018
    LongWord 4 0. . .4 294 967 295

    انواع LongWordو Int64اولین بار در نسخه 4 معرفی شدند و انواع اسمالینتو اصلیدر دلفی 1 موجود نیست. تایپ کنید عدد صحیحبرای این نسخه 2 بایت طول می کشد و محدوده ارزشی از -32768 تا +32767 دارد، یعنی همان اسمالینت .

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

    فهرست رویه ها و توابع قابل اعمال برای انواع عدد صحیح در جدول آورده شده است. 1.2. حروف b، s، w، i، l بیانگر عباراتی از نوع زیر هستند: بایت , Shortint، Word، Integer و Longint ,

    x بیانی از هر یک از این انواع است. حروف vb، vs، vw، vi، vl، vx متغیرهایی از انواع مربوطه را نشان می دهند. یک پارامتر اختیاری در پرانتز نشان داده شده است.

    جدول 1.2 - رویه ها و عملکردهای استاندارد قابل اجرا برای تمام انواع

    درخواست نوع نتیجه عمل
    شکم (x) ایکس ماژول x را برمی گرداند
    chr(b) Char یک کاراکتر را با کد آن برمی گرداند
    dec(vx[,i]) - مقدار vx را با i و در صورت عدم وجود i - 1 کاهش می دهد
    inc(vx[,i]) - مقدار vx را i و در غیاب i - 1 افزایش می دهد
    سلام بایت بالاترین کمان استدلال را برمی‌گرداند
    سلام (من) یکسان بایت سوم را برمی گرداند
    Lo(i) بایت کم آرگومان را برمی گرداند
    کم) یکسان
    فرد (ل) بولی اگر آرگومان یک عدد فرد باشد، True را برمی‌گرداند
    تصادفی (w) همانند پارامتر یک عدد شبه تصادفی را برمی‌گرداند که به طور یکنواخت در محدوده 0...(w-l) توزیع شده است.
    sqr(x) ایکس مربع استدلال را برمی گرداند
    مبادله (i) عدد صحیح بایت ها را در یک کلمه جابجا می کند
    مبادله (w) کلمه یکسان

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

    انواع بولی . انواع منطقی شامل Boolean، ByteBool، Bool، wordBoolو LongBool. در پاسکال استاندارد فقط نوع تعریف می شود بولی، انواع دیگر منطقی برای سازگاری با ویندوز به Object Pascal معرفی شده اند: انواع بولیو ByteBoolهر کدام یک بایت می گیرد، بولو WordBool- هر کدام 2 بایت، LongBool- 4 بایت مقادیر بولی می تواند یکی از ثابت های از پیش اعلام شده False یا True باشد.

    از آنجایی که نوع Boolean یک نوع ترتیبی است، می توان از آن در یک دستور حلقه از نوع قابل شمارش استفاده کرد. در دلفی 32 برای بولیمعنی

    ترتیب (درست) = 1+، در حالی که برای انواع دیگر ( Bool، WordBoolو غیره.)

    Ord(True) = -1، بنابراین این نوع عملگرها باید با احتیاط استفاده شوند! به عنوان مثال، برای نسخه دلفی 6، دستور اجرایی showMessage(" --- ") در حلقه زیر برایهرگز اجرا نخواهد شد:

    برای L: = False to True انجام دهید

    ShowMessage("--);

    اگر پارامتر حلقه نوع L در مثال قبل را با بولی، حلقه اجرا می شود و پیام دو بار روی صفحه ظاهر می شود. [برای نسخه های دلفی 1 و 2 ord (True) =+1 برای هر نوع بولی.]

    نوع کاراکتر . مقدار یک نوع کاراکتر مجموعه ای از تمام کاراکترهای رایانه شخصی است. به هر کاراکتر یک عدد صحیح در محدوده 0...255 اختصاص داده می شود. این عدد به عنوان کد برای نمایش داخلی نماد عمل می کند؛ این عدد توسط تابع ord برگردانده می شود.

    برای رمزگذاری در ویندوز، از کد ANSI استفاده می شود (نام موسسه استاندارد ملی آمریکا، موسسه استانداردسازی آمریکایی که این کد را ارائه کرده است). نیمه اول کاراکترهای PC با کد 0... 127 مطابق با جدول 1.3 است. نیمه دوم کاراکترها با کدهای 128...255 برای فونت های مختلف متفاوت است. فونت های استاندارد ویندوز Arial Cyr، Courier New Cyr و Times New Roman از 64 کد آخر (از 192 تا 256) برای نمایش کاراکترهای سیریلیک (بدون حروف "ё" و "Ё"): "A" ... "Z" استفاده می کنند. مقادیر کدگذاری شده 192..223، "a"... "i" - 224...255. نمادهای "Ё" و "е" به ترتیب دارای کدهای 168 و 184 هستند.

    جدول 1.3 - رمزگذاری کاراکتر مطابق با استاندارد ANSI

    کد سمبل کد. سمبل کد. سمبل کد سمبل
    0 NUL 32 B.L. 64 @ 96 "
    1 ZON 33 ! 65 آ 97 آ
    2 STX 34 66 که در 98 ب
    3 ETX 35 # 67 با 99 با
    4 EOT 36 $ 68 D 100 د
    5 ENQ 37 % 69 E 101 ه
    6 ACK 38 & 70 اف 102 f
    7 BEL 39 " 71 جی 103 د
    8" لیسانس. 40 ( 72 ن 104 ساعت
    9 HT 41 ) 73 من 105 من
    10 LF 42 * 74 جی 106 j
    11 VT 43 + 75 به 107 ک
    12 FF 44 اف 76 L 108 1
    13 CR 45 - 77 م 109 متر
    14 بنابراین 46 78 ن 110 n
    15 S.I. 47 / 79 0 111 O
    16 DEL 48 0 80 آر 112 پ
    17 DC1 49 1 81 س 113 q
    18 DC2 50 2 82 آر 114 r
    19 DC3 51 3 83 اس 115 س
    20 DC 4 52 4 84 تی 116 تی
    21 N.A.K. 53 5 85 U 117 تو
    22 SYN 54 6 86 V 118 v
    23 ETB 55 7 87 دبلیو 119 دبلیو
    24 می توان 56 8 88 ایکس 120 ایکس
    25 E.M. 57 9 89 Y 121 U
    26 زیر 58 : 90 ز .122 z
    27 خروج 59 ; 91 تی 123 {
    28 FS 60 < 92 \ 124 1
    29 G.S. 61 = 93 ] 125 }
    30 R.S. 62 > 94 L 126 ~
    31 ایالات متحده 63 اف 95 127 r

    کاراکترهای با کد 0...31 به کد سرویس مراجعه می کنند. اگر این کدها در متن کاراکتر برنامه استفاده شوند، فضای خالی در نظر گرفته می شوند.

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