ประเภทภาษาปาสคาลแบบง่ายที่กำหนดเอง ประเภทของตัวแปรในภาษาปาสคาล: คำอธิบาย คุณสมบัติ ตัวอย่าง

ในโปรแกรมใด ๆ คุณต้องกำหนดประเภทและประเภทของปริมาณที่จะใช้ในการแก้ปัญหา ในลักษณะที่ปรากฏ ปริมาณอย่างง่าย (ในการเขียนโปรแกรมเรียกว่าข้อมูลทั้งหมด) จะแบ่งออกเป็นค่าคงที่และตัวแปร

ค่าคงที่เป็นข้อมูลที่มีค่าไม่สามารถเปลี่ยนแปลงได้ระหว่างการทำงานของโปรแกรม เปิดตัวในบล็อก const

โดยทั่วไป คำอธิบายของค่าคงที่ที่ไม่ได้พิมพ์อย่างง่ายจะทำดังนี้:

Const Constant_name = นิพจน์;

ค่าคงตัวที่พิมพ์ถูกอธิบายเป็น:

Const Constant_name: ประเภท = นิพจน์;

สามารถใช้นิพจน์:

ตัวเลขหรือชุดอักขระในเครื่องหมายอัญประกาศเดี่ยว

· การดำเนินการทางคณิตศาสตร์

การดำเนินการเชิงสัมพันธ์และตรรกะ

ฟังก์ชั่น abs(x), รอบ(x),trunc(x);

ฟังก์ชัน chr(x), ord(x), pred(x), succ(x) และอื่นๆ

รูปแบบคำอธิบายคงที่:

รหัส = ค่า;

1. จำนวนเต็ม - กำหนดโดยตัวเลขที่เขียนในรูปแบบทศนิยมหรือเลขฐานสิบหกที่ไม่มีจุดทศนิยม

2. จริง - ถูกกำหนดโดยใช้ตัวเลขที่เขียนในรูปแบบข้อมูลทศนิยม

3. ตัวอักษร - นี่คืออักขระใด ๆ ของคอมพิวเตอร์ส่วนบุคคลที่อยู่ในเครื่องหมายอัญประกาศเดี่ยว

4. สตริง - ถูกกำหนดโดยลำดับของอักขระตามอำเภอใจที่อยู่ในเครื่องหมายอัญประกาศเดี่ยว

5. บูลีนเป็น False หรือ True

ประเภทของค่าคงที่ไม่ได้ระบุ แต่จะถูกกำหนดโดยอัตโนมัติระหว่างการคอมไพล์: ค่าของนิพจน์จะได้รับการประเมินทันทีและต่อมาจะแทนที่ด้วยชื่อเท่านั้น

ตัวแปรเป็นข้อมูลที่สามารถเปลี่ยนแปลงได้ระหว่างการทำงานของโปรแกรม ตัวแปรแต่ละตัวมีชื่อตำแหน่งหน่วยความจำของตัวเอง เหล่านั้น. ตัวแปรคือคอนเทนเนอร์ชนิดหนึ่งที่คุณสามารถใส่ข้อมูลบางส่วนและเก็บไว้ที่นั่นได้ ตัวแปรมีชื่อ ประเภท และค่า

ชื่อตัวแปร - ต้องขึ้นต้นด้วยตัวอักษร ห้ามเว้นวรรค และมีได้เฉพาะ:

ตัวอักษรละติน;

เครื่องหมายขีดล่าง

ตัวอย่าง: A, A_1, AA, i, j, x, y เป็นต้น ชื่อไม่ถูกต้อง: My 1, 1A. ชื่อตัวแปรสามารถมีความยาวได้สูงสุด 126 อักขระ ดังนั้น พยายามเลือกชื่อตัวแปรที่สื่อความหมาย อย่างไรก็ตาม คอมไพเลอร์รู้จักอักขระ 63 ตัวแรกในชื่อ แต่จะไม่แยกความแตกต่างระหว่างตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ทั้งในชื่อตัวแปรและตัวระบุบริการที่เป็นลายลักษณ์อักษร

ประเภทตัวแปร - ต้องกำหนดในบล็อคการประกาศตัวแปร VAR ค่าของตัวแปรเป็นค่าคงที่ประเภทเดียวกัน

ทุกโปรแกรมทำงานกับข้อมูล ข้อมูลคือวัตถุที่โปรแกรมประมวลผลในความหมายที่กว้างที่สุด ประเภทที่กำหนดเป็นลักษณะของมัน ขึ้นอยู่กับประเภท:

ข้อมูลนี้จะถูกจัดเก็บอย่างไร?

จำนวนเซลล์หน่วยความจำที่จะจัดสรรสำหรับที่เก็บข้อมูล

ค่าต่ำสุดและค่าสูงสุดที่รับได้คือเท่าใด

การดำเนินการใดที่สามารถดำเนินการได้

ประเภทข้อมูล Pascal อย่างง่ายบางประเภท:

1. ประเภทจำนวนเต็ม (ShortInt, Integer, LongInt, Byte, Word)

2. ประเภทจริง (Real, Single, Double, Extended, Comp)

3. บูลีน

4. สัญลักษณ์ (ถ่าน).

5. ประเภทของสตริง (String, String[n])

9. ตัวดำเนินการแบบไม่มีเงื่อนไขในภาษาปาสคาล คำอธิบายและการใช้งาน

ประเภทผู้ประกอบการ

ไปที่<метка>;

วัตถุประสงค์ - การถ่ายโอนการควบคุมในโปรแกรมไปยังผู้ปฏิบัติงานที่มีป้ายกำกับ<метка>. ป้ายชื่อสามารถเป็นชื่อ (เขียนตามกฎสำหรับชื่อภาษา) หรือเลขจำนวนเต็มที่ไม่มีเครื่องหมาย อธิบายไว้ในคำอธิบายป้ายชื่อ operationLabel และยืนอยู่หน้าตัวดำเนินการที่มีป้ายชื่อ แต่จะอยู่ในที่เดียวในโปรแกรม ป้ายกำกับถูกแยกออกจากโอเปอเรเตอร์ด้วยอักขระ ":" การข้ามไปที่ป้ายกำกับอาจเกิดขึ้นได้หลายครั้งในบล็อก หากไม่มีการถ่ายโอนการควบคุมไปยังฉลากบางส่วน จะไม่มีข้อผิดพลาด

โดยทั่วไปไม่อนุญาตให้ใช้ตัวดำเนินการสาขาแบบไม่มีเงื่อนไขในการเขียนโปรแกรมเชิงโครงสร้าง แม้ว่าจะช่วยให้คุณสามารถย่อข้อความของโปรแกรมได้ แต่การใช้งานใน Pascal นั้นถูกจำกัดด้วยกฎและคำแนะนำจำนวนหนึ่ง ห้ามมิให้กระโดดเข้าไปในคำสั่งผสม ภายในหรือไปยังจุดเริ่มต้นของรูทีนย่อย และออกจากรูทีนย่อยไปยังโปรแกรมที่เรียกใช้ ไม่แนะนำให้ข้ามไปเกินหน้า (หน้าจอ) ของข้อความโปรแกรม ยกเว้นการข้ามไปยังคำสั่งสุดท้ายของโปรแกรม ทั้งหมดนี้เกิดจากความเป็นไปได้ที่จะข้ามข้อความสำคัญเพื่อการทำงานที่ถูกต้องของโปรแกรม โดยปกติแล้ว ตัวดำเนินการสาขาแบบไม่มีเงื่อนไขจะใช้เพื่อกลับไปยังจุดเริ่มต้นของเนื้อหาลูปเท่านั้น หากสร้างลูปโดยใช้ตัวดำเนินการแบบมีเงื่อนไขและไม่มีเงื่อนไข

โปรดทราบว่าคำสั่งที่ตามหลัง goto จะต้องติดป้ายกำกับอื่นด้วย (เว้นแต่ว่า goto จะเป็นอันสุดท้ายในกลุ่มคำสั่ง) มิฉะนั้นจะไม่มีทางไปที่คำสั่ง goto ถัดไป

10. ผู้ดำเนินการสาขาในภาษาปาสคาล คำอธิบายและการใช้งาน

ตัวดำเนินการที่ให้คุณเลือกหนึ่งในหลายตัวเลือกที่เป็นไปได้สำหรับการดำเนินการโปรแกรม (สาขา) ได้แก่

เหล่านั้น. ข้อความเหล่านี้อนุญาตให้คุณเปลี่ยนลำดับการดำเนินการตามธรรมชาติของคำสั่งโปรแกรม

ถ้า<условие>แล้ว< оператор 1 >

อื่น<оператор 2> ;

ถ้า a>=b แล้ว Max:=a อื่น Max:=b;

ในคำสั่ง if คำสั่งเดียวเท่านั้นที่สามารถดำเนินการได้ทั้งสองสาขา (แล้วและที่อื่น ๆ )!

ตัวอย่างงานเกี่ยวกับตัวดำเนินการแยกสาขาในภาษาปาสคาล ป้อนจำนวนเต็มสองจำนวนและแสดงจำนวนเต็มที่ใหญ่ที่สุด

แนวคิดของการแก้ปัญหา: คุณต้องแสดงตัวเลขแรกหากมากกว่าตัวเลขที่สองหรือตัวเลขที่สองหากมากกว่าตัวเลขแรก

คุณสมบัติ: การกระทำของนักแสดงขึ้นอยู่กับเงื่อนไขบางประการ (ถ้า ... มิฉะนั้น ...)

var a, b, max: จำนวนเต็ม;

writeln("ป้อนจำนวนเต็มสองจำนวน");

ถ้า a > b แล้ว max:=a อื่น max:=b;

writeln("จำนวนมากที่สุด", สูงสุด);

เงื่อนไขที่ยากลำบาก

เงื่อนไขที่ซับซ้อนคือเงื่อนไขที่ประกอบด้วยเงื่อนไขง่าย ๆ (ความสัมพันธ์) หลายอย่างที่เชื่อมโยงกันด้วยความช่วยเหลือของตรรกะ

การดำเนินงาน:

ไม่ - ไม่ (ปฏิเสธ, ผกผัน)

และ - และ (การคูณเชิงตรรกะ การรวมกัน

ทำตามเงื่อนไขพร้อมกัน)

หรือ - OR (การบวก การแยกทางตรรกะ

ปฏิบัติตามเงื่อนไขอย่างน้อยหนึ่งข้อ)

Xor - พิเศษหรือ (ดำเนินการเท่านั้น

หนึ่งในสองเงื่อนไข แต่ไม่ใช่ทั้งสองเงื่อนไข)

เงื่อนไขง่ายๆ (ความสัมพันธ์)

< <= > >= = <>

ลำดับการดำเนินการ (ลำดับความสำคัญ = ลำดับความสำคัญ)

นิพจน์ในวงเล็บ

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

คุณลักษณะ - เงื่อนไขง่ายๆ แต่ละข้อจะต้องอยู่ในวงเล็บเหลี่ยม

คำแถลงการเลือกกรณี

คำสั่งกรณีให้คุณเลือกระหว่างหลายตัวเลือก

ตัวดำเนินการตัวแปรประกอบด้วย

จากนิพจน์ที่เรียกว่า Selector

Ø และรายการตัวดำเนินการ แต่ละตัวทำเครื่องหมายด้วยค่าคงที่ประเภทเดียวกับตัวเลือก

ตัวเลือกต้องเป็นประเภทข้อมูลลำดับเท่านั้น ไม่ใช่ longint

ตัวเลือกสามารถเป็นตัวแปรหรือนิพจน์

รายการค่าคงที่สามารถระบุเป็นการแจงนับที่ชัดเจน เช่นเดียวกับช่วงเวลาหรือยูเนียน การทำซ้ำของค่าคงที่ไม่ได้

อนุญาต.

ประเภทของสวิตช์และประเภทของค่าคงที่ทั้งหมดจะต้องเข้ากันได้

กรณี< выражение {селектор}>ของ

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

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

คำสั่งกรณีดำเนินการดังนี้:

1) คำนวณค่าของตัวเลือก

2) ผลลัพธ์ที่ได้รับจะถูกตรวจสอบว่าเป็นของรายการค่าคงที่หนึ่งหรือรายการอื่น

3) หากพบรายการดังกล่าวจะไม่มีการตรวจสอบเพิ่มเติม แต่จะระบุข้อความที่เกี่ยวข้อง

สาขาที่เลือก หลังจากนั้นการควบคุมจะถูกถ่ายโอนไปยังคำสั่งตามท้ายคีย์เวิร์ด ซึ่งปิดทั้งหมด

กรณีสร้าง;

4) หากไม่มีรายการค่าคงที่ที่เหมาะสม คำสั่งหลังคำหลัก else จะถูกดำเนินการ หากไม่มีสาขาอื่น

จากนั้นไม่มีอะไรทำ

ในคำสั่งสาขาของกรณี สามารถดำเนินการได้เพียงคำสั่งเดียวในทุกสาขา!

หากคุณต้องการดำเนินการหลายรายการ คุณต้องใช้ตัวดำเนินการวงเล็บเริ่มต้น-สิ้นสุด

กรณี Index mod 4 ของ

1: x:= y*y - 2*y;

11ตัวดำเนินการ .Option (การเลือก) ในภาษาปาสคาล คำอธิบายและการใช้งาน

ตัวดำเนินการเลือก (ตัวเลือก, สวิตช์) ใช้ตัวเลือกหนึ่งในทางเลือกที่เป็นไปได้ เช่น ตัวเลือกสำหรับการดำเนินโปรแกรมต่อไป

รูปแบบการบันทึก:

กรณี - ตัวเลือก, ตัวเลือก;

S – ตัวเลือก, นิพจน์ประเภทลำดับ;

Ki – ค่าคงที่การเลือก ค่าคงที่ที่มีประเภทเหมือนกับประเภทตัวเลือก

OPi - ตัวดำเนินการใด ๆ รวมถึงตัวดำเนินการที่ว่างเปล่า

ตัวดำเนินการที่เลือกดำเนินการก่อสร้างต่อไปนี้:

การทำงานของคำสั่ง Select ใน Pascal: นิพจน์ Selector ได้รับการประเมิน ค่าที่คำนวณได้จะถูกเปรียบเทียบตามลำดับกับค่าคงที่ทางเลือก และการควบคุมจะถูกส่งผ่านไปยังตัวดำเนินการค่าคงที่การเลือก ซึ่งตรงกับค่าตัวเลือกที่คำนวณ คำสั่งถูกดำเนินการและการควบคุมถูกถ่ายโอนภายนอกคำสั่งที่เลือก หากค่าที่คำนวณได้ของตัวเลือกไม่ตรงกับค่าคงที่ใด ๆ การควบคุมจะถูกโอนไปยังสาขาอื่นซึ่งไม่จำเป็นในกรณีนี้ การควบคุมจะถูกโอนไปนอกคำสั่งการเลือก

บล็อกไดอะแกรมของตัวดำเนินการเลือก

โครงสร้างคำสั่งทางเลือกสามารถนำไปใช้ได้โดยใช้คำสั่งเงื่อนไขที่ซ้อนกัน แต่จะลดการมองเห็นของโปรแกรม ไม่แนะนำให้ทำรังเกิน 2-3 ระดับ

12. ประเภทของตัวดำเนินการลูปในภาษาปาสคาล วัตถุประสงค์

5. การสร้างอัลกอริทึมของวัฏจักร ประเภทของวัฏจักร

อัลกอริทึมการวนซ้ำมีสามประเภท: การวนซ้ำที่มีพารามิเตอร์ (เรียกว่าลูปเลขคณิต) การวนซ้ำที่มีเงื่อนไขล่วงหน้า และการวนซ้ำที่มีเงื่อนไขภายหลัง (เรียกว่าการวนซ้ำ)

12.13 วงจรเลขคณิตในรอบเลขคณิต จำนวนขั้นตอน (การทำซ้ำ) ถูกกำหนดโดยไม่ซ้ำกันโดยกฎการเปลี่ยนแปลงพารามิเตอร์ ซึ่งระบุโดยใช้ค่าเริ่มต้น (N) และค่าสุดท้าย (K) ของพารามิเตอร์และขั้นตอน (h) ของ เปลี่ยน. นั่นคือในขั้นตอนแรกของการวนซ้ำค่าของพารามิเตอร์คือ N ที่สอง - N + h ที่สาม - N + 2h เป็นต้น ในขั้นตอนสุดท้ายของการวนซ้ำ ค่าของพารามิเตอร์ไม่เกิน K แต่การเปลี่ยนแปลงเพิ่มเติมจะนำไปสู่ค่าที่มากกว่า K

การนับลูปจะใช้เมื่อส่วนวงจรของโปรแกรมต้องทำซ้ำตามจำนวนครั้งที่กำหนด ลูปดังกล่าวมีตัวแปรประเภทจำนวนเต็มที่เรียกว่าตัวนับลูป

หากจำเป็นต้องทำซ้ำส่วนของโปรแกรมตามจำนวนครั้งที่กำหนดจะใช้โครงสร้างต่อไปนี้:

สำหรับ<имя счетчика цикла> = <начальное значение>ที่<конечное значение>ทำ<оператор>;

FOR, TO, DO - คำสงวน (อังกฤษ: for, before, execute);

<счетчик (параметр) цикла>- ตัวแปรประเภท INTEGER ซึ่งเปลี่ยนแปลงในส่วนจาก<начального значения>, เพิ่มขึ้นทีละอันเมื่อสิ้นสุดแต่ละขั้นตอนของลูป;

<оператор>- ตัวดำเนินการใด ๆ (โดยปกติจะเป็นแบบผสม)

มีรูปแบบอื่นของตัวดำเนินการนี้:

สำหรับ<имя счетчика цикла>:= <начальное значение>ลงไป<конечное значение>ทำ<оператор> :

