วินาทีที่ k ของวันกำลังผ่านไป การพัฒนาบทเรียนเกี่ยวกับการเขียนโปรแกรมอัลกอริธึมเชิงเส้น ชนิดข้อมูลตัวเลข

| § 3.3 การเขียนโปรแกรมอัลกอริทึมเชิงเส้น

บทที่ 26
§ 3.3 การเขียนโปรแกรมอัลกอริทึมเชิงเส้น

คำสำคัญ:

ชนิดข้อมูลจริง
ชนิดข้อมูลจำนวนเต็ม
ชนิดข้อมูลอักขระ
ชนิดข้อมูลสตริง
ชนิดข้อมูลบูลีน

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

เมื่อเขียนโปรแกรมอัลกอริธึมเชิงเส้น เราจะพิจารณาประเภทข้อมูลจำนวนเต็ม ตรรกะ ตัวอักษร และสตริงโดยละเอียดมากขึ้น

3.3.1. ชนิดข้อมูลตัวเลข

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

ตารางที่ 3.3

ฟังก์ชันปาสคาลมาตรฐาน

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

รันโปรแกรมหลายครั้งสำหรับแต่ละ x ∈ (10.2; 10.8; -10.2; -10.8) คุณช่วยบอกเราเกี่ยวกับประเภทผลลัพธ์ของแต่ละฟังก์ชันเหล่านี้ให้เราทราบได้อย่างไร

3.3.2. ชนิดข้อมูลจำนวนเต็ม

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

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

เราใช้ข้อเท็จจริงที่ว่าจำนวนบวกสามหลักสามารถแสดงเป็นผลรวมต่อไปนี้: x - a*100 + 6*10 + c โดยที่ a, b, c คือหลักของตัวเลข

ผลรวมของตัวเลข 123 คืออะไร? และตัวเลข -123? ผลลัพธ์ของคุณตรงกับผลลัพธ์ของโปรแกรมหรือไม่? ข้อผิดพลาดในโปรแกรมสามารถอธิบายและแก้ไขได้อย่างไร?

3.3.3. ชนิดข้อมูลอักขระและสตริง

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

สัญลักษณ์ที่สอดคล้องกับรหัส 32 ตัวแรกนั้นเป็นสัญลักษณ์ควบคุม และส่วนที่เหลือจะแสดงเป็นภาพ ตัวอักษรที่แสดงยังมีการเว้นวรรค รหัส 32

เครื่องหมายวรรคตอน สัญลักษณ์ของการดำเนินการทางคณิตศาสตร์ ตัวเลข ตัวอักษรละตินตัวพิมพ์ใหญ่และตัวพิมพ์เล็กตรงกับรหัสตั้งแต่ 33 ถึง 127 ตัวอักษรของตัวอักษรประจำชาติตรงกับรหัสที่มีตัวเลข 128 เป็นต้นไป

ในข้อความโปรแกรม สามารถระบุค่าคงที่ประเภทอักขระได้โดยการใส่อักขระตัวแทนใดๆ ไว้ในเครื่องหมายอะพอสทรอฟี: “5”, “B”, “*”

หากค่าของตัวแปรอักขระถูกอ่านจากแป้นพิมพ์ ก็ควรพิมพ์โดยไม่มีเครื่องหมายอะพอสทรอฟี

หากต้องการค้นหาโค้ดสัญลักษณ์ ให้ใช้ฟังก์ชัน ord โดยระบุสัญลักษณ์เป็นพารามิเตอร์

หากต้องการจดจำสัญลักษณ์ด้วยรหัส ให้ใช้ฟังก์ชัน chr โดยระบุรหัสสัญลักษณ์เป็นพารามิเตอร์

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

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


3.3.4 ชนิดข้อมูลบูลีน

ดังที่คุณทราบ ค่าประเภทลอจิคัลใช้เพียงสองค่าเท่านั้น ในภาษาปาสคาลมันเป็น เท็จและ จริง- ค่าคงที่เหล่านี้ถูกกำหนดให้เป็นเท็จ< true.

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

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

อนุญาต ตอบเป็นตัวแปรบูลีน และ n เป็นตัวแปรจำนวนเต็ม แล้วอันเป็นผลจากการดำเนินการของผู้ปฏิบัติงานที่ได้รับมอบหมาย

