มาเรียนรู้เพิ่มเติมเกี่ยวกับประเภทข้อมูลภาษา Pascal: Integer, Real, Char, String, Boolean ชนิดข้อมูลปาสคาล

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

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

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

เพื่อความสะดวกของโปรแกรมเมอร์ Pascal มีประเภทข้อมูลมาตรฐานหลายประเภท รวมถึงความสามารถในการสร้างประเภทใหม่

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

ขึ้นอยู่กับ ชนิดข้อมูลพื้นฐานภาษาปาสคาลประเภทอื่นๆ ทั้งหมดถูกสร้างขึ้น ซึ่งเรียกว่า: สร้างขึ้น.

การแบ่งออกเป็นประเภทข้อมูลพื้นฐานและประเภทข้อมูลที่สร้างขึ้นใน Pascal แสดงอยู่ในตาราง:

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

พิมพ์<имя_типа> = <описание_типа>;

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

พิมพ์ Lat_Bukvy = "a" .. "z", "A" .. "Z";

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

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

คุณสามารถย่อข้อความโปรแกรมให้สั้นลงได้เล็กน้อย

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

ชนิดข้อมูลลำดับ

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

กิจวัตรมาตรฐานที่ดำเนินการ ชนิดข้อมูลลำดับ

สำหรับปริมาณเท่านั้น ประเภทลำดับมีการกำหนดฟังก์ชันและขั้นตอนต่อไปนี้:

  1. การทำงาน ออร์ด(เอ็กซ์)ส่งกลับเลขลำดับของค่าของตัวแปร x (สัมพันธ์กับประเภทที่มีตัวแปร x อยู่)
  2. การทำงาน เปรย(เอ็กซ์)ส่งคืนค่าก่อนหน้า x (ใช้ไม่ได้กับองค์ประกอบแรกของประเภท)
  3. การทำงาน สำเร็จ(เอ็กซ์)ส่งคืนค่าตาม x (ใช้ไม่ได้กับองค์ประกอบสุดท้ายของประเภท)
  4. ขั้นตอน อิงค์(เอ็กซ์)ส่งกลับค่าตามหลัง x (for ชนิดข้อมูลทางคณิตศาสตร์ซึ่งเทียบเท่ากับตัวดำเนินการ x:= x + 1)
  5. ขั้นตอน อิงค์(เอ็กซ์,เค)ส่งกลับค่า kth ตามหลัง x (for ชนิดข้อมูลทางคณิตศาสตร์ซึ่งเทียบเท่ากับตัวดำเนินการ x:= x + k)
  6. ขั้นตอน ธ.ค(เอ็กซ์)ส่งกลับค่าก่อนหน้า x (for ชนิดข้อมูลทางคณิตศาสตร์ซึ่งเทียบเท่ากับตัวดำเนินการ x:= x - 1)
  7. ขั้นตอน ธ.ค(เอ็กซ์,เค)ส่งกลับค่า k–e ที่อยู่ก่อนหน้า x (for ชนิดข้อมูลทางคณิตศาสตร์ซึ่งเทียบเท่ากับตัวดำเนินการ x:= x - k)

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

ให้เราอธิบายทุกสิ่งที่กล่าวพร้อมตัวอย่าง สำหรับประเภทข้อมูล

พิมพ์สิบหก = 0 .. 15 ;

การพยายามบวก 1 เข้ากับเลข 15 จะได้ผลลัพธ์ดังนี้:

1 1 1 1 1 1 0 0 0 0

หน่วยเริ่มต้นจะถูกตัดออกดังนั้นปรากฎว่า อิงค์(15)=0 .

สถานการณ์ที่คล้ายกันที่ขีดจำกัดล่างของช่วงที่อนุญาตของประเภทข้อมูลลำดับที่กำหนดเองจะถูกสังเกตสำหรับขั้นตอน ธ.ค(เอ็กซ์)และฟังก์ชั่น เปรย(เอ็กซ์):

ประเภทข้อมูลที่เกี่ยวข้องกับ ลำดับ

ให้เราอธิบายตอนนี้ ชนิดข้อมูลลำดับในรายละเอียดเพิ่มเติม

  1. ประเภทบูลีน บูลีนมีสองค่า: เท็จและจริง และความเท่าเทียมกันต่อไปนี้มีไว้สำหรับค่าเหล่านี้:
  2. ถึงประเภทตัวอักษร ถ่านรวม 256 ตัวอักษร ตาราง ASCII แบบขยาย(เช่น "a", "b", "i", "7", "#") หมายเลขอักขระที่ส่งคืนโดยฟังก์ชัน ออร์ด() ตรงกับตัวเลขของสัญลักษณ์นี้ใน ตาราง ASCII.
  3. ชนิดข้อมูลจำนวนเต็มมาวางไว้ในตาราง:
  4. แสดงรายการได้ประเภทข้อมูลระบุไว้ในส่วนนี้ พิมพ์โดยแสดงองค์ประกอบต่างๆ อย่างชัดเจน ตัวอย่างเช่น:

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

    0 1 2 3 4 5 6

  5. โปรดจำไว้ว่าสำหรับประเภทข้อมูลนี้:กำหนดไว้ตามขอบเขตของช่วงเท่านั้น ตัวอย่างเช่น:

    พิมพ์ เดือน = 1 .. 12 ;
    บุดนี = จันทร์ .. ศุกร์;

  6. โปรแกรมเมอร์สามารถสร้างประเภทข้อมูลของตนเองซึ่งเป็นการรวมประเภทมาตรฐานหลายประเภทเข้าด้วยกัน ตัวอย่างเช่น:

    ประเภท 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)