زنگ

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

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

چکیده

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

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

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

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

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

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

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

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

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

این و چهار فصل بعدی ارائه می دهد توصیف همراه با جزئیات انواع

1.1 نوع ساده

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

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

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

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

1.1.1 انواع معمولی

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


شکل. 1.1 - ساختار نوع داده

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

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

پیش (x) - مقدار قبلی نوع معمولی (مقدار مطابق با ترتیب عددی ترتیب (x) -1) را برمی گرداند ، یعنی: or (рд (х)) \u003d اورد (х) - 1؛

succ (x) - مقدار بعدی از نوع ترتیب را برمی گرداند ، که مطابق با ترتیب مرتب (х) +1 ، یعنی Ord (Succ (х)) \u003d اورد (х) + 1 است.

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

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

اگر هر نوع نظم را به عنوان مجموعه ای از مقادیر مرتب شده تصور کنیم که از چپ به راست افزایش می یابد و یک قطعه مشخص را در محور عددی افزایش می دهد ، عملکرد پیش (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
لانگنت 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 را دارد ، یعنی این همان است که کوچک .

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

لیست رویه ها و توابع قابل استفاده برای انواع عدد صحیحدر جدول آورده شده است 1.2 حروف b ، s ، w ، i ، l به ترتیب عبارات نوع را بیان می کنند بایت , میانبر ، کلمه ، علاقه و Longint ,

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

جدول 1.2 - روشهای استاندارد و توابع قابل استفاده در انواع صحیح

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

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

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

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

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

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

برای L: \u003d کاذب به درست انجام دهید

ShowMessage ("-)؛

اگر نوع پارامتر حلقه L را در مثال قبلی جایگزین کنیم با بولی ، چرخه اجرا خواهد شد و پیام دو بار روی صفحه ظاهر می شود. [برای دلفی نسخه 1 و 2 ، ترتیب (واقعی) \u003d 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 ، "الف" ... "من" - 224 ... 255. نمادهای "Ё" و "ё" به ترتیب دارای کد 168 و 184 هستند.

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

کد نماد کد نماد کد نماد کد نماد
0 NUL 32 BL 64 @ 96 "
1 منطقه 33 ! 65 و 97 و
2 STX 34 66 که در 98 ب
3 ETX 35 # 67 از جانب 99 از جانب
4 بخور 36 $ 68 د 100 د
5 ENQ 37 % 69 ه 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 ج
11 VT 43 + 75 به 107 ک
12 FF 44 ف 76 ل 108 1
13 CR 45 - 77 م 109 م
14 بنابراین 46 78 ن 110 ن
15 SI 47 / 79 0 111 در باره
16 دل 48 0 80 ر 112 پ
17 DC1 49 1 81 س 113 ق
18 DC2 50 2 82 ر 114 r
19 DC3 51 3 83 س 115 s
20 DC 4 52 4 84 تی 116 تی
21 ناک 53 5 85 تو 117 تو
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 W 119 W
24 می توان 56 8 88 ایکس 120 ایکس
25 EM 57 9 89 Y 121 دارند
26 زیر 58 : 90 ز .122 z
27 خروج 59 ; 91 تی 123 {
28 FS 60 < 92 \ 124 1
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ل 126 ~
31 ایالات متحده 63 ف 95 127 r

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

برای تایپ کردن کاراکتر عملیات ارتباط و همچنین توابع داخلی اعمال می شود:

Сhar (در) - عملکرد مانند کاراکتر ؛ بیان را به نوع تبدیل می کند بایت به یک نماد می رود و آن را با مقدار آن باز می گرداند.

UpCase (CH) - عملکرد مانند کاراکتر ؛ اگر حرف حرفی با حروف کوچک لاتین باشد ، حرف بزرگ را برگرداند ، در غیر این صورت شخصیت ch را به خودی خود بازمی گرداند (برای سیریلیک شخصیت اصلی را برمی گرداند).

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

رنگ \u003d (قرمز ، سفید ، آبی)؛

استفاده از انواع ذکر شده باعث واضح تر شدن برنامه ها می شود.

مکاتبات بین مقادیر نوع شمارش شده و تعداد عادی این مقادیر با ترتیب شمارش تعیین می شود: مقدار اول در لیست به ترتیب ترتیب 0 ، دوم - 1 و غیره می رسد. کلمه و می تواند به صورت یک اعلامیه جمع و جور به یکباره از گروهی از ثابت های عدد صحیح با مقادیر 0 ، 1 و غیره در نظر گرفته شود.

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

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

نوع محدوده توسط محدوده مقادیر آن در نوع پایه تنظیم می شود:

<мин.знач.>..<макс.знач.>

اینجا<мин. знач. > - حداقل مقدار نوع محدوده؛<макс. знач. > - حداکثر مقدار آن

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

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

دو شخصیت ".." به عنوان یک شخصیت رفتار می شوند ، بنابراین هیچ فضایی بین آنها مجاز نیست. مرز چپ دامنه نباید از مرز سمت راست خود تجاوز کند.

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

كتابخانه استاندارد Object Pascal شامل دو كاركرد است كه از كار با انواع محدوده پشتیبانی می كند:

زیاد (x) - حداکثر مقدار نوع دامنه ای را که متغیر x به آن تعلق دارد ، باز می گرداند.

کم (x) - حداقل مقدار نوع بازه را برمی گرداند.

1.1.2 انواع واقعی

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

جدول 1.4 - انواع واقعی

که در نسخه های قبلی نوع دلفی 1 ... 3 واقعی 6 بایت گرفت و دامنه مقادیری از 9 / 10-39 تا 2/1 * 1038 داشت. در نسخه های 4 و 5 این نوع معادل نوع است دو برابر ... در صورت لزوم (به دلایل سازگاری) از 6 بایت استفاده کنید واقعی ، شما باید دستورالعمل کامپایلر (SREALCOMPATIBILITY روشن) را مشخص کنید.

همانطور که از جدول می بینید. 1.4 ، یک عدد واقعی در Object Pascal از 4 تا 10 بایت پیوسته اشغال می کند و ساختار زیر را در حافظه PC دارد.

در اینجا رقم امضا شده از شماره است. بخش نمایی الکترونیکی. شامل ترتیب باینری است. m مانیسا عدد است.

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

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

انواع در Object Pascal جایگاه ویژه ای را اشغال می کنند. کامپ و واحد پول ، که به عنوان اعداد واقعی با قسمتهای کسری از طول ثابت درمان می شوند: in کامپ قسمت کسری دارای طول 0 رقم است ، یعنی به سادگی وجود ندارد ، در واحد پول طول قسمت کسری برابر با 4-اعشار اعشار است. در واقع ، هر دو نوع یک عدد صحیح بزرگ امضا شده را تعریف می کنند که 19 ... 20 رقم اعشاری قابل توجه را ذخیره می کند (در داخل آنها 8 بایت پیوسته را اشغال می کنند). در عین حال ، در عبارات کامپ و واحد پول آنها کاملاً با هر نوع واقعی دیگر سازگار هستند: تمام عملیات واقعی روی آنها تعریف می شود ، می توان آنها را به عنوان استدلال عملکردهای ریاضی و غیره مورد استفاده قرار داد. مناسب ترین زمینه کاربرد این نوع ها محاسبات حسابداری است.

1.1.3 نوع تاریخ-زمان

نوع تاریخ-زمان توسط یک شناسه استاندارد تعیین می شود TDateTime و برای ذخیره همزمان تاریخ و زمان در نظر گرفته شده است. در نمای داخلی ، 8 بایت را اشغال می کند و مشابه آن است واحد پول یک عدد واقعی با یک بخش کسری ثابت است: قسمت عدد صحیح شماره تاریخ را ذخیره می کند ، و کسری را به صورت نیمه وقت اختصاص می دهد. تاریخ به عنوان تعداد روزهایی که از 30 دسامبر 1899 گذشت و زمان آن به عنوان کسری از روز از ساعت 0 تعیین شده است تعریف می شود ، بنابراین مقدار 36444.837 مطابق با تاریخ 10/11/1999 و زمان 20:05 است. تعداد روزها می تواند منفی باشد ، اما مقادیر کمتر از -693594 (مربوط به تاریخ 00.00.0000 از زادگاه مسیح) توسط توابع تبدیل تاریخ به رشته نادیده گرفته می شوند.

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

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

1.2 نوع ساختاری

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

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

1.2.1 آرایه ها

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

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

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

اینجا<имя типа> - شناسه صحیح؛ آرایه ای از - کلمات محفوظ (آرایه ، از)<сп.инд.типов> - لیستی از یک یا چند نوع فهرست جدا از کاما. براکت های مربع در اطراف لیست یک مورد نیاز به نحو هستند.<тип> - هر نوع Object Pascal.

به عنوان انواع فهرست در Object Pascal ، می توانید از هر نوع نظم که دارای کاردینالیتی بیش از 2 گیگابایت باشد استفاده کنید (یعنی به جز LongWord و Int64)

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

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

1.2.2 رکورد

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

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

<имятипа> \u003d ضبط<сп.полей> پایان؛

اینجا<имя типа> - شناسه صحیح؛ ضبط / پایان - کلمات محفوظ (ضبط ، پایان)<сп.полей> - لیست زمینه ها؛ دنباله ای از بخش های یک رکورد است که یک علامت اختصاری بین آنها وجود دارد.

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

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

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

1.2.3 مجموعه

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

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

شرح نوع مجموعه به شرح زیر است:

<имя типа> \u003d مجموعه<базовый тип>;

اینجا<имя типа> - شناسه صحیح؛ مجموعه ای از - کلمات رزرو شده (مجموعه ، از)<базовый тип> - نوع پایه عناصر مجموعه ، که می تواند از هر نوع ترتیب باشد ، به جز کلمه ، علاقه ، Longint ، Int64 .

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

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

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

1.3 رشته

انواع زیر برای پردازش متن در Object Pascal استفاده می شود:

خط کوتاه shortString یا رشته [n] جایی که ن<= 255;

خط طولانی رشته ;

رشته گسترده WideString ;

رشته انتهایی تهی پنچر .

آنچه این نوع مشترکات دارند این است که هر رشته به عنوان یک رشته کاراکترهای یک بعدی رفتار می شود ، تعداد کاراکترهایی که می توانند در یک برنامه در حال اجرا تغییر دهند: برای رشته [n] ، طول رشته از 0 به n تغییر می کند ، برای رشته و پنچر - از 0 تا 2 گیگابایت.

استاندارد پاسکال فقط از رشته های کوتاه استفاده می کند رشته [n] ... در حافظه ، چنین رشته ای به بایت های n + i اختصاص می یابد ، اولین بایت شامل طول رشته فعلی است و خود کاراکترها با شروع از بایت 2 قرار دارند. از آنجا که در این حالت یک بایت برای طول رشته اختصاص داده می شود ، حداکثر طول یک رشته کوتاه نمی تواند 255 نویسه باشد. برای اعلام یک رشته کوتاه حداکثر طول ، نوع استاندارد در نظر گرفته شده است کوتاه (معادل رشته).

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

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

1.4 نشانگرها و حافظه پشته

حافظه پویا 1.4.1

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

1.4.2 نشانگرها

RAM PC مجموعه ای از سلول ها برای ذخیره اطلاعات بایت است که هر کدام شماره خاص خود را دارند. به این شماره ها آدرس داده می شود و به شما اجازه می دهد به هر بایت حافظه دسترسی پیدا کنید. Object Pascal روشی انعطاف پذیر برای مدیریت حافظه پویا - به اصطلاح اشاره گرها - برای برنامه نویسان فراهم می کند. اشاره گر متغیری است که آدرس بایت حافظه را به عنوان مقدار آن در خود جای می دهد. با استفاده از اشاره گرها ، می توانید هر یک از انواع داده های شناخته شده را در Object Pascal در heap اختصاص دهید. فقط بعضی از آنها ( بایت ، چار ، ShortInt ، بولی) یک بایت را در نمایندگی داخلی اشغال کنید ، بقیه - چندین مورد مجاور. بنابراین ، در واقع ، نشانگر فقط بایت اول داده را خطاب می کند.

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

در Object Pascal ، می توانید یک اشاره گر را اعلام کنید و آن را به هیچ نوع داده خاص متصل نکنید. این کار توسط نوع استاندارد انجام می شود اشاره گر ، به عنوان مثال:

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

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

1.4.3 تخصیص و آزاد کردن حافظه پویا

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

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

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

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

دور انداختن (pJ)؛

دور ریختن (pR)؛

حافظه ای که قبلاً به نشانگرهای pJ و pR اختصاص داده شده بود به پشته باز می گردد (به بالا مراجعه کنید).

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

1.5 نام مستعار را تایپ کنید

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

TMyInteger \u003d علاقه؛

در آینده ، از نام مستعار می تواند به همان روش پایه انجام شود:

Mylnt: TMyInteger؛

Mylnt: \u003d 2 * Round (pi)؛

این نوع نام های مستعار معمولاً برای بیشتر خواندن کد مورد استفاده قرار می گیرند. با این حال ، در Object Pascal ، می توانید با اضافه کردن نوع کلمه رزرو شده در مقابل نام نوع پایه ، نام مستعار را به شدت اعلام کنید:

TMyIntegerType \u003d نوع علاقه؛

MylntVar: TMyIntegerType؛

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

تابع MylntFunc (APar: integer): Integer؛

پس چنین درخواستی برای او

MylntFunc (MylntVar)

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

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

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

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

به عنوان مثال ، نوع داده علاقه در دلفی طیف وسیعی از -2147483648 دارد ... 2147483647 ، در حالی که در توربو پاسکال نوع داده است علاقه تعداد در محدوده -35768 ... 32767 را نشان می دهد. در Free Pascal ، طیف وسیعی از ارزش ها مانند علاقه توسط حالت انتخاب شده تعیین می شود.

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

بنابراین انواع داده عدد صحیح پاسکال در جدول 13.1 ذکر شده است.

جدول 13.1. انواع داده عدد صحیح پاسکال (لازاروس).

یک نوع اندازه ، بایت دامنه مقادیر
بایت 1 0…255
میانبر 1 -128…127
کوچک 2 -35768…32767
کلمه 2 0…65535
علاقه 2 یا 4 بستگی به حالت تلفیقی دارد
اصلی 4 0…4294967295
لانگنت 4 -2147483648…2147483647
کلمه کلیدی 4 0...4294967295
Int64 8 -9223372036854775808...9223372036854775807
QWord 8 0...18446744073709551615

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

و حالا چند توضیح برای جدول.

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

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

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

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

لیست 13.1. برنامه ای برای نمایش دامنه اعداد صحیح. برنامه td؛ ($ mode objfpc) ($ H +) از کلاسهای (ctreads) $ (IFDEF UNIX) ($ IFDEF UseCThreads) ، ($ ENDIF) ($ ENDIF) استفاده می کند (می توانید بعد از این واحد اضافه کنید). شروع Writeln ("بایت:" ، کم (بایت) ، ".." ، بالا (بایت))؛ Writeln ("میانبر:" ، کم (میانبر) ، ".." ، بالا (میانبر))؛ Writeln ("Smallint:" ، Low (Smallint) ، ".." ، High (Smallint))؛ Writeln ("Word:" ، Low (Word) ، ".." ، High (Word))؛ Writeln ("علاقه:" ، کم (علاقه) ، ".." ، بالا (علاقه))؛ Writeln ("کاردینال:" ، کم (کاردینال) ، ".." ، بالا (کاردینال))؛ Writeln ("Longint:" ، Low (Longint) ، ".." ، High (Longint))؛ Writeln ("کلمه طولانی:" ، کم (کلمه بلند) ، ".." ، بالا (کلمه بلند))؛ Writeln ("Int64:" ، Low (Int64) ، ".." ، High (Int64))؛ Writeln ("QWord:" ، Low (QWord) ، ".." ، High (QWord))؛ Readln؛ پایان.

عملکرد استاندارد کم حداقل مقدار نوع داده را تعریف می کند. Funckia بالا حداکثر مقدار را تعیین می کند. با توابع نوشتن و ReadLn شما قبلاً کمی آشنا هستید ما در بخش مربوطه با جزئیات بیشتری در مورد برنامه های فرعی (رویه ها و عملکردها) صحبت خواهیم کرد.

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

10
178
35278

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

Free Pascal از چهار قالب یادداشت صحیح پشتیبانی می کند:

  1. نماد اعشار... فقط عددی مثل 10.
  2. نماد شش ضلعی... یک شماره با پیشوند $. به عنوان مثال ، هگزادسیمال 10 دلار برابر با اعشار 16 است.
  3. نماد اکتبر... یک علامت پیشوند با &. به عنوان مثال ، octal و 10 برابر با اعشار 8 است.
  4. نماد دودویی... یک عدد با پیشوند٪. به عنوان مثال ، تعداد دودویی٪ 10 برابر با اعشار 2 است.

مشق شب:

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

در کد منبع برنامه ، خطی را پیدا کنید که حالت کامپایل را تنظیم کند:

(حالت $ objfpc) (H + $)

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

(حالت $ tp) ($ H +)

برنامه را اجرا کنید. به دامنه مقادیر مانند نگاه کنید علاقه... نتیجه گیری.

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

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

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

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

به طور کلی ، یک ثابت بدون چاپ ساده به شرح زیر است:

Const fixed_name \u003d بیان؛

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

Const ثابت_name: نوع \u003d بیان؛

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

· اعداد یا مجموعه ای از کاراکترها در آپاستروپ ها.

· عملیات ریاضی؛

· عملیات ارتباط و عملیات منطقی؛

توابع abs (x) ، round (x) ، trunc (x)؛

· توابع chr (x) ، ord (x) ، pred (x) ، succ (x) و موارد دیگر.

قالب توضیحات ثابت:

id \u003d مقدار؛

1. علاقه - با استفاده از اعداد نوشته شده در قالب اعشاری یا شش ضلعی و بدون نقطه اعشار تعریف می شوند.

2. واقعی - با شماره های نوشته شده در قالب داده اعشاری تعریف شده است.

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

4- رشته - توسط مجموعه ای از شخصیت های دلخواه محصور در آپوستروس تعریف شده است.

5- منطقی یا نادرست یا درست است.

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

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

نام متغیر - باید لزوماً با یک حرف شروع شود ، نمی تواند حاوی فضایی باشد و فقط می تواند شامل موارد زیر باشد:

· حروف الفبای لاتین؛

· تأکید

مثال: A، A_1، AA، i، j، x، y و غیره نامهای نامعتبر: My 1، 1A. نام متغیرها می توانند تا 126 نویسه داشته باشند ، بنابراین سعی کنید نام متغیرهای معنی دار را انتخاب کنید. با این حال ، کامپایلر 63 کاراکتر اول را در نام ها متمایز می کند. اما بین حروف کوچک و حروف بزرگ چه در اسامی متغیر و چه در نوشتن شناسه خدمات تفاوت قائل نیست.

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

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

نحوه ذخیره این داده ها ،

چند سلول حافظه برای ذخیره آن اختصاص می یابد ،

حداقل و حداکثر مقدار مورد نیاز آن چیست ،

چه عملیاتی را می توان با آن انجام داد.

برخی از انواع داده ساده پاسکال:

1. انواع علاقه (ShortInt ، علاقه ، LongInt ، بایت ، Word).

2. انواع واقعی (واقعی ، مجرد ، دوتایی ، تمدید شده ، کامپوننت).

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

4- شخصیت (شخصیت).

5. انواع رشته (رشته ، رشته) [n].

9. اپراتورهای بی قید و شرط در پاسکال. توضیحات و استفاده

نوع عملگر

قابل اعتماد و متخصص<метка>;

هدف - انتقال کنترل در برنامه به اپراتور مشخص شده با برچسب<метка>... یک برچسب می تواند یک نام باشد (طبق قوانین برای نام های زبان نوشته شده است) یا یک عدد صحیح بدون علامت ، که در عبارت شرح labelLabel شرح داده شده است ، و در مقابل جمله مشخص شده ایستاده است ، اما فقط در یک مکان در برنامه قرار دارد. برچسب با نماد ":" از عملگر جدا می شود. پرش به برچسب می تواند چندین بار در یک بلوک اتفاق بیفتد ، اما خود برچسب فقط یک بار ممکن است رخ دهد. اگر انتقال کنترل به برخی از برچسب ها وجود نداشته باشد ، خطایی رخ نخواهد داد.

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

توجه داشته باشید که عبارت زیر goto نیز باید با برچسب دیگری مشخص شود (مگر اینکه goto آخرین مورد در گروه بیانیه ها باشد). در غیر این صورت ، راهی برای رسیدن به اپراتور بعدی بعد از goto وجود ندارد.

10. شعب اپراتور در پاسکال. توضیحات و استفاده

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

آن این بیانیه ها به شما امکان می دهند ترتیب طبیعی اجرای اظهارات برنامه را تغییر دهید.

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

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

اگر a\u003e \u003d b سپس Max: \u003d a other Max: \u003d b؛

در بیانیه if ، فقط یک جمله در هر دو شاخه قابل اجرا است (پس از آن و سایر موارد)!

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

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

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

var a، b، max: عدد صحیح؛

writeln ("دو عدد صحیح را وارد کنید")؛

اگر a\u003e b سپس حداکثر: \u003d a other max: \u003d b؛

writeln ("بالاترین تعداد" ، حداکثر)؛

شرایط سخت

شرط پیچیده شرط متشکل از چندین شرط (روابط) ساده است که به وسیله منطقی متصل می شوند

عملیات:

نه - نه (نفی ، وارونگی)

و - و (ضرب منطقی ، پیوستگی ،

تحقق همزمان شرایط)

یا - یا (علاوه بر این ، منطقی ، اختلال ،

تحقق حداقل یکی از شرایط)

Xor - منحصر به فرد OR (فقط اعدام

یکی از دو شرط ، اما نه هر دو)

شرایط ساده (روابط)

< <= > >= = <>

ترتیب اجرای (اولویت \u003d سنوات)

عبارات در براکت ها

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

ویژگی - هر یک از شرایط ساده باید در براکت ها محصور شود.

بیانیه انتخاب پرونده

عبارت Case به شما امکان می دهد بین چندین گزینه انتخاب کنید.

عملگر متغیر تشکیل شده است

از اصطلاحاتی به نام انتخاب کننده ،

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

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

انتخاب کننده می تواند یک متغیر یا یک عبارت باشد.

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

مجاز.

نوع سوئیچ و انواع ثابت باید سازگار باشد.

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

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

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

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

1) مقدار انتخاب کننده محاسبه می شود.

2) نتیجه بدست آمده متعلق به لیست خاصی از ثابت ها است.

3) اگر چنین لیستی یافت شود ، دیگر بررسی های دیگر انجام نمی شود ، اما اپراتور مربوط به آن

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

ساخت مورد؛

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

پس هیچ کاری انجام نمی شود

در یک بیانیه انشعاب ، فقط یک جمله در همه شعب قابل اجرا است!

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

فهرست موارد mod 4 از

1: x: \u003d y * y - 2 * y؛

11. عملگر گزینه (انتخاب) در پاسکال. توضیحات و استفاده

عملگر انتخاب (گزینه ، سوئیچ) انتخاب یکی از گزینه های ممکن ، یعنی. گزینه های ادامه برنامه

قالب ضبط:

مورد - انتخاب ، گزینه؛

S - انتخاب کننده ، بیان نوع معمولی.

Ki - ثابت انتخاب ، ثابت که نوع آن مطابق با نوع انتخاب کننده است.

OPi - هر اپراتور از جمله خالی؛

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

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

نمودار بلوک اپراتور انتخاب.

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

12. انواع اپراتورهای حلقه در پاسکال ، هدف آنها.

5- ساخت الگوریتمی چرخه ها. انواع چرخه ها.

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

12.13 حلقه حساب.در یک چرخه حسابی ، تعداد مراحل آن (تکرارها) بطور جداگانه توسط قاعده برای تغییر پارامتر مشخص می شود ، که با استفاده از مقادیر اولیه (N) و نهایی (K) پارامتر و مرحله (h) تغییر آن تنظیم می شود. یعنی در مرحله اول چرخه ، مقدار پارامتر برابر N است ، در دوم - N + ساعت ، در سوم - N + 2h و غیره. در آخرین مرحله چرخه ، مقدار پارامتر از K بیشتر نیست ، اما به گونه ای که تغییر بیشتر آن منجر به یک مقدار بیشتر از K می شود.

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

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

برای<имя счетчика цикла> = <начальное значение> به<конечное значение> انجام دادن<оператор>;

FOR، TO، DO - کلمات محفوظ است (انگلیسی: for، to، اجرایی)؛

<счетчик (параметр) цикла> - متغیری از نوع INTEGER ، که در فاصله زمانی از تغییر می کند<начального значения>افزایش در یک مرحله در پایان هر مرحله از چرخه.

<оператор> - هر عملگر (بیشتر اوقات مرکب).

شکل دیگری از این اپراتور وجود دارد:

برای<имя счетчика цикла>:= <начальное значение> پایین<конечное значение> انجام دادن<оператор> :

جایگزینی TO توسط DOWNTO (انگلیسی: down to) به این معنی است که مرحله تغییر پارامتر چرخه - 1 است ، یعنی کاهش گام به گام شمارنده توسط یک اتفاق می افتد.

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

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

در حالی که<условие> انجام دادن<оператор>;

WHILE، DO - کلمات محفوظ است (انگلیسی: bye، to do)؛

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

<оператор> - یک اپراتور دلخواه (احتمالاً مرکب).

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

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

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

این اپراتور فرم دارد:

تکرار<тело цикла> تا زمان<условие>:

تکرار ، UNTIL - کلمات رزرو شده (انگلیسی: تکرار تا نه)؛

<условие> - عبارتی از نوع منطقی ، اگر مقدار آن صحیح باشد ، حلقه خارج می شود.

لازم به ذکر است که در این ساخت و ساز توالی عبارات تعیین کننده بدنه حلقه در براکت های اپراتور BEGIN ... END محصور نشده است ، زیرا آنها جفت REPEAT ... UNTIL هستند.

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

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

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

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

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

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

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

برای توصیف چنین مواردی در برنامه نویسی ، ابتدا باید در بخش توضیحات نوع ، نوع مناسب را وارد کنید.

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

نام نوع \u003d آرایه [نوع فهرست (های)] از نوع عنصر؛

نام متغیر: نام نوع؛

متغیر آرایه را می توان به طور مستقیم در بخش توضیحات متغیر Var شرح داد:

نام متغیر Var: array [نوع شاخص (ها)] از نوع عناصر؛

Array - یک کلمه سرویس (از انگلیسی ترجمه شده به معنی "array").

از - یک کلمه خدمات (از انگلیسی ترجمه شده است به معنی "از").

نوع فهرست - هر نوع ترتیب ، به جز انواع صحیح ، شماره های میانبر.

نوع خود عناصر می توانند هر چیزی باشند به جز نوع پرونده.

به تعداد عناصر موجود در یک آرایه ابعاد آن گفته می شود. محاسبه آسان است که با آخرین روش توصیف مجموعه شاخصها ، ابعاد آرایه: حداکثر مقدار شاخص - حداقل مقدار شاخص + 1.

مثلا:

mas \u003d آرایه واقعی؛

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

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

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

نوع bb \u003d Array [-5..3] Boolean؛

آرایه ها از این نوع شامل 9 متغیر بولی شماره گذاری شده از -5 به 3 خواهد بود.

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

یک آرایه دو بعدی پاسکال را با ابعاد 3 * 3 در نظر بگیرید ، یعنی سه خط خواهد داشت و هر خط دارای سه عنصر است:

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

توضیحات یک آرایه پاسکال دو بعدی.

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

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

اقدامات اساسی با آرایه های دو بعدی پاسکال

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

ماتریس \u003d آرایه عدد صحیح؛

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

21. فناوری های کار با اسناد متنی. ویرایشگرها و پردازنده های متن: هدف و قابلیت ها.

ویرایشگرهای پیشرفته تر متن (برای مثال ، Microsoft Word و OpenOffice.org Writer) ، که گاه به آن پردازشگرهای word گفته می شود ، دارای طیف گسترده ای از قابلیت های ایجاد اسناد (درج لیست ها و جداول ، چک های املایی ، صرفه جویی در اصلاحات و غیره) هستند.

برای آماده سازی برای انتشار کتاب ، مجله و روزنامه در روند نمونه سازی انتشار ، از برنامه های قدرتمند پردازش کلمه استفاده می شود - سیستم های انتشار دسکتاپ (به عنوان مثال ، Adobe PageMaker ، ناشر Microsoft Office).

برای تهیه صفحات وب و وب سایت ها برای انتشار در اینترنت ، از برنامه های تخصصی (مانند Microsoft FrontPage) استفاده می شود.

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

ویرایش تحولی است که محتوای یک سند را اضافه ، حذف ، انتقال یا تصحیح می کند. ویرایش یک سند معمولاً با اضافه کردن ، حذف یا جابجایی کاراکترها یا متن ها انجام می شود.

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

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

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

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

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

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

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

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

22.Basic عناصر ساختاری سند متن فونت ها ، سبک ها ، قالب ها.

قالب بندی قلم (کاراکتر).

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

قلم مجموعه کاملی از شخصیت ها به سبک خاص است. هر قلم نام خاص خود را دارد ، به عنوان مثال Times New Roman ، Arial ، Comic Sans MS. واحد قلم نقطه (1 pt \u003d 0.367 میلی متر) است. اندازه قلم را می توان در طیف گسترده ای تغییر داد. علاوه بر سبک معمولی (عادی) از شخصیت ها ، معمولاً از حروف برجسته ، ایتالیایی و جسورانه استفاده می شود.

قلمهای Bitmap و بردار با نحوه ارائه در رایانه متمایز می شوند. روش های استفاده شده برای نمایش قلم های بیت مپ هستند گرافیک bitmap، کاراکترهای قلم گروههای پیکسلی هستند. فونت های Bitmap فقط توسط فاکتورهای خاصی قابل اندازه گیری هستند.

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

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

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

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

24... بانک اطلاعات یک مدل اطلاعاتی است که به شما امکان می دهد داده های منظم را درباره گروهی از اشیاء که دارای همان مجموعه ای از خصوصیات هستند ، ذخیره کنید.

چند وجود دارد انواع متفاوت بانکهای اطلاعاتی: جدولی (رابطه ای) ، سلسله مراتبی و شبکه.

پایگاه داده های جداول.

بانک اطلاعاتی جدولی شامل لیستی از اشیاء از همان نوع است ، یعنی اشیاء با همان مجموعه ای از خصوصیات. نمایش چنین بانک اطلاعاتی به عنوان یک جدول دو بعدی مناسب است.

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

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

به طور خلاصه ، ویژگی های یک پایگاه داده رابطه می تواند به صورت زیر تنظیم شود:

1.Data در جداول متشکل از ستون ("ویژگی" ، "زمینه") و ردیف ("سوابق") ذخیره می شود.

2. دقیقا یک مقدار در تقاطع هر ستون و خط وجود دارد.

3. هر ستون نام خاص خود را دارد که به عنوان نام خود عمل می کند و کلیه مقادیر موجود در یک ستون از یک نوع است.

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

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

6. به عنوان یک قاعده ، اطلاعات در پایگاه های داده نه در یک جدول بلکه در چندین جدول به هم پیوسته ذخیره می شوند.

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

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

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

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

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

عددی؛

نمادین؛

منطقی

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

سیستم های مدیریت پایگاه داده (DBMS).

برای ایجاد دیتابیس و همچنین انجام عملیات جستجو و مرتب سازی وجود دارد برنامه های ویژه - سیستم های مدیریت پایگاه داده (DBMS).

بنابراین ، لازم است بین پایگاه داده واقعی (DB) - مجموعه داده های سفارش یافته و سیستم های مدیریت پایگاه داده (DBMS) - برنامه هایی که مدیریت ذخیره و پردازش داده ها را دارند ، تمایز قائل شویم. به عنوان مثال ، برنامه دسترسی در مجموعه دفتر موجود است برنامه های مایکروسافت Office یک سیستم مدیریت پایگاه داده است که به کاربر امکان ایجاد و دستکاری بانکهای اطلاعاتی را می دهد.

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

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

تعداد ستون ها؛

نام ستون ها؛

انواع ستون (متن / شماره / تاریخ)؛

عرض ستون

وظایف اصلی DBMS:

مدیریت داده ها در حافظه خارجی (روی دیسک ها)؛

مدیریت داده ها در حافظه دسترسی تصادفی;

ورود به سیستم تغییرات و بازیابی بانک اطلاعاتی پس از عدم موفقیت؛

پشتیبانی از زبانهای پایگاه داده (زبان تعریف داده ها ، زبان دستکاری داده ها).

در دستورات DBMS ، شرط انتخاب به صورت یک عبارت منطقی نوشته می شود.

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

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

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

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

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

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

اتحادیه دو (یا چند) جمله با استفاده از اتحادیه "یا" به عنوان عملکرد اضافه یا منطقی منطقی شناخته می شود.

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

اتصال ذره ای "نه" به بیانیه عملی نفی منطقی یا وارونگی است.

27. صفحه گسترده ، هدف و کارکردهای اساسی.

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

صفحه گسترده ای از ستون ها و ردیف ها تشکیل شده است. عناوین ستون با حروف یا ترکیب حروف (A ، G ، AB ، و غیره) ، عناوین ردیف بر اساس اعداد (1 ، 16 ، 278 و غیره) تعیین می شوند. Cell تقاطع یک ستون و یک ردیف است.

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

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

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

یک فرمول باید با یک علامت برابر شروع شود و می تواند شامل شماره ها ، نام سلول ها ، توابع (ریاضی ، آماری ، مالی ، تاریخ و زمان و غیره) و علائم عملکرد ریاضی باشد. به عنوان مثال فرمول "\u003d A1 + B2" اعداد ذخیره شده در سلول های A1 و B2 را اضافه می کند و فرمول "\u003d A1 * B" تعداد ذخیره شده در سلول A1 را با 5 ضرب می کند. وقتی وارد یک فرمول می شوید ، سلول خود فرمول را نشان نمی دهد ، و نتیجه محاسبات با استفاده از این فرمول اگر مقادیر اصلی موجود در فرمول را تغییر دهید ، نتیجه بلافاصله محاسبه می شود.

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

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

اگر علامت دلار در مقابل یک حرف باشد (برای مثال: A1 $) ، آنگاه مختصات ستون مطلق است و ردیف ها نسبی هستند. اگر علامت دلار در مقابل عدد باشد (مثلاً A 1 دلار) ، برعکس ، مختصات ستون نسبی است و ردیف ها مطلق هستند. به این پیوندها پیوندهای مختلط گفته می شود.

بگذارید ، به عنوان مثال ، فرمول \u003d A $ 1 + $ J31 در سلول C1 نوشته شود ، که وقتی در سلول D2 کپی می شود ، تبدیل می شود \u003d B $ 1 + $ B2. پیوندهای نسبی هنگام کپی کردن تغییر کردند ، اما پیوندهای مطلق انجام نشد.

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

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

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

28. فناوری پردازش اطلاعات در جداول الکترونیکی (ET). ساختار صفحه گسترده.

صفحه گسترده یک برنامه پردازش داده عددی است که داده ها را در جداول مستطیل ذخیره و پردازش می کند. صفحه گسترده ای از ستون ها و ردیف ها تشکیل شده است. عناوین ستون با حروف یا ترکیب حروف (A ، G ، AB ، و غیره) ، عناوین ردیف بر اساس اعداد (1 ، 16 ، 278 و غیره) تعیین می شوند. Cell تقاطع یک ستون و یک ردیف است. هر سلول در جدول آدرس خود را دارد. آدرس سلولی صفحه گسترده از یک ستون ستون و یک هدر ردیف تشکیل شده است ، به عنوان مثال: Al ، B5 ، E7. سلولی که برخی از اعمال آن انجام می شود با یک قاب برجسته می شود و فعال نامیده می شود. صفحه گسترده ای که کاربر در برنامه با آن کار می کند ، صفحات کار خوانده می شود. می توانید همزمان همزمان داده ها را بر روی چندین کاربرگ وارد کرده و آنها را تغییر داده و محاسبات را بر اساس داده های چند صفحه انجام دهید. اسناد صفحه گسترده می تواند شامل چندین برگه کاری باشد و به آنها کتاب کار گفته می شود.

29. انواع داده ها در جداول الکترونیکی (ET): اعداد ، فرمول ها ، متن. قوانینی برای نوشتن فرمول.

انواع داده ها

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

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

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

فرمول باید با یک علامت مساوی شروع شود و می تواند شامل اعداد ، نام سلولها ، توابع (ریاضی ، آماری ، مالی ، تاریخ و زمان و غیره) و علائم ریاضی باشد: عملیات. به عنوان مثال فرمول "\u003d A1 + B2" اعداد ذخیره شده در سلول های A1 و B2 را اضافه می کند و فرمول "\u003d A1 * 5" تعداد ذخیره شده در سلول A1 را با 5 ضرب می کند. وقتی وارد یک فرمول می شوید ، سلول خود فرمول را نشان نمی دهد ، و نتیجه محاسبات با استفاده از این فرمول اگر مقادیر اصلی موجود در فرمول را تغییر دهید ، نتیجه بلافاصله محاسبه می شود.

قوانینی برای نوشتن فرمول در صفحه گسترده

1. فرمول ها حاوی شماره ، نام سلول ، علائم عملکرد ، پرانتز ، نام عملکرد هستند

2. عملیات حسابی و علائم آنها:

نام عملیات Symbol Key ترکیبی

علاوه بر + (Shift + + \u003d) یا (+) در صفحه کلید اضافی

منها کردن - (-)

ضرب * (Shift + 8) یا (*) در صفحه کلید اضافی

تقسیم / (Shift + | \\) یا (/) در صفحه کلید اضافی

exponentiation ^ (Shift + 6) به زبان انگلیسی

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

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

1. ارزان بودن

2. جمع ، تقسیم

3.اداده ، تفریق

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

5- فرمول ها را می توان در حالت نمایش محاسبه وارد کرد ، یعنی. کاربر شروع به نوشتن فرمول در سلول فعلی با علامت \u003d می کند و پس از فشار دادن کلید Enter ، نتیجه محاسبه فرمول در سلول نمایش داده می شود.

6. فرمول ها را می توان در حالت نمایش فرمول ها وارد کرد ، یعنی. کاربر یک فرمول بدون علامت \u003d را درون سلول فعلی می نویسد و فرمول پس از فشار دادن کلید Enter در سلول نمایش داده می شود.

30. توابع داخلی داخلی. منابع مطلق و نسبی در جداول الکترونیکی (ET).

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

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

اگر علامت دلار در مقابل یک حرف باشد (برای مثال: A1 $) ، آنگاه مختصات ستون مطلق است و ردیف ها نسبی هستند. اگر علامت دلار در مقابل عدد باشد (مثلاً A 1 دلار) ، برعکس ، مختصات ستون نسبی است و ردیف ها مطلق هستند. به این پیوندها پیوندهای مختلط گفته می شود. به عنوان مثال ، فرض کنید سلول C1 حاوی فرمول \u003d A $ 1 + $ B1 است که وقتی در سلول D2 کپی می شود ، تبدیل می شود \u003d B $ 1 + $ B2. پیوندهای نسبی هنگام کپی کردن تغییر کردند ، اما پیوندهای مطلق انجام نشد.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    نوع ذکر شده

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      نمایش راه حل:

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

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

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

      نمایش راه حل:

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

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

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

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

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

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

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

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

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

    نوع 5: بسته به نام گل ، آن را به کدام فصول سال اختصاص دهید:

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

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

    {!LANG-9a8539da0149016440b901e01017b3ac!}

    {!LANG-430e39bc7bcbcbac9a433d014b57b5a2!}

    {!LANG-76bbf44ce9538192801da1aa059fff51!}

    {!LANG-5f37ec87af4edcc2f76af90f37707c82!}

    {!LANG-b3d0e2aa84871b5bff774205913c08a9!}

    {!LANG-9d1bfffeb6ea5544009f55f385c10dda!}

    {!LANG-d93fea3eab240f1261dd752825556a29!}

    {!LANG-15a4750846fde8d5e2aae750be68188a!}

    {!LANG-fde3efe3bde4e1d3d57a09b2ff1947b1!}

    2147483648 +2147483647

    {!LANG-7124acfe8c809d463d514a454686a55e!}

    {!LANG-44a8e995fedcd1845ba0e76e6e447954!}

    {!LANG-6731b2b15f1c12107570035ce733d253!}

    {!LANG-796df03ad45f1106b72dcdda30b665e2!}

    1. {!LANG-81e702807760890abd252ff850741525!}
    2. {!LANG-5b410405b0d9c5b03b6f9d7953d5aba0!}
    3. {!LANG-5c21a159828918e65ccbd96902061624!}

    {!LANG-3a093ba441150758f7bc1f6654ac6da4!}

    {!LANG-b9dd46cce04ade26a74da0180eb17c11!}

    {!LANG-3ab41f6d5dfb64ec26b2334092f4fe80!}

    {!LANG-af8a627c27de1333ac8822cb1e416c9c!}

    {!LANG-acaf48bbf98f583495a097256b3a5126!}

    {!LANG-e1f3d1593bf06467d8cf502c71d02b2d!}

    {!LANG-ce910165b939dfcbde974f7fcafd5c51!}

    {!LANG-8d32d8ba71cc6c5f47a2ebb17c21a06a!}

    {!LANG-68dc95829d1d0860d8d08ffb0b071eac!}

    {!LANG-44c7e1106fe336e7714f97c71320aeed!}

    {!LANG-8c47655bb8e11877c42bbe496b2a7c6f!}

    {!LANG-0ab011296aca507cb87abb81679e0279!}

    {!LANG-cdef3e4ceae5ecb6bd78a7a479731ee4!}

    {!LANG-edbe3727048f2d3c64c458d98e32b4f1!}

    {!LANG-23916f10d81321677cfbe5d37cd6d361!}

    {!LANG-5af5d370c7ee760b0c980fb59285c155!}

    {!LANG-f0f0695626d8d0f4f9fce8b8db1fb6b6!}

    {!LANG-9d1bfffeb6ea5544009f55f385c10dda!}

    {!LANG-0c0c368292bd42a40df5bf0e21826be5!}

    {!LANG-ce32c9ec9b8086b204f8103878948a11!}

    {!LANG-e80f5c0247690ef6767156866ce821fd!}

    {!LANG-cd145e10a1136aeee4d12f88efd2a898!}

    {!LANG-7bd3b3140ce6b46355f462698ab824e3!}

    {!LANG-a45d154aac45e1379140ca59a3db1728!}

    {!LANG-f07c572e4bbbfda52e4cef0c95194eb8!}

    • {!LANG-b21a38f870a88fa4408187ad168584fb!}
    • {!LANG-74d0be63aabc0e6e6f39beab984e98f9!}
    • {!LANG-cf68b58b439466fb2e4448e578a08617!}
    • {!LANG-8b4fcb731a2b9cde1da4cdec6f195e88!}
    • {!LANG-3ba8759b387f4a3d9c4e4840bc58aa42!}
    • {!LANG-e7278bce09f786f20588b65871992843!}
    • {!LANG-a16bb42909645444347794ab53064fd4!}
      • {!LANG-90b829f3da9a6a393cd0bff5f9c65081!}
      • {!LANG-b9b59934e07f7f69114563bd7a22f820!}
    • {!LANG-d44b94106f89077fd8ff42ea9f54e1ec!}
      • {!LANG-f2cf1a5d8ffb13709b8483a0ce2fe8cd!}
      • {!LANG-e37d23a234a927a984226db977cff2db!}
      • {!LANG-1b79f5b916826c21892fca177d09d1b3!}
      • {!LANG-7379c1a88af717cc6ce097be6081ed71!}

    {!LANG-552357ee3d1a1cf988fd51572d7b0429!}

    {!LANG-d76ba0cbe8b2646a335bfa23326e0ccd!}

    مثلا:

    {!LANG-2dc08ee74e0d7373b540a85382734d41!}

    {!LANG-9c932e76dd90bdecd1404fc946cfb64a!}

    {!LANG-e79a66c2e0285888b54fe63a1483d4c3!}

    {!LANG-3011c8045002629691c0fef0143dfedd!}

    {!LANG-f82cd7228da499f905a84ca8d81b72a6!}

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

    {!LANG-066ee6346a9649bd9ad43e26be105992!}< ‘W’

    {!LANG-c4ddfe631dd864c6f21a28906457e385!}

    1. {!LANG-c15ef462a16447478b00d668a920aa55!}
    2. {!LANG-fdcad6456bdfb89269213eeac286c485!}
    3. {!LANG-9b9df1df361eddf3dc31ae2fdcc7dc3c!}
    4. {!LANG-5f2aa2cf9a632e7e33274ab62d9b5554!}

    {!LANG-52b3827c88264ed7a5295de75aac14ef!}

    {!LANG-87e8462f317746a901ae06b5997549c1!}

    {!LANG-506fd0f1761fe1408000b1c7d1397c49!}<имя типа>{!LANG-d0bdeab691815b515ff9cc9c6b6473d7!}<имя переменной>:<имя типа>;

    {!LANG-b4105a8365f96fbf4ef90b1000a2102e!}<список констант>{!LANG-e51f1b13962f7419c7ad45082a4ee884!}

    مثلا:

    {!LANG-a8532071ccd14f7b92fbe060697c55c7!}

    {!LANG-ae48852fda0a28bedc4e2d50b61e5da5!}

    {!LANG-f6c637bcf80c40c6885e83dfc529aae2!}

    {!LANG-3acefeb4044d8d72b96c06c9aa2cf2cb!}

    {!LANG-57a0212da5b9616d8e6f6a4f1b90f751!}

    {!LANG-20d0237248fbdaba33743c5e8c7a345c!}

    {!LANG-3aa1cf2b8aec2f64e88580927422fad3!}

    {!LANG-34a519820d8ca363d229802dcb0af5f9!}

    {!LANG-469729bd6759f326331992fc4e7873ee!}

    {!LANG-75f7994fcaba4e867c26e6cd082c4653!}

    {!LANG-271c4586b9199b2f68bca5b456431eae!}< юг, июнь < январь имеют значения TRUE, а юг>{!LANG-f25a1e01c983e62c597437bcb6f4957e!}<бочка значение FАLSE.

    {!LANG-fc495093385ff53a0a0850d79957a37e!}

    {!LANG-a8dc54d4f38b45ea510346b4c2771d62!}

    {!LANG-51c2ecd3d6086f4e0c35176e891b7a39!}

    {!LANG-f86c83953689d94772e6d35e50803e7e!}<имя типа>{!LANG-b2df41d53d55952f29d74e0e765158f4!}

    {!LANG-46ff07fcf73c42eb9a27f55e327ff0c7!}

    1. {!LANG-63497ea4092123926fa15aa8490a3b91!}
    2. {!LANG-8972ccda69bfc42449fe4aa6af6b4090!}
    3. {!LANG-2e97052cda7b2a7afe457ce46abfeb64!}
    {!LANG-c1f28761fbe40f36b1f340fc1c139e2b!}

    {!LANG-c98a9b152167fd24cc03b73d61ad8883!}

    {!LANG-3dc67fbb368474071d974e00e3c5116c!}

    زنگ

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