ตอบ:=n ม็อด 2 = 0

ตัวแปร ตอบจะได้รับการกำหนดค่า จริงสำหรับเลขคู่ใดๆ n และ เท็จมิฉะนั้น.

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

ตัวอย่าง.เรามาเขียนโปรแกรมที่กำหนดความจริงของข้อความ “สามเหลี่ยมที่มีความยาวด้าน a, b, c เป็นหน้าจั่ว” สำหรับจำนวนเต็มใดๆ a, b, c


สิ่งที่สำคัญที่สุด

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

คำถามและงาน

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

2. สำหรับ x ที่กำหนด ให้คำนวณ y โดยใช้สูตร y = x 3 + 2.5x 2 - x + 1

ในกรณีนี้:

ก) ห้ามดำเนินการยกกำลัง;
b) ในตัวดำเนินการมอบหมายเดียวคุณสามารถใช้การดำเนินการทางคณิตศาสตร์ได้ไม่เกินหนึ่งรายการ (การบวก การคูณ การลบ)
c) สามารถใช้ตัวดำเนินการมอบหมายงานได้ไม่เกินห้าตัวในหนึ่งโปรแกรม

เบาะแส : แปลงนิพจน์ให้อยู่ในรูปแบบต่อไปนี้: y = ((x + 2.5)x - 1)x + 1

3. ที่พิกัดที่กำหนดของจุด A และ คำนวณความยาวของส่วน AB

เบาะแส - ระยะทาง d ระหว่างจุด A (x a, y a) และ B (x b, y b) แสดงโดยสูตร

4. รู้ความยาวของด้านของสามเหลี่ยม a, b, c เขียนโปรแกรมคำนวณพื้นที่ของสามเหลี่ยมนี้

5. ทราบพิกัดของจุดยอด A, B, C ของรูปสามเหลี่ยม เขียนโปรแกรมคำนวณพื้นที่ของสามเหลี่ยมนี้

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

7. สำรวจการทำงานของฟังก์ชันสุ่มโดยการรันโปรแกรมซ้ำๆ:

คุณจะได้ตัวเลขสุ่มจากช่วง (0, x) ได้อย่างไร?

คุณจะได้ตัวเลขสุ่มจากช่วง (0, x] ได้อย่างไร?

คุณจะรับตัวเลขสุ่มจากช่วงเวลา (n, x + n) ได้อย่างไร?

8. บริษัทแห่งหนึ่งออกสลากลอตเตอรีสามประเภท: สำหรับเยาวชน ผู้ใหญ่ และสำหรับผู้รับบำนาญ หมายเลขตั๋วสำหรับแต่ละหมวดหมู่มีตั้งแต่:

สำหรับเยาวชน - ตั้งแต่ 1 ถึง 100;
สำหรับผู้ใหญ่ - ตั้งแต่ 101 ถึง 200;
สำหรับผู้รับบำนาญ - จาก 201 ถึง 250

ใช้คอมพิวเตอร์สุ่มเลือกสลากในแต่ละหมวด

9. เขียนโปรแกรมในภาษาปาสคาลซึ่งสำหรับจำนวนธรรมชาติสองหลักใดๆ จะกำหนดว่า:

ก) ผลรวมและผลคูณของตัวเลข
b) ตัวเลขที่เกิดจากการจัดเรียงหลักของตัวเลขเดิมใหม่

10. เขียนโปรแกรมในภาษา Pascal ที่ใช้อัลกอริทึมสำหรับแคชเชียร์เพื่อให้การเปลี่ยนแปลงของลูกค้าด้วยจำนวนธนบัตรที่น้อยที่สุดที่เป็นไปได้คือ 500 (k500), 100 (klOO), 50 (k50) และ 10 (klO) รูเบิล .

11. กำลังมา เค- วินาทีที่สองของวัน พัฒนาโปรแกรมโดยอาศัยอินพุต เควันที่สองของวันกำหนดจำนวนชั่วโมงทั้งหมด ชม.และทั้งนาที ผ่านไปตั้งแต่ต้นวันแล้ว ตัวอย่างเช่น ถ้า เค= 13 257 = 3 3600 + 40 60 + 57 จากนั้น ชม.= 3 และ = 40.

