• عملیات منطقی پاسکال انواع داده های بولی نمونه ای از اعلان نوع شمارش شده

    توضیحات: varn: boolean;

    داده های بولی تنها می توانند دو مقدار داشته باشند: true (true) و false (false). برای مقادیر از نوع بولی، عملیات مقایسه، و درست است، واقعی> نادرست.همچنین اعمال شود 4 عملیات منطقی:

    وضرب منطقی

    یااضافه منطقی

    xorانحصاری "یا"

    نهنفی

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

    X و Y

    Xxor Y


    مثال 1:

    not(5>2) = false

    (5>2) و (3<10) = true

    (8<>9) یا (4>5) = درست است

    نه (5=2) xor (3>2) = نادرست

    مثال 2:

    هنگام مقایسه داده‌های نوع BOOLEAN، قرارداد داخلی توربو پاسکال در نظر گرفته می‌شود که طبق آن FALSE یک بایت صفر است و TRUE یک بایت با یک بیت در کمترین مقدار است. توجه داشته باشید که تابع ORD نه تنها نمادها، بلکه مقادیر منطقی را نیز به یک عدد صحیح تبدیل می کند

    2.5 انواع محدود

    بر اساس انواع استاندارد، می توانید انواع خود را بسازید و دامنه مقادیر ممکن را محدود کنید: 1..10، -100..10، 'a'..'z'، و غیره.

    مثال:

    ب: «الف..»ز؛

    b:=0; (خطا: عدم تطابق نوع - به متغیر نوع کاراکتر یک عدد صحیح اختصاص داده می شود)

    a:=0; (خطا: خارج از محدوده 2..5)

    2.6 انواع برشمرده شده

    با شمارش صریح همه مقادیر ممکن که با نام‌ها ارائه شده‌اند، شکل می‌گیرد. به عنوان مثال، برای یک برنامه کنترل چراغ راهنمایی، نوع زیر را می توان تعریف کرد:

    var svet: (قرمز، زرد، سبز)؛

    اپرا: (به علاوه، منهای)؛

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

    2.7 شرح انواع

    انواع داده های جدید در پاسکال با اعلان هایی که با کلمه TYPE شروع می شوند تعریف می شوند. توضیحات شامل یک نام نوع و یک مقدار نوع است که علامت "=" بین آنها قرار می گیرد.

    مثال:

    abc='A'..'z';

    2.8 تبدیل نوع

    همانطور که قبلاً ذکر شد، نوع یک متغیر نه تنها اجازه می دهد تا طول نمایش داخلی آن را تنظیم کند، بلکه اقداماتی را که روی آن در برنامه انجام می شود نیز کنترل کند. کنترل استفاده از متغیرها در مرحله کامپایل برنامه مزیت مهم Turbo Pascal نسبت به سایر زبان های برنامه نویسی است که امکان تبدیل خودکار نوع را فراهم می کند. در توربو پاسکال، تبدیل نوع ضمنی (خودکار) تقریبا غیرممکن است. یک استثنا فقط برای ثابت ها و متغیرهای نوع INTEGER (اعداد صحیح)، که مجاز به استفاده در عبارات نوع REAL (واقعی) هستند، ایجاد شده است. برای مثال، اگر متغیرهای X و Y به صورت زیر تعریف شوند:

    var x: عدد صحیح;

    سپس اپراتور

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

    نادرست خواهد بود، زیرا تبدیل خودکار از نوع REAL (ثابت 2.0 حاوی یک نقطه اعشار است و بنابراین متعلق به نوع REAL است) به نوع INTEGER در توربو پاسکال ممنوع است.

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

    البته ممنوعیت تبدیل نوع خودکار به این معنی نیست که در توربو پاسکال ابزار تبدیل داده وجود ندارد. آنها، البته، هستند، اما باید به صراحت مورد استفاده قرار گیرند. برای تبدیل داده ها در زبان، توابع داخلی وجود دارد که مقدار یک نوع را به عنوان پارامتر دریافت می کند و نتیجه را به عنوان مقدار نوع دیگری برمی گرداند. به طور خاص، حتی دو تابع داخلی از این نوع برای تبدیل REAL به Integer وجود دارد: ROUND REAL را به نزدیکترین عدد صحیح گرد می کند و TRUNC REAL را با دور انداختن قسمت کسری کوتاه می کند (به بخش 1.5 مراجعه کنید).

    به عنوان مثال، اپراتور اشتباه می کند

    اما درست

    x:= دور (y/x);

    (اعلان متغیرهای بالا را ببینید).

    به عنوان مثال، تابع ORD برای تبدیل داده های نوع CHAR (کاراکتر) به یک عدد صحیح طراحی شده است، در حالی که تبدیل معکوس INTEGER به CHAR توسط تابع CHR انجام می شود.

    وجود دو عملیات تقسیم یکی دیگر از مظاهر اصل اساسی توربو پاسکال است: برنامه نویس باید صریحاً به کامپایلر تأیید کند که برای پیامدهای احتمالی تبدیل نوع آماده است. به عنوان مثال، اگر عبارت 1/2 در زبان فرترن استفاده شود، نتیجه این عبارت بستگی به نوع متغیری دارد که به آن نسبت داده می شود: اگر N یک متغیر از نوع عدد صحیح و X از نوع واقعی باشد، در برنامه فرترن تخصیص ها

    مقادیر 0 را برای N و 0.5 برای X می دهد. چنین ابهامی در توربو پاسکال وجود ندارد: عبارت 1/2 همیشه مقدار 0.5 را دارد و بنابراین عملگر

    به سادگی غیر قابل قبول است در عین حال، اپراتورهای مجاز در توربو پاسکال عبارتند از:

    و در نهایت در مورد عملیات رابطه ای و منطقی.

    عملیات رابطه ای (مقایسه ای) زیر بر روی داده های انواع REAL، INTEGER، CHAR، STRING تعریف شده است:

    <>- نا برابر؛

    < - меньше;

    > - بیشتر؛

    <= - меньше или равно,

    >= - بزرگتر یا مساوی با.

    عملیات مقایسه باید شامل عملوندهایی از همان نوع باشد. یک استثنا دوباره برای REAL و INTEGER ایجاد شده است که می توان آنها را با یکدیگر مقایسه کرد. نتیجه اعمال عملگر رابطه ای برای هر عملوند از نوع BOOLEAN است.

    نرم افزار - پاسکال عملیات زبان پاسکال

    عملیات زبان پاسکال

    عملیات ها اقدامات روی عملوندها را تعریف می کنند. در پاسکال عملیات باینری و تکی وجود دارد. عملیات Unary شامل 1 عملوند قبل از علامت عملیات است. عملیات باینری دارای 2 عملوند است که علامت یا نماد عملیات بین آنها قرار می گیرد. با توجه به ماهیت عمل عملیات زبان پاسکال را می توان به 7 گروه تقسیم کرد:

    • حسابی؛
    • ارتباط؛
    • بازی فکری;
    • رشته؛
    • بیت، شیفت؛
    • عملیات روی مجموعه ها؛
    • عملیات آدرس گیری

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

    • اضافه (+)؛
    • منها کردن (-)؛
    • ضرب (*)؛
    • تقسیم واقعی (/)؛
    • تقسیم عدد صحیح (div);
    • باقیمانده تقسیم اعداد صحیح (mod).

    پاسکال دارای سه عملیات تقسیم است، نتیجه عملیات تقسیم (/) عددی با قسمت کسری، نتیجه عملیات div فقط یک عدد صحیح و نتیجه عملیات mod باقیمانده یک تقسیم عدد صحیح است. مثال ها:

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

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

    • بیشتر؛
    • کمتر؛
    • بیشتر یا مساوی؛
    • کمتر یا مساوی
    • برابر است
    • نا برابر.

    نتیجه عملیات رابطه ای فقط می تواند یک متغیر بولی باشد، می تواند مقدار true (True) یا مقدار false (False) را بگیرد. عملگرها در یک عملگر رابطه ای می توانند انواع عددی یا انواعی باشند که می توان آنها را به عددی تقلیل داد. انواع عددی:

    • شخصیت - در عملیات رابطه ای، کدهای کاراکتر مطابق با جدول کد مقایسه می شوند.
    • منطقی - از مقادیر True و False استفاده می شود که به ترتیب مقادیر 1 - true و 0 - false را می گیرند.
    • رشته یک نوع ترکیبی است که از یک نوع کاراکتر تشکیل شده است. بنابراین، زمانی که از رشته ها استفاده می شود، کاراکترهای متوالی در دو رشته با هم مقایسه می شوند.

    مثلا:

    5.6 > 7 - نادرست.

    'پ'< ‘Б’ — False;

    «پتروف» > «ایوانف» - درست است.

    "ایوانف"< ‘Иван’ — False.

    نتیجه عملیات منطقی مقادیر بولی True یا False خواهد بود.

    Unary: نه - نفی.

    باینری: AND - ضرب (و)؛ OR - افزودن (یا)؛ XOR - اضافه کردن مدول 2 (انحصاری OR).

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

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

    پاسخ:="ایوانف"

    ب:= «اسکندر»

    نتیجه: ایوانف الکساندر.

    توالی عملیات در پاسکال توسط 3 عامل تعیین می شود:

    • اولویت عملیات؛
    • ترتیب عملیات ها؛
    • استفاده از براکت

    سطوح اولویت عملیات:

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

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

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


    این سایت وظایف آزمایشگاهی در مورد موضوع را برای ادغام مطالب نظری و کسب مهارت های برنامه نویسی عملی در پاسکال ارائه می دهد. اطلاعات نظری مختصر به شما امکان می دهد حداقل دانش لازم برای این کار را به دست آورید. مثال‌های توضیحی حل‌شده و وظایف آزمایشگاهی با افزایش پیچیدگی آنها ارائه می‌شوند که مطالعه مطالب را از ابتدا آسان می‌کند. موفق باشید!

    ما قبلاً نحوه نوشتن برنامه بر اساس الگوریتم های خطی در پاسکال را یاد گرفته ایم. و ما حتی در حال کامپایل کردن الگوریتم‌های غیرخطی - با انشعاب - هستیم که از مقادیر true یا false استفاده می‌کنند.

    مقادیر بولی:

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

    1 2 3 4 5 6 var A: عدد صحیح ; شروع A := 5 ; نوشتن (A > 0 ) ; (درست چاپ خواهد شد)پایان.

    var A: عدد صحیح شروع A:= 5; write (A > 0); (درست نمایش داده خواهد شد) پایان.

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

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

    1 2 3 4 5 6 7 8 var A: عدد صحیح ; ب: بولی؛ شروع A := 5 ; b: = A > 0; نوشتن (ب)؛ (درست چاپ خواهد شد)پایان.

    var A: عدد صحیح ب: بولی شروع A:= 5; b:=A > 0; Write(b)؛(True خروجی خواهد بود) end.

    مثال:نمونه ای از کار با نوع بولی در پاسکال را در نظر بگیرید:

    var a:boolean; شروع a:=true; اگر a=true سپس writeln("درست") else writeln("نادرست"); پایان.

    برای ایجاد شرایط پیچیده، از موارد خاص استفاده می شود: و، یا، نه و xor.

    Task Boolean 1.به شما یک عدد صحیح مثبت داده می شود. صحت این جمله را بررسی کنید: "این یکنواخت است"

    مثالی را با استفاده از عملیات منطقی XOR در نظر بگیرید:

    مثال:دو عدد صحیح درخواست کنید: X، Y. صحت عبارت را بررسی کنید: "فقط یکی از اعداد X و Y فرد است"

    برنامه Boolean; varx,y: عدد صحیح; c:boolean; شروع نوشتن ("X, Y را وارد کنید:"); خواندن (x,y); c:= (Odd(x)) xor (Odd(y)); writeln("فقط یکی از متغیرهای X و Y دارای مقدار فرد است - ", c); پایان.

    راه حل دیگری برای مشکل در پاسکال با استفاده از یک متغیر بولی در نظر بگیرید:

    وظیفه Boolean 2.سه عدد صحیح داده شده است: A، B، C. صحت عبارت را بررسی کنید: "B بین اعداد A و C است."

    حل یک مسئله پیچیده تر را با یک متغیر بولی در نظر بگیرید:

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

    نمایش راه حل:

    1 2 3 4 5 6 7 8 9 10 11 12 13 const a= 348 ; var d_n، s_n، e_n: عدد صحیح ; پرچم: بولی start flag:= false ; s_n := a div 100 ; d_n: = ((a mod 100 ) div 10 ) ; e_n: = a mod 10 ; اگر (s_n<>d_n) و (d_n<>e_n) و (e_n<>s_n) سپس پرچم:= true ; writeln (پرچم) ; پایان.

    const a=348; var d_n، s_n، e_n: عدد صحیح. پرچم: بولی; start flag:=false; s_n:=a div 100; d_n:=((a mod 100)div 10); e_n:=a mod 10; اگر (s_n<>d_n) و (d_n<>e_n) و (e_n<>s_n) سپس پرچم:=true; writeln (پرچم)؛ پایان.

    در اینجا هر رقم با استفاده از عملیات تقسیم اعداد صحیح و گرفتن باقیمانده تقسیم به دست می آید: s_n رقم صدمین رقم، d_n رقم رقم دهم، e_n یک است.

    وظیفه بولی 3.یک عدد صحیح N > 0 در نظر گرفته شده است. با استفاده از عملیات تقسیم بر عدد صحیح و گرفتن باقیمانده تقسیم، تعیین کنید که آیا عدد "2" در رکورد عدد N وجود دارد یا خیر. اگر وجود دارد، خروجی درست است، اگر نه، خروجی FALSE.

    تکلیف بولی 4.با یک عدد صحیح مثبت. صحت عبارت را بررسی کنید: "این عدد یک عدد سه رقمی فرد است."

    حداقل و حداکثر تعداد در پاسکال

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

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

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

    حداکثر: = 0 min:= 1000 ;

    عبارات بولی (شرایط)در پاسکال، در دستورات if و هنگام سازماندهی تکرارها، یعنی در حلقه‌های while و repeat-until استفاده می‌شوند.

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

    1 . a > 2*b

    2 . گناه (sqr(a))<= exp(cos(b))–2.3

    3 . (آ<= 3) and (b >الف/2)

    عبارات منطقی بر اساس ساخته شده است عملیات رابطه

    (<, >, <= , >=, =, <>)

    و عملیات منطقی

    و(منطقی و)

    یا(منطقی یا)

    نه(نفی منطقی)

    xor(انحصاری یا).

    نتیجهاجرای یک عبارت بولی یک مقدار بولی است درست است، واقعی(درست) یا نادرست(دروغ). در عبارات پیچیده منطقی، ابتدا عملیات حسابی، سپس عملیات منطقی و در نهایت، عملیات رابطه ای انجام می شود.

    24 پاسکال. بیانیه if شرطی. قالب و اصل عمل.

    ساختار دستور if به شکل زیر است:

    اگر<условие>سپس<оператор1>دیگر<оператор2>;

    where if, then, else کلمات رزرو شده هستند (اگر، آنگاه، در غیر این صورت)؛

    <условие>- بیان منطقی؛

    <оператор1>و<оператор2>- هر عملگر زبان پاسکال (ساده یا مرکب).

    مثال: اگر sin(a)>b آنگاه y:= a

    دستور if به صورت زیر عمل می کند:

    <условие>(درست (درست) یا نادرست (نادرست)).

    اگر ارزش<условие>- درست (درست)، سپس<оператор1>، آ<оператор2>نادیده گرفته شده است.

    اگر ارزش<условие>– false (false) سپس اجرا می شود<оператор2>، آ<оператор1>نادیده گرفته شده است.

    ساخت کوتاه دستور if

    اگر< условие >سپس< оператор >;

    مثال ها: اگر یک< 2*b then y: = a/2 ;

    اگر یک< 2*b then begin

    در مثال 1، عبارت y:=a/2; یک عملگر ساده پاسکال است.

    در مثال 2، عملگر y:=2*a را شروع می کند. writeln(y) end; عملگر مرکب زبان پاسکال است.

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

    شروع<операторы>;

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

    دستور if به صورت زیر اجرا می شود.

    ارزش عبارت منطقی ارزیابی می شود<условие>.

    اگر نتیجه درست باشد، کنترل به آن منتقل می شود<оператор>.

    اگر شرط به نادرست ارزیابی شود،<оператор>نادیده گرفته می شود و کنترل اجرای برنامه به دستور بعدی در برنامه منتقل می شود.

    25 پاسکال مورد ... بیانیه انتخاب. قالب و اصل عمل. بیانیه انتخاب پرونده

    اگر دستور if به شما امکان می دهد یکی از دو ادامه برنامه را اجرا کنید، دستور case فرصت انتخاب یکی از چندین ادامه برنامه را فراهم می کند.

    این اپراتور دارای ساختار زیر است:

    مورد<выражение-селектор>از

    <список1>: <оператор1>;

    <список2>: <оператор2>;

    <список ن>: <оператор ن>

    دیگر<оператор>

    اینجا<выражение-селектор>- یک عبارت یا، در یک مورد خاص، یک متغیر از هر نوع اسکالر، به جز واقعی (معمولاً متغیری از نوع بایت، عدد صحیح، بولی یا کاراکتر).

    <список1, список2, ... списокN>- لیستی از ثابت ها که مقادیر آنها را می توان با عبارت انتخابگر دریافت کرد. هر یک از لیست ها می تواند یک ثابت، محدوده ای از ثابت ها یا چندین ثابت (محدوده) باشد که با کاما از هم جدا شده اند.

    ساختار else در عبارت case ممکن است وجود نداشته باشد.

    بیانیه مورد به شرح زیر اجرا می شود.

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

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

    هر داده - ثابت، متغیر، مقادیر تابع در پاسکال با یک نوع داده مشخص می شود.

    بیایید مفهوم را تعریف کنیم نوع داده. همانطور که قبلاً مشخص شد، تمام اشیاء برنامه (متغیرها، ثابت ها و غیره) باید اعلان شوند.

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

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

    برای مثال، متغیر x از نوع real باشد و مقدار آن برابر با یک باشد: x=1. مقدار مربوطه در حافظه کامپیوتر می تواند 0.999999999، 1.000000001، یا 1.000000000 باشد. اما اگر متغیر x به عنوان یک متغیر از نوع عدد صحیح اعلام شود، آنگاه واحد به طور کاملاً دقیق در رایانه نشان داده می شود و متغیر x نمی تواند مقادیر واقعی (کسری) را بگیرد - بالاخره به عنوان یک متغیر از نوع عدد صحیح اعلام شد.

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

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

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

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

    • انواع استاندارد (از پیش تعریف شده). ;
    • انواع تعریف شده توسط کاربر (انواع تعریف شده توسط کاربر) .

    انواع استاندارد توربو پاسکال عبارتند از:

    • نوع عدد صحیح - عدد صحیح ;
    • نوع واقعی - واقعی ;
    • نوع شخصیت - char ;
    • نوع بولی - بولی ;
    • نوع رشته - رشته ;
    • نوع اشاره گر - اشاره گر ;
    • نوع متن متن است.

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

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

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

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

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

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

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

    نوع داده استاندارد توسط خود زبان پاسکال تعریف می شود. هنگام استفاده از انواع استاندارد در یک برنامه، کافی است زیر بخش های انواع مورد نیاز (const , var) را مشخص کنید و سپس ثابت ها و متغیرهای مورد استفاده در برنامه را توضیح دهید. نیازی به استفاده از زیربخش Type نیست.

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

    i,j - عدد صحیح (اعداد صحیح)؛

    x,y - واقعی (واقعی)؛

    t,s - کاراکتر (شخصیت)؛

    a,b - بولی (منطقی)

    سپس فقط به زیربخش متغیرها نیاز است - Var. بنابراین در قسمت توصیفی برنامه اعلان های متغیر به صورت زیر نوشته می شود:

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

    داده های این نوع فقط می توانند مقادیر صحیح را بگیرند. در یک کامپیوتر، مقادیر یک نوع عدد صحیح دقیقا نمایش داده می شود. اگر متغیر منفی باشد، باید قبل از آن علامت "-" قرار گیرد و اگر متغیر مثبت باشد، علامت "+" را می توان حذف کرد. این نوع در مواردی ضروری است که مقداری تقریباً قابل نمایش نباشد - یک عدد واقعی. مثلاً تعداد افراد، حیوانات و غیره.

    نمونه هایی از نوشتن مقادیر صحیح: 17، 0، 44789، -4، -127.

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

    تایپ کنید دامنه اندازه بر حسب بایت
    کوتاه -128...+128 1
    عدد صحیح -32768...32767 2
    Longint -2147483648...2147483647 4
    بایت ها 0...255 1
    کلمه 0...65535 2

    دو نوع آخر فقط اعداد مثبت را نشان می دهند و سه نوع اول هر دو اعداد مثبت و منفی را نشان می دهند.

    در متن برنامه یا هنگام وارد کردن داده از نوع عدد صحیح، مقادیر نوشته می شود بدون نقطه اعشار . مقادیر متغیر واقعی نباید از مقادیر مجاز تجاوز کند از نوع (Shortint، Integer، Longint، Byte، Word) که برای توصیف متغیر استفاده شده است. افراط های احتمالی در محاسبات به هیچ وجه کنترل نمی شود که منجر به عملکرد نادرست برنامه می شود.

    نمونه ای از استفاده از متغیر نوع عدد صحیح

    var a:integer; ب: کلمه c:byte; شروع a:=300; (a روی 300 تنظیم شده است) b:=300; (b تنظیم شده روی 300) c:=200; (c روی 200 تنظیم شده است) a:=b+c; (a روی 500 تنظیم شده است) c:=b; (خطا! متغیر c نمی تواند مقادیری بیشتر از 255 بگیرد. در اینجا به متغیر c مقدار 500 داده می شود که باعث سرریز شدن نتیجه می شود.) پایان.

    انواع واقعی

    مقادیر انواع واقعی در رایانه تقریباً نشان داده می شود. محدوده داده‌های نوع واقعی توسط پنج نوع استاندارد تعیین می‌شود: واقعی (Real)، با دقت منفرد (Single)، دقت دوگانه (Double)، با دقت افزایش یافته (Extended)، پیچیده (Comp) و در جدول ارائه شده است:

    تایپ کنید دامنه تعداد ارقام قابل توجه اندازه بر حسب بایت
    واقعی 2.9E-39...1.7E+38 11-12 6
    تنها 1.5E-45...3.4E+38 >7-8 4
    دو برابر 5E-324...1.7E+308 15-16 8
    تمدید شده 3.4E-4951...1.1E+4932 19-20 10
    Comp -2E+63+1...+2E+63-1 19-20 8

    اعداد واقعی را می توان در دو قالب نمایش داد: ثابت و ممیز شناور.

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

    34.5, -4.0, 77.001, 100.56

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

    1E-4 1*10-4
    3.4574E+3 3.4574*10+3
    4.51E+1 4.51*10+1

    مثال های ممیز شناور:

    عدد نوشتن به پاسکال
    0,0001 1E-4
    3457,4 34574E-1
    45,1 451E-1
    40000 4E+4
    124 0.124E+3
    124 1.24E+2
    124 12.4E+1
    124 1240E-1
    124 12400E-2

    جدول 5 تا 9 ورودی همان عدد 124 را نشان می دهد. با تغییر موقعیت نقطه اعشار در مانتیس (نقطه شناور، از این رو نام "ورود عدد ممیز شناور") و همزمان تغییر مقدار سفارش، می توانید مناسب ترین ورودی عدد را انتخاب کنید.

    نمونه ای از اعلان متغیرهای نوع واقعی.

    نوع کاراکتر

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

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

    قالب اعلان متغیر نمادین:

    <имя переменной>:char;

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

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

    varc:char; (c یک متغیر از نوع کاراکتر است) شروع c:='A'; (کاراکتر 'A' به متغیر c اختصاص داده شده است) c:=#65; (متغیر c نیز به نماد A اختصاص داده شده است. کد اسکی آن 65 است) c:='5'; (متغیر c به کاراکتر 5، End اختصاص داده می شود. در اینجا 5 دیگر یک عدد نیست)

    نوع بولی

    نوع داده منطقی به نام ریاضیدان انگلیسی جورج بول، خالق رشته ریاضیات - منطق ریاضی، Boolean نامیده می شود.

    فرمت اعلان متغیر بولی:

    <имя переменной>: بولی;

    داده های این نوع فقط می توانند دو مقدار داشته باشند:

    • صحیح صحیح؛
    • نادرست - نادرست.

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

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

    مثالی از استفاده از عملیات رابطه ای:

    رابطه 5>3، نتیجه درست (درست)؛

    رابطه 5=3، نتیجه نادرست (نادرست) است.

    نمونه ای از استفاده از متغیرهای بولی.

    var a,b:boolean; (a,b متغیرهای بولی هستند) a:=True را شروع کنید. (متغیر a روی true تنظیم شده است) b:=false; (متغیر b روی false تنظیم شده است) پایان.

    ثابت ها

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

    ثابت باید در قسمت توصیفی با استفاده از کلمه رزرو شده const اعلام شود.

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

    Const<имя константы>= <значение>;

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

    Const (اعلام بخش ثابت) year=2003; (ثابت از نوع عدد صحیح، چون هیچ نقطه اعشاری در رکورد وجود ندارد) time=14.05; (ثابت نوع واقعی) N=24; (ثابت از نوع عدد صحیح، چون هیچ نقطه اعشاری در رکورد وجود ندارد) P=3.14; (ثابت نوع واقعی) A=true; (ثابت بولی) str1='7'; (ثابت نوع کاراکتر) str2='A'; (نوع کاراکتر ثابت) str3='Turbo'; (ثابت نوع رشته) Var (اعلان بخش متغیر) X,y:integer; (متغیرهای از نوع عدد صحیح)

    انواع سفارشی

    از مجموعه انواع سفارشی، فقط در نظر خواهیم گرفت

    • نوع برشمرده شده؛
    • نوع فاصله

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

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

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

    فرمت نوع برشماری شده:

    <имя типа>= (constant1,constant2,...,constantN);

    جایی که
    ثابت1، ثابت2،...، ثابتN مجموعه مرتبی از مقادیر شناسه است که به عنوان ثابت رفتار می شود.

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

    توپ = (یک، دو، سه، چهار، پنج) را تایپ کنید. vart:ball;

    در اینجا توپ نام نوع برشمرده شده است. یک، دو، سه، چهار، پنج ثابت هستند. t متغیری است که می تواند هر مقدار ثابت را بگیرد.

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

    • ثابت های نوع عددی: 1، 2، 3، 4، و غیره.
    • ثابت های نوع کاراکتر: "a"، "s"، "1"، "3"، و غیره.
    • ثابت های نوع رشته: "اول"، "دوم" و غیره.

    علاوه بر این، عملیات حسابی و رویه‌های استاندارد ورودی و خروجی Read, Write برای مقادیری از این نوع قابل اعمال نیستند.

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

    روزهای نوع = (دوشنبه، سه شنبه، چهارشنبه، پنجشنبه، جمعه، شنبه، یکشنبه)؛ روز وار: روز؛ begin if day = Sunday then writeln('امروز یکشنبه است!'); پایان.

    عناصر در یک تعریف نوع برشماری شده به ترتیبی که فهرست شده اند مرتب شده در نظر گرفته می شوند. شماره گذاری از صفر شروع می شود. بنابراین در مثال بالا روزهای هفته دارای شماره سریال زیر هستند

    برای تعیین برنامه‌ریزی شماره دنباله، از تابع Ord() استفاده کنید.

    در مثال ما، شماره سریال برابر است:

    مرتبه (دوشنبه) = 0;

    سفارش (شنبه) = 5;

    دستور (یکشنبه) = 6.

    نوع فاصله

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

    <минимальное значение>..<максимальное значение>

    • دو کاراکتر ".." به عنوان یک کاراکتر در نظر گرفته می شوند، بنابراین هیچ فاصله ای بین آنها مجاز نیست.
    • انتهای سمت چپ محدوده نباید از انتهای سمت راست آن تجاوز کند.

    نوع فاصله یک نوع داده تعریف شده توسط کاربر است، بنابراین اعلام این نوع با کلمه کلیدی TYPE شروع می شود.

    نمونه ای از توصیف نوع فاصله:

    نوع رقم = 1..10; ماه = 1..31; lat = 'A'..'Z';