ข้อมูลใด ๆ - ค่าคงที่, ตัวแปร, ค่าฟังก์ชันมีลักษณะเฉพาะในภาษาปาสคาลตามประเภทข้อมูล
มากำหนดแนวคิดกันเถอะ ประเภทข้อมูล. ดังที่ทราบแล้ว อ็อบเจกต์โปรแกรมทั้งหมด (ตัวแปร ค่าคงที่ ฯลฯ) จะต้องถูกประกาศ
คำอธิบายแจ้งนักแปล ประการแรก เกี่ยวกับการมีอยู่ของตัวแปรและวัตถุอื่นๆ ที่ใช้ และประการที่สอง ระบุคุณสมบัติของวัตถุเหล่านี้ ตัวอย่างเช่น คำอธิบายของตัวแปรที่มีค่าเป็นตัวเลขบ่งชี้ถึงคุณสมบัติของตัวเลข อย่างเป็นทางการ ตัวเลขสามารถเป็นจำนวนเต็มและจำนวนจริง (เศษส่วน) ในภาษาปาสคาล เช่นเดียวกับภาษาโปรแกรมอื่นๆ ตัวเลขแบ่งออกเป็นสองประเภท: ทั้งหมด(สงวนคำจำนวนเต็ม) และ จริง(ขอสงวนคำจริง).
การเลือกจำนวนเต็มเป็นประเภทแยกต่างหากอธิบายได้จากข้อเท็จจริงที่ว่าใน คอมพิวเตอร์จำนวนเต็มและจำนวนจริงแสดงแตกต่างกัน: จำนวนเต็มสามารถแสดงได้อย่างตรงเป๊ะ ในขณะที่จำนวนจริงจะถูกแสดงด้วยข้อผิดพลาดจำกัดอย่างหลีกเลี่ยงไม่ได้ ซึ่งถูกกำหนดโดยคุณสมบัติของตัวแปลภาษา
ตัวอย่างเช่น ให้ตัวแปร x เป็นประเภทจริงและมีค่าเท่ากับหนึ่ง: x=1 ค่าที่เกี่ยวข้องในหน่วยความจำคอมพิวเตอร์สามารถเป็น 0.999999999 , 1.000000001 หรือ 1.000000000 แต่ถ้าตัวแปร x ถูกประกาศเป็นตัวแปรประเภทจำนวนเต็มหน่วยนั้นจะถูกแทนในคอมพิวเตอร์อย่างแน่นอนและตัวแปร x จะไม่สามารถรับค่าจริง (เศษส่วน) ได้ - หลังจากทั้งหมดมันถูกประกาศ เป็นตัวแปรประเภทจำนวนเต็ม
ดังนั้นประเภทข้อมูลจะกำหนด:
- การแสดงข้อมูลภายในหน่วยความจำคอมพิวเตอร์
- ชุดของค่าที่ค่าประเภทนี้สามารถใช้ได้
- การดำเนินการที่สามารถดำเนินการกับค่าประเภทนี้
การแนะนำประเภทข้อมูลเป็นหนึ่งในแนวคิดพื้นฐานของภาษาปาสคาลซึ่งประกอบด้วยข้อเท็จจริงที่ว่าเมื่อดำเนินการกำหนดค่าของนิพจน์ให้กับตัวแปร ตัวแปรและนิพจน์จะต้องเป็นประเภทเดียวกัน การตรวจสอบนี้ดำเนินการโดยคอมไพเลอร์ ซึ่งช่วยลดความยุ่งยากในการค้นหาข้อผิดพลาดและเพิ่มความน่าเชื่อถือของโปรแกรม
ชุดของประเภทข้อมูล Turbo Pascal สามารถแบ่งออกเป็นสองกลุ่ม:
- ประเภทมาตรฐาน (กำหนดไว้ล่วงหน้า) ;
- ประเภทที่ผู้ใช้กำหนด (ประเภทที่ผู้ใช้กำหนด) .
ประเภทมาตรฐานของ Turbo Pascal ได้แก่:
- ประเภทจำนวนเต็ม - จำนวนเต็ม ;
- ประเภทจริง - ของจริง ;
- ประเภทอักขระ - ถ่าน ;
- ประเภทบูลีน - บูลีน ;
- ประเภทสตริง - สตริง ;
- ประเภทตัวชี้ - ตัวชี้ ;
- ประเภทข้อความคือข้อความ
ชนิดข้อมูลที่กำหนดเองคือชุดค่าผสมของชนิดมาตรฐานต่างๆ
ประเภทที่กำหนดเอง ได้แก่ :
- ประเภทแจกแจง;
- ประเภทช่วงเวลา
- ประเภทตัวชี้
- ประเภทโครงสร้าง
- ประเภทขั้นตอน
ความคิดเห็น. นอกจากนี้ยังสามารถจัดประเภทประเภทข้อมูลอื่นตามประเภทที่แบ่งออกเป็นแบบง่ายและซับซ้อน
ประเภทอย่างง่ายประกอบด้วย: ประเภทจำนวนเต็ม ประเภทจริง ประเภทอักขระ ประเภทบูลีน ประเภทการแจกแจง และประเภทช่วงเวลา
ประเภทที่ซับซ้อนคือการรวมกันของประเภทง่าย ๆ ที่หลากหลาย (อาร์เรย์ เร็กคอร์ด ชุด ไฟล์ ฯลฯ )
ประเภทมาตรฐาน
ชนิดข้อมูลมาตรฐานถูกกำหนดโดยภาษาปาสคาลเอง เมื่อใช้ประเภทมาตรฐานในโปรแกรม การระบุส่วนย่อยของประเภทที่ต้องการ (const , var) ก็เพียงพอแล้ว จากนั้นจึงอธิบายค่าคงที่และตัวแปรที่ใช้ในโปรแกรม ไม่จำเป็นต้องใช้ส่วนย่อยประเภท
ตัวอย่างเช่น หากโปรแกรมใช้เฉพาะตัวแปร:
ผม,j - จำนวนเต็ม (จำนวนเต็ม);
x,y - จริง (ของจริง);
t,s - ถ่าน (อักขระ);
a,b - บูลีน (ตรรกะ),
จากนั้นต้องการเฉพาะส่วนย่อยของตัวแปร - Var ดังนั้นในส่วนของการอธิบายโปรแกรมจึงเขียนการประกาศตัวแปรดังนี้
ประเภทจำนวนเต็ม
ข้อมูลประเภทนี้รับได้เฉพาะค่าจำนวนเต็มเท่านั้น ในคอมพิวเตอร์ ค่าของประเภทจำนวนเต็มจะแสดงตรงทั้งหมด หากตัวแปรเป็นค่าลบ จะต้องนำหน้าด้วยเครื่องหมาย "-" หากตัวแปรเป็นค่าบวก ให้ละเครื่องหมาย "+" ออกได้ ประเภทนี้จำเป็นในกรณีที่ไม่สามารถแสดงค่าโดยประมาณได้ - เป็นจำนวนจริง เช่น จำนวนคน สัตว์ เป็นต้น
ตัวอย่างการเขียนค่าจำนวนเต็ม: 17, 0, 44789, -4, -127
ช่วงของข้อมูลประเภทจำนวนเต็มถูกกำหนดโดยประเภทจำนวนเต็มมาตรฐานห้าประเภทและแสดงในตาราง:
พิมพ์ | พิสัย | ขนาดเป็นไบต์ |
ชอร์ตอินท์ | -128...+128 | 1 |
จำนวนเต็ม | -32768...32767 | 2 |
ลองอิน | -2147483648...2147483647 | 4 |
ไบต์ | 0...255 | 1 |
คำ | 0...65535 | 2 |
สองประเภทสุดท้ายใช้แทนจำนวนบวกเท่านั้น และสามประเภทแรกเป็นทั้งจำนวนบวกและลบ
ในข้อความของโปรแกรมหรือเมื่อป้อนข้อมูลประเภทจำนวนเต็มจะมีการเขียนค่า โดยไม่มีจุดทศนิยม . ค่าตัวแปรจริง ต้องไม่เกินค่าที่อนุญาต ของประเภท (Shortint , Integer , Longint , Byte , Word) ที่ใช้อธิบายตัวแปร การคำนวณส่วนเกินที่เป็นไปได้ไม่ได้ถูกควบคุม แต่อย่างใดซึ่งจะนำไปสู่การทำงานที่ไม่ถูกต้องของโปรแกรม
ตัวอย่างการใช้ตัวแปรประเภทจำนวนเต็ม
var a:จำนวนเต็ม; ข: คำ; ค: ไบต์; เริ่มต้น a:=300; (a ตั้งค่าเป็น 300) b:=300; (b ตั้งเป็น 300) c:=200; (c ตั้งค่าเป็น 200) a:=b+c; (a ตั้งค่าเป็น 500) c:=b; (ข้อผิดพลาด! ตัวแปร c รับค่าได้ไม่เกิน 255 ในที่นี้ ตัวแปร c กำหนดค่าเป็น 500 ซึ่งจะทำให้ผลลัพธ์ล้น) จบ
ประเภทจริง
ค่าของประเภทจริงในคอมพิวเตอร์จะแสดงโดยประมาณ ช่วงของข้อมูลประเภทจริงถูกกำหนดโดยห้าประเภทมาตรฐาน: จริง (จริง) พร้อมความแม่นยำเดียว (เดี่ยว) ความแม่นยำสองเท่า (สองเท่า) พร้อมความแม่นยำที่เพิ่มขึ้น (ขยาย) ซับซ้อน (คอมพ์) และแสดงในตาราง:
พิมพ์ | พิสัย | จำนวนหลักสำคัญ | ขนาดเป็นไบต์ |
จริง | 2.9E-39...1.7E+38 | 11-12 | 6 |
เดี่ยว | 1.5E-45...3.4E+38 | >7-8 | 4 |
สองเท่า | 5E-324...1.7E+308 | 15-16 | 8 |
ขยาย | 3.4E-4951...1.1E+4932 | 19-20 | 10 |
คอมพ์ | -2E+63+1...+2E+63-1 | 19-20 | 8 |
จำนวนจริงสามารถแสดงได้สองรูปแบบ: จุดคงที่และจุดลอยตัว
รูปแบบของจำนวนจุดคงที่จะเหมือนกับสัญลักษณ์ทางคณิตศาสตร์ทั่วไปสำหรับเลขฐานสิบที่มีเศษส่วน ส่วนที่เป็นเศษส่วนจะแยกออกจากส่วนจำนวนเต็มด้วยจุด เช่น
34.5, -4.0, 77.001, 100.56
รูปแบบทศนิยมใช้เมื่อเขียนตัวเลขที่มากหรือน้อย ในรูปแบบนี้ ตัวเลขที่อยู่ก่อน "E" จะคูณด้วยเลข 10 เป็นกำลังที่ระบุหลัง "E"
1E-4 | 1*10-4 |
3.4574E+3 | 3.4574*10+3 |
4.51E+1 | 4.51*10+1 |
ตัวอย่างจุดลอยตัว:
ตัวเลข | การเขียนในภาษาปาสคาล |
0,0001 | 1E-4 |
3457,4 | 34574E-1 |
45,1 | 451E-1 |
40000 | 4E+4 |
124 | 0.124E+3 |
124 | 1.24E+2 |
124 | 12.4E+1 |
124 | 1240E-1 |
124 | 12400E-2 |
ตารางจาก 5 ถึง 9 แสดงรายการของหมายเลขเดียวกัน 124 โดยการเปลี่ยนตำแหน่งของจุดทศนิยมใน mantissa (จุด "ลอย" ดังนั้นชื่อ "การบันทึกหมายเลขทศนิยม") และในเวลาเดียวกันก็เปลี่ยน เลขชี้กำลัง คุณสามารถเลือกหมายเลขรายการที่เหมาะสมที่สุดได้
ตัวอย่างการประกาศตัวแปรชนิดจริง
ประเภทตัวละคร
ค่าประเภทอักขระคืออักขระที่สามารถพิมพ์บนแป้นพิมพ์คอมพิวเตอร์ สิ่งนี้ช่วยให้คุณนำเสนอข้อความในโปรแกรมและดำเนินการต่าง ๆ กับมัน: แทรก, ลบตัวอักษรและคำแต่ละคำ, รูปแบบ ฯลฯ
ประเภทอักขระแสดงโดยคำสงวน Char และออกแบบมาเพื่อเก็บอักขระตัวเดียว ข้อมูลประเภทอักขระในหน่วยความจำใช้หนึ่งไบต์
รูปแบบการประกาศตัวแปรสัญลักษณ์:
<имя переменной>:ถ่าน;
เมื่อกำหนดค่าของตัวแปรอักขระ อักขระนั้นจะถูกเขียนด้วยเครื่องหมายอะพอสทรอฟี นอกจากนี้ คุณสามารถระบุอักขระที่ต้องการได้โดยการระบุค่าตัวเลขของรหัสแอสกีโดยตรง ในกรณีนี้ จำเป็นต้องนำหน้าตัวเลขที่แสดงรหัส ASCII ของอักขระที่ต้องการด้วยเครื่องหมาย #
ตัวอย่างของการใช้ตัวแปรประเภทอักขระ:
วาร์ค:ถ่าน; (c เป็นตัวแปรประเภทอักขระ) เริ่มต้น c:='A'; (อักขระ 'A' ถูกกำหนดให้กับตัวแปร c) c:=#65; (ตัวแปร c ถูกกำหนดสัญลักษณ์ A ไว้ด้วย รหัสแอสกีของมันคือ 65) c:='5'; (ตัวแปร c ถูกกำหนดเป็นอักขระ 5, End. ที่นี่ 5 ไม่ใช่ตัวเลขอีกต่อไป)
ประเภทบูลีน
ประเภทข้อมูลตรรกะเรียกว่าบูลีนหลังจากนักคณิตศาสตร์ชาวอังกฤษ George Boole ผู้สร้างสาขาคณิตศาสตร์ - ตรรกศาสตร์ทางคณิตศาสตร์
รูปแบบการประกาศตัวแปรบูลีน:
<имя переменной>: บูลีน;
ข้อมูลประเภทนี้สามารถรับได้เพียงสองค่าเท่านั้น:
- จริง - จริง;
- เท็จ - เท็จ
ข้อมูลบูลีนถูกใช้อย่างแพร่หลายในการตรวจสอบความถูกต้องของเงื่อนไขบางอย่างและในการเปรียบเทียบค่าต่างๆ ผลลัพธ์อาจเป็นจริงหรือเท็จ
ในการเปรียบเทียบข้อมูล มีการดำเนินการเชิงสัมพันธ์ดังต่อไปนี้:
ตัวอย่างของการใช้การดำเนินการเชิงสัมพันธ์:
ความสัมพันธ์ 5>3 ผลลัพธ์ จริง (จริง);
ความสัมพันธ์ 5=3 ผลลัพธ์เป็นเท็จ (เท็จ)
ตัวอย่างการใช้ตัวแปรบูลีน
var a,b:บูลีน; (a,b เป็นตัวแปรบูลีน) เริ่มต้น a:=True; (ตัวแปร a ถูกตั้งค่าเป็นจริง) b:=false; (ตัวแปร b ถูกตั้งค่าเป็นเท็จ) สิ้นสุด
ค่าคงที่
สามารถใช้จำนวนเต็ม จำนวนจริง สัญลักษณ์ สตริงอักขระ ค่าคงที่เชิงตรรกะเป็นค่าคงที่ได้
ต้องประกาศค่าคงที่ในส่วนที่เป็นคำอธิบายโดยใช้คำสงวน const
รูปแบบการประกาศคงที่
คอนสต<имя константы>= <значение>;
หากใช้ค่าคงที่หลายค่าในโปรแกรมหนึ่งๆ จะอนุญาตให้มีค่าคงที่เพียงค่าเดียว คำสำคัญ Const คำอธิบายของแต่ละค่าคงที่ลงท้ายด้วยเครื่องหมายอัฒภาค บล็อกคงที่ลงท้ายด้วยการประกาศของส่วนอื่นหรือการประกาศของบล็อกคำสั่งปฏิบัติการ
Const (การประกาศส่วนคงที่) year=2003; (ค่าคงที่ของประเภทจำนวนเต็ม เนื่องจากไม่มีจุดทศนิยมในบันทึก) เวลา=14.05; (ค่าคงที่ประเภทจริง) N=24; (ค่าคงที่ของประเภทจำนวนเต็ม เนื่องจากไม่มีจุดทศนิยมในเรกคอร์ด) P=3.14; (ค่าคงที่ประเภทจริง) A=จริง; (ค่าคงที่บูลีน) str1='7'; (ค่าคงที่ของประเภทอักขระ) str2='A'; (ค่าคงที่ของประเภทอักขระ) str3='Turbo'; (ค่าคงที่ประเภทสตริง) Var (การประกาศส่วนตัวแปร) X,y:integer; (ตัวแปรประเภทจำนวนเต็ม)
ประเภทที่กำหนดเอง
จากชุดประเภทที่กำหนดเองเราจะพิจารณาเท่านั้น
- ประเภทแจกแจง;
- ประเภทช่วงเวลา
เราจะต้องใช้ทั้งสองประเภทนี้เมื่อศึกษาอาร์เรย์
ประเภทแจกแจง
ชนิดข้อมูลที่แจกแจงอธิบายชนิดข้อมูลใหม่ซึ่งค่าถูกกำหนดโดยโปรแกรมเมอร์ ประเภทการแจงนับถูกกำหนดโดยการแจกแจงค่าที่สามารถรับได้ แต่ละค่าได้รับการตั้งชื่อตามตัวระบุบางตัวและอยู่ในรายการที่อยู่ในวงเล็บ ประเภทที่แจงนับคือประเภทข้อมูลที่ผู้ใช้กำหนด ดังนั้นการประกาศประเภทจึงขึ้นต้นด้วยคำสงวน TYPE
รูปแบบประเภทที่ระบุ:
<имя типа>= (ค่าคงที่ 1, ค่าคงที่ 2,... ค่าคงที่ N);
ที่ไหน
ค่าคงที่ 1 , ค่าคงที่ 2 ,... ค่าคงที่ N เป็นชุดค่าระบุลำดับที่ถือว่าเป็นค่าคงที่
ตัวอย่างของการประกาศประเภทที่แจกแจง:
ประเภท ball=(หนึ่ง สอง สาม สี่ ห้า); vart:บอล;
นี่บอลเป็นชื่อประเภทแจกแจง; หนึ่ง สอง สาม สี่ ห้า เป็นค่าคงที่ t เป็นตัวแปรที่สามารถรับค่าคงที่ใดๆ
ในประเภทแจกแจง ค่าคงที่เป็นตัวระบุ ดังนั้นจึงไม่อยู่ในเครื่องหมายอัญประกาศและไม่สามารถเป็นตัวเลขได้ ดังนั้น ในประเภทแจกแจง ค่าคงที่คือค่าคงที่ชนิดพิเศษที่ไม่สามารถ:
- ค่าคงที่ประเภทตัวเลข: 1, 2, 3, 4, ฯลฯ;
- ค่าคงที่ของประเภทอักขระ: "a", "s", "1", "3" ฯลฯ;
- ค่าคงที่ประเภทสตริง: "ที่หนึ่ง", "วินาที" ฯลฯ
นอกจากนี้ การดำเนินการทางคณิตศาสตร์และขั้นตอนอินพุตและเอาต์พุตมาตรฐาน อ่าน , เขียน ไม่สามารถใช้ได้กับค่าประเภทนี้
ตัวอย่างการใช้ตัวแปรประเภทแจกแจง:
ประเภทวัน = (วันจันทร์ วันอังคาร วันพุธ วันพฤหัสบดี วันศุกร์ วันเสาร์ วันอาทิตย์); วัน Var: วัน; เริ่มต้น ถ้าวัน = วันอาทิตย์ แล้วเขียน ('วันนี้เป็นวันอาทิตย์!'); จบ.
องค์ประกอบในคำนิยามประเภทที่แจงนับจะถือว่าเรียงลำดับตามรายการ การนับเริ่มต้นจากศูนย์ ดังนั้นในตัวอย่างข้างต้น วันในสัปดาห์จึงมีเลขลำดับดังต่อไปนี้
ในการกำหนดหมายเลขลำดับโดยทางโปรแกรม ให้ใช้ฟังก์ชัน Ord()
ในตัวอย่างของเรา หมายเลขประจำเครื่องจะเท่ากัน:
ออร์ด(วันจันทร์) = 0;
ออร์ด(วันเสาร์) = 5;
ออร์ด(วันอาทิตย์) = 6.
ประเภทช่วงเวลา
หากตัวแปรบางตัวไม่ใช้ค่าทั้งหมดของประเภท แต่เฉพาะค่าที่อยู่ในช่วงที่กำหนด ประเภทข้อมูลดังกล่าวจะเรียกว่าประเภทช่วงเวลา บ่อยครั้งที่ประเภทช่วงเวลาเรียกว่าประเภทที่มีขอบเขตและประเภทช่วง ประเภทช่วงเวลาถูกกำหนดโดยขอบเขตของค่า:
<минимальное значение>..<максимальное значение>
- อักขระ ".." สองตัวถือเป็นอักขระเดียว ดังนั้นจึงไม่อนุญาตให้มีช่องว่างระหว่างอักขระทั้งสอง
- ปลายด้านซ้ายของช่วงต้องไม่เกินด้านขวา
ประเภทช่วงเวลาคือประเภทข้อมูลที่ผู้ใช้กำหนด ดังนั้นการประกาศประเภทนี้จะเริ่มต้นด้วยคำหลัก TYPE
ตัวอย่างของคำอธิบายประเภทช่วงเวลา:
พิมพ์หลัก = 1..10; เดือน = 1..31; lat = 'A'..'Z';
พบมากที่สุดในวิชาคณิตศาสตร์ ประเภทตัวเลข- นี้ ทั้งหมดตัวเลขที่แสดงค่าที่ไม่ต่อเนื่องเป็นจำนวนไม่สิ้นสุด และ ถูกต้องตัวเลขที่แสดงค่าต่อเนื่องไม่จำกัด
คำอธิบายประเภทข้อมูลตัวเลข (จำนวนเต็ม) ภาษาปาสคาล
ภายในภาษาเดียวกัน สามารถใช้ชุดย่อยที่แตกต่างกันของชุดจำนวนเต็มได้ ช่วงของค่าที่เป็นไปได้ของประเภทตัวเลขจำนวนเต็มขึ้นอยู่กับการแทนค่าภายในซึ่งอาจเป็นหนึ่ง สอง หรือสี่ไบต์ ดังนั้น Pascal 7.0 จึงใช้ประเภทข้อมูลตัวเลขจำนวนเต็มต่อไปนี้:
ด้วยทั้งหมด ชนิดข้อมูลตัวเลข Pascal สามารถดำเนินการดังต่อไปนี้:
- เลขคณิต:
นอกจากนี้ (+);
การลบ (-);
คูณ (*);
ส่วนที่เหลือของส่วน (mod);
ยกกำลัง;
เอกนารีบวก (+);
ยูนารีลบ (-)
- การดำเนินความสัมพันธ์:
ความสัมพันธ์ความเท่าเทียมกัน (=);
ความสัมพันธ์อสมการ (<>);
อัตราส่วนน้อยกว่า (<);
อัตราส่วนมากกว่า (>);
อัตราส่วนไม่น้อยกว่า (>=);
อัตราส่วนไม่เกิน (<=).
เมื่อกระทำกับ ชนิดข้อมูลตัวเลขจำนวนเต็มประเภทของผลลัพธ์จะสอดคล้องกับประเภทของตัวถูกดำเนินการ และถ้าตัวถูกดำเนินการเป็นประเภทจำนวนเต็มที่แตกต่างกัน จะสอดคล้องกับประเภทของตัวถูกดำเนินการที่มีจำนวนนับสูงสุด (ช่วงของค่าสูงสุด) ไม่มีการควบคุมผลลัพธ์ที่มากเกินไปที่เป็นไปได้ แต่อย่างใด (เป็นสิ่งสำคัญ!) ซึ่งอาจทำให้เกิดข้อผิดพลาดได้
ควรให้ความสนใจเป็นพิเศษกับการดำเนินการหารประเภทข้อมูลตัวเลขจำนวนเต็ม ในภาษาปาสคาล อนุญาตให้ดำเนินการสองส่วนได้ ซึ่งแสดงตามลำดับ "/" และ แผนก. คุณต้องรู้ว่าผลลัพธ์ของการหาร "/" ไม่ใช่จำนวนเต็ม แต่ เบอร์จริง(สิ่งนี้เป็นจริงแม้ว่าคุณจะหาร 8 ด้วย 2 เช่น 8/2=4.0) การหารคือ การหารจำนวนเต็ม, เช่น. ประเภทผลลัพธ์จำนวนเต็ม
คำอธิบายประเภทข้อมูลตัวเลข (จริง) ภาษาปาสคาล
ชนิดข้อมูลตัวเลขจริงหมายถึงชุดย่อยของจำนวนจริงที่สามารถแสดงในรูปแบบทศนิยมที่มีจำนวนหลักคงที่ เมื่อใช้ทศนิยม ข้อมูลตัวเลขแต่ละประเภทจะแสดงเป็นตัวเลขสองกลุ่ม ตัวเลขกลุ่มแรกเรียกว่าแมนทิสซากลุ่มที่สองคือลำดับ โดยทั่วไป ชนิดข้อมูลตัวเลขในรูปแบบทศนิยมสามารถแสดงได้ดังนี้: X= (+|-)MP (+ | -) r โดยที่ M คือแมนทิสซาของตัวเลข r คือลำดับของตัวเลข (r คือจำนวนเต็ม); P คือฐานของระบบตัวเลข ตัวอย่างเช่น สำหรับฐานทศนิยม การแทนค่าของ 2E-1 (ในที่นี้ E คือฐานของระบบเลขฐานสิบ) จะมีลักษณะดังนี้: 2*10 -1 =0.2 และการแทนค่าของ 1.234E5 จะสอดคล้องกับ: 1.234* 10 5 =123400.0.
ภาษาปาสคาลใช้จำนวนจริงประเภทต่างๆ ต่อไปนี้ ซึ่งกำหนดจำนวนตามอำเภอใจด้วยความแม่นยำจำกัดบางอย่างเท่านั้น ทั้งนี้ขึ้นอยู่กับรูปแบบภายในของจำนวนจริง:
เมื่ออธิบายตัวแปรจริงประเภทจริง ตัวแปรขนาด 4 ไบต์จะถูกสร้างขึ้นในหน่วยความจำของคอมพิวเตอร์ ในกรณีนี้ mantissa จะได้รับ 3 ไบต์และหนึ่ง - ภายใต้คำสั่ง
คุณสามารถดำเนินการต่อไปนี้กับชนิดข้อมูลตัวเลขจริง:
- เลขคณิต:
นอกจากนี้ (+);
การลบ (-);
คูณ (*);
แผนก(/);
ยกกำลัง;
เอกนารีบวก (+);
ยูนารีลบ (-)
- การดำเนินความสัมพันธ์:
ความสัมพันธ์อสมการ (<>);
อัตราส่วนน้อยกว่า (<);
อัตราส่วนมากกว่า (>);
อัตราส่วนไม่น้อยกว่า (>=);
อัตราส่วนไม่เกิน (<=).
อย่างที่คุณเห็น Pascal มีลักษณะเฉพาะด้วยประเภทจริงที่หลากหลาย แต่เข้าถึงประเภทข้อมูลที่เป็นตัวเลขได้ เดี่ยว, สองเท่าและ ขยายเป็นไปได้เฉพาะในโหมดการรวบรวมพิเศษเท่านั้น ชนิดข้อมูลตัวเลขเหล่านี้ได้รับการออกแบบมาเพื่อรองรับฮาร์ดแวร์ของเลขคณิตทศนิยม และเพื่อให้ใช้งานได้อย่างมีประสิทธิภาพ พีซีต้องมีตัวประมวลผลร่วมทางคณิตศาสตร์
ตำแหน่งพิเศษในภาษาปาสคาลถูกครอบครองโดยประเภทข้อมูลตัวเลข คอมพ์ซึ่งถือว่าเป็นจำนวนจริงโดยไม่มีส่วนเลขชี้กำลังและเศษส่วน จริงๆ แล้ว, คอมพ์เป็นจำนวนเต็ม "ใหญ่" แบบมีเครื่องหมายที่เก็บ 19..20 หลักทศนิยม ในขณะเดียวกันข้อมูลประเภทตัวเลข คอมพ์ในนิพจน์ มันเข้ากันได้อย่างสมบูรณ์กับประเภทจริงอื่นๆ: การดำเนินการจริงทั้งหมดถูกกำหนดไว้แล้ว สามารถใช้เป็นอาร์กิวเมนต์ของฟังก์ชันทางคณิตศาสตร์ ฯลฯ
เกี่ยวกับการแปลงชนิดข้อมูลตัวเลขในภาษาปาสคาล
การแปลงโดยนัย (อัตโนมัติ) ของประเภทข้อมูลตัวเลขแทบจะเป็นไปไม่ได้เลยในภาษาปาสคาล มีข้อยกเว้นสำหรับประเภทเท่านั้น จำนวนเต็มซึ่งอนุญาตให้ใช้ในนิพจน์เช่น จริง. เช่น ถ้าประกาศตัวแปรดังนี้
VarX: จำนวนเต็ม; 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 | |
คอมพ์ | -2Е+63+1..2Е+63-1 | 10-20 |
การใช้ประเภท SINGLE, DOUBLE, EXTEND, COMP อย่างมีประสิทธิภาพจะเป็นไปได้ก็ต่อเมื่อมีคำสั่ง ($N+) รวมอยู่ด้วย โดยค่าเริ่มต้น จะอยู่ในสถานะปิด เพื่อแก้ปัญหาทางวิศวกรรมและเศรษฐกิจค่าของประเภท REAL ก็เพียงพอแล้ว
ตัวอย่าง
วาร์ เรส, ซัมมา, อิต็อก: ตัวจริง;
บูเลฟสกี้ชนิดข้อมูลอธิบายโดยตัวระบุ BOOLEAN ตัวแปรและค่าคงที่ประเภทนี้สามารถรับค่าใดค่าหนึ่งจากสองค่าเท่านั้น: TRUE (จริง) หรือ FALSE (เท็จ)
ตัวอย่าง
Var Sel1, Sel2: บูลีน;
A,B,C,D: บูลีน;
นิพจน์ประเภทบูลีนใช้หน่วยความจำ 1 ไบต์และใช้ในนิพจน์เชิงตรรกะและเชิงสัมพันธ์ ตลอดจนควบคุมลำดับการดำเนินการของคำสั่งโปรแกรม
ตัวอักษร (ตัวอักษร)ประเภทอธิบายโดยตัวระบุมาตรฐาน CHAR ค่าคงที่และตัวแปรประเภทนี้สามารถใช้หนึ่งในค่าของตารางรหัส ASCII ค่าของค่าคงที่หรือตัวแปรประเภทนี้จะอยู่ในเครื่องหมายอัญประกาศเดี่ยว
ตัวอย่างเช่น, Var Bukva, Znak, สัญลักษณ์: ถ่าน;
ตัวอักษร:='A'; เครื่องหมาย:='+'; สัญลักษณ์:='!'
ตัวแปรประเภทอักขระใช้ 1 ไบต์ในหน่วยความจำ ห้ามใช้ข้อมูลประเภทถ่านในนิพจน์ทางคณิตศาสตร์ การดำเนินการเปรียบเทียบสามารถนำไปใช้กับค่าตามตัวอักษร ซึ่งผลลัพธ์จะขึ้นอยู่กับจำนวนของตัวแปรตามตัวอักษรหรือค่าคงที่ในตารางโค้ด
นอกจากประเภทข้อมูลมาตรฐานแล้ว Pascal ยังสนับสนุนประเภทสเกลาร์ ผู้ใช้กำหนด. เหล่านี้รวมถึง นับได้และ ช่วงเวลาประเภท ชนิดข้อมูลเหล่านี้ใช้หน่วยความจำ 1 ไบต์ ดังนั้นประเภทที่ผู้ใช้กำหนดเองไม่สามารถมีมากกว่า 255 องค์ประกอบ การใช้งานช่วยเพิ่มการมองเห็นของโปรแกรมทำให้ง่ายต่อการค้นหาข้อผิดพลาดและบันทึกหน่วยความจำ
ประเภทแจกแจงถูกระบุโดยตรงโดยการแสดงรายการค่าทั้งหมดที่ตัวแปรประเภทที่กำหนดสามารถทำได้ ค่าแต่ละค่าจะคั่นด้วยเครื่องหมายจุลภาค และรายการทั้งหมดจะอยู่ในวงเล็บ
รูปแบบ
พิมพ์<имя типа>=(<значение1, значение2, ..., значениеN>);
วาร์<идентификатор, ...>: < имя типа>;
ตัวอย่าง
ประเภท Season = (ฤดูใบไม้ผลิ ฤดูร้อน ฤดูใบไม้ร่วง ฤดูหนาว);
Var S1, S2: ฤดู;
ฤดูใบไม้ร่วง: (กันยายน ตุลาคม พฤศจิกายน);
ในตัวอย่างนี้ มีการแสดงประเภทข้อมูลของผู้ใช้ซีซันที่ประกาศอย่างชัดเจน ความหมายของพวกเขาถูกกำหนด - การกำหนดฤดูกาล ตัวแปร S1 และ S2 สามารถรับค่าที่แสดงไว้ได้เพียงค่าเดียวเท่านั้น การพยายามกำหนดค่าอื่นใดให้กับค่าเหล่านี้จะทำให้ซอฟต์แวร์หยุดชะงัก การแจงนับประเภทที่สามเป็นแบบนิรนาม (ไม่มีชื่อ) และระบุโดยการแจงนับค่าในส่วน Var ฤดูใบไม้ร่วงเป็นตัวแปรประเภทนี้และสามารถใช้ค่าได้ กันยายน, ตุลาคม, Nowember ดังนั้นจึงสามารถให้ประเภทใดก็ได้ แต่ก็ไม่เป็นที่ยอมรับเสมอไป วิธีแรกนั้นเข้าใจได้ง่ายกว่าและสอดคล้องกับธรรมชาติของภาษาปาสคาลมากกว่า
ประเภทช่วงเวลาให้คุณตั้งค่าคงที่สองตัวที่กำหนดขอบเขตของช่วงค่าสำหรับตัวแปรนี้ คอมไพลเลอร์สร้างรูทีนการตรวจสอบสำหรับแต่ละการดำเนินการบนตัวแปรประเภทช่วงเวลาที่กำหนดว่าค่าของตัวแปรยังคงอยู่ภายในช่วงที่ระบุหรือไม่ ค่าคงที่ทั้งสองต้องเป็นประเภทมาตรฐานประเภทใดประเภทหนึ่ง ยกเว้นค่าจริง ค่าของค่าคงที่แรกจะต้องน้อยกว่าค่าที่สอง
รูปแบบ
พิมพ์<имя типа> = <константа1> .. <константа2>;
วาร์<идентификатор>: < имя типа>;
ตัวอย่าง
ประเภท วัน = 1.. 31;
Var Work_d, Free_d: วัน;
ในตัวอย่างนี้ ตัวแปร Work_d, Free_dเป็นประเภท วันและสามารถรับค่าใด ๆ จากช่วง 1 . 31.
อยู่นอกช่วงทำให้เกิดการขัดจังหวะของซอฟต์แวร์
คุณสามารถกำหนดประเภทช่วงเวลาได้โดยการระบุขีดจำกัดของช่วง ไม่ใช่ค่าคงที่ แต่ตามชื่อ:
ค่าต่ำสุด = 1; สูงสุด=31;
ประเภท วัน = ต่ำสุด .. สูงสุด;
Var Work_d, Free_d: วัน;
ประเภทโครงสร้างข้อมูลขึ้นอยู่กับประเภทสเกลาร์และอาจมีชุดค่าผสมต่างๆ พวกเขากำหนดชุดขององค์ประกอบสเกลาร์ที่สั่งซื้อและกำหนดลักษณะตามประเภทของส่วนประกอบ Pascal จัดเตรียมประเภทข้อมูลที่มีโครงสร้างดังต่อไปนี้:
เส้น -ลำดับของอักขระที่อยู่ในเครื่องหมายอะพอสทรอฟี
อาร์เรย์ -ประเภทข้อมูลที่มีโครงสร้างประกอบด้วยองค์ประกอบประเภทเดียวกันในจำนวนคงที่ เข้าถึงได้โดยดัชนี ;
พวงของ -ชุดของวัตถุที่เลือกตามแอตทริบิวต์หรือกลุ่มของแอตทริบิวต์ซึ่งถือได้ว่าเป็นทั้งหมด
บันทึก -ชุดขององค์ประกอบจำนวนคงที่ประเภทต่างๆ
ไฟล์- ลำดับของส่วนประกอบประเภทเดียวกันและความยาวเท่ากัน
อีกสองประเภทที่มีโครงสร้าง - ขั้นตอนและ ประเภทวัตถุ(วัตถุประสงค์) - เป็นการยากที่จะจับคู่ข้อมูลในการแสดงตามปกติ
รูปภาพที่ 1- ชุดของประเภทพื้นฐานของภาษาปาสคาล
ในภาษาปาสคาลตัวแปรมีลักษณะโดยพวกเขา พิมพ์. ประเภทเป็นคุณสมบัติของตัวแปรตามที่ตัวแปรสามารถใช้กับชุดของค่าที่อนุญาตโดยประเภทนี้และเข้าร่วมในชุดของการดำเนินการที่อนุญาตในประเภทนี้
ประเภทกำหนดชุดของค่าที่ถูกต้องซึ่งตัวแปรของประเภทที่กำหนดสามารถใช้ได้ นอกจากนี้ยังกำหนดชุดของการดำเนินการที่อนุญาตในตัวแปรประเภทที่กำหนดและกำหนดการแสดงข้อมูลใน หน่วยความจำเข้าถึงโดยสุ่มคอมพิวเตอร์.
ตัวอย่างเช่น:
n:จำนวนเต็ม;
Pascal เป็นภาษาสแตติก ซึ่งหมายความว่าประเภทของตัวแปรจะถูกกำหนดเมื่อมีการประกาศและไม่สามารถเปลี่ยนแปลงได้ ภาษาปาสคาลมีระบบประเภทที่พัฒนาขึ้น - ข้อมูลทั้งหมดต้องเป็นของประเภทข้อมูลที่รู้จักก่อนหน้านี้ (ไม่ว่าจะเป็นประเภทมาตรฐานที่สร้างขึ้นระหว่างการพัฒนาภาษาหรือประเภทที่ผู้ใช้กำหนดเองซึ่งโปรแกรมเมอร์กำหนด) โปรแกรมเมอร์สามารถสร้างประเภทของเขาด้วยโครงสร้างความซับซ้อนตามอำเภอใจตามประเภทมาตรฐานหรืออยู่แล้ว ผู้ใช้กำหนดประเภท จำนวนการสร้างไม่จำกัดแบบ ประเภทที่กำหนดเองในโปรแกรมจะประกาศในส่วนประเภทตามรูปแบบ:
[ชื่อ] = [ประเภท]
ระบบประเภทมาตรฐานมีโครงสร้างแบบแยกย่อยและลำดับชั้น
หลักในลำดับชั้นคือ ประเภทที่เรียบง่าย. ประเภทดังกล่าวมีอยู่ในภาษาการเขียนโปรแกรมส่วนใหญ่และเรียกว่าง่าย แต่ใน Pascal มีโครงสร้างที่ซับซ้อนกว่า
ประเภทโครงสร้างถูกสร้างขึ้นตามกฎบางอย่างจากประเภทง่ายๆ
ตัวชี้ถูกสร้างขึ้นจากมุมมองที่เรียบง่ายและใช้ในโปรแกรมเพื่อตั้งค่าที่อยู่
ประเภทขั้นตอนเป็นนวัตกรรมของภาษา เทอร์โบปาสคาลและอนุญาตให้คุณเข้าถึงรูทีนย่อยได้ราวกับว่ามันเป็นตัวแปร
วัตถุยังใหม่และมีวัตถุประสงค์เพื่อใช้เป็นภาษาเชิงวัตถุ
จำนวนเต็มมี 5 ประเภทในภาษาปาสคาล แต่ละคนกำหนดลักษณะช่วงของค่าที่ยอมรับและตำแหน่งในหน่วยความจำ
เมื่อใช้จำนวนเต็ม หนึ่งควรได้รับคำแนะนำจากการซ้อนของประเภท เช่น ประเภทช่วงที่เล็กกว่าสามารถซ้อนอยู่ในประเภทช่วงที่ใหญ่กว่าได้ ประเภทไบต์สามารถซ้อนอยู่ในทุกประเภทที่ใช้ 2 และ 4 ไบต์ ในเวลาเดียวกัน ประเภท Short Int ซึ่งใช้พื้นที่ 1 ไบต์ ไม่สามารถซ้อนในประเภท Word ได้ เนื่องจากไม่มีค่าลบ
มี 5 ประเภทจริง:
ประเภทจำนวนเต็มจะแสดงในคอมพิวเตอร์ ซึ่งแตกต่างจากประเภทจำนวนเต็ม ค่าของประเภทจริงจะกำหนดจำนวนตามอำเภอใจโดยมีความแม่นยำจำกัดเท่านั้น ทั้งนี้ขึ้นอยู่กับรูปแบบของตัวเลข จำนวนจริงจะแสดงในคอมพิวเตอร์ที่มีจุดคงที่หรือจุดลอยตัว
2358.8395
0.23588395*10 4
0.23588395*จ4
ตำแหน่งพิเศษในภาษาปาสคาลถูกครอบครองโดยประเภทคอมพ์ อันที่จริง มันเป็นจำนวนเต็มขนาดใหญ่ที่มีลายเซ็น ประเภทนี้ใช้ได้กับของจริงทุกประเภทและใช้ได้กับจำนวนเต็มมาก เมื่อแสดงตัวเลขทศนิยมจริง จุดทศนิยมจะแสดงโดยนัยก่อนแมนทิสซาซ้ายหรือสูงสุดเสมอ แต่เมื่อทำงานกับตัวเลข จุดทศนิยมจะเลื่อนไปทางซ้ายหรือขวา
ประเภทลำดับ
ประเภทลำดับรวมประเภทง่าย ๆ หลายประเภท เหล่านี้รวมถึง:
- จำนวนเต็มทุกประเภท
- ประเภทของตัวละคร
- ประเภทบูลีน
- ช่วงประเภท;
- ชนิดแจกแจง.
คุณลักษณะทั่วไปสำหรับประเภทลำดับคือ แต่ละประเภทมีค่าที่เป็นไปได้เป็นจำนวนจำกัด ค่าของประเภทเหล่านี้สามารถเรียงลำดับได้ด้วยวิธีใดวิธีหนึ่ง และแต่ละหมายเลขจะมีหมายเลขที่แน่นอน ซึ่งเป็นหมายเลขซีเรียลที่สามารถเปรียบเทียบได้ ค่าที่อยู่ติดกันของประเภทลำดับต่างกัน
สำหรับค่าประเภทลำดับ คุณสามารถใช้ฟังก์ชัน ODD(x) ซึ่งจะส่งคืนจำนวนลำดับของอาร์กิวเมนต์ x
ฟังก์ชัน PRED(x) - ส่งกลับค่าก่อนหน้าของประเภทลำดับ พรีเด(A) = 5.
ฟังก์ชัน SUCC(x) - ส่งกลับค่าถัดไปของประเภทลำดับ SUCC(A) = 5.
ประเภทตัวละคร
ค่าประเภทอักขระคือ 256 อักขระจากชุดที่อนุญาตโดยตารางรหัสของคอมพิวเตอร์ที่ใช้งาน พื้นที่เริ่มต้นของชุดนี้ เช่น ช่วงตั้งแต่ 0 ถึง 127 สอดคล้องกับชุดของรหัส ASCII ที่โหลดอักขระของตัวอักษร ตัวเลขอารบิก และอักขระพิเศษ สัญลักษณ์ พื้นที่เริ่มต้นปรากฏบนแป้นพิมพ์พีซีเสมอ พื้นที่ที่เก่ากว่าเรียกว่าทางเลือกประกอบด้วยอักขระของตัวอักษรประจำชาติและอักขระพิเศษต่างๆ และอักขระเทียมที่ไม่สอดคล้องกับรหัส ASCII
ค่าประเภทอักขระใช้หนึ่งไบต์ใน RAM ในโปรแกรม ค่าจะอยู่ในเครื่องหมายอัญประกาศเดี่ยว นอกจากนี้ยังสามารถระบุค่าในรูปแบบของรหัส ASCII ในกรณีนี้ ตัวเลขที่มีรหัสอักขระจะต้องนำหน้าด้วยเครื่องหมาย #
ค:= 'เอ'
ประเภทบูลีน (บูลีน)
ประเภทบูลีนมีสองค่าคือ True (จริง) และ False (เท็จ) ตัวแปรประเภทนี้ระบุโดยบริการคำ BOOLEAN ค่าบูลีนใช้หนึ่งไบต์ใน RAM ค่า True และ False สอดคล้องกับค่าตัวเลข 1 และ 0
ประเภทช่วง
มีเซตย่อยของประเภทฐานซึ่งสามารถเป็นประเภทลำดับใดก็ได้ ประเภทช่วงถูกกำหนดโดยขอบเขตภายในประเภทฐาน
[ค่าต่ำสุด]…[ค่าสูงสุด]
สามารถระบุประเภทช่วงได้ในส่วนประเภทเป็นประเภทเฉพาะ หรือระบุโดยตรงในส่วน Var
เมื่อกำหนดประเภทช่วง ควรได้รับคำแนะนำจาก:
- เส้นขอบด้านซ้ายไม่ควรเกินขอบด้านขวา
- ประเภทช่วงจะสืบทอดคุณสมบัติทั้งหมดของประเภทฐาน แต่มีข้อจำกัดที่เกี่ยวข้องกับจำนวนสมาชิกที่ต่ำกว่า
ประเภทแจกแจง
ประเภทนี้อ้างถึงประเภทลำดับและระบุโดยการแสดงรายการค่าที่สามารถระบุได้ แต่ละค่าได้รับการตั้งชื่อตามตัวระบุบางตัวและอยู่ในรายการที่อยู่ในวงเล็บ ประเภทที่ระบุได้ระบุไว้ในประเภท:
คน = (ผู้ชาย, ผู้หญิง);
ค่าแรกคือ 0 ค่าที่สองคือ 1 ไปเรื่อยๆ
กำลังไฟสูงสุด 65535 ค่า
ประเภทสตริง
ประเภทสตริงอยู่ในกลุ่มประเภทโครงสร้างและประกอบด้วยประเภทฐาน Char ประเภทสตริงไม่ใช่ประเภทลำดับ กำหนดชุดของสตริงอักขระที่มีความยาวตามอำเภอใจได้สูงสุด 255 อักขระ
ในโปรแกรมจะประกาศประเภทสตริงด้วยคำว่า String เนื่องจาก String เป็นประเภทพื้นฐาน จึงมีการประกาศในภาษา และการประกาศตัวแปรประเภท String จะทำใน Var เมื่อประกาศตัวแปรประเภทสตริงที่อยู่หลังสตริง ขอแนะนำให้ระบุความยาวของสตริงในวงเล็บเหลี่ยม ระบุจำนวนเต็มระหว่าง 0 ถึง 255
แฟม: สตริง;
การระบุความยาวสตริงทำให้คอมไพเลอร์จัดสรรจำนวนไบต์ที่ระบุใน RAM สำหรับตัวแปรที่กำหนด หากไม่ได้ระบุความยาวสตริง คอมไพเลอร์จะจัดสรรจำนวนไบต์ที่เป็นไปได้สูงสุด (255) สำหรับค่าของตัวแปรนี้
บทเรียนจะกล่าวถึงประเภทข้อมูลมาตรฐานหลักในภาษาปาสคาล แนวคิดของตัวแปรและค่าคงที่ อธิบายวิธีการทำงานกับการดำเนินการทางคณิตศาสตร์
Pascal เป็นภาษาโปรแกรมแบบพิมพ์ซึ่งหมายความว่าตัวแปรที่เก็บข้อมูลเป็นประเภทข้อมูลเฉพาะ เหล่านั้น. โปรแกรมจะต้องระบุโดยตรงว่าข้อมูลใดที่สามารถจัดเก็บในตัวแปรเฉพาะได้: ข้อมูลข้อความ ข้อมูลตัวเลข ถ้าเป็นตัวเลข จากนั้นเป็นจำนวนเต็มหรือเศษส่วน เป็นต้น สิ่งนี้จำเป็นตั้งแต่แรกเพื่อให้คอมพิวเตอร์ "รู้" การดำเนินการใดที่สามารถดำเนินการกับตัวแปรเหล่านี้ได้และวิธีดำเนินการอย่างถูกต้อง
ตัวอย่างเช่น การเพิ่มข้อมูลที่เป็นข้อความหรือตามที่เรียกอย่างถูกต้องในการเขียนโปรแกรม - การต่อข้อมูล - เป็นการรวมสตริงตามปกติ ในขณะที่การเพิ่มข้อมูลตัวเลขเกิดขึ้นทีละบิต นอกจากนี้ ตัวเลขที่เป็นเศษส่วนและจำนวนเต็มยังถูกเพิ่มเข้าไปอีกด้วย วิธี เช่นเดียวกับการดำเนินการอื่น ๆ
ลองมาดูที่พบบ่อยที่สุด ประเภทของภาษาปาสคาลข้อมูล.
ชนิดข้อมูลจำนวนเต็มในภาษาปาสคาล
พิมพ์ | พิสัย | หน่วยความจำที่จำเป็น (ไบต์) |
ไบต์ | 0..255 | 1 |
สั้น | -128..127 | 1 |
จำนวนเต็ม | -32768.. 32767 | 2 |
คำ | 0..65535 | 2 |
ยาว | -2147483648..2147483647 | 4 |
ต้องระลึกไว้เสมอว่าเมื่อเขียนโปรแกรมในภาษาปาสคาล จำนวนเต็ม(แปลจากภาษาอังกฤษเป็นจำนวนเต็ม) เป็นที่นิยมใช้มากที่สุดเนื่องจากช่วงของค่าเป็นที่ต้องการมากที่สุด หากต้องการระยะที่กว้างขึ้น ให้ใช้ ยาว(จำนวนเต็มยาว แปลจากจำนวนเต็มยาวภาษาอังกฤษ) พิมพ์ ไบต์ใน Pascal จะใช้เมื่อไม่จำเป็นต้องทำงานกับค่าลบ เช่นเดียวกับประเภท คำ(เฉพาะช่วงของค่าที่นี่ใหญ่กว่ามาก)
ตัวอย่างของการอธิบายตัวแปร (ประกาศ) ในภาษาปาสคาล:
โปรแกรม a1; varx,y:จำนวนเต็ม; (ชนิดจำนวนเต็ม) myname:string; (ประเภทสตริง) เริ่มต้น x:=1; y:=x+16; myname:="ปีเตอร์"; สิ้นสุดการเขียน ("ชื่อ: ",ชื่อของฉัน", อายุ: ", y)
ผลลัพธ์:
ชื่อ ปีเตอร์ อายุ 17 ปี
ความคิดเห็นในภาษาปาสคาล
ให้ความสนใจกับวิธีการ ใช้ความคิดเห็นของปาสคาล. ในตัวอย่าง ข้อคิดเห็น เช่น ข้อความบริการที่คอมไพเลอร์ "มองไม่เห็น" นั้นอยู่ในวงเล็บปีกกา โดยทั่วไปแล้ว โปรแกรมเมอร์จะแสดงความคิดเห็นเพื่อชี้แจงข้อมูลโค้ด
ภารกิจที่ 3ประชากรของมอสโก = 9,000,000 คน จำนวนประชากรของ New Vasyukov เท่ากับ b=1,000 คน เขียนโปรแกรมที่กำหนดความแตกต่างของจำนวนผู้อยู่อาศัยระหว่างสองเมือง ใช้ตัวแปร
ประเภทข้อมูลจริงในภาษาปาสคาล
จำนวนจริงในภาษาปาสคาลและโดยทั่วไปในการเขียนโปรแกรมเป็นชื่อของจำนวนเศษส่วน
พิมพ์ | พิสัย | หน่วยความจำที่จำเป็น (ไบต์) |
จริง | 2.9*10E-39..1.7*10E38 | 6 |
เดี่ยว | 1.5*10E-45..3.4*10E38 | 4 |
สองเท่า | 5*10E-324..1.7*10E308 | 8 |
ขยาย | 1.9*10E-4951 .. 1.1*10E4932 | 10 |
ประเภทจริงในภาษาปาสคาลเป็นชนิดที่ใช้บ่อยที่สุดในประเภทจริง
นำเสนอไปแล้วข้างต้น ชนิดข้อมูลอย่างง่ายในภาษา Pascal ซึ่งรวมถึง:
- ลำดับ
- ทั้งหมด
- พัฒนาสมอง
- สัญลักษณ์
- แจกแจง
- ช่วงเวลา
- จริง
ในการส่งออกค่าของตัวแปรประเภทจริง มักใช้เอาต์พุตที่จัดรูปแบบ:
รูปแบบใช้ตัวเลขเดียวซึ่งหมายถึงจำนวนตำแหน่งที่กำหนดให้กับตัวเลขนี้ในรูปแบบเลขชี้กำลัง พี:=1234.6789; เขียนใน (p:6:2); (1234.68)
นอกเหนือจากประเภทที่เรียบง่ายแล้ว ภาษายังใช้ ชนิดข้อมูลที่มีโครงสร้างและพอยน์เตอร์ซึ่งจะเป็นเรื่องของบทเรียนภาษาปาสคาลในครั้งต่อไป
ค่าคงที่ในภาษาปาสคาล
บ่อยครั้งที่โปรแกรมรู้ล่วงหน้าว่าตัวแปรจะใช้ค่าเฉพาะและไม่เปลี่ยนแปลงตลอดการทำงานของโปรแกรมทั้งหมด ในกรณีนี้ คุณต้องใช้ค่าคงที่
การประกาศค่าคงที่ในภาษาปาสคาลเกิดขึ้นก่อนการประกาศตัวแปร (ก่อนเซอร์วิสเวิร์ด var) และมีลักษณะดังนี้:
ตัวอย่างของคำอธิบายคงที่ในภาษาปาสคาล:
1 2 3 4 5 6 | คอสต์ x= 17 ; var myname: สตริง ; เริ่มต้น myname: = "ปีเตอร์" ; writeln ("ชื่อ: " , myname, ", อายุ: " , x) end . |
คอสต์ x=17; varmyname:สตริง; start myname:="ปีเตอร์"; สิ้นสุดการเขียน ("ชื่อ: ", ชื่อของฉัน, ", อายุ: ", x)
ผลลัพธ์ "สวยงาม" ของจำนวนเต็มและจำนวนจริง
ในการเว้นการเยื้องหลังจากเอาต์พุตของค่าของตัวแปร เพื่อไม่ให้ค่า "รวม" เข้าด้วยกัน เป็นเรื่องปกติที่จะต้องระบุผ่านเครื่องหมายโคลอนว่าต้องระบุอักขระกี่ตัวสำหรับเอาต์พุต ของมูลค่า:
การดำเนินการทางคณิตศาสตร์ในภาษาปาสคาล
ลำดับการดำเนินงาน
- การประเมินนิพจน์ในวงเล็บ
- การคูณ การหาร div mod จากซ้ายไปขวา
- การบวกและการลบจากซ้ายไปขวา
ขั้นตอนและฟังก์ชันเลขคณิตมาตรฐานของ Pascal
ที่นี่ควรค่าแก่การอาศัยรายละเอียดเพิ่มเติมเกี่ยวกับการดำเนินการทางคณิตศาสตร์
- ตัวดำเนินการ inc ในภาษาปาสคาล ออกเสียงว่า เพิ่มขึ้น เป็นขั้นตอนมาตรฐานของปาสคาล ซึ่งหมายถึงการเพิ่มขึ้นทีละหนึ่ง
- ขั้นตอน Dec ใน Pascal ทำงานคล้ายกัน: Dec(x) - ลดลง x ทีละ 1 (ลดลง) หรือ Dec(x,n) - ลดลง x ทีละ n
- ตัวดำเนินการ abs แสดงถึงโมดูลัสของตัวเลข ทำงานเช่นนี้:
- ตัวดำเนินการ div ในภาษาปาสคาลเป็นตัวดำเนินการที่ใช้กันทั่วไป เนื่องจากงานจำนวนหนึ่งเกี่ยวข้องกับการดำเนินการหารจำนวนเต็ม
- ส่วนที่เหลือของการหารหรือตัวดำเนินการ mod ใน pascal ยังขาดไม่ได้สำหรับการแก้ปัญหาต่างๆ
- ที่น่าสังเกตคือ ฟังก์ชั่นมาตรฐานคี่ ปาสคาล กำหนดว่าจำนวนเต็มเป็นเลขคี่หรือไม่ นั่นคือจะส่งกลับค่าจริง (จริง) สำหรับเลขคี่ คืนค่าเท็จ (เท็จ) สำหรับเลขคู่
- การยกกำลังดำเนินการในภาษาปาสคาลหายไปเช่นนี้ แต่ในการเพิ่มจำนวนเป็นยกกำลัง คุณสามารถใช้ฟังก์ชัน exp
ตัวอย่างการทำงานของ Inc:
x:=1; รวม (x); (เพิ่มทีละ x ทีละ 1 เช่น x=2) ขีดเขียน (x)
การใช้ขั้นตอน inc ที่ซับซ้อนมากขึ้น:
Inc(x,n) โดยที่ x เป็นประเภทลำดับ n เป็นประเภทจำนวนเต็ม ขั้นตอน inc เพิ่มขึ้น x คูณ n
ก: =- 9 ; ข:=เอบีเอส(ก); (ข=9) |
ก:=-9; ข:=เอบีเอส(ก); (ข=9)
ตัวอย่างการใช้ฟังก์ชันคี่:
varx:จำนวนเต็ม; เริ่มต้นx:=3; ตัวเขียน(sqr(x)); (ตอบ 9) จบ.
สูตรคือ: exp(ln(a)*n) โดยที่ a เป็นตัวเลข n คือกำลัง (a>0)
อย่างไรก็ตามในคอมไพเลอร์ ปาสคาล abcการยกกำลังทำได้ง่ายกว่ามาก:
varx:จำนวนเต็ม; เริ่มต้นx:=9; ตัวเขียน(sqrt(x)); (ตอบ 3) จบ
ภารกิจที่ 4ขนาดของกล่องไม้ขีดไฟเป็นที่รู้จัก: ความสูง - 12.41 ซม., ความกว้าง - 8 ซม., ความหนา - 5 ซม. คำนวณพื้นที่ฐานของกล่องและปริมาตร
(S=กว้าง*หนา, V=พื้นที่*สูง)
ภารกิจที่ 5มีช้างสามตัวและกระต่ายจำนวนมากในสวนสัตว์ และจำนวนกระต่ายจะเปลี่ยนแปลงบ่อย ช้างควรกินแครอทวันละร้อยแครอทและกระต่ายสองหัว ทุกเช้าผู้ดูแลสวนสัตว์จะรายงานจำนวนกระต่ายไปยังคอมพิวเตอร์ ในการตอบสนอง คอมพิวเตอร์ควรบอกผู้ดูแลถึงจำนวนแครอททั้งหมดที่ต้องป้อนให้กระต่ายและช้างในวันนี้
ภารกิจที่ 6เป็นที่รู้จักกันว่า xกิโลกรัมของขนม กรูเบิล กำหนดเท่าไหร่ ยกิโลกรัมของขนมเหล่านี้รวมถึงขนมที่ซื้อได้กี่กิโลกรัม เครูเบิล ผู้ใช้ป้อนค่าทั้งหมด