การแทนที่ TO ด้วย DOWNTO (อังกฤษ: down to) หมายความว่าขั้นตอนของการเปลี่ยนพารามิเตอร์ของวงจรคือ - 1 นั่นคือ ตัวนับจะลดลงทีละหนึ่ง

12.14 ลูปที่มีเงื่อนไขเบื้องต้นจำนวนขั้นตอนการวนซ้ำไม่ได้กำหนดไว้ล่วงหน้าและขึ้นอยู่กับข้อมูลอินพุตของงาน ในโครงสร้างแบบวงกลมนี้ ค่าของนิพจน์เงื่อนไข (เงื่อนไข) จะได้รับการตรวจสอบก่อนดำเนินการขั้นตอนถัดไปของวงจร หากค่าของนิพจน์เงื่อนไขเป็นจริง เนื้อความของลูปจะถูกดำเนินการ หลังจากนั้น การควบคุมจะถูกถ่ายโอนไปยังการตรวจสอบสภาพอีกครั้ง และอื่นๆ การดำเนินการเหล่านี้จะเกิดขึ้นซ้ำจนกว่านิพจน์เงื่อนไขจะประเมินเป็น FALSE ครั้งแรกที่ไม่ตรงตามเงื่อนไข ลูปจะสิ้นสุดลง

ตัวดำเนินการซ้ำที่ใช้บ่อยที่สุดคือ:

ในขณะที่<условие>ทำ<оператор>;

WHILE, DO - คำสงวน (อังกฤษ: bye, do);

<условие>- นิพจน์ประเภทบูลีน

<оператор>เป็นตัวดำเนินการโดยพลการ (อาจผสม)

คุณลักษณะของวัฏจักรที่มีเงื่อนไขเบื้องต้นคือ หากนิพจน์เงื่อนไขเป็นเท็จในตอนแรก เนื้อหาของวัฏจักรจะไม่ถูกดำเนินการแม้แต่ครั้งเดียว

ลูปเงื่อนไขล่วงหน้าจะใช้เมื่อการดำเนินการของลูปเชื่อมโยงกับเงื่อนไขตรรกะบางอย่าง คำสั่งลูปที่มีเงื่อนไขเบื้องต้นมีสองส่วน: เงื่อนไขการดำเนินการลูปและเนื้อหาของลูป

12.15 วนซ้ำด้วย postcondition (วนซ้ำ)เช่นเดียวกับในลูปที่มีเงื่อนไขเบื้องต้น ในการสร้างวงจรที่มีเงื่อนไขภายหลัง จำนวนการทำซ้ำของเนื้อหาลูปจะไม่ได้กำหนดไว้ล่วงหน้า ขึ้นอยู่กับข้อมูลอินพุตของงาน ไม่เหมือนกับลูปที่มีเงื่อนไขล่วงหน้า เนื้อความของลูปที่มีเงื่อนไขภายหลังจะถูกดำเนินการอย่างน้อยหนึ่งครั้ง หลังจากนั้นจะมีการตรวจสอบเงื่อนไข ในโครงสร้างนี้ เนื้อหาของลูปจะถูกดำเนินการตราบเท่าที่ค่าของนิพจน์เงื่อนไขเป็นเท็จ ทันทีที่เป็นจริง การดำเนินการของคำสั่งจะหยุดลง

ตัวดำเนินการนี้มีลักษณะดังนี้:

ทำซ้ำ<тело цикла>จนกระทั่ง<условие>:

ทำซ้ำจนกระทั่ง - คำสงวน (อังกฤษ: ทำซ้ำจนกว่า);

<условие>- นิพจน์ประเภทบูลีน หากค่าเป็นจริง ลูปจะออกจากวงจร

ควรสังเกตว่าในโครงสร้างนี้ ลำดับของคำสั่งที่กำหนดเนื้อความของลูปไม่ได้อยู่ในวงเล็บตัวดำเนินการ BEGIN ... END เนื่องจากเป็นคู่ REPEAT ... UNTIL

ลูป Postcondition คล้ายกับลูป precondition แต่เงื่อนไขจะอยู่หลังตัวลูป

ซึ่งแตกต่างจากลูปที่มีเงื่อนไขล่วงหน้าซึ่งสามารถสิ้นสุดได้โดยไม่ต้องดำเนินการกับเนื้อหาของลูป (หากเงื่อนไขการดำเนินการเป็นเท็จในการผ่านครั้งแรกของลูป) เนื้อหาของลูปที่มีเงื่อนไขภายหลังจะต้องถูกดำเนินการอย่างน้อยหนึ่งครั้ง หลังจากนั้นเงื่อนไขจะเป็น ตรวจสอบแล้ว

หนึ่งในคำสั่งในเนื้อความของลูปต้องส่งผลต่อค่าของเงื่อนไขการดำเนินการของลูป มิฉะนั้น ลูปจะทำซ้ำเป็นจำนวนครั้งไม่สิ้นสุด

หากเงื่อนไขเป็นจริง ลูปจะออกจากการทำงาน มิฉะนั้นคำสั่งลูปจะถูกทำซ้ำ

16. อาร์เรย์- นี่คือชุดขององค์ประกอบประเภทเดียวกันซึ่งรวมกันเป็นชื่อสามัญและครอบครองพื้นที่หน่วยความจำในคอมพิวเตอร์ จำนวนองค์ประกอบในอาร์เรย์มีจำกัดเสมอ โดยทั่วไป อาร์เรย์คือประเภทข้อมูลที่มีโครงสร้างซึ่งประกอบด้วยองค์ประกอบประเภทเดียวกันในจำนวนคงที่ อาร์เรย์มีชื่อเป็นประเภทปกติ (หรือแถว) เพราะรวมองค์ประกอบประเภทเดียวกัน (เชิงตรรกะที่เป็นเนื้อเดียวกัน) เรียงลำดับ (ตัดสิน) โดยดัชนีที่กำหนดตำแหน่งของแต่ละองค์ประกอบในอาร์เรย์ ข้อมูลประเภทใดก็ได้สามารถใช้เป็นองค์ประกอบของอาร์เรย์ได้ ดังนั้น การมีอยู่ของอาร์เรย์ของเร็กคอร์ด อาร์เรย์ของพอยน์เตอร์ อาร์เรย์ของสตริง อาร์เรย์ ฯลฯ จึงค่อนข้างถูกต้อง องค์ประกอบอาร์เรย์สามารถเป็นข้อมูลประเภทใดก็ได้ รวมถึงข้อมูลที่มีโครงสร้าง ประเภทขององค์ประกอบอาร์เรย์เรียกว่าฐาน คุณลักษณะของภาษาปาสคาลคือจำนวนขององค์ประกอบอาร์เรย์คงที่ระหว่างคำอธิบายและไม่เปลี่ยนแปลงระหว่างการดำเนินการของโปรแกรม องค์ประกอบที่ประกอบเป็นอาร์เรย์จะเรียงลำดับในลักษณะที่แต่ละองค์ประกอบสอดคล้องกับชุดของตัวเลข (ดัชนี) ที่กำหนดตำแหน่งในลำดับโดยรวม แต่ละองค์ประกอบสามารถเข้าถึงได้โดยการจัดทำดัชนีองค์ประกอบอาร์เรย์ ดัชนีคือนิพจน์ของสเกลาร์ประเภทใดก็ได้ (มักเป็นจำนวนเต็ม) ยกเว้นค่าจริง ประเภทของดัชนีกำหนดช่วงของค่าดัชนี อาร์เรย์วลีของใช้เพื่ออธิบายอาร์เรย์

อาร์เรย์คือชุดของข้อมูลที่ทำหน้าที่คล้ายกันและแสดงด้วยชื่อเดียว ถ้าแต่ละองค์ประกอบของอาร์เรย์กำหนดเพียงหนึ่งในเลขลำดับ ดังนั้นอาร์เรย์ดังกล่าวจะเรียกว่าเชิงเส้นหรือหนึ่งมิติ

17. อาร์เรย์หนึ่งมิติเป็นจำนวนคงที่ของธาตุชนิดเดียวกัน รวมเป็นหนึ่งชื่อ แต่ละธาตุมีเลขเฉพาะของตนเอง และเลขธาตุเรียงติดต่อกัน

ในการอธิบายวัตถุดังกล่าวในการเขียนโปรแกรม ก่อนอื่นคุณต้องป้อนประเภทที่เหมาะสมในส่วนคำอธิบายประเภท

มีการอธิบายประเภทอาร์เรย์ดังนี้:

ชื่อประเภท = อาร์เรย์ [ประเภทของดัชนี] ของประเภทองค์ประกอบ;

ชื่อตัวแปร: ชื่อประเภท;

ตัวแปรประเภทอาร์เรย์สามารถประกาศได้ทันทีในส่วนการประกาศตัวแปร Var:

Var ชื่อตัวแปร: อาร์เรย์ [ประเภทของดัชนี] ของประเภทองค์ประกอบ;

อาร์เรย์ - คำบริการ (แปลจากภาษาอังกฤษแปลว่า "อาร์เรย์");

of เป็นคำบริการ (แปลจากภาษาอังกฤษแปลว่า "จาก")

ประเภทดัชนีคือประเภทลำดับใดๆ ยกเว้นจำนวนเต็มประเภท longint

ประเภทขององค์ประกอบสามารถเป็นอะไรก็ได้ยกเว้นประเภทไฟล์

จำนวนองค์ประกอบในอาร์เรย์เรียกว่าขนาด ง่ายต่อการคำนวณว่าด้วยวิธีสุดท้ายในการอธิบายชุดของดัชนี ขนาดของอาร์เรย์จะเท่ากับ: ค่าสูงสุดของดัชนี - ค่าต่ำสุดของดัชนี + 1

ตัวอย่างเช่น:

mas = อาร์เรย์ของจำนวนจริง;

อาร์เรย์ X เป็นหนึ่งมิติ ประกอบด้วยองค์ประกอบประเภทจริงยี่สิบรายการ องค์ประกอบของอาร์เรย์จะถูกจัดเก็บตามลำดับในหน่วยความจำของคอมพิวเตอร์

เมื่อใช้ตัวแปรเพื่อกำหนดดัชนี ค่าของตัวแปรจะต้องถูกกำหนด ณ เวลาที่ใช้งาน และในกรณีของนิพจน์ทางคณิตศาสตร์ ผลลัพธ์จะต้องไม่เกินขีดจำกัดของค่าต่ำสุดและสูงสุดของดัชนีอาร์เรย์

ดัชนีขององค์ประกอบอาร์เรย์สามารถเริ่มต้นด้วยจำนวนเต็ม รวมทั้งค่าลบด้วย ตัวอย่างเช่น

พิมพ์ bb = อาร์เรย์ [-5..3] ของบูลีน;

อาร์เรย์ประเภทนี้จะประกอบด้วยตัวแปรบูลีน 9 ตัว โดยมีหมายเลขตั้งแต่ -5 ถึง 3

18. อาร์เรย์ 2 มิติในภาษาปาสคาลถือว่าเป็นอาร์เรย์หนึ่งมิติที่มีประเภทองค์ประกอบเป็นอาร์เรย์ด้วย (อาร์เรย์ของอาร์เรย์) ตำแหน่งขององค์ประกอบในอาร์เรย์ Pascal สองมิติอธิบายด้วยสองดัชนี สามารถแสดงเป็นตารางสี่เหลี่ยมหรือเมทริกซ์

พิจารณาอาร์เรย์ Pascal สองมิติที่มีขนาด 3 * 3 นั่นคือจะมีสามแถวและแต่ละแถวจะมีสามองค์ประกอบ:

แต่ละองค์ประกอบมีหมายเลขของตัวเอง เช่น อาร์เรย์หนึ่งมิติ แต่ตอนนี้ ตัวเลขประกอบด้วยตัวเลขสองตัวแล้ว - หมายเลขของแถวที่องค์ประกอบนั้นตั้งอยู่ และหมายเลขของคอลัมน์ ดังนั้น หมายเลของค์ประกอบจะถูกกำหนดโดยจุดตัดของแถวและคอลัมน์ ตัวอย่างเช่น 21 เป็นองค์ประกอบในแถวที่สองและในคอลัมน์แรก

คำอธิบายของอาร์เรย์ปาสคาลสองมิติ

มีหลายวิธีในการประกาศอาร์เรย์ Pascal แบบสองมิติ

เรารู้วิธีอธิบายอาร์เรย์หนึ่งมิติแล้ว ซึ่งองค์ประกอบสามารถเป็นประเภทใดก็ได้ และด้วยเหตุนี้ องค์ประกอบเองก็สามารถเป็นอาร์เรย์ได้ พิจารณาคำอธิบายประเภทและตัวแปรต่อไปนี้:

การทำงานพื้นฐานกับ 2D Pascal Arrays

ทุกสิ่งที่พูดเกี่ยวกับการดำเนินการพื้นฐานกับอาร์เรย์หนึ่งมิติก็เป็นจริงสำหรับเมทริกซ์เช่นกัน การดำเนินการเดียวที่สามารถดำเนินการกับเมทริกซ์ประเภทเดียวกันทั้งหมดคือการมอบหมาย นั่นคือถ้าเรามีเมทริกซ์ประเภทเดียวกันสองรายการที่อธิบายไว้ในโปรแกรม ตัวอย่างเช่น

เมทริกซ์ = อาร์เรย์ของจำนวนเต็ม;

จากนั้นในระหว่างการดำเนินการโปรแกรม เป็นไปได้ที่จะกำหนดค่าเมทริกซ์ b ให้กับเมทริกซ์ a (a:= b) การดำเนินการอื่นๆ ทั้งหมดจะดำเนินการทีละองค์ประกอบ และการดำเนินการที่ถูกต้องทั้งหมดที่กำหนดไว้สำหรับประเภทข้อมูลขององค์ประกอบอาร์เรย์สามารถดำเนินการกับองค์ประกอบได้ ซึ่งหมายความว่าหากอาร์เรย์ประกอบด้วยจำนวนเต็ม การดำเนินการที่กำหนดไว้สำหรับจำนวนเต็มสามารถดำเนินการกับองค์ประกอบได้ แต่ถ้าอาร์เรย์ประกอบด้วยอักขระ การดำเนินการที่กำหนดไว้สำหรับการทำงานกับอักขระจะใช้ได้กับพวกมัน

21. เทคโนโลยีสำหรับการทำงานกับเอกสารข้อความ โปรแกรมแก้ไขข้อความและตัวประมวลผล: วัตถุประสงค์และความเป็นไปได้

โปรแกรมแก้ไขข้อความขั้นสูง (เช่น Microsoft Word และ OpenOffice.org Writer) บางครั้งเรียกว่าโปรแกรมประมวลผลคำ มีความสามารถในการสร้างเอกสารที่หลากหลาย (การแทรกรายการและตาราง การตรวจตัวสะกด การบันทึกการแก้ไข ฯลฯ)

เพื่อเตรียมพร้อมสำหรับการตีพิมพ์หนังสือนิตยสารและหนังสือพิมพ์ในกระบวนการจัดวางสิ่งพิมพ์จะใช้โปรแกรมประมวลผลคำที่มีประสิทธิภาพ - ระบบการเผยแพร่บนเดสก์ท็อป (เช่น Adobe PageMaker, Microsoft Office Publisher)

แอปพลิเคชันเฉพาะ (เช่น Microsoft FrontPage) ใช้เพื่อเตรียมเว็บเพจและเว็บไซต์สำหรับการเผยแพร่บนอินเทอร์เน็ต

โปรแกรมแก้ไขข้อความเป็นโปรแกรมสำหรับสร้าง แก้ไข จัดรูปแบบ บันทึก และพิมพ์เอกสาร เอกสารสมัยใหม่อาจมีวัตถุอื่นๆ (ตาราง แผนภูมิ ตัวเลข ฯลฯ) นอกเหนือจากข้อความ

การแก้ไขคือการแปลงที่เพิ่ม ลบ ย้าย หรือแก้ไขเนื้อหาของเอกสาร การแก้ไขเอกสารมักทำได้โดยการเพิ่ม ลบ หรือย้ายอักขระหรือส่วนของข้อความ

การจัดรูปแบบคือการจัดรูปแบบข้อความ นอกจากอักขระข้อความแล้ว ข้อความที่จัดรูปแบบยังมีรหัสพิเศษที่มองไม่เห็นซึ่งบอกโปรแกรมถึงวิธีแสดงบนหน้าจอและพิมพ์บนเครื่องพิมพ์: แบบอักษรใดที่จะใช้ สไตล์และขนาดของอักขระควรเป็นอย่างไร ย่อหน้าและหัวเรื่องอย่างไร ควรจัดรูปแบบ

ข้อความที่จัดรูปแบบและไม่ได้จัดรูปแบบมีลักษณะแตกต่างกันบ้าง ความแตกต่างนี้จะต้องเข้าใจ ในข้อความที่จัดรูปแบบ ทุกสิ่งมีความสำคัญ: ขนาดของตัวอักษรและรูปภาพ และตำแหน่งที่บรรทัดหนึ่งสิ้นสุดและอีกบรรทัดเริ่มต้น นั่นคือข้อความที่จัดรูปแบบจะเชื่อมโยงกับพารามิเตอร์ของแผ่นกระดาษที่พิมพ์ออกมาอย่างแยกไม่ออก

เมื่อออกแบบเอกสารข้อความ มักจำเป็นต้องเพิ่มองค์ประกอบหรือวัตถุที่ไม่ใช่ข้อความลงในเอกสาร โปรแกรมแก้ไขข้อความขั้นสูงช่วยให้คุณทำเช่นนี้ได้ - โปรแกรมเหล่านี้มีโอกาสมากมายสำหรับการแทรกตัวเลข ไดอะแกรม สูตร และอื่นๆ ลงในข้อความ

