การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง บทที่ 4 (ส่วนที่ 3) การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง ในโปรแกรม 204101 Introduction to Computer
ผลลัพธ์ของโปรแกรมนี้คืออะไร แบบฝึกหัด 1 START ผลลัพธ์ของโปรแกรมนี้คืออะไร k = 4 For row = 1 to k STOP For col = 1 to k Print ‘*’ Print Newline ทดลองเขียนโปรแกรมภาษาปาสคาลจากผังงานี้ หมายเหตุ Newline คือให้ขึ้นบรรทัดใหม่ 204101 Introduction to Computer
แบบฝึกหัด 2 จงเขียนโปรแกรมเพื่อรับข้อมูลอักขระ 1 ตัว และข้อมูลเลขจำนวนเต็ม 2 จำนวน ( a และ b) แล้วคำนวณและแสดงค่า c ตามเงื่อนไขนี้ ถ้ารับข้อมูลอักขระเป็น ‘P’ ให้คำนวณ c = a +b และถ้าเป็น ‘M’ ให้คำนวณ c = a*b โดยให้โปรแกรมวนทำซ้ำได้ 5 รอบ 204101 Introduction to Computer
ตัวอย่าง 12 จงเขียนโปรแกรมเพื่อคำนวณเงินค่าจ้างของพนักงานจำนวน 20 คน โดยกำหนดให้รับข้อมูลจำนวนชั่วโมงทำงานและข้อมูลประเภทของพนักงาน ซึ่งพนักงานแต่ละประเภทได้รับค่าจ้างต่อชั่วโมงต่างกัน ดังนี้ ประเภทของพนักงาน ค่าจ้างบาท / ชั่วโมง 1 55 2 75 3 90 4 100 204101 Introduction to Computer
ตัวอย่าง 12 (ต่อ) เมื่อคิดค่าจ้างของลูกจ้างคนเดียว Print P Read H,T No Yes P=H*55 T=2 P=H*75 T=3 P=H*90 P=H*100 START STOP 204101 Introduction to Computer
ตัวอย่าง 12 (ต่อ) ทราบจำนวนรอบแน่นอน เมื่อคิดค่าจ้างของลูกจ้างหลายคน Print P Read H,T T=1 No Yes P=H*55 T=2 P=H*75 T=3 P=H*90 P=H*100 START STOP i<=20 i=1 i=i+1 ตัวอย่าง 12 (ต่อ) เมื่อคิดค่าจ้างของลูกจ้างหลายคน แบบที่ 1 กรณีคิดค่าจ้างของลูกจ้าง 20 คน ทราบจำนวนรอบแน่นอน สามารถใช้ repeat until หรือ loop for ก็ได้ 204101 Introduction to Computer
ตัวอย่าง 12 (ต่อ) เมื่อคิดค่าจ้างของลูกจ้างหลายคน Print P Read H,T T 2 1 3 P=H*55 P=H*75 4 P=H*90 P=H*100 START STOP For i = 1 to N Read N แบบที่ 2 กรณีคิดค่าจ้างของลูกจ้าง N คน 204101 Introduction to Computer
program Employee; uses WinCrt; var N, T , i : integer; H,P : real; begin write('Input number of Employees : '); readln(N); for i := 1 to N do write('Input Hours : '); readln(H); write('Input Type : '); readln(T); case T of 1 : P := H*55; 2 : P := H*75; 3 : P := H*90; 4 : P := H*100; end; write('P = ' ,P:1:2); end. ตัวอย่าง 1 (ต่อ) โปรแกรมนี้เป็นคำสั่งภาษาปาสคาลของตัวอย่างที่ 12 ในกรณีใด ? 204101 Introduction to Computer
ตัวอย่าง 13 แบบที่ 1 จงเขียนโปรแกรมเพื่อรับข้อมูลเลขจำนวนเต็ม 10 จำนวน โดยให้แสดงเฉพาะค่าของเลขต่ำสุดบนจอภาพ START i = 1, min = 999 i <= 10 No Yes Read num Print min No Yes min > num STOP หมายเหตุ โปรแกรมจะทำงานถูกต้องเมื่อข้อมูลเลขจำนวนเต็มทุกตัวต่ำกว่า 999 min = num i=i+1 204101 Introduction to Computer
ตัวอย่าง 13 ( ต่อ ) แบบที่ 2 START จงเขียนโปรแกรมเพื่อรับข้อมูลเลขจำนวนเต็ม 10 จำนวน โดยให้แสดงเฉพาะค่าของเลขต่ำสุดบนจอภาพ Read num i = 1, min = num i < 10 No Yes Read num Print min No Yes min > num STOP ต่างจากแบบที่ 1 ตรงไหน ? min = num i=i+1 204101 Introduction to Computer
ตัวอย่าง 14 จงเขียนโปรแกรมสำหรับรับคะแนนของนักศึกษาที่เรียนวิชา 204101 กลุ่มหนึ่ง แล้วหาค่าคะแนนของนักศึกษาที่มีค่ามากที่สุด (Max) และค่าคะแนนเฉลี่ย(Average)ของนักศึกษากลุ่มนี้ แสดงผลลัพธ์ออกทางจอภาพ กำหนดให้ - ข้อมูลคะแนนของนักเรียนทุกคนต้องไม่ต่ำกว่า 0 - โปรแกรมหยุดรับข้อมูลคะแนน เมื่อรับค่าคะแนนเป็น -1 204101 Introduction to Computer
ตัวอย่าง 14 (ต่อ) กรณีไม่ทราบจำนวนพนักงาน START i=1, sum=0, max= -1 Print avg,max Read score max < score No Yes max = score START STOP i=1, sum=0, max= -1 sum = sum + score i=i+1 score != -1 i>1 avg=sum/(i-1) ตัวอย่าง 14 (ต่อ) กรณีไม่ทราบจำนวนพนักงาน 204101 Introduction to Computer
score,max,sum,avg : real; begin i := 1; sum := 0; max := -1; program Employee; uses WinCrt; var i : integer; score,max,sum,avg : real; begin i := 1; sum := 0; max := -1; write('Input score : '); readln(score); while score <> -1 do begin sum := sum + score; if (max < score) then max := score; i := i + 1; end; if (i > 1) then begin avg := sum/(i-1); writeln('maximum = ' , max:1:2); writeln('average = ' , avg:1:2); end. 204101 Introduction to Computer
แบบฝึกหัด3 โปรแกรมนี้ทำงานอะไร row=1 or row = k No Yes col>1 and col < k START STOP Print ‘*’ Print ‘ ’ For col = 1 to k For row = 1 to k Read k Print Newline โปรแกรมนี้ทำงานอะไร หมายเหตุ Newline คือให้ขึ้นบรรทัดใหม่ 204101 Introduction to Computer
แบบฝึกหัด จงเขียนโปรแกรมสำหรับวาดรูปสามเหลี่ยมความสูง k ด้วยสัญลักษณ์ * ตัวอย่างเช่น ถ้ารับ k เป็น 3 รูปที่แสดงคือ จงเขียนโปรแกรมเพื่อรับข้อมูลเลขจำนวนเต็ม N จำนวน และนับว่ามีเลขจำนวนเต็มคู่ และจำนวนเต็มคี่อย่างละกี่จำนวน (กรณีเลขศูนย์ไม่นับ) *** ** * 204101 Introduction to Computer
ทดสอบกันหน่อย จงเขียนโปรแกรมเพื่อรับข้อมูลเลขจำนวนเต็ม M และพิมพ์ชุดข้อมูลเลขจำนวนเต็ม โดยเริ่มต้นที่ 1 ทั้งหมด M จำนวน ดังตัวอย่าง ถ้า M = 5 ผลลัพธ์ที่แสดงบนจอภาพคือ 1 6 3 12 5 ถ้า M = 12 ผลลัพธ์ที่แสดงบนจอภาพคือ 1 6 3 12 5 18 7 24 9 30 11 36 หมายเหตุ ในชุดข้อมูล ค่าตัวเลขของตำแหน่งคู่และเลขคี่จะมีความสัมพันธ์ไม่เหมือนกัน 204101 Introduction to Computer