แสดงวลี:

มันคือ...ชั่วโมง...นาที

.

แทนที่จะเป็นวงรี โปรแกรมควรส่งออกค่าฮัม โดยแยกออกจากคำที่มีช่องว่างเพียงช่องเดียว

12. เขียนโปรแกรมในภาษาปาสกาลเพื่อคำนวณผลรวมของรหัสตัวอักษรในคำว่า BYTE

13. เขียนโปรแกรมในภาษา Pascal เพื่อสร้างและแสดงสตริงอักขระที่มีรหัส 66, 69, 71, 73, 78

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

15. ค่าของตัวแปรจำนวนเต็มจะได้รับ: a = 10, b = 20 ค่าของตัวแปรลอจิคัลจะเป็นเท่าใด? เรซหลังจากดำเนินการมอบหมายงานแล้ว?

ก)เรซ:=(a=10) หรือ (b>10)
b)rez: = (a>5) และ (b>5) และ (a<20) and (b<30)
c)rez: = (ไม่ใช่(a<15)) or (b>20)

16.เขียนโปรแกรมที่เข้า จริงหากข้อความดังกล่าวเป็นจริง และ เท็จมิฉะนั้น:
ก) ผลรวมของตัวเลขสามหลัก เอ็กซ์เป็นเลขคู่
b) สามเหลี่ยมที่มีด้านข้าง ก ข คมีความหลากหลาย

คำนวณ

ภารกิจที่ 2 (โปรแกรม 1_2)

    เป็นเวลา k วินาทีของวัน กำหนดว่าช่วงเวลานี้ผ่านไปกี่ชั่วโมง (h) นาทีทั้งหมด (m) และวินาที (s)

    กำหนดพื้นที่ของสี่เหลี่ยมคางหมูด้วยฐาน a, b, ความสูง h และปริมาตรของกรวยที่ถูกตัดทอนหากเราถือว่า a, b เป็นพื้นที่ของฐาน

3. กำหนดพิกัดของจุดศูนย์ถ่วงของจุดวัสดุสามจุดที่มีมวล m 1, m 2, m 3 และพิกัด (x 1, y 1), (x 2, y 2), (x 3, y 3)

4. คำนวณปริมาตรของลูกบอลและพื้นที่ของวงกลมสำหรับรัศมี R ที่กำหนด และค้นหาความสัมพันธ์ระหว่างพวกมัน

5. คำนวณค่ามัธยฐานของสามเหลี่ยมที่กำหนดด้าน a, b, c

6. คำนวณพื้นที่ผิวและปริมาตรของกรวยโดยกำหนดรัศมีและความสูง h

7. ใช้รัศมีที่กำหนด หาปริมาตรของลูกบอลและพื้นที่ผิว

8. คำนวณวันที่สองของวันที่เข็มอยู่ที่ชั่วโมง นาที และวินาที วินาที รวมทั้งมุม (เป็นองศา) ระหว่างตำแหน่งของเข็มชั่วโมงที่จุดเริ่มต้นของวันกับตำแหน่งที่ระบุ ช่วงเวลา.

9. ป้อนจำนวนเต็มสองหลัก x<15. Написать программу перевода его в восьмеричную систему счисления.

10. ป้อนพิกัดของสองจุด (x 1, y 1), (x 2, y 2) ค้นหาระยะห่างระหว่างพวกเขา

แล็บ 2

การเขียนโปรแกรมอัลกอริธึมแบบแยกสาขา ควบคุมตัวดำเนินการถ่ายโอน

โครงสร้างของผู้ดำเนินการถ่ายโอนการควบคุมแบบมีเงื่อนไข:

ถ้า (<выражение>) <оператор 1> อื่น <оператор 2>;

(ถ้า) (อื่น) - คำหลัก

ที่ไหน<условие>เป็นนิพจน์บูลีนที่กำหนดเองซึ่งสามารถรับค่าได้ 2 ค่า ได้แก่ true (TRUE) และ false (FALSE)

<оператор>- ตัวดำเนินการ SI ใดๆ ลงท้ายด้วยเครื่องหมายอัฒภาค

ประโยคเงื่อนไขแบบสั้น:

ถ้า (<выражение>) <оператор>;

ตัวดำเนินการกระโดดแบบไม่มีเงื่อนไข: ข้ามไป <идентификатор-метка>;

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

ตัวอย่างที่ 1- สร้างโปรแกรมสำหรับคำนวณเงินเดือนพื้นฐานตามกฎต่อไปนี้: หากประสบการณ์การทำงานของพนักงานน้อยกว่า 3 ปี เงินเดือนจะอยู่ที่ 100 ดอลลาร์ โดยมีประสบการณ์การทำงาน 3 ถึง 5 ปี - 150 ดอลลาร์ เกิน 5 ปีเงินเดือนจะเพิ่มขึ้นทุกปี 10 ดอลลาร์ และด้วยประสบการณ์มากกว่า 20 ปี จะเป็น 300 ดอลลาร์

เพื่อตั้งโปรแกรมวิธีแก้ปัญหานี้ เรากำหนดสูตรทางคณิตศาสตร์ของปัญหา:

100 ถ้า ST< 3;

ZP= 150 ถ้า 3 ≤ST  5;

150+ (ST -5)*10 ถ้า 5< ST≤ 20;

300 ถ้า ST > 20;

#รวม

#รวม

เป็นโมฆะหลัก ()

( int ST; //ST- ประสบการณ์ (ไบต์ (จำนวนเต็ม) ประเภทที่ไม่ได้ลงนาม)

ลอย ZP;

//ZP- เงินเดือน (แบบลอยตัว)

printf("\nเข้าสู่ประสบการณ์");

scanf("%d",&ST);<3) ZP = 100;

ถ้า (สท<5) ZP = 150;

อย่างอื่นถ้า (ST

อย่างอื่นถ้า (ST>=20) ZP=300;อื่น

ZP=150+(ST-5)*10;

printf("\nเงินเดือน = %10.2f$\n",ZP); โอเปอเรเตอร์การเลือก สวิตช์

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

โอเปอเรเตอร์การเลือก (<выражение>)

โครงสร้างผู้ปฏิบัติงาน:<константа 1>: <группа операторов 1>;

กรณี<константа 2>: <группа операторов 2>;

กรณี<константа N>: <группа операторов N>

กรณี: <операторы>;

}

ค่าเริ่มต้น<выражение>ที่ไหน

<константа>- การแสดงออก (ตัวแปร) ของประเภทลำดับใด ๆ<выражение>;

<оператор>- ค่าคงที่ชนิดเดียวกับ

- ตัวดำเนินการ C/C++ โดยพลการ

ตัวอย่างที่ 2 พิมพ์ชื่อรูปร่างตามจำนวนมุม (สามเหลี่ยม สี่เหลี่ยม ห้าเหลี่ยม หกเหลี่ยม รูปหลายเหลี่ยม)

รูปแบบการดำเนินงานโดยใช้ตัวดำเนินการเลือกจะแสดงโดย SA (รูปที่ 2,b) และโปรแกรมต่อไปนี้:

#รวม

เป็นโมฆะหลัก ()