กระดาษและเอกสารอิเล็กทรอนิกส์ เอกสารอาจเป็นกระดาษหรืออิเล็กทรอนิกส์ก็ได้ เอกสารกระดาษถูกสร้างขึ้นและจัดรูปแบบเพื่อให้งานนำเสนอดีที่สุดเมื่อพิมพ์บนเครื่องพิมพ์ เอกสารอิเล็กทรอนิกส์ถูกสร้างขึ้นและจัดรูปแบบเพื่อการนำเสนอที่ดีที่สุดบนหน้าจอมอนิเตอร์ การค่อยๆ แทนที่เวิร์กโฟลว์กระดาษด้วยอิเล็กทรอนิกส์เป็นหนึ่งในแนวโน้มของการพัฒนาเทคโนโลยีสารสนเทศ การลดปริมาณการใช้กระดาษมีผลดีในการประหยัดทรัพยากรธรรมชาติและลดมลภาวะต่อสิ่งแวดล้อม

รูปแบบของกระดาษและเอกสารอิเล็กทรอนิกส์อาจแตกต่างกันอย่างมาก สำหรับเอกสารที่เป็นกระดาษ จะยอมรับการจัดรูปแบบสัมบูรณ์ที่เรียกว่า เอกสารที่พิมพ์จะถูกจัดรูปแบบเป็นแผ่นงานขนาดที่ทราบ (รูปแบบ) เสมอ ตัวอย่างเช่น ความกว้างบรรทัดของเอกสารขึ้นอยู่กับความกว้างของแผ่นกระดาษ หากเอกสารได้รับการออกแบบมาสำหรับการพิมพ์บนแผ่นกระดาษขนาดใหญ่ จะไม่สามารถพิมพ์บนแผ่นกระดาษขนาดเล็กได้ - เอกสารบางส่วนจะไม่พอดีกับเอกสารเหล่านั้น กล่าวอีกนัยหนึ่ง การจัดรูปแบบเอกสารที่พิมพ์จะต้องมีการเลือกแผ่นกระดาษเบื้องต้นก่อนเสมอ ตามด้วยการผูกเข้ากับแผ่นนี้ สำหรับเอกสารที่พิมพ์ คุณสามารถตั้งชื่อ (ในหน่วยการวัดใดๆ) ได้อย่างถูกต้องเสมอสำหรับขนาดของแบบอักษร ระยะขอบ ระยะห่างระหว่างบรรทัดหรือย่อหน้า ฯลฯ

สำหรับเอกสารอิเล็กทรอนิกส์ จะยอมรับการจัดรูปแบบสัมพัทธ์ที่เรียกว่า ผู้เขียนเอกสารไม่สามารถคาดเดาล่วงหน้าได้ว่าจะดูเอกสารบนคอมพิวเตอร์เครื่องใด หน้าจอขนาดใด ยิ่งกว่านั้นแม้ว่าจะทราบขนาดของหน้าจอล่วงหน้า แต่ก็ยังไม่สามารถคาดเดาได้ว่าขนาดของหน้าต่างที่ผู้อ่านจะเห็นเอกสารจะเป็นเท่าใด ดังนั้นเอกสารอิเล็กทรอนิกส์จึงถูกสร้างขึ้นเพื่อให้ปรับขนาดหน้าต่างปัจจุบันและจัดรูปแบบได้ทันที

ผู้เขียนเอกสารอิเล็กทรอนิกส์ยังไม่ทราบว่ามีแบบอักษรใดบ้างในคอมพิวเตอร์ของผู้อ่านในอนาคต ดังนั้นจึงไม่สามารถระบุได้อย่างชัดเจนว่าข้อความและส่วนหัวควรแสดงแบบอักษรใด แต่สามารถตั้งค่าการจัดรูปแบบเพื่อให้หัวเรื่องปรากฏใหญ่กว่าข้อความในคอมพิวเตอร์ทุกเครื่อง

การจัดรูปแบบสัมพัทธ์ใช้เพื่อสร้างเอกสารทางอินเทอร์เน็ตแบบอิเล็กทรอนิกส์ (เรียกว่าเว็บเพจ) และการจัดรูปแบบสัมบูรณ์จะใช้ในการสร้างเอกสารที่พิมพ์ในโปรแกรมประมวลผลคำ

22. องค์ประกอบโครงสร้างพื้นฐานของเอกสารข้อความ แบบอักษร สไตล์ รูปแบบ

การจัดรูปแบบตัวอักษร (ตัวอักษร)

สัญลักษณ์ ได้แก่ ตัวอักษร ตัวเลข ช่องว่าง เครื่องหมายวรรคตอน อักขระพิเศษ สัญลักษณ์สามารถจัดรูปแบบได้ (เปลี่ยนรูปลักษณ์) ในบรรดาคุณสมบัติหลักของสัญลักษณ์สามารถแยกแยะได้ดังต่อไปนี้: แบบอักษร, ขนาด, สไตล์และสี

แบบอักษรคือชุดอักขระที่สมบูรณ์ของสไตล์เฉพาะ ฟอนต์แต่ละตัวมีชื่อของตัวเอง เช่น Times New Roman, Arial, Comic Sans MS หน่วยแบบอักษรเป็นจุด (1 pt = 0.367 mm) ขนาดตัวอักษรสามารถเปลี่ยนได้ในระดับใหญ่ นอกจากรูปแบบตัวอักษรปกติ (ปกติ) แล้ว ตัวหนา ตัวเอียง ตัวเอียง ตัวหนา มักใช้

ตามวิธีการแสดงในคอมพิวเตอร์แบบอักษรแรสเตอร์และเวกเตอร์นั้นแตกต่างกัน วิธีการกราฟิกแรสเตอร์ใช้เพื่อแสดงแบบอักษรบิตแมป แบบอักษรเป็นกลุ่มของพิกเซล แบบอักษรบิตแมปอนุญาตให้ปรับขนาดตามปัจจัยบางอย่างเท่านั้น

ในแบบอักษรเวกเตอร์ สัญลักษณ์จะถูกอธิบายด้วยสูตรทางคณิตศาสตร์และสามารถปรับขนาดได้ตามอำเภอใจ ในบรรดาฟอนต์เวกเตอร์ ฟอนต์ TrueType ถูกใช้อย่างแพร่หลายที่สุด

คุณยังสามารถตั้งค่าตัวเลือกการจัดรูปแบบอักขระเพิ่มเติมได้ เช่น การขีดเส้นใต้อักขระด้วยเส้นประเภทต่างๆ การเปลี่ยนรูปลักษณ์ของอักขระ (ตัวยก ตัวห้อย ขีดทับ) การเปลี่ยนระยะห่างระหว่างอักขระ

หากคุณวางแผนที่จะพิมพ์เอกสารเป็นสี คุณสามารถระบุสีต่างๆ สำหรับกลุ่มอักขระต่างๆ ได้

ในการตรวจสอบการสะกดและไวยากรณ์ จะใช้โมดูลซอฟต์แวร์พิเศษ ซึ่งโดยปกติจะรวมอยู่ในโปรแกรมประมวลผลคำและระบบการเผยแพร่ ระบบดังกล่าวประกอบด้วยพจนานุกรมและกฎไวยากรณ์สำหรับหลายภาษา ซึ่งทำให้สามารถแก้ไขข้อผิดพลาดในเอกสารหลายภาษาได้

24. ฐานข้อมูล- นี่คือแบบจำลองข้อมูลที่ช่วยให้คุณจัดเก็บข้อมูลอย่างเป็นระเบียบเกี่ยวกับกลุ่มของวัตถุที่มีคุณสมบัติชุดเดียวกัน

ฐานข้อมูลมีหลายประเภท ได้แก่ ตาราง (เชิงสัมพันธ์) ลำดับชั้น และเครือข่าย

ฐานข้อมูลแบบตาราง

ฐานข้อมูลแบบตารางประกอบด้วยรายการของวัตถุประเภทเดียวกัน นั่นคือ วัตถุที่มีคุณสมบัติชุดเดียวกัน สะดวกในการแสดงฐานข้อมูลดังกล่าวเป็นตารางสองมิติ

ในฐานข้อมูลเชิงสัมพันธ์ ข้อมูลทั้งหมดจะถูกนำเสนอในรูปแบบของตารางอย่างง่าย โดยแบ่งออกเป็นแถวและคอลัมน์ ณ จุดตัดของข้อมูล แบบสอบถามกับตารางดังกล่าวส่งคืนตารางที่สามารถกลายเป็นหัวข้อของแบบสอบถามเพิ่มเติม แต่ละฐานข้อมูลสามารถรวมได้หลายตาราง

ข้อได้เปรียบหลักของตารางคือความชัดเจน เราจัดการกับข้อมูลแบบตารางเกือบทุกวัน ลองดูตัวอย่างในไดอารี่ของคุณ: ตารางเรียนจะแสดงในรูปแบบของตาราง พอถึงสถานีก็ดูตารางรถไฟ มันมีแบบไหนบ้าง? มันคือโต๊ะ! และยังมีตารางการแข่งขันฟุตบอล และสมุดบันทึกของครูที่เขาให้คะแนนคุณก็เป็นตารางเช่นกัน

โดยสังเขป คุณลักษณะของฐานข้อมูลเชิงสัมพันธ์สามารถกำหนดได้ดังนี้:

1. ข้อมูลถูกจัดเก็บไว้ในตารางซึ่งประกอบด้วยคอลัมน์ ("แอตทริบิวต์", "ฟิลด์") และแถว ("บันทึก");

2. ที่จุดตัดของแต่ละคอลัมน์และแถว มีค่าหนึ่งค่าพอดี

3. แต่ละคอลัมน์มีชื่อของตัวเองซึ่งทำหน้าที่เป็นชื่อเรื่องและค่าทั้งหมดในหนึ่งคอลัมน์เป็นประเภทเดียวกัน

4. แบบสอบถามไปยังฐานข้อมูลส่งกลับผลลัพธ์ในรูปแบบของตาราง ซึ่งสามารถทำหน้าที่เป็นวัตถุแบบสอบถาม

5. แถวในฐานข้อมูลเชิงสัมพันธ์ไม่มีการเรียงลำดับ - การสั่งซื้อจะเสร็จสิ้นในเวลาที่สร้างการตอบสนองต่อคำขอ

6.โดยปกติแล้ว ข้อมูลในฐานข้อมูลจะไม่ถูกจัดเก็บไว้ในตารางเดียว แต่อยู่ในหลายตารางที่เชื่อมต่อถึงกัน

ในฐานข้อมูลเชิงสัมพันธ์ จะเรียกแถวของตาราง บันทึกและคอลัมน์คือ สนาม. แต่ละเขตข้อมูลตารางมีชื่อ

เขตข้อมูล- นี่คือลักษณะต่างๆ (บางครั้งเรียกว่า - คุณลักษณะ) ของวัตถุ ค่าฟิลด์ในหนึ่งบรรทัดอ้างอิงถึงหนึ่งอ็อบเจกต์

คีย์หลักในฐานข้อมูลเรียกว่าฟิลด์ (หรือชุดของฟิลด์) ค่าที่ไม่ซ้ำในระเบียนต่างๆ

แต่ละฟิลด์มีคุณสมบัติที่สำคัญมากที่เกี่ยวข้องกัน - ประเภทฟิลด์. ประเภทฟิลด์กำหนดชุดของค่าที่ฟิลด์ที่กำหนดสามารถใช้กับเรกคอร์ดต่างๆ

มีฟิลด์พื้นฐานสี่ประเภทในฐานข้อมูลเชิงสัมพันธ์:

ตัวเลข;

สัญลักษณ์;

ตรรกะ

25. ระบบจัดการฐานข้อมูลและหลักการทำงานกับมัน ค้นหา ลบ และจัดเรียงข้อมูลในฐานข้อมูล เงื่อนไขการค้นหา (นิพจน์เชิงตรรกะ); คำสั่งและคีย์การเรียงลำดับ

ระบบจัดการฐานข้อมูล (DBMS)

ในการสร้างฐานข้อมูลรวมถึงดำเนินการค้นหาและจัดเรียงข้อมูลโปรแกรมพิเศษได้รับการออกแบบ - ระบบจัดการฐานข้อมูล (DBMS)

ดังนั้นจึงจำเป็นต้องแยกความแตกต่างระหว่างฐานข้อมูลจริง (DB) ซึ่งเป็นชุดข้อมูลที่สั่งซื้อ และระบบจัดการฐานข้อมูล (DBMS) ซึ่งเป็นโปรแกรมที่จัดการการจัดเก็บและประมวลผลข้อมูล ตัวอย่างเช่น แอปพลิเคชัน Access ซึ่งเป็นส่วนหนึ่งของชุดโปรแกรม Microsoft Office คือ DBMS ที่อนุญาตให้ผู้ใช้สร้างและจัดการฐานข้อมูลแบบตาราง

ฐานข้อมูลเชิงสัมพันธ์โดยพื้นฐานแล้วเป็นตารางสองมิติ เรกคอร์ดในที่นี้คือแถวของตารางสองมิติ ซึ่งองค์ประกอบเหล่านี้ก่อตัวเป็นคอลัมน์ของตาราง คอลัมน์อาจเป็นตัวเลข ข้อความ หรือวันที่ก็ได้ ทั้งนี้ขึ้นอยู่กับชนิดข้อมูล แถวของตารางมีหมายเลข

การทำงานกับ DBMS เริ่มต้นด้วยการสร้างโครงสร้างฐานข้อมูล เช่น ด้วยคำจำกัดความของ:

จำนวนคอลัมน์

ชื่อคอลัมน์

ประเภทคอลัมน์ (ข้อความ/ตัวเลข/วันที่);

ความกว้างของคอลัมน์

หน้าที่หลักของ DBMS:

การจัดการข้อมูลในหน่วยความจำภายนอก (บนดิสก์);

การจัดการข้อมูลใน RAM;

บันทึกการเปลี่ยนแปลงและกู้คืนฐานข้อมูลหลังจากล้มเหลว

การบำรุงรักษาภาษาฐานข้อมูล (ภาษานิยามข้อมูล ภาษาจัดการข้อมูล)

ในคำสั่ง DBMS เงื่อนไขการเลือกจะถูกเขียนในรูปแบบของนิพจน์เชิงตรรกะ

นิพจน์ตรรกะ เช่น นิพจน์ทางคณิตศาสตร์ ถูกดำเนินการ (คำนวณ) แต่ผลลัพธ์ไม่ใช่ตัวเลข แต่เป็นค่าตรรกะ: จริง (จริง) หรือเท็จ (เท็จ)

นิพจน์ที่ประกอบด้วยค่าตรรกะหนึ่งค่าหรือหนึ่งความสัมพันธ์จะถูกเรียกว่านิพจน์เชิงตรรกะอย่างง่าย

บ่อยครั้งที่มีงานที่ไม่ได้ใช้เงื่อนไขแต่ละข้อ แต่เป็นชุดของเงื่อนไขที่เชื่อมโยงถึงกัน (ความสัมพันธ์) ตัวอย่างเช่น คุณต้องเลือกนักเรียนที่มีน้ำหนักมากกว่า 60 และส่วนสูงไม่เกิน 168

นิพจน์ที่มีการดำเนินการทางตรรกะจะถูกเรียกว่านิพจน์เชิงตรรกะที่ซับซ้อน

การรวมคำสั่งสองคำสั่ง (หรือมากกว่า) เข้าด้วยกันโดยใช้ยูเนี่ยน "และ" เรียกว่าการดำเนินการของการคูณทางตรรกะหรือการรวม

ผลลัพธ์ของการคูณเชิงตรรกะ (ส่วนร่วม) จะเป็นจริงหากนิพจน์เชิงตรรกะทั้งหมดเป็นจริง

การรวมสองคำสั่ง (หรือมากกว่า) ด้วยความช่วยเหลือของสหภาพ "หรือ" เรียกว่าการดำเนินการเพิ่มหรือแยกทางตรรกะ

จากผลของการบวกเชิงตรรกะ (การแยกส่วน) จะได้ค่าจริงหากนิพจน์เชิงตรรกะอย่างน้อยหนึ่งรายการเป็นจริง

การแนบอนุภาค "ไม่" เข้ากับคำสั่งเรียกว่าการดำเนินการของการปฏิเสธเชิงตรรกะหรือการผกผัน

27. สเปรดชีต วัตถุประสงค์และหน้าที่หลัก

สเปรดชีตเป็นโปรแกรมประมวลผลข้อมูลตัวเลขที่จัดเก็บและประมวลผลข้อมูลในตารางสี่เหลี่ยม

สเปรดชีตประกอบด้วยคอลัมน์และแถว ส่วนหัวของคอลัมน์ระบุด้วยตัวอักษรหรือการรวมกันของตัวอักษร (A, G, AB ฯลฯ) ส่วนหัวของแถว - ตามตัวเลข (1, 16, 278 เป็นต้น) เซลล์คือจุดตัดของคอลัมน์และแถว

แต่ละเซลล์ของตารางมีที่อยู่ของตัวเอง ที่อยู่ของเซลล์สเปรดชีตประกอบด้วยส่วนหัวของคอลัมน์และส่วนหัวของแถว เช่น A1, F123, R1 เซลล์ที่มีการดำเนินการบางอย่างจะถูกเน้นด้วยกรอบและเรียกว่าใช้งานอยู่

ประเภทข้อมูล สเปรดชีตช่วยให้คุณสามารถทำงานกับข้อมูลพื้นฐานสามประเภท ได้แก่ ตัวเลข ข้อความ และสูตร

ตัวเลขในสเปรดชีต Excel สามารถเขียนในรูปแบบตัวเลขหรือเลขชี้กำลังตามปกติ เช่น 195.2 หรือ 1.952E + 02 ตามค่าเริ่มต้น ตัวเลขจะจัดชิดขวาในเซลล์ เนื่องจากเมื่อวางตัวเลขไว้ข้างกัน (ในคอลัมน์ตาราง) จะสะดวกในการจัดตำแหน่งตามหลัก (หน่วยใต้หน่วย สิบใต้สิบ ฯลฯ)

