ประเภทข้อมูลภาษาปาสคาล: การจำแนกประเภทและคำอธิบาย ชนิดข้อมูลเลขคณิตและลำดับ การดำเนินการกับข้อมูลเหล่านั้น นิพจน์ทางคณิตศาสตร์: ฟังก์ชัน การดำเนินการ และลำดับของการกระทำ ความเข้ากันได้ของชนิดข้อมูลและการแปลง
คอมไพเลอร์ Pascal ต้องการข้อมูลเกี่ยวกับจำนวนหน่วยความจำที่จำเป็นในการรันโปรแกรมก่อนที่จะรัน เมื่อต้องการทำเช่นนี้ ในส่วนคำอธิบายตัวแปร ( var) คุณต้องแสดงรายการตัวแปรทั้งหมดที่ใช้ในโปรแกรม นอกจากนี้คุณยังต้องบอกคอมไพเลอร์ด้วยว่าตัวแปรแต่ละตัวจะใช้หน่วยความจำเท่าใด เป็นการดีที่จะตกลงล่วงหน้าเกี่ยวกับการดำเนินการต่างๆ ที่ใช้ได้กับตัวแปรบางตัว...
ทั้งหมดนี้สามารถสื่อสารไปยังโปรแกรมได้โดยการระบุประเภทของตัวแปรในอนาคต เมื่อมีข้อมูลเกี่ยวกับประเภทของตัวแปร คอมไพลเลอร์จะ "เข้าใจ" ว่าต้องจัดสรรไบต์จำนวนเท่าใด การดำเนินการใดที่สามารถทำได้กับตัวแปร และโครงสร้างใดบ้างที่สามารถมีส่วนร่วมได้
เพื่อความสะดวกของโปรแกรมเมอร์ Pascal มีประเภทข้อมูลมาตรฐานหลายประเภท รวมถึงความสามารถในการสร้างประเภทใหม่
เมื่อสร้างข้อมูลประเภทใหม่โดยใช้ข้อมูลที่มีอยู่ (มาตรฐานหรือกำหนดอีกครั้งโดยโปรแกรมเมอร์เอง) เราต้องจำไว้ว่าอาคารใด ๆ จะต้องสร้างบนรากฐานที่ดี ดังนั้นตอนนี้เราจะมาพูดถึง "รากฐาน" นี้กัน
ขึ้นอยู่กับ ชนิดข้อมูลพื้นฐานภาษาปาสคาลประเภทอื่นๆ ทั้งหมดถูกสร้างขึ้น ซึ่งเรียกว่า: สร้างขึ้น.
การแบ่งออกเป็นประเภทข้อมูลพื้นฐานและประเภทข้อมูลที่สร้างขึ้นใน Pascal แสดงอยู่ในตาราง:
ประเภทข้อมูลที่โปรแกรมเมอร์สร้างขึ้นมีอธิบายไว้ในส่วนนี้ พิมพ์ตามแม่แบบดังต่อไปนี้
พิมพ์<имя_типа> = <описание_типа>;
ตัวอย่างเช่น:
พิมพ์ Lat_Bukvy = "a" .. "z", "A" .. "Z";
ประเภทข้อมูลพื้นฐานเป็นประเภทมาตรฐาน ดังนั้นจึงไม่จำเป็นต้องอธิบายในส่วนนี้ พิมพ์- อย่างไรก็ตาม หากต้องการ ก็สามารถทำได้เช่นกัน เช่น โดยให้คำจำกัดความที่ยาว ชื่อสั้น ๆ- สมมติว่าโดยการแนะนำชนิดข้อมูลใหม่
พิมพ์ Int = จำนวนเต็ม;
คุณสามารถย่อข้อความโปรแกรมให้สั้นลงได้เล็กน้อย
ประเภทที่สร้างขึ้นมาตรฐานไม่จำเป็นต้องอธิบายไว้ในส่วนนี้ พิมพ์- อย่างไรก็ตาม ในบางกรณี คุณยังคงต้องดำเนินการนี้เนื่องจากข้อกำหนดด้านไวยากรณ์ ตัวอย่างเช่นใน รายการพารามิเตอร์ ขั้นตอนหรือ ฟังก์ชั่นไม่สามารถใช้ตัวสร้างประเภทได้ (ดู การบรรยาย 8).
ชนิดข้อมูลลำดับ
ในบรรดาประเภทข้อมูลพื้นฐาน สิ่งที่น่าสังเกตมากที่สุดคือ ประเภทลำดับ- ชื่อนี้สามารถพิสูจน์ได้สองวิธี:
กิจวัตรมาตรฐานที่ดำเนินการ ชนิดข้อมูลลำดับ
สำหรับปริมาณเท่านั้น ประเภทลำดับมีการกำหนดฟังก์ชันและขั้นตอนต่อไปนี้:
- การทำงาน ออร์ด(เอ็กซ์)ส่งกลับเลขลำดับของค่าของตัวแปร x (สัมพันธ์กับประเภทที่มีตัวแปร x อยู่)
- การทำงาน เปรย(เอ็กซ์)ส่งคืนค่าก่อนหน้า x (ใช้ไม่ได้กับองค์ประกอบแรกของประเภท)
- การทำงาน สำเร็จ(เอ็กซ์)ส่งคืนค่าตาม x (ใช้ไม่ได้กับองค์ประกอบสุดท้ายของประเภท)
- ขั้นตอน อิงค์(เอ็กซ์)ส่งกลับค่าตามหลัง x (for ชนิดข้อมูลทางคณิตศาสตร์ซึ่งเทียบเท่ากับตัวดำเนินการ x:= x + 1)
- ขั้นตอน อิงค์(เอ็กซ์,เค)ส่งกลับค่า kth ตามหลัง x (for ชนิดข้อมูลทางคณิตศาสตร์ซึ่งเทียบเท่ากับตัวดำเนินการ x:= x + k)
- ขั้นตอน ธ.ค(เอ็กซ์)ส่งกลับค่าก่อนหน้า x (for ชนิดข้อมูลทางคณิตศาสตร์ซึ่งเทียบเท่ากับตัวดำเนินการ x:= x - 1)
- ขั้นตอน ธ.ค(เอ็กซ์,เค)ส่งกลับค่า k–e ที่อยู่ก่อนหน้า x (for ชนิดข้อมูลทางคณิตศาสตร์ซึ่งเทียบเท่ากับตัวดำเนินการ x:= x - k)
เมื่อมองแวบแรกดูเหมือนว่าผลลัพธ์ของการใช้ขั้นตอนนี้ อิงค์(เอ็กซ์)เกิดขึ้นพร้อมกันอย่างสมบูรณ์กับผลลัพธ์ของการใช้ฟังก์ชัน สำเร็จ(เอ็กซ์)- อย่างไรก็ตามความแตกต่างระหว่างสิ่งเหล่านี้จะปรากฏที่ขอบเขตของช่วงที่อนุญาต การทำงาน สำเร็จ(เอ็กซ์)ไม่สามารถใช้ได้กับองค์ประกอบสูงสุดของประเภท แต่นี่คือขั้นตอน อิงค์(เอ็กซ์)จะไม่ทำให้เกิดข้อผิดพลาดใดๆ แต่ตามกฎการเพิ่มเครื่องจักร จะเพิ่มหน่วยถัดไปให้กับหมายเลของค์ประกอบ แน่นอนว่าตัวเลขจะออกนอกช่วงและเนื่องจากการตัดทอน จะกลายเป็นจำนวนค่าต่ำสุดของช่วง ปรากฎว่าขั้นตอนต่างๆ อิงค์() และ ธ.ค() พวกเขารับรู้ประเภทลำดับใด ๆ ราวกับว่า "ปิดอยู่ในวงแหวน": หลังจากอันสุดท้ายค่าแรกจะมาอีกครั้งทันที
ให้เราอธิบายทุกสิ่งที่กล่าวพร้อมตัวอย่าง สำหรับประเภทข้อมูล
พิมพ์สิบหก = 0 .. 15 ;
การพยายามบวก 1 เข้ากับเลข 15 จะได้ผลลัพธ์ดังนี้:
1 1 1 1 1 1 0 0 0 0
หน่วยเริ่มต้นจะถูกตัดออกดังนั้นปรากฎว่า อิงค์(15)=0 .
สถานการณ์ที่คล้ายกันที่ขีดจำกัดล่างของช่วงที่อนุญาตของประเภทข้อมูลลำดับที่กำหนดเองจะถูกสังเกตสำหรับขั้นตอน ธ.ค(เอ็กซ์)และฟังก์ชั่น เปรย(เอ็กซ์):
ประเภทข้อมูลที่เกี่ยวข้องกับ ลำดับ
ให้เราอธิบายตอนนี้ ชนิดข้อมูลลำดับในรายละเอียดเพิ่มเติม
- ประเภทบูลีน บูลีนมีสองค่า: เท็จและจริง และความเท่าเทียมกันต่อไปนี้มีไว้สำหรับค่าเหล่านี้:
- ถึงประเภทตัวอักษร ถ่านรวม 256 ตัวอักษร ตาราง ASCII แบบขยาย(เช่น "a", "b", "i", "7", "#") หมายเลขอักขระที่ส่งคืนโดยฟังก์ชัน ออร์ด() ตรงกับตัวเลขของสัญลักษณ์นี้ใน ตาราง ASCII.
- ชนิดข้อมูลจำนวนเต็มมาวางไว้ในตาราง:
- แสดงรายการได้ประเภทข้อมูลระบุไว้ในส่วนนี้ พิมพ์โดยแสดงองค์ประกอบต่างๆ อย่างชัดเจน ตัวอย่างเช่น:
พิมพ์ สัปดาห์ = (อาทิตย์ จันทร์ อังคาร พุธ พฤหัส ศุกร์ เสาร์);
0 1 2 3 4 5 6
- โปรดจำไว้ว่าสำหรับประเภทข้อมูลนี้:กำหนดไว้ตามขอบเขตของช่วงเท่านั้น ตัวอย่างเช่น:
พิมพ์ เดือน = 1 .. 12 ;
บุดนี = จันทร์ .. ศุกร์; - โปรแกรมเมอร์สามารถสร้างประเภทข้อมูลของตนเองซึ่งเป็นการรวมประเภทมาตรฐานหลายประเภทเข้าด้วยกัน ตัวอย่างเช่น:
ประเภท Valid_For_Identifiers = "a" .. "z" , "A" .. "Z" , "_" , "0" .. "9" ;
ประเภทนี้ประกอบด้วยการรวมช่วงต่างๆ เข้าด้วยกัน และในกรณีนี้ ลำดับของตัวอักษรละตินจะเปลี่ยนไป: หากเป็นประเภทมาตรฐาน
พบมากที่สุดในวิชาคณิตศาสตร์ ประเภทตัวเลข- นี้ ทั้งหมดตัวเลขที่แทนค่าที่ไม่ต่อเนื่องจำนวนอนันต์ และ ถูกต้องตัวเลขที่แสดงถึงค่าต่อเนื่องไม่จำกัด
คำอธิบายของชนิดข้อมูลตัวเลขของ Pascal (จำนวนเต็ม)
ภายในภาษาเดียวกัน สามารถใช้ชุดย่อยที่แตกต่างกันของชุดจำนวนเต็มได้ ช่วงของค่าที่เป็นไปได้ของประเภทตัวเลขจำนวนเต็มขึ้นอยู่กับการเป็นตัวแทนภายในซึ่งอาจมีหนึ่งสองหรือสี่ไบต์ ดังนั้นใน Pascal 7.0 จะใช้ประเภทข้อมูลตัวเลขจำนวนเต็มต่อไปนี้:
ด้วยทั้งหมด ชนิดข้อมูลตัวเลข Pascal สามารถดำเนินการดังต่อไปนี้:
- เลขคณิต:
นอกจากนี้(+);
ลบ(-);
การคูณ(*);
ส่วนที่เหลือของการหาร (mod);
การยกกำลัง;
เอกนารีบวก (+);
เอกนารีลบ (-)
- การดำเนินงานสัมพันธ์:
ความสัมพันธ์ที่เท่าเทียมกัน (=);
ความสัมพันธ์ที่ไม่เท่าเทียมกัน (<>);
อัตราส่วนน้อยกว่า (<);
อัตราส่วนที่มากกว่า (>);
ความสัมพันธ์ไม่ต่ำกว่า (>=);
ทัศนคติไม่มีอีกต่อไป (<=).
เมื่อกระทำการด้วย ชนิดข้อมูลตัวเลขจำนวนเต็มประเภทของผลลัพธ์จะสอดคล้องกับประเภทของตัวถูกดำเนินการ และหากตัวถูกดำเนินการมีประเภทจำนวนเต็มต่างกัน ก็จะสอดคล้องกับประเภทของตัวถูกดำเนินการที่มีกำลังสูงสุด (ช่วงค่าสูงสุด) ผลลัพธ์ที่ล้นออกมาที่เป็นไปได้นั้นไม่ได้ถูกควบคุมแต่อย่างใด (นี่เป็นสิ่งสำคัญ!) ซึ่งอาจนำไปสู่ข้อผิดพลาดได้
ควรให้ความสนใจเป็นพิเศษกับการดำเนินการหารประเภทข้อมูลตัวเลขจำนวนเต็ม ปาสคาลอนุญาตให้มีการดำเนินการสองฝ่าย ซึ่งแสดงตามนั้น "/" และ กอง- คุณต้องรู้ว่าผลลัพธ์ของการหาร "/" ไม่ใช่จำนวนเต็ม แต่เป็น จำนวนจริง(สิ่งนี้เป็นจริงแม้ว่าคุณจะหาร 8 ด้วย 2 ก็ตาม เช่น 8/2=4.0) div ฝ่ายคือ การหารจำนวนเต็ม, เช่น. ประเภทผลลัพธ์เป็นจำนวนเต็ม
คำอธิบายของชนิดข้อมูลตัวเลขของ Pascal (จำนวนจริง)
ประเภทข้อมูลตัวเลขจริงหมายถึงชุดย่อยของจำนวนจริงที่สามารถแสดงในรูปแบบจุดลอยตัวที่เรียกว่าจำนวนหลักคงที่ ด้วยจุดลอยตัว ประเภทข้อมูลตัวเลขแต่ละประเภทจะแสดงเป็นตัวเลขสองกลุ่ม ตัวเลขกลุ่มแรกเรียกว่าแมนทิสซา ตัวเลขกลุ่มที่สองคือเลขชี้กำลัง โดยทั่วไป ชนิดข้อมูลตัวเลขในรูปแบบจุดลอยตัวสามารถแสดงได้ดังนี้ X= (+|-)MP (+ | -) r โดยที่ M คือแมนทิสซาของตัวเลข; r – ลำดับตัวเลข (r – จำนวนเต็ม); P คือฐานของระบบตัวเลข ตัวอย่างเช่น สำหรับฐานทศนิยม การแสดง 2E-1 (ในที่นี้ E คือฐานของระบบเลขฐานสิบ) จะมีลักษณะดังนี้: 2*10 -1 =0.2 และการแทน 1.234E5 จะสอดคล้องกับ: 1.234*10 5 =123400.0.
ปาสคาลใช้จำนวนจริงประเภทต่อไปนี้ ซึ่งกำหนดจำนวนเฉพาะที่มีความแม่นยำจำกัด ขึ้นอยู่กับรูปแบบภายในของจำนวนจริง:
เมื่ออธิบายตัวแปรจริงประเภท real ตัวแปรขนาด 4 ไบต์จะถูกสร้างขึ้นในหน่วยความจำคอมพิวเตอร์ ในกรณีนี้ แมนทิสซาจะได้รับ 3 ไบต์ และหนึ่งไบต์สำหรับลำดับ
การดำเนินการต่อไปนี้สามารถดำเนินการกับชนิดข้อมูลตัวเลขจริงได้:
- เลขคณิต:
นอกจากนี้ (+);
ลบ(-);
การคูณ(*);
แผนก(/);
การยกกำลัง;
เอกนารีบวก (+);
เอกนารีลบ (-)
- การดำเนินงานสัมพันธ์:
ความสัมพันธ์ที่ไม่เท่าเทียมกัน (<>);
อัตราส่วนน้อยกว่า (<);
อัตราส่วนที่มากกว่า (>);
ความสัมพันธ์ไม่ต่ำกว่า (>=);
ทัศนคติไม่มีอีกต่อไป (<=).
อย่างที่คุณเห็น Pascal มีลักษณะเฉพาะด้วยประเภทข้อมูลจริงที่หลากหลาย แต่เข้าถึงประเภทข้อมูลตัวเลขได้ เดี่ยว, สองเท่าและ ขยายเป็นไปได้ภายใต้โหมดการคอมไพล์พิเศษเท่านั้น ชนิดข้อมูลตัวเลขเหล่านี้ได้รับการออกแบบสำหรับการสนับสนุนฮาร์ดแวร์สำหรับเลขคณิตทศนิยม และเพื่อให้ใช้งานได้อย่างมีประสิทธิภาพ พีซีของคุณต้องมีตัวประมวลผลร่วมทางคณิตศาสตร์
ชนิดข้อมูลตัวเลขมีตำแหน่งพิเศษในภาษาปาสคาล คอมพ์ซึ่งถือเป็นจำนวนจริงโดยไม่มีส่วนเลขชี้กำลังและเศษส่วน จริงๆ แล้ว, คอมพ์เป็นจำนวนเต็มที่มีลายเซ็น “ใหญ่” ซึ่งคงไว้ซึ่งทศนิยม 19..20 หลัก ในขณะเดียวกันก็เป็นประเภทข้อมูลที่เป็นตัวเลข คอมพ์ในนิพจน์นั้นเข้ากันได้กับประเภทจริงอื่น ๆ อย่างสมบูรณ์: การดำเนินการจริงทั้งหมดถูกกำหนดไว้แล้ว สามารถใช้เป็นอาร์กิวเมนต์ของฟังก์ชันทางคณิตศาสตร์ ฯลฯ
เกี่ยวกับการแปลงชนิดข้อมูลตัวเลขของ Pascal
ในภาษาปาสคาล การแปลงประเภทข้อมูลตัวเลขโดยนัย (อัตโนมัติ) แทบจะเป็นไปไม่ได้เลย มีข้อยกเว้นสำหรับประเภทเท่านั้น จำนวนเต็มซึ่งอนุญาตให้ใช้ในสำนวนเช่น จริง- ตัวอย่างเช่น หากมีการประกาศตัวแปรดังนี้:
Var X: จำนวนเต็ม; Y: จริง;
นั่นคือผู้ดำเนินการ
จะถูกทางวากยสัมพันธ์แม้ว่าจะมีนิพจน์จำนวนเต็มทางด้านขวาของเครื่องหมายมอบหมายและมีตัวแปรจริงทางด้านซ้าย แต่คอมไพลเลอร์จะแปลงชนิดข้อมูลตัวเลขโดยอัตโนมัติ การแปลงแบบย้อนกลับจะถูกพิมพ์โดยอัตโนมัติ จริงในประเภท จำนวนเต็มเป็นไปไม่ได้ในภาษาปาสคาล โปรดจำไว้ว่ามีการจัดสรรจำนวนไบต์สำหรับตัวแปรประเภท จำนวนเต็มและ จริง: สำหรับชนิดข้อมูลจำนวนเต็ม จำนวนเต็มมีการจัดสรรหน่วยความจำ 2 ไบต์และสำหรับจริง - 6 ไบต์ เพื่อแปลง จริงวี จำนวนเต็มมีฟังก์ชันในตัวสองฟังก์ชัน: กลม(x) ปัดเศษจำนวนจริง x เป็นจำนวนเต็มที่ใกล้ที่สุด ท้ายรถ(x) ตัดทอนจำนวนจริงโดยละเศษส่วนที่เป็นเศษส่วนทิ้งไป
ชนิดข้อมูลกำหนดชุดของค่าที่ถูกต้องและชุดของการดำเนินการที่ถูกต้อง
ประเภทเรียบง่าย
ประเภทง่าย ๆ แบ่งออกเป็น ORDINAL และ REAL
1. ประเภทการสั่งซื้อ , ในทางกลับกันก็มี:
ก) ทั้งหมด
Pascal กำหนดประเภทจำนวนเต็ม 5 ประเภท ซึ่งถูกกำหนดขึ้นอยู่กับเครื่องหมายและค่าที่ตัวแปรจะใช้
พิมพ์ชื่อ |
ความยาว (เป็นไบต์) |
ช่วงของค่า |
32 768...+32 767 |
||
2 147 483 648...+2 147 483 647 |
ข) ตรรกะ
ชื่อของประเภทนี้คือ BOOLEAN ค่าบูลีนสามารถเป็นหนึ่งในค่าคงที่เชิงตรรกะ: TRUE (จริง) หรือ FALSE (เท็จ)
ค) สัญลักษณ์
ชื่อประเภทนี้คือ CHAR - มีพื้นที่ 1 ไบต์ ค่าของประเภทอักขระคือชุดของอักขระ PC ทั้งหมด อักขระแต่ละตัวถูกกำหนดให้เป็นจำนวนเต็มในช่วง 0…255 หมายเลขนี้ทำหน้าที่เป็นรหัสสำหรับการแสดงสัญลักษณ์ภายใน
2. ประเภทจริง .
ต่างจากประเภทลำดับซึ่งค่าจะถูกแมปกับชุดจำนวนเต็มเสมอและดังนั้นจึงแสดงอย่างแน่นอนในพีซี ค่าของประเภทจริงจะกำหนดตัวเลขที่กำหนดเองด้วยความแม่นยำจำกัดบางประการเท่านั้น ขึ้นอยู่กับรูปแบบภายในของจำนวนจริง .
ความยาวของชนิดข้อมูลตัวเลข ไบต์ |
ชื่อชนิดข้อมูลตัวเลข |
จำนวนหลักสำคัญของชนิดข้อมูลตัวเลข |
ช่วงลำดับทศนิยมของชนิดข้อมูลตัวเลข |
2*1063 +1..+2*1063 -1 |
ประเภทที่มีโครงสร้าง
ประเภทข้อมูลที่มีโครงสร้างจะกำหนดการเก็บรวบรวมตัวแปรสเกลาร์ตามลำดับและมีลักษณะเฉพาะตามประเภทของส่วนประกอบ
ประเภทข้อมูลที่มีโครงสร้างต่างจากประเภทข้อมูลธรรมดาที่กำหนดค่าที่ซับซ้อนจำนวนมากด้วยชื่อสามัญเพียงชื่อเดียว เราสามารถพูดได้ว่าประเภทโครงสร้างกำหนดวิธีการสร้างประเภทใหม่จากสิ่งที่มีอยู่
มีวิธีการจัดโครงสร้างหลายวิธี ตามวิธีการจัดองค์กรและประเภทของส่วนประกอบในประเภทข้อมูลที่ซับซ้อน มีความหลากหลายดังต่อไปนี้: ประเภทปกติ (อาร์เรย์); ประเภทรวม (บันทึก); ประเภทไฟล์ (ไฟล์); หลายประเภท; ประเภทสตริง (สตริง); ในภาษา Turbo Pascal เวอร์ชัน 6.0 และเก่ากว่า มีการแนะนำประเภทอ็อบเจ็กต์ (อ็อบเจ็กต์)
ต่างจากประเภทข้อมูลธรรมดา ข้อมูลประเภทที่มีโครงสร้างมีลักษณะเฉพาะด้วยองค์ประกอบหลายหลากที่ก่อตัวเป็นประเภทนี้ เช่น ตัวแปรหรือค่าคงที่ประเภทที่มีโครงสร้างมักจะมีองค์ประกอบหลายส่วนเสมอ แต่ละส่วนประกอบสามารถอยู่ในประเภทที่มีโครงสร้างได้ กล่าวคือ สามารถทำรังได้
1. อาร์เรย์
อาร์เรย์ใน Turbo Pascal มีความคล้ายคลึงกับประเภทข้อมูลที่คล้ายคลึงกันในภาษาโปรแกรมอื่นๆ หลายประการ คุณลักษณะที่โดดเด่นของอาร์เรย์คือส่วนประกอบทั้งหมดเป็นข้อมูลประเภทเดียวกัน (อาจมีโครงสร้าง) ส่วนประกอบเหล่านี้สามารถจัดระเบียบได้อย่างง่ายดาย และสามารถเข้าถึงส่วนประกอบใดส่วนหนึ่งได้อย่างง่ายดายโดยการระบุหมายเลขซีเรียล
คำอธิบายอาร์เรย์มีการระบุดังนี้:
<имя типа>= อาร์เรย์[<сп.инд.типов>] ของ<тип>
ที่นี่<имя типа>- ตัวระบุที่ถูกต้อง
Array, of – คำสงวน (array, from);
<сп.инд.типов>- รายการประเภทดัชนีตั้งแต่หนึ่งรายการขึ้นไป คั่นด้วยเครื่องหมายจุลภาค วงเล็บเหลี่ยมที่จัดกรอบรายการเป็นข้อกำหนดด้านไวยากรณ์
<тип>- Turbo Pascal ทุกรุ่น
ประเภทลำดับใดๆ สามารถใช้เป็นประเภทดัชนีใน Turbo Pascal ยกเว้นประเภท LongInt และช่วงที่มีประเภทพื้นฐาน LongInt
ความลึกของการซ้อนของประเภทที่มีโครงสร้างโดยทั่วไปและของอาร์เรย์นั้นขึ้นอยู่กับอำเภอใจ ดังนั้นจำนวนองค์ประกอบในรายการดัชนีประเภท (ขนาดอาร์เรย์) จึงไม่ถูกจำกัด อย่างไรก็ตาม ความยาวรวมของการแสดงภายในของอาร์เรย์ใดๆ ไม่สามารถ มีขนาดมากกว่า 65520 ไบต์
2. บันทึก
เรกคอร์ดคือโครงสร้างข้อมูลที่ประกอบด้วยส่วนประกอบจำนวนคงที่ที่เรียกว่าเขตข้อมูลเรกคอร์ด ส่วนประกอบ (ฟิลด์) ของเรกคอร์ดอาจมีประเภทต่างๆ ต่างจากอาร์เรย์ ฟิลด์ต่างๆ จะถูกตั้งชื่อเพื่อให้สามารถอ้างอิงถึงส่วนประกอบหนึ่งหรือส่วนประกอบอื่นของเรกคอร์ดได้
โครงสร้างของการประกาศประเภทโพสต์คือ:
< ชื่อพิมพ์>=บันทึก< การร่วมทุน. สาขา>สิ้นสุด
ที่นี่<имя типа>- ตัวระบุที่ถูกต้อง
RECORD, END – คำสงวน (บันทึก, สิ้นสุด);
<сп.полей>- รายชื่อสาขา; คือลำดับของส่วนของบันทึกที่คั่นด้วยเครื่องหมายอัฒภาค
3. ชุด
ชุดคือชุดของออบเจ็กต์ประเภทเดียวกันที่เชื่อมต่อกันในเชิงตรรกะ ลักษณะของการเชื่อมต่อระหว่างอ็อบเจ็กต์นั้นเป็นเพียงโปรแกรมเมอร์เท่านั้นที่บ่งบอกเป็นนัย และ Turbo Pascal จะไม่ถูกควบคุมแต่อย่างใด จำนวนองค์ประกอบที่รวมอยู่ในชุดอาจแตกต่างกันตั้งแต่ 0 ถึง 256 (ชุดที่ไม่มีองค์ประกอบเรียกว่าว่างเปล่า) มันเป็นความไม่แน่นอนของจำนวนองค์ประกอบที่ชุดแตกต่างจากอาร์เรย์และบันทึก
สองเซตจะถือว่าเท่ากันก็ต่อเมื่อองค์ประกอบทั้งหมดเหมือนกัน และลำดับขององค์ประกอบของเซตนั้นไม่แยแส หากองค์ประกอบทั้งหมดของชุดหนึ่งรวมอยู่ในอีกชุดหนึ่งด้วย พวกเขาบอกว่าชุดแรกจะรวมอยู่ในชุดที่สอง
คำอธิบายของประเภทชุดคือ:
< ชื่อพิมพ์> = ชุดของ< ฐาน. พิมพ์>
ที่นี่<имя типа>- ตัวระบุที่ถูกต้อง
SET, OF – คำสงวน (ชุด, จาก);
<баз.тип>- ประเภทพื้นฐานขององค์ประกอบชุด ซึ่งสามารถเป็นประเภทลำดับใดก็ได้ ยกเว้น WORD, INTEGER และ LONGINT
ในการกำหนดเซ็ต จะใช้สิ่งที่เรียกว่าตัวสร้างเซ็ต: รายการข้อกำหนดขององค์ประกอบของเซ็ต คั่นด้วยเครื่องหมายจุลภาค รายการจะล้อมรอบด้วยวงเล็บเหลี่ยม ข้อมูลจำเพาะขององค์ประกอบอาจเป็นค่าคงที่หรือนิพจน์ของประเภทฐาน เช่นเดียวกับประเภทช่วงของประเภทฐานเดียวกัน
4. ไฟล์
ไฟล์ถูกเข้าใจว่าเป็นพื้นที่ที่ระบุชื่อของหน่วยความจำภายนอกของพีซีหรืออุปกรณ์ลอจิคัล - แหล่งที่มาหรือตัวรับข้อมูลที่เป็นไปได้
ไฟล์ใด ๆ มีคุณสมบัติสามประการ
มีชื่อซึ่งช่วยให้โปรแกรมทำงานกับไฟล์หลายไฟล์พร้อมกันได้
ประกอบด้วยส่วนประกอบประเภทเดียวกัน ประเภทส่วนประกอบสามารถเป็นประเภท Turbo Pascal ใดก็ได้ ยกเว้นไฟล์ กล่าวอีกนัยหนึ่ง คุณไม่สามารถสร้าง "ไฟล์ของไฟล์"
ความยาวของไฟล์ที่สร้างขึ้นใหม่ไม่ได้ระบุในทางใดทางหนึ่งเมื่อมีการประกาศ และถูกจำกัดโดยความจุของอุปกรณ์หน่วยความจำภายนอกเท่านั้น
ประเภทไฟล์หรือตัวแปรประเภทไฟล์สามารถระบุได้ด้วยวิธีใดวิธีหนึ่งจากสามวิธี:
< ชื่อ>= ไฟล์ของ< พิมพ์>;
< ชื่อ>=ข้อความ;
<имя>= ไฟล์;
ที่นี่<имя>- ชื่อประเภทไฟล์ (ตัวระบุที่ถูกต้อง)
FILE, OF – คำสงวน (ไฟล์, จาก);
TEXT – ชื่อของประเภทไฟล์ข้อความมาตรฐาน
<тип>- Turbo Pascal ทุกประเภท ยกเว้นไฟล์
ขึ้นอยู่กับวิธีการประกาศ ไฟล์สามประเภทสามารถแยกแยะได้:
· ไฟล์ที่พิมพ์ (กำหนดโดยคำสั่ง FILE OF...);
· ไฟล์ข้อความ (กำหนดเป็นประเภทข้อความ)
· ไฟล์ที่ไม่ได้พิมพ์ (กำหนดโดยประเภท FILE)
เกี่ยวกับการแปลงชนิดข้อมูลตัวเลขของ Pascal
ในภาษาปาสคาล การแปลงประเภทข้อมูลตัวเลขโดยนัย (อัตโนมัติ) แทบจะเป็นไปไม่ได้เลย มีข้อยกเว้นสำหรับประเภทจำนวนเต็มเท่านั้น ซึ่งอนุญาตให้ใช้ในนิพจน์ประเภท real ได้ ตัวอย่างเช่น หากมีการประกาศตัวแปรดังนี้:
Var X: จำนวนเต็ม; Y: จริง;
จากนั้นผู้ดำเนินการ
จะถูกทางวากยสัมพันธ์แม้ว่าจะมีนิพจน์จำนวนเต็มทางด้านขวาของเครื่องหมายมอบหมายและมีตัวแปรจริงทางด้านซ้าย แต่คอมไพเลอร์จะแปลงชนิดข้อมูลตัวเลขโดยอัตโนมัติ การแปลงแบบย้อนกลับโดยอัตโนมัติจากประเภทจริงเป็นประเภทจำนวนเต็มเป็นไปไม่ได้ในภาษาปาสคาล โปรดจำไว้ว่าจำนวนไบต์ที่ได้รับการจัดสรรสำหรับตัวแปรประเภทจำนวนเต็มและจำนวนจริง: หน่วยความจำ 2 ไบต์ได้รับการจัดสรรสำหรับประเภทข้อมูลจำนวนเต็มจำนวนเต็ม และ 6 ไบต์สำหรับจำนวนจริง มีฟังก์ชันในตัวสองฟังก์ชันสำหรับการแปลงจำนวนจริงเป็นจำนวนเต็ม: การปัดเศษ (x) ปัดเศษจำนวนจริง x เป็นจำนวนเต็มที่ใกล้ที่สุด การตัดทอน (x) ตัดทอนจำนวนจริงโดยการละทิ้งส่วนที่เป็นเศษส่วน
แนวคิดเรื่องประเภทเป็นหนึ่งในแนวคิดพื้นฐานของภาษาการเขียนโปรแกรมใดๆ ออบเจ็กต์ (ค่าคงที่ ตัวแปร ฟังก์ชัน นิพจน์) ที่โปรแกรมดำเนินการเป็นของประเภทเฉพาะ
พิมพ์ คือชุดของค่าที่อ็อบเจ็กต์โปรแกรมสามารถรับได้ และชุดการดำเนินการที่อนุญาตกับค่าเหล่านี้
ตัวอย่างเช่นค่า 1 และ 2 เป็นประเภทจำนวนเต็ม สามารถเพิ่ม คูณ และดำเนินการทางคณิตศาสตร์อื่นๆ ได้ ความหมาย "จอภาพ" และ "ปาสคาล" มีลักษณะทางภาษา พวกเขามีชุดการดำเนินการที่ถูกต้องของตัวเอง ในภาษาที่ใช้กันทั่วไป สามารถใช้เฉพาะประเภทที่กำหนดไว้อย่างเคร่งครัดและเป็นที่รู้จักล่วงหน้าเท่านั้น ปาสกาลพร้อมกับประเภทมาตรฐานที่พบในภาษาระดับสูงอื่น ๆ ช่วยให้โปรแกรมเมอร์สามารถสร้างประเภทของตนเองได้
ทุกประเภทที่อนุญาตในภาษาปาสคาลแบ่งออกเป็นสองกลุ่มใหญ่: ง่ายและซับซ้อน (มีโครงสร้าง)
พิมพ์ | พิสัย | แมนทิสซา สัญญาณ | หน่วยความจำที่ต้องการ (ไบต์) |
จริง | 2.9*10E-39..1.7*10E38 | 11-12 | |
เดี่ยว | 1.5*10E-45..3.4*10E38 | 7-8 | |
สองเท่า | 5.0*10E-324..1.7*10E308 | 15-16 | |
ขยายเวลา | 1.9*10E-4951..1.1*10E4932 | 19-20 | |
คอมฯ | -2E+63+1..2E+63-1 | 10-20 |
การใช้ประเภท SINGLE, DOUBLE, EXTEND, COMP อย่างมีประสิทธิภาพจะเกิดขึ้นได้ก็ต่อเมื่อเปิดใช้งานคำสั่ง ($N+) เท่านั้น โดยค่าเริ่มต้นจะปิดอยู่ เพื่อแก้ปัญหาทางวิศวกรรมและเศรษฐกิจ ค่าประเภท REAL ก็เพียงพอแล้ว
ตัวอย่าง
Var Res, Summa, Itog: จริง;
บูลีนชนิดข้อมูลอธิบายโดยตัวระบุ BOOLEAN ตัวแปรและค่าคงที่ประเภทนี้สามารถรับได้เพียงค่าใดค่าหนึ่งจากสองค่าเท่านั้น: TRUE (จริง) หรือ FALSE (เท็จ)
ตัวอย่าง
Var Sel1, Sel2: บูลีน;
A,B,C,D: บูลีน;
นิพจน์บูลีนใช้พื้นที่หน่วยความจำ 1 ไบต์ และใช้ในนิพจน์เชิงตรรกะและเชิงสัมพันธ์ และเพื่อควบคุมลำดับการดำเนินการคำสั่งของโปรแกรม
ตัวอักษร (ตัวอักษร)ประเภทดังกล่าวอธิบายโดยตัวระบุ CHAR มาตรฐาน ค่าคงที่และตัวแปรประเภทนี้สามารถรับค่าตารางโค้ด ASCII ค่าใดค่าหนึ่งได้ ความหมายของค่าคงที่หรือตัวแปรประเภทนี้จะอยู่ในเครื่องหมายอะพอสทรอฟี
ตัวอย่างเช่น, Var Bukva, Znak, สัญลักษณ์: ถ่าน;
บุควา:=’A’; ซนัก:=’+’; สัญลักษณ์:=’!’
ตัวแปรประเภทอักขระใช้พื้นที่ 1 ไบต์ในหน่วยความจำ ห้ามใช้ข้อมูลถ่านในนิพจน์ทางคณิตศาสตร์ การดำเนินการเปรียบเทียบสามารถนำไปใช้กับค่าตัวอักษรได้ ผลลัพธ์จะขึ้นอยู่กับจำนวนของตัวแปรตัวอักษรหรือค่าคงที่ในตารางโค้ด
นอกเหนือจากประเภทข้อมูลมาตรฐานแล้ว Pascal ยังรองรับประเภทสเกลาร์ ผู้ใช้กำหนด- เหล่านี้ได้แก่ นับได้และ ช่วงเวลาประเภท ข้อมูลประเภทนี้ใช้พื้นที่ 1 ไบต์ในหน่วยความจำ ดังนั้นประเภทที่กำหนดเองใดๆ จะต้องมีองค์ประกอบไม่เกิน 255 รายการ การใช้งานช่วยปรับปรุงการมองเห็นของโปรแกรมอย่างมากทำให้ค้นหาข้อผิดพลาดได้ง่ายขึ้นและประหยัดหน่วยความจำ
ประเภทอีนัมถูกระบุโดยตรงโดยการแสดงรายการค่าทั้งหมดที่ตัวแปรประเภทที่กำหนดสามารถรับได้ ค่าส่วนบุคคลจะถูกคั่นด้วยเครื่องหมายจุลภาคและรายการทั้งหมดจะอยู่ในวงเล็บ
รูปแบบ
พิมพ์<имя типа>=(<значение1, значение2, ..., значениеN>);
วาร์<идентификатор, ...>: < имя типа>;
ตัวอย่าง
ประเภทฤดูกาล =(ฤดูใบไม้ผลิ ฤดูร้อน ฤดูใบไม้ร่วง ฤดูหนาว);
Var S1, S2: ฤดูกาล;
ฤดูใบไม้ร่วง: (กันยายน ตุลาคม พฤศจิกายน);
ตัวอย่างนี้แสดงประเภทข้อมูลผู้ใช้ Season ที่กำหนดไว้อย่างชัดเจน ความหมายของพวกเขาถูกกำหนด - การกำหนดฤดูกาล ตัวแปร S1 และ S2 สามารถรับค่าที่แสดงไว้ได้เพียงค่าเดียวเท่านั้น ความพยายามที่จะกำหนดค่าอื่นใด ๆ จะทำให้ซอฟต์แวร์หยุดชะงัก การแจงนับประเภทที่สามนั้นไม่ระบุชื่อ (ไม่มีชื่อ) และระบุโดยการแจกแจงค่าในส่วน Var ฤดูใบไม้ร่วงเป็นตัวแปรประเภทนี้และสามารถรับค่าเดือนกันยายน ตุลาคม โน้มน้าวได้ ดังนั้นจึงสามารถระบุประเภทใดก็ได้ แต่ก็ไม่เป็นที่ยอมรับเสมอไป วิธีแรกนั้นเข้าใจได้ง่ายกว่าและสอดคล้องกับธรรมชาติของภาษาปาสคาลมากกว่า
ประเภทช่วงเวลาช่วยให้คุณระบุค่าคงที่สองตัวที่กำหนดขอบเขตของช่วงของค่าสำหรับตัวแปรที่กำหนด สำหรับการดำเนินการแต่ละครั้งกับตัวแปรช่วงเวลา คอมไพลเลอร์จะสร้างรูทีนการตรวจสอบเพื่อพิจารณาว่าค่าของตัวแปรยังคงอยู่ในช่วงที่ระบุหรือไม่ ค่าคงที่ทั้งสองต้องเป็นของประเภทมาตรฐานประเภทใดประเภทหนึ่งที่ไม่ใช่ค่าจริง ค่าของค่าคงที่แรกจะต้องน้อยกว่าค่าของค่าที่สองเสมอไป
รูปแบบ
พิมพ์<имя типа> = <константа1> .. <константа2>;
วาร์<идентификатор>: < имя типа>;
ตัวอย่าง
พิมพ์วัน = 1.. 31;
วาร์ Work_d, Free_d: วัน;
ในตัวอย่างนี้ตัวแปร Work_d, Free_dมีประเภท วันและสามารถรับค่าใดๆ จากช่วง 1 ได้ - 31.
การออกจากช่วงจะทำให้ซอฟต์แวร์ขัดจังหวะ
คุณสามารถกำหนดประเภทช่วงเวลาได้โดยการกำหนดขอบเขตของช่วงไม่ใช่ค่าของค่าคงที่ แต่ตามชื่อ:
ค่าต่ำสุด = 1; สูงสุด = 31;
ประเภทวัน = ต่ำสุด .. สูงสุด;
วาร์ Work_d, Free_d: วัน;
ประเภทที่มีโครงสร้างชนิดข้อมูลจะขึ้นอยู่กับชนิดสเกลาร์และสามารถประกอบด้วยค่าผสมต่างๆ ได้ พวกเขากำหนดคอลเลกชันขององค์ประกอบสเกลาร์ที่ได้รับคำสั่งและมีลักษณะเฉพาะตามประเภทของส่วนประกอบ ภาษา Pascal มีประเภทข้อมูลที่มีโครงสร้างดังต่อไปนี้:
เส้น -ลำดับของอักขระที่อยู่ในเครื่องหมายอะพอสทรอฟี
อาร์เรย์ -ประเภทข้อมูลที่มีโครงสร้างประกอบด้วยองค์ประกอบประเภทเดียวกันจำนวนคงที่ซึ่งเข้าถึงได้โดยดัชนี ;
มากมาย -ชุดของวัตถุที่เลือกตามลักษณะหรือกลุ่มคุณลักษณะบางอย่างที่สามารถพิจารณาโดยรวมได้
บันทึก -ชุดส่วนประกอบจำนวนคงที่ประเภทต่างๆ
ไฟล์- ลำดับส่วนประกอบชนิดเดียวกันและความยาวเท่ากัน
ประเภทที่มีโครงสร้างอีกสองประเภท ได้แก่ ขั้นตอนและวัตถุ ยากต่อการแมปกับข้อมูลในการนำเสนอแบบทั่วไป
รูปที่ 1- ชุดประเภทพื้นฐานของภาษาปาสคาล
3.2. ชนิดข้อมูลอย่างง่ายใน Turbo Pascal 7
ชนิดธรรมดาจะกำหนดชุดของค่าพารามิเตอร์ที่เรียงลำดับ Turbo Pascal มีกลุ่มประเภทง่าย ๆ ดังต่อไปนี้:
- ประเภทจำนวนเต็ม
- ประเภทบูลีน
- ประเภทตัวละคร
- ประเภทแจกแจง;
- ประเภทช่วง;
- ประเภทจริง
ประเภทธรรมดาทั้งหมด ยกเว้นประเภทจริง เรียกว่าประเภทลำดับ สำหรับปริมาณของประเภทลำดับ จะมีการกำหนดขั้นตอนและฟังก์ชันมาตรฐาน: Dec, Inc, Ord, Pred, Succ (ดูหัวข้อ 13.1)
3.2.1. ประเภทจำนวนเต็ม
ซึ่งแตกต่างจาก Pascal ซึ่งกำหนดประเภทจำนวนเต็มเพียงประเภทเดียว Integer 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 ความแตกต่างจากประเภทบูลีนมาตรฐานคือค่าจริงของพารามิเตอร์ประเภทนี้ ซึ่งสอดคล้องกับค่า True สำหรับประเภทลอจิคัลทั้งหมด ค่า False จะสอดคล้องกับตัวเลข 0 ซึ่งเขียนด้วยจำนวนไบต์ที่สอดคล้องกัน ค่า True สำหรับประเภทบูลีนสอดคล้องกับตัวเลข 1 ที่เขียนในไบต์ และสำหรับประเภทอื่นๆ ค่า True จะสอดคล้องกับตัวเลขอื่นๆ ที่ไม่ใช่ศูนย์ (แม้ว่าฟังก์ชัน Ord ในกรณีนี้จะให้ค่าเป็น 1)
3.2.3. ประเภทตัวละคร
อักขระมาตรฐานประเภท Char กำหนดชุดอักขระ ASCII ทั้งหมด ฟังก์ชัน Ord จากค่าประเภท Char จะให้โค้ดของอักขระที่เกี่ยวข้อง ค่าประเภทอักขระจะถูกเปรียบเทียบตามรหัส
3.2.4. ประเภทอีนัม
ประเภทที่ระบุไม่ใช่มาตรฐานและถูกกำหนดโดยชุดตัวระบุที่ค่าพารามิเตอร์สามารถจับคู่ได้ รายการตัวระบุระบุอยู่ในวงเล็บ โดยคั่นตัวระบุด้วยเครื่องหมายจุลภาค:
พิมพ์= ();)
สิ่งสำคัญคือลำดับที่ตัวระบุแสดงรายการเมื่อกำหนดประเภท เนื่องจากตัวระบุตัวแรกถูกกำหนดด้วยหมายเลขซีเรียล 0 ตัวที่สอง - 1 เป็นต้น ตัวระบุเดียวกันนี้สามารถใช้ในคำจำกัดความของประเภทที่แจกแจงเพียงประเภทเดียวเท่านั้น ฟังก์ชัน Ord จากค่าประเภทที่ระบุจะให้เลขลำดับของค่านั้น
ตัวอย่าง.ประเภทแจกแจง
ประเภท Operat = (บวก, ลบ, Mult, หาร);
ประเภทบูลีนเป็นกรณีพิเศษของประเภทแจกแจง:
พิมพ์บูลีน = (เท็จ, จริง);
3.2.5. ประเภท-ช่วง
ในประเภทลำดับใดๆ คุณสามารถเลือกชุดย่อยของค่าที่กำหนดโดยค่าต่ำสุดและสูงสุดซึ่งรวมถึงค่าทั้งหมดของประเภทต้นฉบับที่อยู่ภายในขอบเขตเหล่านี้รวมถึงขอบเขตด้วย เซตย่อยนี้กำหนดประเภทช่วง ระบุประเภทช่วงโดยระบุค่าต่ำสุดและสูงสุด โดยคั่นด้วยจุดสองจุด:
ประเภท = . - -
ค่าต่ำสุดเมื่อกำหนดประเภทนี้ไม่ควรมากกว่าค่าสูงสุด
ตัวอย่าง.คำจำกัดความของประเภทช่วง
พิมพ์
โหล = 1..12; (ตัวเลขตั้งแต่ 1 ถึง 12)
AddSub = บวก..ลบ; (การดำเนินการบวกและการลบ)
3.2.6. ประเภทจริง
ต่างจากมาตรฐานภาษา Pascal ซึ่งมีการกำหนดประเภท Real จริงเพียงประเภทเดียว Turbo Pascal มีประเภทจริงมาตรฐาน 5 ประเภท: 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)