{

#รวม

อินท์ที; // T – จำนวนมุม

clrscr(); //เคลียร์หน้าจอ

printf("กรอกจำนวนมุม");

scanf("%d",&T);

สวิตช์ (ที)กรณีที่ 1: กรณีที่ 2:

กรณี 3: printf("นี่ไม่ใช่รูป\n"); หยุดพัก;

กรณี 4: printf ("ด้วย %d มุม - สามเหลี่ยม\n ", T);

กรณี 5: หยุดพัก;

กรณี 6: printf ("ด้วย %d มุม - รูปสี่เหลี่ยมขนมเปียกปูน\n ", T);

กรณี : หยุดพัก;

printf("มี %d มุม - รูปห้าเหลี่ยม\n ", T); หยุดพัก; printf("มี %d มุม - หกเหลี่ยม\n ", T); หยุดพัก;

printf("ด้วย %d มุม - รูปหลายเหลี่ยม\n ", T);

ภารกิจที่ 1 , (โปรแกรม 2_1)
,

คำนวณค่าของฟังก์ชันขึ้นอยู่กับช่วงเวลาที่อาร์กิวเมนต์ที่ป้อนจากแป้นพิมพ์ตก:<1,

1. สำหรับ

เสื้อ 2 อยู่ที่ 1 ,
โดยที่ a=-0.5,b=2 z = 1 ที่ t

e t cos b t สำหรับ t>2,< x  2,

2. สำหรับ x
,

ที่ x2, โดยที่ a=2.3 f = x ที่ 0.3

โดยที่ a=-2.7,b=-0.27 z = (a+b)/(x+1) ที่ 2.3 x5,

e x +sinx ที่ 7
,

4.สำหรับฉัน , ฉัน 4 + ข ฉัน ที่ ฉัน< 10,

โดยที่=2.2,ข=0.3 y = สีแทน(i + 0.5) ที่ i = 10

อี 2i +
สำหรับฉัน> 10,

5. สำหรับ x , x 2 - 7/x 2 ที่ x<1.3,

โดยที่ a=1.5 y = ขวาน 3 + 7
ที่ 1.3  x3,

แอลจี(x + 7
) ที่ x
,

6. สำหรับ [-1.4],
ที่ที<0.1,

โดยที่=2.1,ข=0.37

z = ที่ + b ที่ 0.1 t 2,
,

ที่ที 7. สำหรับ x<0.3,

, อีบาป x +2.5 ที่ x<4,

โดยที่=1.5

y = e cos x + a ที่ 0.3 x (บาป x)/ (a + e x) ที่ x  4,
,

8. สำหรับ x
, y = a/x + b x 2 - c ที่ x

โดยที่=1.8,b=-0.5, c=3.5 (a + bx)/ ที่ x>1.2,
9.สำหรับที

, ต

ที่ t>a,

โดยที่ a=2.5 z = t sin a t ที่ t=a อี - ที่ cos เสื้อที่ t<2.3,

10. สำหรับ x
,

, e - bx บาป b x ที่ x

โดยที่ a=1,b=3 y= cos bx ที่ 2.3
z = ที่ + b ที่ 0.1 t 2,

e -ax cos b x ที่ x

11.สำหรับที
และ เสื้อ 2 – ข

โดยที่ a=1.3,b=6.5 z= a - b ที่ a ที่ 2/3 -

ที่ t>b,

12. สำหรับ x< 1,

, |e -2x บาป bx| สำหรับ x >1, โดยที่ b=-2.9 y = cos bx ที่ x = 1

e -x cos bx ที่ x

13. สำหรับ x< 1,

บาป (cos a x) สำหรับ x >1, โดยที่ a=-0.8 z = ขวานสีแทนที่ x = 1< 1.3,

a 2 x ที่ x

14. สำหรับ x

, ln bx - 1/(bx+1) ที่ x โดยที่ข=1.3 y = bx + 1 ที่ 1.3  x  1.7,<0.1,

ln bx +1/(bx+1) สำหรับ x > 1.7,

15. สำหรับ x

[-1,1], ax 2 +bx 2/3 ที่ x

โดยที่=2.5,ข=-0.9 z= a x 2 ที่ x=0.1,
b x 2/3 ที่ x>0.1
16. ป้อนพิกัดของจุด (x, y) พิมพ์ว่าจุดนี้อยู่ในจตุภาคหรือแกนพิกัดใด

17. ใส่รัศมี R 1, R 2 และความสูง คำนวณปริมาตรของกรวยที่ถูกตัดทอน:

โดยที่ S คือพื้นที่ของฐาน ถ้า R 1 = R 2 - ปริมาตรและพื้นที่ของกระบอกสูบถ้า R 1 = 0 หรือ R 2 = 0 - ปริมาตร (hπr 2) และพื้นที่πr(

) พื้นผิวของกรวย

ภารกิจที่ 2 18. ป้อนตัวเลขจากแป้นพิมพ์ พิจารณาว่าอาจเป็นของระบบตัวเลขใด

19. ป้อนตัวเลข กำหนดว่าจะหารด้วยสอง สาม หรือห้าลงตัว

20. ป้อน a, b, h. ถ้าh=0 ให้คำนวณพื้นที่ของสี่เหลี่ยม สำหรับ a = b จงหาพื้นที่ของรูปสี่เหลี่ยมจัตุรัส มิฉะนั้นให้คำนวณพื้นที่สี่เหลี่ยมคางหมู

(โปรแกรม 2_2)

1. กำหนดส่วนที่เหลือของการหารด้วยแปดของตัวเลขที่ป้อน x และเขียนเลขฐานแปดเป็นคำ

2. พิมพ์ชื่อของหมายเลขนี้ตามหมายเลขที่ป้อนจากแป้นพิมพ์

6. ขึ้นอยู่กับจำนวน (N) ของประเภทของรูป จัดระเบียบอินพุตของข้อมูลที่จำเป็นและคำนวณหา N = 1 - พื้นที่ของวงกลม, N = 2 - ปริมาตรของลูกบอล (4/3πR 3), N = 3 - ปริมาตรของทรงกระบอก, N = 4 - พื้นที่ผิวของทรงกลมคือ4πr 2

7. ป้อนตัวเลข N (0 ≤ N ≤ 15) กำหนดและพิมพ์เลขฐานสิบหกที่สอดคล้องกัน

8. สำหรับจำนวนเต็ม K (1...99) ให้พิมพ์วลี "ฉันอายุ K" สำหรับค่า K บางค่า ให้แทนที่คำว่า "ปี" ด้วยคำว่า "ปี" หรือ "ปี" .

9. ขึ้นอยู่กับจำนวน (N) ของประเภทของรูป จัดระเบียบอินพุตของข้อมูลที่จำเป็นและคำนวณสำหรับ N = 1 - พื้นที่ของสี่เหลี่ยมผืนผ้า สำหรับ N = 2 - พื้นที่ของสี่เหลี่ยมด้านขนาน สำหรับ N = 3 - พื้นที่ของสี่เหลี่ยมคางหมู 1/2(a+b)h .

ในกรณีหลัง ให้พิมพ์ว่าสี่เหลี่ยมคางหมูเป็นรูปสี่เหลี่ยมด้านขนานหรือสี่เหลี่ยมขนมเปียกปูน

10. แปลงตัวเลข 0 ≤ x ≤ 31 เป็นระบบเลขฐานสิบหก

11. พิมพ์คำว่า เศษของจำนวนเต็มหารด้วย 5

12. ใช้ตัวเลขที่ป้อน พิมพ์สีที่ต้องการเป็นสีรุ้ง

13. ออกแบบโปรแกรมที่แสดงว่าหากผลรวมของตัวเลขสองหลักเป็นผลคูณของสาม ตัวเลขนั้นจะหารด้วยสามลงตัวโดยไม่มีเศษ เค * ( เค + 1) * 100 + 25 14. พัฒนาโปรแกรมที่พิสูจน์ว่ากำลังสองของตัวเลขสองหลัก k5 (หลักสุดท้ายคือ 5) เท่ากับ เค (เช่น หาได้โดยการคูณเลขนำหน้า

ไปยังอันถัดไปตามลำดับและเพิ่ม “25”) เช่น 35 * 11 = 3*4*100 + 25

สำหรับภารกิจที่ 2 จำนวนของตัวเลือกจะถูกกำหนดโดยส่วนที่เหลือของการหารตัวเลือกแต่ละรายการด้วยหมายเลข 12

แล็บ 3

  • คำสำคัญ:
  • ประเภทข้อมูลจริง
  • ชนิดข้อมูลจำนวนเต็ม
  • ชนิดข้อมูลอักขระ
  • ชนิดข้อมูลสตริง

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

ชนิดข้อมูลบูลีน

เมื่อเขียนโปรแกรมอัลกอริธึมเชิงเส้น เราจะพิจารณาประเภทข้อมูลจำนวนเต็ม ตรรกะ ตัวอักษร และสตริงโดยละเอียดมากขึ้น

4.4.1. ชนิดข้อมูลตัวเลข

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


ฟังก์ชันปาสคาลมาตรฐาน

เรามาสำรวจการทำงานของฟังก์ชันแบบกลม int และ frac โดยนำไปใช้กับค่า x จริงกัน โปรแกรมที่เกี่ยวข้องจะมีลักษณะดังนี้:

รันโปรแกรมหลายครั้งสำหรับ x=(10.2; 10.8; -10.2; -10.8) คุณช่วยบอกเราเกี่ยวกับประเภทผลลัพธ์ของแต่ละฟังก์ชันเหล่านี้ให้เราทราบได้อย่างไร

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

4.4.2. ชนิดข้อมูลจำนวนเต็ม

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

4.4.3. ชนิดข้อมูลอักขระและสตริง

ค่าของค่าอักขระ (ประเภทอักขระ) ในภาษา Pascal คืออักขระใดๆ ที่สามารถได้รับบนหน้าจอโดยการกดปุ่มใดปุ่มหนึ่งหรือคีย์ผสม รวมถึงอักขระอื่นๆ บางตัว รวมถึงอักขระที่มองไม่เห็นด้วย ชุดสัญลักษณ์ดังกล่าวประกอบด้วย 256 องค์ประกอบซึ่งแต่ละองค์ประกอบจะได้รับมอบหมายรหัสตามตารางรหัสที่ใช้ - ตัวเลขตั้งแต่ 0 ถึง 255

สัญลักษณ์ที่สอดคล้องกับรหัส 32 ตัวแรกนั้นเป็นสัญลักษณ์ควบคุม และส่วนที่เหลือจะแสดงเป็นภาพ ตัวอักษรที่แสดงยังมีการเว้นวรรค รหัส 32

เครื่องหมายวรรคตอน สัญลักษณ์ของการดำเนินการทางคณิตศาสตร์ ตัวเลข ตัวอักษรละตินตัวพิมพ์ใหญ่และตัวพิมพ์เล็กตรงกับรหัสตั้งแต่ 33 ถึง 127 ตัวอักษรของตัวอักษรประจำชาติตรงกับรหัสที่มีตัวเลข 128 เป็นต้นไป

ในข้อความโปรแกรม สามารถระบุค่าคงที่ประเภทอักขระได้โดยการใส่อักขระตัวแทนใดๆ ไว้ในเครื่องหมายอะพอสทรอฟี: “5”, “B”, “*”

หากค่าของตัวแปรอักขระถูกอ่านจากแป้นพิมพ์ ก็ควรพิมพ์โดยไม่มีเครื่องหมายอะพอสทรอฟี

หากต้องการค้นหาโค้ดสัญลักษณ์ ให้ใช้ฟังก์ชัน ord โดยระบุสัญลักษณ์เป็นพารามิเตอร์

หากต้องการจดจำสัญลักษณ์ด้วยรหัส ให้ใช้ฟังก์ชัน chr โดยระบุรหัสสัญลักษณ์เป็นพารามิเตอร์

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

ตัวอย่าง- มาเขียนโปรแกรมในภาษา Pascal โดยที่รหัสของตัวอักษรที่ป้อนจากคีย์บอร์ดจะแสดงบนหน้าจอ จากนั้นบรรทัดจะปรากฏบนหน้าจอ ซึ่งเป็นลำดับของตัวอักษรสามตัวของตารางรหัสที่ใช้: ตัวอักษรที่อยู่ข้างหน้าต้นฉบับ จดหมายต้นฉบับ ตัวอักษรตามต้นฉบับ

4.4.4. ชนิดข้อมูลบูลีน

ดังที่คุณทราบ ค่าประเภทลอจิคัลใช้เพียงสองค่าเท่านั้น ในภาษาปาสคาลสิ่งเหล่านี้เป็นเท็จและเป็นความจริง ค่าคงที่เหล่านี้ถูกกำหนดให้เป็นเท็จ< true.

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

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

ให้ ans เป็นตัวแปรบูลีน และ n เป็นตัวแปรจำนวนเต็ม แล้วอันเป็นผลจากการดำเนินการของผู้ปฏิบัติงานที่ได้รับมอบหมาย

ตัวแปร ans จะได้รับการกำหนดค่าจริงสำหรับค่า n ใดๆ และค่า false ใดๆ


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

ตัวอย่าง- เรามาเขียนโปรแกรมที่กำหนดความจริงของข้อความ “สามเหลี่ยมที่มีความยาวด้าน a, b, c เป็นหน้าจั่ว” สำหรับจำนวนเต็มใดๆ a, b, c

ที่สำคัญที่สุด

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

คำถามและงาน