สูตรต้องขึ้นต้นด้วยเครื่องหมายเท่ากับและสามารถรวมตัวเลข ชื่อเซลล์ ฟังก์ชัน (คณิตศาสตร์ สถิติ การเงิน วันที่และเวลา ฯลฯ) และตัวดำเนินการทางคณิตศาสตร์ ตัวอย่างเช่น สูตร "=A1+B2" ให้การบวกตัวเลขที่จัดเก็บไว้ในเซลล์ A1 และ B2 และสูตร "=A1*B" จะคูณตัวเลขที่จัดเก็บไว้ในเซลล์ A1 ด้วย 5 เมื่อคุณป้อนสูตรใน เซลล์ ไม่ใช่สูตรที่แสดงขึ้นเอง และเป็นผลจากการคำนวณตามสูตรนี้ เมื่อคุณเปลี่ยนค่าดั้งเดิมที่รวมอยู่ในสูตร ผลลัพธ์จะถูกคำนวณใหม่ทันที

ลิงก์สัมบูรณ์และสัมพัทธ์ สูตรใช้การอ้างอิงเซลล์ ลิงก์มีสองประเภทหลัก: แบบสัมพัทธ์และแบบสัมบูรณ์ ความแตกต่างระหว่างทั้งสองจะปรากฏขึ้นเมื่อคุณคัดลอกสูตรจากเซลล์ที่ใช้งานไปยังเซลล์อื่น

การอ้างอิงแบบสัมพัทธ์ในสูตรใช้เพื่อระบุที่อยู่ของเซลล์ที่สัมพันธ์กับเซลล์ที่มีสูตรอยู่ เมื่อคุณย้ายหรือคัดลอกสูตรจากเซลล์ที่ใช้งานอยู่ ลิงก์ที่เกี่ยวข้องจะได้รับการอัปเดตโดยอัตโนมัติตามตำแหน่งใหม่ของสูตร ลิงค์ที่เกี่ยวข้องมีรูปแบบดังต่อไปนี้: A1, B3

ถ้าเครื่องหมายดอลลาร์นำหน้าตัวอักษร (เช่น $A1) พิกัดคอลัมน์จะเป็นค่าสัมบูรณ์ และพิกัดแถวจะเป็นค่าสัมพัทธ์ หากสัญลักษณ์ดอลลาร์มาก่อนตัวเลข (เช่น A$1) ในทางกลับกัน พิกัดคอลัมน์จะเป็นค่าสัมพัทธ์ และพิกัดแถวจะเป็นค่าสัมบูรณ์ ลิงค์ดังกล่าวเรียกว่าผสม

ตัวอย่างเช่น ให้เขียนสูตร =A$1+$J31 ในเซลล์ C1 ซึ่งเมื่อคัดลอกไปยังเซลล์ D2 จะกลายเป็น =B$1+$B2 การอ้างอิงแบบสัมพัทธ์มีการเปลี่ยนแปลงระหว่างการคัดลอก แต่การอ้างอิงแบบสัมบูรณ์ไม่เปลี่ยนแปลง

การเรียงลำดับและการค้นหาข้อมูล สเปรดชีตช่วยให้คุณสามารถจัดเรียงข้อมูล ข้อมูลในสเปรดชีตจะเรียงลำดับจากน้อยไปมากหรือมากไปน้อย การเรียงลำดับทำให้ข้อมูลอยู่ในลำดับที่แน่นอน คุณสามารถดำเนินการเรียงลำดับแบบซ้อนกัน นั่นคือ จัดเรียงข้อมูลตามหลายคอลัมน์ ในขณะที่กำหนดลำดับการจัดเรียงให้กับคอลัมน์

เป็นไปได้ที่จะค้นหาข้อมูลในสเปรดชีตตามเงื่อนไขที่ระบุ - ตัวกรอง ตัวกรองถูกกำหนดโดยใช้เงื่อนไขการค้นหา (มากกว่า น้อยกว่า เท่ากับ ฯลฯ) และค่า (100, 10 ฯลฯ) ตัวอย่างเช่นมากกว่า 100 จากการค้นหาจะพบเซลล์เหล่านั้นที่มีข้อมูลที่ตรงกับตัวกรองที่ระบุ

การสร้างแผนภูมิและกราฟ สเปรดชีตทำให้คุณสามารถนำเสนอข้อมูลที่เป็นตัวเลขในรูปแบบของแผนภูมิหรือกราฟ แผนภูมิมีหลายประเภท (แท่ง พาย ฯลฯ); การเลือกประเภทแผนภูมิขึ้นอยู่กับลักษณะของข้อมูล

28. เทคโนโลยีการประมวลผลข้อมูลในสเปรดชีต (ET) โครงสร้างสเปรดชีต

สเปรดชีตคือโปรแกรมประมวลผลข้อมูลตัวเลขที่จัดเก็บและประมวลผลข้อมูลในตารางสี่เหลี่ยม สเปรดชีตประกอบด้วยคอลัมน์และแถว ส่วนหัวของคอลัมน์ระบุด้วยตัวอักษรหรือการรวมกันของตัวอักษร (A, G, AB ฯลฯ) ส่วนหัวของแถว - ตามตัวเลข (1, 16, 278 เป็นต้น) เซลล์คือจุดตัดของคอลัมน์และแถว แต่ละเซลล์ของตารางมีที่อยู่ของตัวเอง ที่อยู่เซลล์สเปรดชีตประกอบด้วยส่วนหัวของคอลัมน์และส่วนหัวของแถว เช่น Al, B5, E7 เซลล์ที่มีการดำเนินการบางอย่างจะถูกเน้นด้วยกรอบและเรียกว่าใช้งานอยู่ สเปรดชีตที่ผู้ใช้ทำงานในแอปพลิเคชันเรียกว่าเวิร์กชีต คุณสามารถป้อนและแก้ไขข้อมูลบนเวิร์กชีตหลายแผ่นพร้อมกัน และทำการคำนวณตามข้อมูลจากหลายเวิร์กชีต เอกสารสเปรดชีตสามารถรวมแผ่นงานหลายแผ่นและเรียกว่าสมุดงาน

29. ชนิดข้อมูลในสเปรดชีต (ET): ตัวเลข สูตร ข้อความ กฎสำหรับการเขียนสูตร

ประเภทข้อมูล

สเปรดชีตช่วยให้คุณสามารถทำงานกับข้อมูลพื้นฐานสามประเภท ได้แก่ ตัวเลข ข้อความ และสูตร

ตัวเลขในสเปรดชีต Excel สามารถเขียนในรูปแบบตัวเลขหรือเลขชี้กำลังตามปกติ เช่น 195.2 หรือ 1.952Ё + 02 โดยค่าเริ่มต้น ตัวเลขจะจัดชิดขวาในเซลล์ เนื่องจากเมื่อวางตัวเลขไว้ข้างกัน (ในคอลัมน์ตาราง) จะสะดวกที่จะจัดตำแหน่งตามตัวเลข (หน่วยใต้หน่วย สิบใต้สิบ ฯลฯ)

ข้อความในสเปรดชีต Excel คือลำดับของอักขระที่ประกอบด้วยตัวอักษร ตัวเลข และช่องว่าง ตัวอย่างเช่น "32 MB" คือข้อความ ตามค่าเริ่มต้น ข้อความจะจัดชิดซ้ายในเซลล์ นี่เป็นเพราะวิธีการเขียนแบบดั้งเดิม (จากซ้ายไปขวา)

สูตรต้องขึ้นต้นด้วยเครื่องหมายเท่ากับและสามารถรวมตัวเลข ชื่อเซลล์ ฟังก์ชัน (คณิตศาสตร์ สถิติ การเงิน วันที่และเวลา ฯลฯ) และเครื่องหมายตัวดำเนินการทางคณิตศาสตร์ ตัวอย่างเช่น สูตร "=A1+B2" ให้การบวกตัวเลขที่จัดเก็บไว้ในเซลล์ A1 และ B2 และสูตร "=A1*5" จะคูณตัวเลขที่จัดเก็บไว้ในเซลล์ A1 ด้วย 5 เมื่อคุณป้อนสูตรใน เซลล์ ไม่ใช่สูตรที่แสดงขึ้นเอง และเป็นผลจากการคำนวณตามสูตรนี้ เมื่อคุณเปลี่ยนค่าดั้งเดิมที่รวมอยู่ในสูตร ผลลัพธ์จะถูกคำนวณใหม่ทันที

กฎสำหรับการเขียนสูตรในสเปรดชีต

1. สูตรประกอบด้วยตัวเลข ชื่อเซลล์ เครื่องหมายดำเนินการ วงเล็บ ชื่อฟังก์ชัน

2. การดำเนินการทางคณิตศาสตร์และสัญญาณ:

ชื่อการดำเนินการ ลงชื่อ คีย์ผสม

นอกจากนี้ + (Shift + +=) หรือ (+) บนแป้นพิมพ์รอง

การลบ - (-)

คูณ * (Shift + 8) หรือ (*) บนแป้นพิมพ์รอง

หาร / (Shift + | \) หรือ (/) บนแป้นพิมพ์รอง

ยกกำลัง ^ (Shift + 6) ในภาษาอังกฤษ

3. สูตรเขียนเป็นบรรทัดอักขระเรียงกันตามลำดับสัญญาณของการดำเนินการทั้งหมดจะถูกวางลง มีการใช้วงเล็บ

4. ประการแรก การดำเนินการในวงเล็บจะดำเนินการ หากไม่มีวงเล็บ ลำดับการดำเนินการจะถูกกำหนดโดยลำดับความสำคัญของการดำเนินการ ตามลำดับความสำคัญจากมากไปหาน้อย การดำเนินการจะจัดเรียงตามลำดับต่อไปนี้:

1. การยกกำลัง

2. การคูณ การหาร

3. การบวก การลบ

การดำเนินการตามลำดับความสำคัญเดียวกันจะดำเนินการตามลำดับที่เขียนจากซ้ายไปขวา

5. สามารถป้อนสูตรในโหมดแสดงการคำนวณได้ เช่น ผู้ใช้เริ่มเขียนสูตรในเซลล์ปัจจุบันด้วยเครื่องหมาย = และหลังจากกดปุ่ม Enter ผลลัพธ์ของการคำนวณตามสูตรจะแสดงในเซลล์

6. สามารถป้อนสูตรได้ในโหมดการแสดงสูตร เช่น ผู้ใช้เขียนสูตรโดยไม่มีเครื่องหมาย = ลงในเซลล์ปัจจุบัน และสูตรจะแสดงในเซลล์หลังจากกดแป้น Enter

30.ฟังก์ชันในตัวพื้นฐาน การอ้างอิงแบบสัมบูรณ์และแบบสัมพัทธ์ในตารางอิเล็กทรอนิกส์ (ET)

การอ้างอิงแบบสัมพัทธ์ในสูตรใช้เพื่อระบุที่อยู่ของเซลล์ที่สัมพันธ์กับเซลล์ที่มีสูตรอยู่ เมื่อคุณย้ายหรือคัดลอกสูตรจากเซลล์ที่ใช้งานอยู่ ลิงก์ที่เกี่ยวข้องจะได้รับการอัปเดตโดยอัตโนมัติตามตำแหน่งใหม่ของสูตร ลิงค์ที่เกี่ยวข้องมีรูปแบบดังต่อไปนี้: A1, B3

การอ้างอิงแบบสัมบูรณ์ในสูตรใช้เพื่อระบุที่อยู่เซลล์คงที่ เมื่อคุณย้ายหรือคัดลอกสูตร การอ้างอิงแบบสัมบูรณ์จะไม่เปลี่ยนแปลง ในการอ้างอิงแบบสัมบูรณ์ ค่าที่ไม่เปลี่ยนรูปของที่อยู่เซลล์จะนำหน้าด้วยเครื่องหมายดอลลาร์ (เช่น $A$1)

ถ้าเครื่องหมายดอลลาร์นำหน้าตัวอักษร (เช่น $A1) พิกัดคอลัมน์จะเป็นค่าสัมบูรณ์ และพิกัดแถวจะเป็นค่าสัมพัทธ์ หากสัญลักษณ์ดอลลาร์มาก่อนตัวเลข (เช่น A$1) ในทางกลับกัน พิกัดคอลัมน์จะเป็นค่าสัมพัทธ์ และพิกัดแถวจะเป็นค่าสัมบูรณ์ ลิงค์ดังกล่าวเรียกว่าผสม ตัวอย่างเช่น ในเซลล์ C1 มีการเขียนสูตร =A$1+$B1 ซึ่งเมื่อคัดลอกไปยังเซลล์ D2 จะกลายเป็น =B$1+$B2 การอ้างอิงแบบสัมพัทธ์มีการเปลี่ยนแปลงระหว่างการคัดลอก แต่การอ้างอิงแบบสัมบูรณ์ไม่เปลี่ยนแปลง

ข้อมูลเป็นแนวคิดทั่วไปสำหรับทุกสิ่งที่คอมพิวเตอร์ทำงานด้วย ชนิดข้อมูลใด ๆ จะกำหนดชุดของค่าที่ตัวแปรใด ๆ สามารถรับได้และการดำเนินการที่สามารถใช้กับตัวแปรเหล่านั้นได้ ตัวแปรแต่ละตัวที่พบในโปรแกรมจะต้องเชื่อมโยงกับประเภทเดียวเท่านั้น

Pascal มีสองประเภทง่ายๆ: ประเภทลำดับและประเภทจริง ประเภทลำดับถูกกำหนดโดยโปรแกรมเมอร์ (ประเภทที่แจกแจงหรือประเภทช่วง) หรือแสดงโดยชื่อของหนึ่งในสามประเภทลำดับที่กำหนดไว้ล่วงหน้า: บูลีน จำนวนเต็ม หรือถ่าน ประเภทจริงจะแสดงด้วยชื่อประเภทที่กำหนดไว้ล่วงหน้า Real

ประเภทที่ระบุนั้นมีลักษณะเฉพาะด้วยชุดของค่าที่แตกต่างกันซึ่งมีการกำหนดลำดับเชิงเส้น ค่าเหล่านี้ถูกกำหนดไว้ในคำจำกัดความของประเภทนี้ตามชื่อ

มีการระบุประเภทช่วง (จำกัด ) โดยใช้ค่าต่ำสุดและสูงสุดของประเภทลำดับที่อธิบายไว้ก่อนหน้านี้ ดังนั้นจึงมีการสร้างประเภทลำดับใหม่

ประเภทข้อมูลลำดับ

ชนิดข้อมูลลำดับอธิบายชุดของค่าที่จำกัดและเรียงลำดับ ค่าเหล่านี้จะแมปกับลำดับของหมายเลขซีเรียล 0,1,2,...; มีข้อยกเว้นสำหรับเลขลำดับจำนวนเต็มเท่านั้นที่จับคู่กับตัวมันเอง ลำดับแต่ละประเภทมีค่าต่ำสุดและค่าสูงสุด สำหรับค่าทั้งหมดยกเว้นค่าต่ำสุด จะมีค่าก่อนหน้า และสำหรับค่าทั้งหมดยกเว้นค่าสูงสุด จะมีค่าตามมา

ฟังก์ชันที่กำหนดไว้ล่วงหน้า succ, pred, ord ยอมรับอาร์กิวเมนต์ของลำดับประเภทใดๆ:
succ(X) - ให้ค่าลำดับถัดไปหลังจาก X
pred(X) - ให้ค่าลำดับ X ก่อนหน้า
ord(X) - ให้เลขลำดับสำหรับ X

สำหรับลำดับประเภททั้งหมด จะมีตัวดำเนินการเชิงสัมพันธ์ = , = และ > และถือว่าตัวถูกดำเนินการทั้งสองเป็นประเภทเดียวกัน

ประเภทบูลีน (บูลีน)

ค่าบูลีนเป็นหนึ่งในค่าความจริงสองค่า ซึ่งแสดงด้วยชื่อที่กำหนดไว้ล่วงหน้า false และ true

มีการดำเนินการทางตรรกะต่อไปนี้ที่ให้ค่าบูลีนเมื่อนำไปใช้กับตัวถูกดำเนินการทางตรรกะ:
และ - ตรรกะ และ
หรือ - ตรรกะหรือ
ไม่ - ตรรกะไม่

นอกจากนี้ การดำเนินการเชิงสัมพันธ์ใดๆ (= , = , > , in) ให้ผลลัพธ์บูลีน

นอกจากนี้ยังมีการกำหนดประเภทบูลีนเพื่อให้เป็นเท็จ

นอกจากนี้ยังมีฟังก์ชันเชิงตรรกะที่กำหนดไว้ล่วงหน้า (เช่น ฟังก์ชันที่ให้ผลลัพธ์เชิงตรรกะ):
คี่(F) - จริงถ้าจำนวนเต็ม F เป็นเลขคี่ และเป็นเท็จถ้า F เป็นเลขคู่
eoln(F) - ตรวจสอบจุดสิ้นสุดของสตริง
eof(F) - ตรวจสอบจุดสิ้นสุดของไฟล์

ประเภทจำนวนเต็ม (จำนวนเต็ม)

ประเภทจำนวนเต็มประกอบด้วยชุดของจำนวนเต็ม

เมื่อดำเนินการกับตัวถูกดำเนินการจำนวนเต็ม การดำเนินการทางคณิตศาสตร์ต่อไปนี้จะสร้างค่าจำนวนเต็ม:
* - การคูณ
div - ส่วนจำนวนเต็มของการหาร
mod - โมดูโล
+ - นอกจากนี้
- - การลบ

นอกจากนี้ยังมีค่าคงที่ที่กำหนดไว้ล่วงหน้าในภาษาปาสคาลที่เรียกว่า MaxInt ซึ่งมีค่าสูงสุดของประเภทจำนวนเต็ม Integer และมีค่าเท่ากับ 32767

ฟังก์ชันที่กำหนดไว้ล่วงหน้าที่สำคัญสี่ฟังก์ชันยังให้ผลลัพธ์ทั้งหมด:
abs(I) - ค่าสัมบูรณ์ของค่าจำนวนเต็ม I
sgr(I) - ค่าจำนวนเต็มของ I กำลังสอง โดยมีเงื่อนไขว่า I trunc(R) - ให้ส่วนจำนวนเต็มของจำนวนจริง R
round(R) - ส่งกลับจำนวนเต็มปัดเศษ ในกรณีนี้: สำหรับ R>0 หมายถึง trunc(R+0.5) และสำหรับ R

ถ้าฉันเป็นค่าจำนวนเต็ม ดังนั้น:
succ(I) - ให้ค่าจำนวนเต็มถัดไป (I+1)
pred(I) - ให้ค่าจำนวนเต็มก่อนหน้า (I-1)

ประเภทตัวอักษร (ชาร์)

ค่าประเภท Char เป็นองค์ประกอบของชุดอักขระที่จำกัดและเรียงลำดับ ค่าประเภทนี้แสดงด้วยอักขระตัวเดียวที่อยู่ในเครื่องหมายอัญประกาศเดี่ยว (เครื่องหมายอัญประกาศเดี่ยว) หากคุณต้องการเครื่องหมายอะพอสทรอฟีให้เขียนสองครั้ง
ตัวอย่าง: "*" "G" "3" """" "X"

    สมมติฐานขั้นต่ำต่อไปนี้ถือเป็นจริงสำหรับประเภท Char:
  1. หลักทศนิยมตั้งแต่ 0 ถึง 9 จะเรียงลำดับตามค่าตัวเลขและตามด้วยหลักอื่น (เช่น succ("5") = "6")
  2. อาจมีตัวอักษรพิมพ์ใหญ่ "A" ถึง "Z"; ถ้าเป็นเช่นนั้น จะเรียงลำดับตามตัวอักษร แต่ไม่จำเป็นต้องเรียงตามกัน (เช่น "A"
  3. อาจมีตัวอักษรพิมพ์เล็ก "a" ถึง "z"; ถ้าเป็นเช่นนั้น จะเรียงลำดับตามตัวอักษร แต่ไม่จำเป็นต้องตามหลังกัน (เช่น "a"

ในการแม็พชุดอักขระที่กำหนดกับหมายเลขซีเรียลและด้านหลัง มีสองฟังก์ชันที่กำหนดไว้ล่วงหน้า:
ord(C) - ให้หมายเลขลำดับของอักขระ C ในชุดอักขระตามลำดับที่กล่าวถึง
chr(I) - ให้ตัวละครด้วยลำดับ I

สำหรับอาร์กิวเมนต์ประเภท Char ฟังก์ชันที่กำหนดไว้ล่วงหน้า pred และ succ สามารถกำหนดได้ดังนี้:
ก่อนหน้า (C) = chr (หรือ (C)-I)
succ(C) = chr(ออร์ด(C)+I)

ความคิดเห็นสัญลักษณ์ที่นำหน้าหรือตามหลังอักขระนี้ขึ้นอยู่กับชุดอักขระที่ระบุ ดังนั้นความสัมพันธ์ทั้งสองนี้จะใช้ได้ก็ต่อเมื่อมีอักขระนำหน้าหรือตามหลังอยู่เท่านั้น

ประเภทจริง (จริง)

ค่าจริงเป็นองค์ประกอบของชุดย่อยของจำนวนจริงที่กำหนดโดยการใช้งาน

การดำเนินการทั้งหมดในค่าจริงเป็นค่าประมาณ ความแม่นยำจะถูกกำหนดโดยการใช้งาน (เครื่องจักร) ที่คุณกำลังเผชิญอยู่ ประเภทที่แท้จริงคือประเภทที่เรียบง่ายไม่ใช่ประเภทลำดับ ค่าจริงไม่มีเลขลำดับและไม่มีค่าก่อนหน้าหรือถัดไปสำหรับค่าใดค่าหนึ่ง

หากตัวถูกดำเนินการอย่างน้อยหนึ่งตัวเป็นประเภทจริง (อีกตัวอาจเป็นจำนวนเต็ม) การดำเนินการต่อไปนี้จะสร้างผลลัพธ์จริง:
* - การคูณ
/ - การหาร (ตัวถูกดำเนินการทั้งคู่สามารถเป็นจำนวนเต็มได้ แต่ผลลัพธ์จะเป็นจริงเสมอ)
+ - นอกจากนี้
- - การลบ

มีฟังก์ชันที่กำหนดไว้ล่วงหน้าซึ่งให้ผลลัพธ์จริงพร้อมอาร์กิวเมนต์จริง:
abs(R) - ค่าสัมบูรณ์ของ R
sqr(R) - R กำลังสอง ถ้าผลลัพธ์อยู่ในช่วงของจำนวนจริง

และฟังก์ชันที่กำหนดไว้ล่วงหน้าเหล่านี้ให้ผลลัพธ์จริงด้วยจำนวนเต็มหรืออาร์กิวเมนต์จริง:
บาป(X) - ให้ไซน์ของ X; X แสดงเป็นเรเดียน
cos(X) - ให้โคไซน์ของ X; X แสดงเป็นเรเดียน
arctan(X) - ให้ส่วนโค้งแทนเจนต์ของ X แสดงเป็นเรเดียน
ln(X) - ให้ค่าลอการิทึมธรรมชาติ (พร้อมฐาน e) สำหรับ X, X>0
exp(X) - ให้ค่าของฟังก์ชันเลขชี้กำลัง (เช่น กำลังของ X)
sqrt(X) - ให้ค่าของรากที่สองของ X, X>=0

คำเตือน.ไม่สามารถใช้ฟังก์ชัน pred, succ กับอาร์กิวเมนต์จริงได้ คุณไม่สามารถใช้ค่าของประเภทจริงเมื่อสร้างดัชนีอาร์เรย์, สำหรับการควบคุมในลูปด้วยพารามิเตอร์, เพื่อกำหนดประเภทฐานของชุด, สำหรับการจัดทำดัชนีในตัวดำเนินการตัวแปร

แนวคิดของข้อมูลเป็นหนึ่งในแนวคิดหลักในการเขียนโปรแกรม และโดยทั่วไปในวิทยาการคอมพิวเตอร์ กล่าวโดยคร่าว ๆ ข้อมูลในวิทยาการคอมพิวเตอร์คือข้อมูลที่อยู่ในสถานะของการจัดเก็บ การประมวลผล หรือการส่งผ่าน ณ เวลาใดเวลาหนึ่ง ในเครื่องจักรทัวริง ข้อมูลมีประเภทซึ่งขึ้นอยู่กับประเภทของข้อมูล

ชนิดข้อมูลในภาษาปาสคาลกำหนดค่าที่เป็นไปได้ของตัวแปร ค่าคงที่ นิพจน์และฟังก์ชัน มีอยู่แล้วในตัวและกำหนดเอง ประเภทในตัวเป็นภาษาดั้งเดิมของภาษาการเขียนโปรแกรมในขณะที่โปรแกรมเมอร์สร้างประเภทแบบกำหนดเอง

ตามวิธีการเป็นตัวแทนและการประมวลผล ชนิดข้อมูลคือ:

  • เรียบง่าย
  • มีโครงสร้าง
  • ตัวชี้
  • วัตถุ
  • ขั้นตอน

ในบทความนี้ เราจะพิจารณาเฉพาะประเภทข้อมูลที่ง่ายที่สุดเท่านั้น เนื่องจากในขั้นเริ่มต้นของการฝึกอบรม โปรแกรมของคุณจะดำเนินการโดยไม่มีไฟล์และระเบียนได้ง่ายกว่าการไม่มีตัวแปรจำนวนเต็มหรือสตริง

ประเภทจำนวนเต็ม

ซึ่งรวมถึงจำนวนเต็มหลายประเภท ซึ่งแตกต่างกันในช่วงของค่า จำนวนไบต์ที่จัดสรรสำหรับการจัดเก็บ และคำที่มีการประกาศประเภท

พิมพ์ พิสัย ขนาดเป็นไบต์
สั้น -128…127 1
จำนวนเต็ม -32 768…32 767 2
ยาว -2 147 483 648…2 147 483 647 4
ไบต์ 0…255 1
คำ 0…65 535 2

คุณสามารถประกาศตัวแปรจำนวนเต็มได้ในส่วน Var เช่น

การดำเนินการทางคณิตศาสตร์และตรรกะทั้งหมดสามารถดำเนินการกับตัวแปรของหมวดหมู่นี้ได้ ยกเว้นการหาร (/) ซึ่งต้องใช้ประเภทจริง นอกจากนี้ยังสามารถใช้ฟังก์ชันและขั้นตอนมาตรฐานบางอย่างได้อีกด้วย

ประเภทจริง

Pascal มีประเภทข้อมูลจริงดังต่อไปนี้:

พิมพ์ พิสัย หน่วยความจำ ไบต์ จำนวนหลัก
จริง 2.9e-39 … 1.7e38 6 11-12
เดี่ยว 1.5e-45 … 3.4e38 4 7-8
สองเท่า 5.0e-324 …1.7e308 8 15-16
ขยาย 3.4e-4932 … 1.1e493 10 19-20
คอมพ์ -9.2e63 … (9.2e63)-1 8 19-20

การดำเนินการและฟังก์ชันต่างๆ สามารถทำได้มากกว่าการใช้จำนวนเต็ม ตัวอย่างเช่น ฟังก์ชันเหล่านี้ส่งคืนผลลัพธ์จริง:

บาป(x) - ไซน์;

cos(x) - โคไซน์;

อาร์คแทน(x) – อาร์คแทนเจนต์;

ln(x) – ลอการิทึมธรรมชาติ;

sqrt(x) คือรากที่สอง

exp(x) คือเลขชี้กำลัง

ประเภทบูลีน

ตัวแปรที่มีชนิดข้อมูลบูลีนสามารถรับได้เพียงสองค่าเท่านั้น: จริง (จริง) และเท็จ (เท็จ) ในที่นี้ ค่าจริงตรงกับค่า 1 และค่าเท็จมีค่าเท่ากับศูนย์ คุณสามารถประกาศตัวแปรบูลีนได้ดังนี้:

การดำเนินการเปรียบเทียบและการดำเนินการทางตรรกะสามารถดำเนินการกับข้อมูลประเภทนี้: ไม่ และ หรือ xor

ประเภทตัวละคร

ประเภทข้อมูลอักขระคือชุดของอักขระที่ใช้ในคอมพิวเตอร์เครื่องใดเครื่องหนึ่ง ตัวแปรประเภทนี้รับค่าของหนึ่งในสัญลักษณ์เหล่านี้และใช้พื้นที่ 1 ไบต์ในหน่วยความจำของคอมพิวเตอร์ คำ ถ่านกำหนดค่าของประเภทนี้ มีหลายวิธีในการเขียนตัวแปรอักขระ (หรือค่าคงที่):

  1. เป็นอักขระตัวเดียวในเครื่องหมายอะพอสทรอฟี: 'W', 'V', 'p';
  2. โดยระบุรหัสอักขระซึ่งค่าจะต้องอยู่ในช่วงตั้งแต่ 0 ถึง 255
  3. ใช้โครงสร้าง ^K โดยที่ K คือรหัสอักขระควบคุม ค่าของ K ต้องมากกว่ารหัสของอักขระควบคุมที่เกี่ยวข้อง 64 ตัว

ตัวดำเนินการเชิงสัมพันธ์และฟังก์ชันต่อไปนี้ใช้กับค่าของชนิดข้อมูลอักขระ:

สำเร็จ(x)- ส่งคืนอักขระถัดไป

ก่อนหน้า (x)- ส่งคืนอักขระก่อนหน้า

ออร์ด (x)- ส่งคืนค่าของรหัสอักขระ

Chr(x)- คืนค่าของสัญลักษณ์ตามรหัสของมัน

ตัวพิมพ์ใหญ่ (x)- แปลงอักขระจากช่วง 'a'..'z' เป็นตัวพิมพ์ใหญ่

สำหรับการทำงานที่เกิดผลกับประเภทอักขระ ฉันแนะนำให้ใช้ .

ประเภทสตริง

สตริงในภาษาปาสคาลคือลำดับของอักขระที่อยู่ในเครื่องหมายอัญประกาศเดี่ยว และแสดงด้วยคำว่า สตริง. จำนวนอักขระ (ความยาวสตริง) ต้องไม่เกิน 255 หากไม่ได้ระบุความยาวสตริง ระบบจะกำหนดเป็น 255 อักขระโดยอัตโนมัติ รูปแบบทั่วไปของการประกาศตัวแปรสตริงมีลักษณะดังนี้:

วาร์<имя_переменной>: สตริง [<длина строки>];

อักขระแต่ละตัวในสตริงมีดัชนี (ตัวเลข) ของตัวเอง ดัชนีของไบต์แรกคือ 0 แต่ไม่ได้เก็บอักขระตัวแรก แต่เก็บความยาวของสตริงทั้งหมด ซึ่งหมายความว่าตัวแปรประเภทนี้จะใช้เวลามากกว่าจำนวนตัวแปรในนั้น 1 ไบต์ จำนวนของอักขระตัวแรกคือ 1 ตัวอย่างเช่น ถ้าเรามีสตริง S='stroka' ดังนั้น S=s; ในบทเรียนใดบทหนึ่งต่อไปนี้ จะมีการกล่าวถึงชนิดข้อมูลสตริงในรายละเอียดเพิ่มเติม

ชนิดข้อมูลแจกแจง

ชนิดข้อมูลที่แจกแจงแสดงถึงตัวระบุจำนวนจำกัด ตัวระบุเหล่านี้อยู่ในวงเล็บและคั่นด้วยเครื่องหมายจุลภาค

พิมพ์ Day=(วันจันทร์ วันอังคาร วันพุธ วันพฤหัสบดี วันศุกร์ วันเสาร์ วันอาทิตย์);

ตัวแปร A สามารถรับค่าที่กำหนดในส่วนของ Type เท่านั้น คุณยังสามารถประกาศตัวแปรประเภทที่ระบุในส่วน Var:

Var A: (วันจันทร์ วันอังคาร);

การดำเนินการเชิงสัมพันธ์ใช้ได้กับประเภทนี้ ในขณะที่กำหนดไว้ล่วงหน้าว่าวันจันทร์

ชนิดข้อมูลช่วงเวลา

เมื่อจำเป็นต้องระบุช่วงของค่า ในสถานการณ์ดังกล่าว จะใช้ชนิดข้อมูลช่วงเวลา แบบก่อสร้างใช้ในการประกาศ ม..น, ที่ไหน เป็นค่าต่ำสุด (เริ่มต้น) และ – สูงสุด (สุดท้าย); m และ n เป็นค่าคงที่ ซึ่งอาจเป็นจำนวนเต็ม อักขระ enum หรือบูลีน ค่าของประเภทช่วงเวลาสามารถอธิบายได้ทั้งในส่วนประเภทและในส่วนการประกาศตัวแปร

แบบฟอร์มทั่วไป:

พิมพ์<имя_типа> = <мин. значение>..<макс. значение>;

หน่วยงานกลางเพื่อการศึกษา

เรียงความ

"ประเภทข้อมูลในภาษาปาสคาล"

1. ประเภทของข้อมูล

ข้อมูลใด ๆ เช่น ค่าคงที่ ตัวแปร คุณสมบัติ ค่าฟังก์ชัน หรือนิพจน์มีลักษณะเฉพาะตามประเภทของมัน ประเภทกำหนดชุดของค่าที่ถูกต้องที่วัตถุสามารถมีได้รวมถึงชุดของการดำเนินการที่ถูกต้องซึ่งสามารถนำไปใช้กับมันได้ นอกจากนี้ ประเภทยังกำหนดรูปแบบของการแสดงข้อมูลภายในในหน่วยความจำพีซี

โดยทั่วไปแล้ว ภาษาอ็อบเจกต์ปาสคาลมีลักษณะเป็นโครงสร้างย่อยของประเภทข้อมูล (รูปที่ 1.1) ภาษาจัดเตรียมกลไกสำหรับการสร้างประเภทใหม่ เพื่อให้จำนวนประเภททั้งหมดที่ใช้ในโปรแกรมสามารถมีจำนวนมากโดยพลการ

ข้อมูลที่ประมวลผลในโปรแกรมแบ่งออกเป็นตัวแปร ค่าคงที่ และตัวอักษร:

ค่าคงที่ เป็นข้อมูลที่มีการตั้งค่าในส่วนการประกาศค่าคงที่และไม่เปลี่ยนแปลงระหว่างการทำงานของโปรแกรม

ตัวแปร มีการประกาศในส่วนการประกาศตัวแปร แต่ไม่เหมือนกับค่าคงที่ พวกเขาได้รับค่าของพวกเขาแล้วระหว่างการทำงานของโปรแกรม และค่าเหล่านี้สามารถเปลี่ยนแปลงได้ ค่าคงที่และตัวแปรสามารถเรียกได้ด้วยชื่อ

ตัวอักษร ไม่มีตัวระบุและแสดงโดยตรงด้วยค่าในข้อความโปรแกรม

พิมพ์กำหนดชุดของค่าที่องค์ประกอบข้อมูลสามารถใช้และชุดของการดำเนินการที่อนุญาต

บทนี้และสี่บทต่อไปนี้ให้คำอธิบายโดยละเอียดของแต่ละประเภท

1.1 ประเภทที่เรียบง่าย

ประเภทอย่างง่าย ได้แก่ ประเภทลำดับ ของจริง และวันที่-เวลา

ประเภทลำดับต่างกันตรงที่แต่ละค่ามีค่าที่เป็นไปได้จำกัด ค่าเหล่านี้สามารถเรียงลำดับได้ด้วยวิธีใดวิธีหนึ่ง (ดังนั้นชื่อของประเภท) ดังนั้นแต่ละค่าสามารถเชื่อมโยงกับจำนวนเต็ม - หมายเลขลำดับของค่า

ประเภทจริงพูดอย่างเคร่งครัด ยังมีค่าจำนวนจำกัด ซึ่งกำหนดโดยรูปแบบของการแสดงภายในของจำนวนจริง อย่างไรก็ตาม จำนวนค่าที่เป็นไปได้ของประเภทจริงมีมากจนไม่สามารถเชื่อมโยงจำนวนเต็ม (จำนวนของมัน) กับแต่ละค่าได้

ประเภทวันที่-เวลาออกแบบมาเพื่อจัดเก็บวันที่และเวลา ในความเป็นจริง มันใช้รูปแบบจริงสำหรับวัตถุประสงค์เหล่านี้

1.1.1 ประเภทลำดับ

ประเภทลำดับประกอบด้วย (ดูรูปที่ 1.1) จำนวนเต็ม บูลีน อักขระ enum และช่วง สำหรับค่าใดค่าหนึ่ง จะใช้ฟังก์ชัน Ord(x) ซึ่งจะคืนค่าเลขลำดับของค่าของนิพจน์ X


ข้าว. 1.1 - โครงสร้างของประเภทข้อมูล

สำหรับ ทั้งหมดประเภท ฟังก์ชัน ord(x) ส่งกลับค่าของ x เอง นั่นคือ Ord(X) = x สำหรับ x ที่เป็นของใดๆ ทั้งหมดพิมพ์. การใช้ Ord(x) กับ ตรรกะ , สัญลักษณ์และแจกแจงประเภทให้จำนวนเต็มบวกในช่วง 0 ถึง 1 ( ประเภทบูลีน) จาก 0 ถึง 255 ( เป็นสัญลักษณ์) ตั้งแต่ 0 ถึง 65535 ( นับได้). ประเภทช่วงรักษาคุณสมบัติทั้งหมดของประเภทลำดับที่อยู่ข้างใต้ ดังนั้นผลลัพธ์ของการใช้ฟังก์ชัน ord(x) กับมันจึงขึ้นอยู่กับคุณสมบัติของประเภทนั้น

สามารถใช้ฟังก์ชันกับประเภทลำดับ:

ทำนาย (x)- ส่งกลับค่าก่อนหน้าของประเภทลำดับ (ค่าที่สอดคล้องกับลำดับ ord (x) -1 เช่น ord(pred(x)) = ord(x) - 1;

ความสำเร็จ (x)- ส่งกลับค่าถัดไปของประเภทลำดับที่สอดคล้องกับลำดับ ord(x) + 1 เช่น ord(Succ(x)) = ord(x) + 1

เช่น ถ้าโปรแกรมกำหนดตัวแปร

จากนั้นฟังก์ชัน PRED(c) จะส่งกลับอักขระ "4" และฟังก์ชัน SUCC(c) จะส่งกลับอักขระ "6"

หากเราคิดว่าลำดับประเภทใด ๆ เป็นชุดของค่าที่เรียงลำดับเพิ่มขึ้นจากซ้ายไปขวาและครอบครองส่วนใดส่วนหนึ่งบนแกนตัวเลข ฟังก์ชัน pred (x) จะไม่ถูกกำหนดไว้สำหรับปลายด้านซ้ายและ succ (x) - สำหรับส่วนท้ายด้านขวาของส่วนนี้

ประเภทจำนวนเต็ม . ช่วงของค่าที่เป็นไปได้สำหรับประเภทจำนวนเต็มขึ้นอยู่กับการแทนภายในซึ่งอาจเป็นหนึ่ง สอง สี่ หรือแปดไบต์ ในตาราง 1.1 แสดงชื่อของประเภทจำนวนเต็ม ความยาวของการแสดงภายในหน่วยเป็นไบต์ และช่วงของค่าที่เป็นไปได้

ตารางที่ 1.1 - ประเภทจำนวนเต็ม

ชื่อ ความยาวไบต์ ช่วงค่า
พระคาร์ดินัล 4 0. .. 2 147 483 647
ไบต์ 1 0...255
ชอร์ตอินท์ 1 -128...+127
สมอลอินท์ 2 -32 768...+32 767
คำ 2 0...65 535
จำนวนเต็ม 4
ลองอิน 4 -2 147 483 648...+2 147 483 647
int64 8 -9*1018...+9*1018
คำยาว 4 0. . .4 294 967 295

ประเภท คำยาวและ int64เปิดตัวครั้งแรกในเวอร์ชัน 4 และประเภทต่างๆ สมอลอินท์และ พระคาร์ดินัลขาดหายไปใน Delphi 1 พิมพ์ จำนวนเต็มสำหรับเวอร์ชันนี้จะใช้เวลา 2 ไบต์และมีค่าตั้งแต่ -32768 ถึง +32767 เช่นเดียวกันกับ สมอลอินท์ .

เมื่อใช้โพรซีเดอร์และฟังก์ชันที่มีพารามิเตอร์จำนวนเต็ม ควรใช้ "การซ้อน" ของประเภท เช่น ใช้ได้ทุกที่ คำอนุญาตให้ใช้ ไบต์(แต่ไม่ใช่ในทางกลับกัน) ลองอิน“เข้า” สมอลอินท์ซึ่งจะรวมถึง ชอร์ตอินท์ .

รายการขั้นตอนและฟังก์ชันที่ใช้กับประเภทจำนวนเต็มมีอยู่ในตาราง 1.2. ตัวอักษร b, s, w, i, l หมายถึงนิพจน์ตามลำดับของประเภท ไบต์ , Shortint, Word, Integer และ Longint ,

x เป็นนิพจน์ประเภทใดประเภทหนึ่งเหล่านี้ ตัวอักษร vb, vs, vw, vi, vl, vx หมายถึงตัวแปรประเภทต่างๆ พารามิเตอร์ทางเลือกถูกระบุในวงเล็บเหลี่ยม

ตารางที่ 1.2 - ขั้นตอนและฟังก์ชันมาตรฐานที่ใช้กับประเภทจำนวนเต็ม

อุทธรณ์ ประเภทผลลัพธ์ การกระทำ
เอบีเอส (x) x ส่งกลับโมดูล x
chr(ข) ถ่าน ส่งกลับอักขระด้วยรหัสของมัน
ธ.ค.(vx[, i]) - ลดค่าของ vx ทีละ i และในกรณีที่ไม่มี i - ทีละ 1
inc(vx[,i]) - เพิ่มค่าของ vx ทีละ i และในกรณีที่ไม่มี i - ทีละ 1
สวัสดี (w) ไบต์ ส่งกลับโค้งสูงสุดของอาร์กิวเมนต์
สวัสดี (ฉัน) เดียวกัน คืนค่าไบต์ที่สาม
หล่อ (ผม) ส่งกลับค่าไบต์ต่ำของอาร์กิวเมนต์
ต่ำ) เดียวกัน
แปลก (ล.) บูลีน คืนค่า True หากอาร์กิวเมนต์เป็นเลขคี่
สุ่ม(ญ) เป็นพารามิเตอร์ ส่งกลับตัวเลขสุ่มหลอกที่กระจายอย่างเท่าเทียมกันในช่วง 0...(w-l)
ตร.ว.(x) เอ็กซ์ ส่งกลับกำลังสองของอาร์กิวเมนต์
แลกเปลี่ยน (i) จำนวนเต็ม สลับไบต์ในคำ
สลับ(ญ) คำ เดียวกัน

เมื่อดำเนินการกับจำนวนเต็ม ประเภทของผลลัพธ์จะสอดคล้องกับประเภทของตัวถูกดำเนินการ และถ้าตัวถูกดำเนินการเป็นประเภทจำนวนเต็มที่แตกต่างกัน จะเป็นประเภททั่วไปที่มีตัวถูกดำเนินการทั้งสอง เช่น เมื่อกระทำด้วย สั้นและ คำทั่วไปจะเป็นประเภท จำนวนเต็ม. ตามค่าเริ่มต้น คอมไพลเลอร์ Delphi จะไม่สร้างโค้ดที่ควบคุมว่าค่าอยู่นอกช่วงหรือไม่ ซึ่งอาจทำให้เกิดความสับสนได้

ประเภทบูลีน . ประเภทบูลีนคือ บูลีน, ไบต์บูล, บูล, เวิร์ดบูลและ ลองบูล. ในภาษาปาสคาลมาตรฐาน จะกำหนดเฉพาะประเภทเท่านั้น บูลีน, ประเภทบูลีนอื่นๆ ถูกนำมาใช้ใน Object Pascal เพื่อให้เข้ากันได้กับ Windows: types บูลีนและ ไบต์บูลครอบครองหนึ่งไบต์ต่อหนึ่ง บูลและ เวิร์ดบูล- 2 ไบต์ ลองบูล- 4 ไบต์ ค่าบูลีนสามารถเป็นหนึ่งในค่าคงที่ที่ประกาศไว้ล่วงหน้า False (เท็จ) หรือ True (จริง)

เนื่องจากประเภทบูลีนเป็นประเภทลำดับ จึงสามารถใช้ในคำสั่งวนซ้ำประเภทการนับได้ ใน Delphi 32 สำหรับ บูลีนความหมาย

Ord (True) = +1 ในขณะที่ประเภทอื่นๆ ( บูล, เวิร์ดบูลเป็นต้น)

Ord (True) = -1 ดังนั้นควรใช้ตัวดำเนินการประเภทนี้ด้วยความระมัดระวัง! ตัวอย่างเช่น สำหรับเวอร์ชัน Delphi 6 คำสั่ง showMessage (" ---") ที่เรียกใช้งานได้ในลูปต่อไปนี้ สำหรับจะไม่ถูกดำเนินการ:

สำหรับ L:= False ถึง True do

แสดงข้อความ ("--);

หากเราแทนที่พารามิเตอร์ลูปประเภท L ในตัวอย่างก่อนหน้าด้วย บูลีนการวนซ้ำจะทำงานและข้อความจะปรากฏขึ้นสองครั้งบนหน้าจอ [สำหรับ Delphi เวอร์ชัน 1 และ 2 หรือ (จริง) =+1 สำหรับประเภทบูลีนใดๆ]

ประเภทตัวละคร . ค่าประเภทตัวละครคือชุดของตัวละคร PK ทั้งหมด อักขระแต่ละตัวถูกกำหนดเป็นจำนวนเต็มในช่วง 0...255 หมายเลขนี้ทำหน้าที่เป็นรหัสสำหรับการแสดงอักขระภายใน และส่งคืนโดยฟังก์ชัน ord

การเข้ารหัส Windows ใช้รหัส ANSI (ตั้งชื่อตาม American National Standard Institute ซึ่งเป็นสถาบันมาตรฐานของอเมริกาที่เสนอรหัสนี้) อักขระ PC ครึ่งตัวแรกที่มีรหัส 0...127 สอดคล้องกับตาราง 1.3 อักขระครึ่งหลังที่มีรหัส 128...255 เปลี่ยนแปลงสำหรับแบบอักษรต่างๆ แบบอักษร Windows มาตรฐาน Arial Cyr, Courier New Cyr และ Times New Roman เพื่อแสดงอักขระซีริลลิก (ไม่มีตัวอักษร “ё” และ “Ё”) ใช้รหัส 64 ตัวสุดท้าย (จาก 192 ถึง 256): “А”... “Я ” เป็นค่าที่เข้ารหัส 192..223, “a”... “i” - 224...255 อักขระ "Ё" และ "ё" มีรหัส 168 และ 184 ตามลำดับ

ตารางที่ 1.3 - การเข้ารหัสอักขระตามมาตรฐาน ANSI

รหัส เครื่องหมาย รหัส. เครื่องหมาย รหัส. เครื่องหมาย รหัส เครื่องหมาย
0 ไม่มี 32 บีแอล 64 @ 96 "
1 โซน 33 ! 65 97
2 เอสทีเอ็กซ์ 34 66 ใน 98
3 ETX 35 # 67 กับ 99 กับ
4 สพป 36 $ 68 100
5 ENQ 37 % 69 อี 101 อี
6 อค 38 & 70 102
7 เบล 39 " 71 103
8" วท.บ 40 ( 72 ชม 104 ชม.
9 เอช.ที 41 ) 73 ฉัน 105 ฉัน
10 เอลฟ์ 42 * 74 เจ 106 เจ
11 วี.ที 43 + 75 ถึง 107 เค
12 เอฟ.เอฟ 44 76 แอล 108 1
13 Cr 45 - 77 109
14 ดังนั้น 46 78 เอ็น 110
15 ศรี 47 / 79 0 111
16 เดล 48 0 80 112 พี
17 ดีซี1 49 1 81 ถาม 113 ถาม
18 ดีซี2 50 2 82 114
19 DC3 51 3 83 115
20 ดีซี 4 52 4 84 116 ที
21 นาค 53 5 85 ยู 117 ยู
22 ซิน 54 6 86 วี 118 โวลต์
23 อีทีบี 55 7 87 119
24 สามารถ 56 8 88 เอ็กซ์ 120 x
25 อีเอ็ม 57 9 89 วาย 121 ที่
26 ย่อย 58 : 90 Z .122 ซี
27 เอสซี 59 ; 91 ที 123 {
28 เอฟ.เอส 60 < 92 \ 124 1
29 จีเอส 61 = 93 ] 125 }
30 อาร์.เอส 62 > 94 แอล 126 ~
31 เรา 63 95 127

สัญลักษณ์ที่มีรหัส 0...31 หมายถึงรหัสบริการ หากรหัสเหล่านี้ถูกใช้ในข้อความสัญลักษณ์ของโปรแกรม จะถือว่าเป็นช่องว่าง

พิมพ์ ถ่านการดำเนินการเชิงสัมพันธ์สามารถใช้ได้ เช่นเดียวกับฟังก์ชันในตัว:

ถ่าน (ใน)- ฟังก์ชั่นประเภท ถ่าน; แปลงนิพจน์เป็นประเภท ไบต์เป็นสัญลักษณ์และส่งกลับด้วยค่าของมัน

UpCase (CH)- ฟังก์ชั่นประเภท ถ่าน; ส่งคืนอักษรตัวพิมพ์ใหญ่หาก сн เป็นอักษรละตินตัวพิมพ์เล็ก มิฉะนั้น จะส่งกลับอักขระ сн เอง (สำหรับซีริลลิก จะส่งกลับอักขระดั้งเดิม)

ประเภทแจกแจง . ประเภทการแจงนับถูกกำหนดโดยการแจกแจงค่าที่สามารถรับได้ แต่ละค่าได้รับการตั้งชื่อตามตัวระบุบางตัวและอยู่ในรายการที่อยู่ในวงเล็บ ตัวอย่างเช่น:

สี = (แดง ขาว น้ำเงิน);

การใช้ประเภทการแจงนับทำให้โปรแกรมอ่านง่ายขึ้น

ความสอดคล้องระหว่างค่าของประเภทการแจกแจงและหมายเลขลำดับของค่าเหล่านี้ถูกกำหนดขึ้นตามลำดับของการแจงนับ: ค่าแรกในรายการจะได้รับหมายเลขลำดับ 0, ค่าที่สอง - 1 เป็นต้น ค่าสูงสุด จำนวนสมาชิกของประเภทการแจงนับคือ 65536 ค่า ดังนั้นประเภทการแจกแจงจริงจะกำหนดเซตย่อยของประเภทจำนวนเต็ม คำและสามารถดูเป็นการประกาศแบบย่อของกลุ่มค่าคงที่จำนวนเต็มที่มีค่า 0, 1 และอื่น ๆ ในคราวเดียว

การใช้ประเภทการแจงนับจะเพิ่มความน่าเชื่อถือของโปรแกรมโดยสามารถควบคุมค่าที่ตัวแปรที่เกี่ยวข้องได้รับ ใน Object Pascal อนุญาตให้มีการแปลงย้อนกลับ: นิพจน์ประเภทใดก็ได้ คำสามารถแปลงเป็นค่าของประเภทที่แจกแจงได้ ตราบใดที่ค่าของนิพจน์จำนวนเต็มไม่เกินจำนวนสมาชิกของประเภทนั้น การแปลงนี้ทำได้โดยใช้ฟังก์ชันประกาศอัตโนมัติพร้อมชื่อประเภทที่แจกแจง

ประเภทช่วง . ประเภทช่วงเป็นชุดย่อยของประเภทพื้นฐาน ซึ่งสามารถเป็นประเภทลำดับใดก็ได้ ยกเว้นประเภทช่วง

ประเภทช่วงถูกกำหนดโดยขอบเขตของค่าภายในประเภทฐาน:

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

ที่นี่<мин. знач. >- ค่าต่ำสุดของประเภทช่วง<макс. знач. >- ค่าสูงสุดของมัน

ไม่จำเป็นต้องอธิบายประเภทช่วงในส่วนประเภท แต่สามารถระบุได้โดยตรงเมื่อประกาศตัวแปร

เมื่อกำหนดประเภทช่วง ควรปฏิบัติตามกฎต่อไปนี้:

อักขระสองตัว ".." จะถือเป็นอักขระเดียว ดังนั้นจึงไม่อนุญาตให้มีช่องว่างระหว่างอักขระทั้งสอง ปลายด้านซ้ายของช่วงต้องไม่เกินด้านขวา

ประเภทช่วงสืบทอดคุณสมบัติทั้งหมดของประเภทพื้นฐาน แต่มีข้อจำกัดเนื่องจากจำนวนสมาชิกที่ต่ำกว่า โดยเฉพาะอย่างยิ่งหากมีการกำหนดตัวแปร

ไลบรารีมาตรฐานของ Object Pascal มีสองฟังก์ชันที่รองรับการทำงานกับประเภทช่วง:

สูง(x)- ส่งคืนค่าสูงสุดของช่วงประเภทที่ตัวแปร x เป็นสมาชิก

ต่ำ (x)- ส่งกลับค่าต่ำสุดของประเภทช่วง

1.1.2 ประเภทจริง

ซึ่งแตกต่างจากประเภทลำดับซึ่งค่าจะถูกเปรียบเทียบกับชุดของจำนวนเต็มเสมอดังนั้นจึงแสดงในพีซีอย่างแน่นอน ค่าของประเภทจริงกำหนดจำนวนโดยพลการด้วยความแม่นยำที่ จำกัด ขึ้นอยู่กับรูปแบบภายใน ของจำนวนจริง

ตาราง 1.4 - ประเภทจริง

ในรุ่นก่อนหน้าของ Delphi 1...3 พิมพ์ จริงครอบครอง 6 ไบต์และมีช่วงของค่าตั้งแต่ 2.9*10-39 ถึง 1.7*1038 ในเวอร์ชัน 4 และ 5 ประเภทนี้เทียบเท่ากับประเภท สองเท่า. หากจำเป็น (ด้วยเหตุผลด้านความเข้ากันได้) ให้ใช้ 6 ไบต์ จริงคุณต้องระบุคำสั่งคอมไพเลอร์ (SREALCOMPATIBILITY ON)

ดังจะเห็นได้จากตาราง 1.4 จำนวนจริงใน Object Pascal ใช้เวลาตั้งแต่ 4 ถึง 10 ไบต์ที่อยู่ติดกัน และมีโครงสร้างต่อไปนี้ในหน่วยความจำพีซี

นี่คือบิตเครื่องหมายของตัวเลข e คือส่วนเลขชี้กำลัง มีลำดับไบนารี m คือแมนทิสซาของจำนวน

มันติสซ่าม. มีความยาวตั้งแต่ 23 (สำหรับ เดี่ยว) ถึง 63 (สำหรับ ขยาย) เลขฐานสองซึ่งให้ความแม่นยำ 7...8 สำหรับ เดี่ยวและ 19...20 สำหรับ ขยายหลักทศนิยม จุดทศนิยม (ลูกน้ำ) จะแสดงเป็นนัยก่อนหลักซ้าย (สูงสุด) ของแมนทิสซา แต่เมื่อทำงานกับตัวเลข ตำแหน่งจะเลื่อนไปทางซ้ายหรือขวาตามลำดับเลขฐานสองของตัวเลขที่เก็บอยู่ในส่วนเลขชี้กำลัง ดังนั้นการดำเนินการกับจำนวนจริงจึงเรียกว่าเลขคณิตทศนิยม (จุลภาค)

โปรดทราบว่าตัวประมวลผลร่วมทางคณิตศาสตร์จะประมวลผลตัวเลขในรูปแบบเสมอ ขยายและอีกสามประเภทจริงในกรณีนี้ได้มาจากการตัดทอนผลลัพธ์ให้เหลือขนาดที่ต้องการ และส่วนใหญ่จะใช้เพื่อบันทึกหน่วยความจำ

ประเภทครอบครองตำแหน่งพิเศษใน Object Pascal คอมพ์และ สกุลเงินซึ่งถือว่าเป็นจำนวนจริงที่มีเศษส่วนความยาวคงที่: นิ้ว คอมพ์ส่วนที่เป็นเศษส่วนมีความยาวเป็น 0 หลักนั่นคือไม่มีอยู่ใน สกุลเงินความยาวของเศษส่วน - ทศนิยม 4 ตำแหน่ง ในความเป็นจริง ทั้งสองประเภทกำหนดจำนวนเต็มขนาดใหญ่ที่มีลายเซ็นซึ่งเก็บ 19...20 หลักทศนิยม (ภายในใช้ 8 ไบต์ที่อยู่ติดกัน) ในขณะเดียวกันในการแสดงออก คอมพ์และ สกุลเงินเข้ากันได้อย่างสมบูรณ์กับประเภทจริงอื่น ๆ : การดำเนินการจริงทั้งหมดถูกกำหนดไว้แล้ว สามารถใช้เป็นอาร์กิวเมนต์ของฟังก์ชันทางคณิตศาสตร์ ฯลฯ ขอบเขตที่เหมาะสมที่สุดของประเภทเหล่านี้คือการคำนวณทางบัญชี

1.1.3 ประเภทวัน-เวลา

ประเภทวันที่และเวลาถูกกำหนดโดยตัวระบุมาตรฐาน TDateTimeและถูกออกแบบมาให้จัดเก็บทั้งวันที่และเวลาในเวลาเดียวกัน ในการเป็นตัวแทนภายใน จะใช้ 8 ไบต์และเหมือนกัน สกุลเงินเป็นจำนวนจริงที่มีเศษส่วนคงที่: ส่วนจำนวนเต็มของตัวเลขจะเก็บวันที่ ส่วนเศษส่วนจะเก็บเวลา วันที่ถูกกำหนดเป็นจำนวนวันที่ผ่านไปตั้งแต่วันที่ 30 ธันวาคม 1899 และเวลาถูกกำหนดเป็นเศษส่วนของวันตั้งแต่ 00:00 น. ดังนั้นค่า 36444.837 จึงตรงกับวันที่ 10/11/1999 และเวลา 20:05 น. จำนวนวันยังสามารถเป็นค่าลบได้ แต่ค่าที่น้อยกว่า -693594 (ตรงกับวันที่ 00.00.0000 AD) จะถูกละเว้นโดยฟังก์ชันการแปลงวันที่เป็นสตริง

ข้อมูลประเภทเกิน TDateTimeการดำเนินการเดียวกันถูกกำหนดให้เป็นจำนวนจริง และนิพจน์ประเภทนี้อาจเกี่ยวข้องกับค่าคงที่และตัวแปรของจำนวนเต็มและประเภทจริง

ตั้งแต่ประเภท TDateTimeเข้ากันได้กับรูปแบบของจำนวนจริง คุณสามารถกำหนดวันที่ล่วงหน้าหรือย้อนหลังจากวันที่กำหนดได้โดยง่าย: ในการทำเช่นนี้ เพียงเพิ่มหรือลบจำนวนเต็มที่ต้องการจากวันที่ที่กำหนดตามลำดับ

1.2 ประเภทโครงสร้าง

ประเภทที่มีโครงสร้างใดๆ (และมีสี่ประเภทใน Object Pascal: อาร์เรย์ เร็กคอร์ด ชุด และไฟล์) มีลักษณะเฉพาะจากหลายหลากขององค์ประกอบที่ก่อตัวเป็นประเภทนี้ แต่ละองค์ประกอบสามารถอยู่ในประเภทที่มีโครงสร้างซึ่งช่วยให้เราสามารถพูดคุยเกี่ยวกับประเภทการซ้อนที่เป็นไปได้ Object Pascal อนุญาตให้มีความลึกของการซ้อนประเภทโดยพลการ อย่างไรก็ตาม ความยาวรวมของประเภทใด ๆ ในการเป็นตัวแทนภายในไม่ควรเกิน 2 GB

เพื่อความเข้ากันได้กับภาษาปาสคาลมาตรฐาน Object Pascal อนุญาตให้คำสงวนนำหน้าการประกาศประเภทที่มีโครงสร้าง บรรจุสั่งให้คอมไพเลอร์บันทึกหน่วยความจำที่จัดสรรสำหรับวัตถุประเภทที่มีโครงสร้าง ถ้าเป็นไปได้ แต่คอมไพเลอร์ไม่สนใจข้อบ่งชี้นี้: การ "บรรจุ" ข้อมูลลงใน Object Pascal จะทำโดยอัตโนมัติเมื่อทำได้

1.2.1 อาร์เรย์

อาร์เรย์ใน Object Pascal มีความคล้ายคลึงกันหลายประการกับประเภทข้อมูลที่คล้ายคลึงกันในภาษาโปรแกรมอื่นๆ คุณสมบัติที่โดดเด่นของอาร์เรย์คือส่วนประกอบทั้งหมดเป็นข้อมูลประเภทเดียวกัน (อาจมีโครงสร้าง) ส่วนประกอบเหล่านี้สามารถสั่งซื้อได้ง่ายและสามารถเข้าถึงได้ง่ายเพียงระบุหมายเลขลำดับ

คำอธิบายประเภทอาร์เรย์มีดังต่อไปนี้:

<имя типа>= อาร์เรย์[<сп.инд.типов>] ของ<тип>;

ที่นี่<имя типа>- ตัวระบุที่ถูกต้อง อาร์เรย์ของ- คำสงวน (อาร์เรย์จาก);<сп.инд.типов>- รายการของดัชนีอย่างน้อยหนึ่งประเภทโดยคั่นด้วยเครื่องหมายจุลภาค วงเล็บเหลี่ยมที่ล้อมรอบรายการเป็นข้อกำหนดทางไวยากรณ์<тип>- Object Pascal ทุกประเภท

ในฐานะประเภทดัชนีใน Object Pascal คุณสามารถใช้ประเภทลำดับใดก็ได้ที่มีความจุไม่เกิน 2 GB (เช่น ยกเว้น คำยาวและ int64)

ความลึกของการซ้อนประเภทที่มีโครงสร้างโดยทั่วไป และเป็นผลให้อาร์เรย์เป็นไปตามอำเภอใจ ดังนั้นจำนวนองค์ประกอบในรายการประเภทดัชนี (ขนาดอาร์เรย์) จึงไม่จำกัด อย่างไรก็ตาม ความยาวรวมของการแสดงภายในของใดๆ อาร์เรย์ต้องไม่เกิน 2 GB ในหน่วยความจำของพีซี องค์ประกอบของอาร์เรย์จะติดตามกัน ดังนั้นเมื่อย้ายจากแอดเดรสที่ต่ำกว่าไปยังแอดเดรสที่สูงกว่า ดัชนีอาร์เรย์ด้านขวาสุดจะเปลี่ยนแปลงอย่างรวดเร็วที่สุด

ใน Object Pascal คุณสามารถถ่ายโอนองค์ประกอบทั้งหมดของอาร์เรย์หนึ่งไปยังอีกอาร์เรย์ประเภทเดียวกันด้วยตัวดำเนินการกำหนดหนึ่งตัว

1.2.2 รายการ

การบันทึก เป็นโครงสร้างข้อมูลที่ประกอบด้วยส่วนประกอบจำนวนคงที่ซึ่งเรียกว่าเขตข้อมูลระเบียน คอมโพเนนต์ (ฟิลด์) ของเรคคอร์ดสามารถเป็นประเภทต่างๆ ได้ ซึ่งแตกต่างจากอาร์เรย์ เพื่อให้สามารถอ้างถึงองค์ประกอบหนึ่งหรือส่วนประกอบของเรกคอร์ด ฟิลด์จะถูกตั้งชื่อ

โครงสร้างของการประกาศประเภทเรกคอร์ดมีดังนี้:

<имятипа>= บันทึก<сп.полей>จบ;

ที่นี่<имя типа>- ตัวระบุที่ถูกต้อง บันทึก/จบ- คำสงวน (บันทึก, จบ);<сп.полей>- รายการฟิลด์ เป็นลำดับของส่วนต่างๆ ของเรคคอร์ดที่คั่นด้วยเครื่องหมายอัฒภาค

แต่ละส่วนของเรกคอร์ดประกอบด้วยตัวระบุฟิลด์ตั้งแต่หนึ่งตัวขึ้นไปโดยคั่นด้วยเครื่องหมายจุลภาค

เสนอ กรณีของซึ่งเปิดส่วนของตัวแปร ภายนอกดูเหมือนโอเปอเรเตอร์การเลือกที่สอดคล้องกัน แต่อันที่จริงแล้วมันมีบทบาทเป็นเพียงคำเสริมชนิดหนึ่งที่แสดงถึงจุดเริ่มต้นของส่วนแปรผัน นั่นคือเหตุผลที่ไม่ควรใส่ส่วนท้ายของตัวแปร จบเป็นคู่ถึง กรณีของ. (เนื่องจากส่วนของตัวแปรจะเป็นส่วนสุดท้ายในบันทึกเสมอ จึงยังคงมีจุดสิ้นสุดหลังจากนั้น แต่จะบันทึกเป็นคู่เท่านั้น) คีย์การเลือกในประโยค กรณีของถูกมองข้ามโดยคอมไพเลอร์: ข้อกำหนดเดียวสำหรับมันใน Object Pascal คือคีย์กำหนดมาตรฐานหรือประเภทลำดับที่ประกาศไว้ล่วงหน้า

ชื่อฟิลด์ต้องไม่ซ้ำกันภายในเรคคอร์ดที่มีการประกาศ อย่างไรก็ตาม หากเรคคอร์ดมีฟิลด์เรคคอร์ด เช่น ฟิลด์หนึ่งซ้อนอยู่ภายในอีกฟิลด์หนึ่ง ชื่อสามารถทำซ้ำได้ในระดับการซ้อนที่แตกต่างกัน

1.2.3 ชุด

ชุด - สิ่งเหล่านี้คือชุดของวัตถุประเภทเดียวกันซึ่งสัมพันธ์กันในเชิงตรรกะ ธรรมชาติของความสัมพันธ์ระหว่างออบเจกต์นั้นบอกเป็นนัยโดยโปรแกรมเมอร์เท่านั้น และไม่ได้ถูกควบคุมโดยออบเจกต์ปาสคาลแต่อย่างใด จำนวนองค์ประกอบที่รวมอยู่ในชุดสามารถเปลี่ยนแปลงได้ตั้งแต่ 0 ถึง 256 (ชุดที่ไม่มีองค์ประกอบเรียกว่าว่าง) มันคือความแปรปรวนของจำนวนองค์ประกอบที่กำหนดชุดนอกเหนือจากอาร์เรย์และระเบียน

สองชุดจะถือว่าเท่ากันก็ต่อเมื่อองค์ประกอบทั้งหมดเหมือนกัน และลำดับขององค์ประกอบในชุดนั้นไม่แตกต่างกัน หากองค์ประกอบทั้งหมดของชุดหนึ่งรวมอยู่ในอีกชุดหนึ่งด้วย เราจะบอกว่าชุดแรกรวมอยู่ในชุดที่สอง เซตว่างรวมอยู่ในเซตอื่นๆ

คำอธิบายของประเภทชุดคือ:

<имя типа>= ชุดของ<базовый тип>;

ที่นี่<имя типа>- ตัวระบุที่ถูกต้อง ชุดของ- คำสงวน (ชุดจาก);<базовый тип>- ประเภทฐานขององค์ประกอบของเซต ซึ่งสามารถเป็นประเภทลำดับใดก็ได้ ยกเว้น Word, จำนวนเต็ม, Longint, Int64 .

ในการระบุชุด จะใช้ตัวสร้างชุดที่เรียกว่า: รายการข้อกำหนดขององค์ประกอบชุด คั่นด้วยเครื่องหมายจุลภาค รายการอยู่ในวงเล็บเหลี่ยม ข้อมูลจำเพาะขององค์ประกอบสามารถเป็นค่าคงที่หรือนิพจน์ของประเภทฐาน หรือประเภทช่วงของประเภทฐานเดียวกัน

โครงสร้างภายในของชุดนั้นแต่ละองค์ประกอบถูกกำหนดให้เป็นเลขฐานสองหนึ่งหลัก (หนึ่งบิต) หากองค์ประกอบรวมอยู่ในชุด บิตที่เกี่ยวข้องคือ 1 มิฉะนั้นจะเป็น 0 ในเวลาเดียวกัน หน่วยหน่วยความจำขั้นต่ำคือหนึ่งไบต์ที่มี 8 บิต ดังนั้นคอมไพลเลอร์จึงจัดสรรหนึ่งไบต์ให้กับชุด และเป็น ส่งผลให้พลังของแต่ละคนกลายเป็น 8 ธาตุ จำนวนสมาชิกสูงสุดของชุดคือ 256 องค์ประกอบ สำหรับชุดดังกล่าว คอมไพเลอร์จัดสรร 16 ไบต์ที่อยู่ติดกัน

และอีกหนึ่งการทดสอบ: เปลี่ยนช่วงประเภทพื้นฐานเป็น 1..256 แม้ว่าจำนวนสมาชิกของประเภทนี้คือ 256 องค์ประกอบ เมื่อพยายามคอมไพล์โปรแกรม คอมไพลเลอร์จะรายงานข้อผิดพลาด: ชุดอาจมีองค์ประกอบได้สูงสุด 256 รายการ (ชุดอาจมีองค์ประกอบได้สูงสุด 256 รายการ) ตั้งแต่เริ่มนับจำนวนองค์ประกอบของชุด จากศูนย์โดยไม่คำนึงถึงขอบเขตล่างที่ประกาศในโปรแกรม คอมไพเลอร์อนุญาตให้ประเภทฐานเป็นประเภทช่วงจำนวนเต็มที่มีขอบเขตขั้นต่ำเป็น 0 และสูงสุด 255 หรือประเภทที่แจกแจงใดๆ ที่มีองค์ประกอบไม่เกิน 256 รายการ (จำนวนสมาชิกสูงสุดของประเภทที่แจกแจงคือ 65536 องค์ประกอบ)

1.3 เส้น

ประเภทต่อไปนี้ใช้สำหรับการประมวลผลข้อความใน Object Pascal:

สายสั้น สตริงสั้นหรือ สตริง[n]โดยที่ น<= 255;

สายยาว สตริง ;

สตริงกว้าง ไวด์สตริง ;

สตริงเทอร์มินัล null พชาร์ .

สิ่งที่ประเภทเหล่านี้มีเหมือนกันคือแต่ละสตริงจะถือว่าเป็นอาร์เรย์ของอักขระหนึ่งมิติ จำนวนอักขระที่สามารถเปลี่ยนแปลงได้ในโปรแกรมที่กำลังรัน: สำหรับสตริง [n] ความยาวของสตริงจะแตกต่างกันไปตั้งแต่ 0 ถึง n , สำหรับ สตริงและ พชาร์- จาก 0 ถึง 2 GB

ภาษาปาสคาลมาตรฐานใช้สตริงสั้นๆ เท่านั้น สตริง[n]. ในหน่วยความจำ สตริงดังกล่าวได้รับการจัดสรร n + i ไบต์ ไบต์แรกประกอบด้วยความยาวปัจจุบันของสตริง และอักขระจะอยู่ในตำแหน่งเริ่มต้นจากไบต์ที่ 2 เนื่องจากความยาวของสตริงในกรณีนี้คือหนึ่งไบต์ ความยาวสูงสุดของสตริงแบบสั้นจึงไม่เกิน 255 อักขระ ประเภทมาตรฐานใช้เพื่อประกาศสตริงสั้นที่มีความยาวสูงสุด สตริงสั้น(เทียบเท่า สตริง).

Windows ใช้สตริงเทอร์มินัล null อย่างกว้างขวาง ซึ่งเป็นสตริงของอักขระที่คั่นด้วย #o ความยาวสูงสุดของสตริงดังกล่าวถูกจำกัดโดยหน่วยความจำที่มีอยู่เท่านั้น และอาจมีขนาดใหญ่มาก

ประเภทใหม่ที่เปิดตัวใน Delphi เวอร์ชัน 32 บิต สตริงผสมผสานความสะดวกสบายของทั้งสองแบบ เมื่อทำงานกับประเภทนี้ หน่วยความจำจะถูกจัดสรรตามความจำเป็น (ไดนามิก) และถูกจำกัดโดยหน่วยความจำที่มีอยู่สำหรับโปรแกรม

1.4 ตัวชี้และหน่วยความจำแบบไดนามิก

1.4.1 หน่วยความจำแบบไดนามิก

หน่วยความจำแบบไดนามิก- นี่คือ PC RAM ที่จัดเตรียมให้กับโปรแกรมระหว่างการทำงาน การจัดสรรข้อมูลแบบไดนามิกหมายถึงการใช้หน่วยความจำแบบไดนามิกโดยตรงเมื่อโปรแกรมกำลังทำงาน ในทางตรงกันข้าม การจัดสรรแบบสแตติกจะทำโดยคอมไพเลอร์ Object Pascal ระหว่างการคอมไพล์โปรแกรม ด้วยการจัดสรรแบบไดนามิก จะไม่ทราบประเภทหรือจำนวนข้อมูลที่จะจัดสรรล่วงหน้า

1.4.2 พอยน์เตอร์

PC RAM คือชุดของเซลล์สำหรับจัดเก็บข้อมูล - ไบต์ซึ่งแต่ละเซลล์มีหมายเลขของตัวเอง หมายเลขเหล่านี้เรียกว่าที่อยู่ซึ่งอนุญาตให้คุณเข้าถึงหน่วยความจำไบต์ใดก็ได้ Object Pascal มอบวิธีการที่ยืดหยุ่นในการจัดการหน่วยความจำไดนามิกแก่โปรแกรมเมอร์ - ตัวชี้ที่เรียกว่า พอยน์เตอร์คือตัวแปรที่มีค่าเป็นแอดเดรสของหน่วยความจำหนึ่งไบต์ เมื่อใช้พอยน์เตอร์ คุณสามารถจัดสรรประเภทข้อมูลใดๆ ที่รู้จักใน Object Pascal ในหน่วยความจำไดนามิก บางส่วนเท่านั้น ( ไบต์, ถ่าน, ShortInt, บูลีน) ครอบครองหนึ่งไบต์ในการเป็นตัวแทนภายใน ส่วนที่เหลือ - หลายอันที่อยู่ติดกัน ดังนั้นตัวชี้จึงระบุเฉพาะไบต์แรกของข้อมูลเท่านั้น

โดยทั่วไป ตัวชี้จะเชื่อมโยงกับข้อมูลบางประเภท พอยน์เตอร์ดังกล่าวจะถูกเรียกว่าตัวพิมพ์ ในการประกาศตัวชี้แบบพิมพ์ ให้ใช้เครื่องหมาย ^ ซึ่งวางไว้หน้าประเภทที่เกี่ยวข้อง

ใน Object Pascal คุณสามารถประกาศตัวชี้โดยไม่ต้องเชื่อมโยงกับชนิดข้อมูลใดโดยเฉพาะ นี่คือประเภทมาตรฐาน ตัวชี้, ตัวอย่างเช่น:

ตัวชี้ประเภทนี้จะเรียกว่าไม่ได้พิมพ์ เนื่องจากพอยน์เตอร์ที่ไม่ได้พิมพ์ไม่ได้เชื่อมโยงกับประเภทใดประเภทหนึ่ง จึงมีประโยชน์สำหรับการจัดสรรข้อมูลแบบไดนามิกที่มีโครงสร้างและประเภทเปลี่ยนแปลงเมื่อโปรแกรมทำงาน

ดังที่ได้กล่าวไปแล้ว ค่าของพอยน์เตอร์คือแอดเดรสของตัวแปรในหน่วยความจำ ดังนั้นคุณคาดว่าค่าของพอยน์เตอร์ตัวหนึ่งจะถูกส่งผ่านไปยังอีกค่าหนึ่ง อันที่จริงไม่เป็นความจริง ใน Object Pascal คุณสามารถส่งค่าระหว่างพอยน์เตอร์ที่เกี่ยวข้องกับประเภทข้อมูลเดียวกันเท่านั้น

1.4.3 การจัดสรรและการจัดสรรหน่วยความจำแบบไดนามิก

หน่วยความจำไดนามิกทั้งหมดใน Object Pascal ถือว่าเป็นอาร์เรย์ของไบต์ที่อยู่ติดกันซึ่งเรียกว่าฮีป

หน่วยความจำสำหรับตัวแปรที่จัดสรรแบบไดนามิกใดๆ ถูกจัดสรรโดยขั้นตอนใหม่ พารามิเตอร์การเรียกใช้โพรซีเดอร์นี้คือตัวชี้แบบพิมพ์ ผลจากการเข้าถึง ตัวชี้จะได้รับค่าที่สอดคล้องกับที่อยู่ที่สามารถวางข้อมูลได้ ค่าที่ตัวชี้ชี้ไป เช่น ข้อมูลจริงที่จัดสรรบนฮีป จะแสดงด้วยเครื่องหมาย ^ ซึ่งวางต่อจากตัวชี้ทันที หากไม่มีเครื่องหมาย ^ ด้านหลังตัวชี้ แสดงว่าเป็นที่อยู่ที่มีข้อมูลอยู่ มันสมเหตุสมผลแล้วที่จะคิดอีกครั้งเกี่ยวกับสิ่งที่เพิ่งพูด: ค่าของตัวชี้ใดๆ คือที่อยู่ และเพื่อระบุว่าเราไม่ได้พูดถึงที่อยู่ แต่เกี่ยวกับข้อมูลที่อยู่ในที่อยู่นี้ ตัวชี้จะถูกวางไว้ ^ (บางครั้งเรียกว่า dereference pointer)

ข้อมูลที่จัดสรรแบบไดนามิกสามารถใช้ได้ทุกที่ในโปรแกรม ซึ่งอนุญาตสำหรับค่าคงที่และตัวแปรประเภทที่สอดคล้องกัน

หน่วยความจำไดนามิกไม่เพียง แต่สามารถนำมาจากฮีปเท่านั้น แต่ยังสามารถส่งคืนได้อีกด้วย สิ่งนี้ทำได้โดยใช้ขั้นตอนการกำจัด ตัวอย่างเช่น ตัวดำเนินการ

กำจัด (pJ);

กำจัด (pR);

จะกลับไปที่ฮีปหน่วยความจำที่กำหนดให้กับพอยน์เตอร์ pJ และ pR ก่อนหน้านี้ (ดูด้านบน)

โปรดทราบว่าขั้นตอน Dispose (pPtr) จะไม่เปลี่ยนค่าของตัวชี้ pPtr แต่จะคืนค่าหน่วยความจำที่เชื่อมโยงกับตัวชี้นี้ก่อนหน้านี้เท่านั้น อย่างไรก็ตาม การใช้ขั้นตอนกับตัวชี้ว่างอีกครั้งจะทำให้เกิดข้อผิดพลาดรันไทม์ โปรแกรมเมอร์สามารถทำเครื่องหมายตัวชี้ว่างด้วยคำสงวนเป็นศูนย์

1.5 พิมพ์นามแฝง

คุณสามารถประกาศนามแฝงได้มากเท่าที่คุณต้องการสำหรับประเภทใดก็ได้ ตัวอย่างเช่น:

TMyInteger = จำนวนเต็ม;

นามแฝงสามารถใช้ในลักษณะเดียวกับประเภทฐาน:

จำนวนเต็ม: TMyInteger;

MyInt:= 2*รอบ(ปี่);

นามแฝงประเภทนี้มักใช้เพื่อเพิ่มการเปิดเผยรหัสโปรแกรม อย่างไรก็ตาม ใน Object Pascal คุณสามารถประกาศนามแฝงที่พิมพ์มากโดยเพิ่มประเภทคำสงวนไว้หน้าชื่อประเภทพื้นฐาน:

TMyIntegerType = พิมพ์จำนวนเต็ม;

MylntVar: TMyIntegerType;

จากมุมมองของคอมไพเลอร์ นามแฝงที่พิมพ์เข้ากันได้กับประเภทพื้นฐานในนิพจน์ประเภทต่างๆ แต่ในความเป็นจริง พวกเขาประกาศประเภทข้อมูลใหม่ ดังนั้นจึงไม่สามารถใช้เป็นพารามิเตอร์ที่เป็นทางการสำหรับการเรียกรูทีนย่อยแทนประเภทฐาน ตัวอย่างเช่น หากมีการประกาศขั้นตอน

ฟังก์ชัน MylntFunc (APar: จำนวนเต็ม): จำนวนเต็ม;

แล้วอุทธรณ์ต่อเธอ

MylntFunc (มิลินท์วาร์)

จะถือว่าคอมไพเลอร์เป็นข้อผิดพลาด

นามแฝงที่พิมพ์อย่างเข้มงวดทำให้คอมไพเลอร์สร้างข้อมูลประเภทรันไทม์ (RTTI) ข้อมูลนี้มักจะใช้โดยสภาพแวดล้อมของ Delphi เพื่อจัดหาตัวแก้ไขประเภทต่างๆ

3.2. ประเภทข้อมูลอย่างง่ายใน Turbo Pascal 7

ประเภทง่ายกำหนดชุดของค่าพารามิเตอร์ที่เรียงลำดับ Turbo Pascal มีกลุ่มประเภทง่าย ๆ ดังต่อไปนี้:

  • ประเภทจำนวนเต็ม
  • ประเภทบูลีน
  • ประเภทของตัวละคร
  • ประเภทแจกแจง;
  • ช่วงประเภท;
  • ประเภทจริง

ประเภทที่เรียบง่ายทั้งหมด ยกเว้นของจริง เรียกว่าประเภทลำดับ สำหรับค่าประเภทลำดับขั้นตอนและฟังก์ชันมาตรฐานกำหนดไว้: Dec, Inc, Ord, Pred, Succ (ดูหัวข้อ 13.1)

3.2.1. ประเภทจำนวนเต็ม

ซึ่งแตกต่างจาก Pascal ซึ่งกำหนดจำนวนเต็มประเภทเดียว Turbo Pascal มีจำนวนเต็มมาตรฐานห้าประเภท: Shortint, Integer, Longint, Byte, Word คุณลักษณะของประเภทเหล่านี้แสดงไว้ในตาราง 2.

ตารางที่ 2. ชนิดข้อมูลจำนวนเต็ม

พิมพ์ พิสัย รูปแบบ ขนาดเป็นไบต์
ชอร์ตอินท์ -128 .. 127 สัญลักษณ์ 1
จำนวนเต็ม -32768 .. 32767 สัญลักษณ์ 2
ลองอิน -2147483648 .. 2147483647 สัญลักษณ์ 4
ไบต์ 0 .. 255 ไม่ได้ลงนาม 1
คำ 0 .. 65535 ไม่ได้ลงนาม 2

3.2.2. ประเภทบูลีน

บูลีนประเภทโลจิคัลมาตรฐาน (ขนาด - 1 ไบต์) เป็นประเภทข้อมูล องค์ประกอบใด ๆ ที่สามารถรับได้เพียงสองค่าเท่านั้น: จริงและเท็จ ในกรณีนี้ เงื่อนไขต่อไปนี้เป็นจริง:
คำสั่งเท็จ (เท็จ) = 0
สั่งซื้อ (จริง) = 1
สำเร็จ (เท็จ) = จริง
คาด (จริง) = เท็จ

Turbo Pascal 7.0 เพิ่มประเภทตรรกะอีกสามประเภท ByteBool (ขนาด - 1 ไบต์), WordBool (ขนาด - 2 ไบต์) และ LongBool (ขนาด - 4 ไบต์) มีการนำมาใช้เพื่อรวมเข้ากับภาษาการเขียนโปรแกรมอื่นและกับสภาพแวดล้อมของ Windows ความแตกต่างจากประเภทบูลีนมาตรฐานอยู่ในค่าจริงของพารามิเตอร์ประเภทนี้ซึ่งสอดคล้องกับค่าจริง สำหรับประเภทบูลีนทั้งหมด ค่า False จะตรงกับเลข 0 ที่เขียนด้วยจำนวนไบต์ที่สอดคล้องกัน ในทางกลับกัน ค่า True สำหรับประเภทบูลีนจะสอดคล้องกับหมายเลข 1 ที่เขียนลงในไบต์ และสำหรับประเภทอื่นๆ ค่า True จะสอดคล้องกับตัวเลขอื่นๆ ที่ไม่ใช่ศูนย์ (แม้ว่าฟังก์ชัน Ord ในกรณีนี้จะให้ค่าเป็น 1) .

3.2.3. ประเภทตัวละคร

ประเภทอักขระมาตรฐาน Char กำหนดชุดอักขระ ASCII ทั้งหมด ฟังก์ชัน Ord ของค่า Char ให้รหัสของอักขระที่เกี่ยวข้อง ค่าของประเภทอักขระจะถูกเปรียบเทียบโดยรหัส

3.2.4. ประเภทแจกแจง

ประเภทที่ระบุไม่ได้มาตรฐานและถูกกำหนดโดยชุดของตัวระบุที่ค่าพารามิเตอร์สามารถจับคู่ได้ รายการตัวระบุจะระบุไว้ในวงเล็บ ตัวระบุจะคั่นด้วยเครื่องหมายจุลภาค:

พิมพ์
= ();)

เนื่องจากตัวระบุแรกถูกกำหนดเป็นหมายเลขประจำเครื่องเป็น 0 ตัวระบุที่สอง - 1 และอื่น ๆ ตัวระบุเดียวกันสามารถใช้ในคำจำกัดความของประเภทที่ระบุได้เพียงประเภทเดียวเท่านั้น . ฟังก์ชัน Ord ของค่าประเภทที่แจกแจงจะให้จำนวนลำดับของค่านั้น

ตัวอย่าง.ประเภทแจกแจง.

พิมพ์ Operat = (บวก, ลบ, คูณ, หาร);

ประเภทบูลีนเป็นกรณีพิเศษของประเภทที่ระบุ:

พิมพ์บูลีน = (เท็จ, จริง);

3.2.5. ประเภทช่วง

ในลำดับประเภทใด ๆ เป็นไปได้ที่จะแยกแยะชุดย่อยของค่าที่กำหนดโดยค่าต่ำสุดและค่าสูงสุดซึ่งรวมถึงค่าทั้งหมดของประเภทดั้งเดิมที่อยู่ภายในขอบเขตเหล่านี้รวมถึงขอบเขตด้วย ชุดย่อยดังกล่าวกำหนดประเภทช่วง ระบุประเภทช่วงโดยการระบุค่าต่ำสุดและสูงสุดโดยคั่นด้วยจุดสองจุด:

ประเภท = . . ;

ค่าต่ำสุดเมื่อกำหนดประเภทนี้จะต้องไม่มากกว่าค่าสูงสุด

ตัวอย่าง.คำจำกัดความของประเภทช่วง

พิมพ์
โหล = 1..12; (ตัวเลขตั้งแต่ 1 ถึง 12)
AddSub = บวก..ลบ; (การดำเนินการของการบวกและการลบ)

3.2.6. ประเภทจริง

ซึ่งแตกต่างจากภาษาปาสคาลมาตรฐานซึ่งกำหนดประเภทเรียลจริงเพียงประเภทเดียว Turbo Pascal มีประเภทเรียลมาตรฐานห้าประเภท: Real, Single, Double, Extended, Comp ลักษณะของประเภทเหล่านี้ ดูตาราง 3. ตารางที่ 3. ชนิดข้อมูลจริง

พิมพ์ พิสัย จำนวนหลักสำคัญ ขนาดเป็นไบต์
จริง 2.9*10-39..1.7*1038 11-12 6
เดี่ยว 1.5*10-45..3.4*1038 7-8 4
สองเท่า 5.0*10-324.-1.7*10308 15-16 8
ขยาย 3.4*10-4932..1.1*104932 19-20 10
คอมพ์ -263+1..263-1 19-20 8

Comp เป็นประเภทจำนวนเต็มช่วงขยาย แต่ไม่ถือว่าเป็นเลขลำดับ

สามารถใช้ประเภท Single, Double, Extended และ Comp ในโปรแกรมได้ก็ต่อเมื่อมีตัวประมวลผลร่วมทางคณิตศาสตร์หรือหากเปิดใช้งานตัวจำลองตัวประมวลผลร่วม (ดูส่วนย่อย 17.5.8 และ 17.7.1)



มีคำถามหรือไม่?

รายงานการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: