บทที่ 10 โครงสร้างควบคุม

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คำสั่งควบคุมในโปรแกรม Interactive C
Advertisements

โปรแกรมทดสอบที่1 ทดสอบการแสดงผลข้อความ
บทที่ 3 ภาษาสำหรับเขียนโปรแกรม
บทที่ 11 โปรแกรมย่อยขั้นต้น
สรุปคำสั่ง if(เงื่อนไข)
โครงสร้างควบคุม 1. โครงสร้างควบคุมแบบวนทางเลือก
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
การเขียนโปรแกรม แบบมีโครงสร้าง (ต่อ)
การโปรแกรมควบคุมแบบทำงานซ้ำ
โปรแกรมควบคุมเลือกทำตามเงื่อนไข
โครงสร้างควบคุมและคำสั่งแบบเงื่อนไข
Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
บทที่ 4 การตัดสินใจในการเขียนโปรแกรม
Week 15 C Programming.
หน่วยที่ 1 ระบบคอมพิวเตอร์
Lab 4: คำสั่ง if - else อ.ณัฐพงศ์ พยัฆคิน.
วิชา การออกแบบและพัฒนาซอฟต์แวร์
Repetitive Instruction
คำสั่งเงื่อนไขและการควบคุม
โครงสร้างควบคุม 1. โครงสร้างควบคุมแบบวนทางเลือก
การจำลองความคิด
คำสั่งแบบมีเงื่อนไข IF Statement
Control Transfer Instructions
การควบคุมทิศทางการทำงานของโปรแกรม
การเขียนผังงานแบบโครงสร้าง
WHILE..DO คำสั่งควบคุมให้ทำงานซ้ำ โดยที่ต้องตรวจสอบเงื่อนไขก่อนที่จะทำ
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
Computer Architecture and Assembly Language
บทที่ 15 โปรแกรมย่อยและแสต็ก
บทที่ 17 คำสั่งตารางและการสร้างแมคโคร
ความหมายของตัวเลขในหลักต่าง ๆ
ธนาวินท์ รักธรรมานนท์
หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command)
คำสั่งควบคุมการทำงาน
Debug #2 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
อินเทอร์รัพท์ (Interrupt)
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ inkey.com มหาวิทยาลัยเนชั่น จังหวัดลำปาง ผศ. บุรินทร์
ครูรัตติยา บุญเกิด.
ครูรัตติยา บุญเกิด.
การทำซ้ำด้วยคำสั่ง while
คำสั่ง while และ do…while
การใช้คำสั่ง เงื่อนไข การเขียนเว็บเพจโดยใช้ ภาษาสคริปต์ ศูนย์คอมพิวเตอร์โรงเรียนปลวกแดงพิทยาคม.
การเขียนเว็บเพจด้วยภาษา php ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
โครงสร้างแบบลำดับ คำสั่ง x คำสั่ง y.
วิชา คอมพิวเตอร์เบื้องต้น
หมวดวิชาคอมพิวเตอร์ โรงเรียนพะเยาพิทยาคม โดย อ.วัชระ การสมพจน์
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
คำสั่งควบคุมการทำงานของ ActionScripts
คำสั่งควบคุม การทำงานของโปรแกรม ในภาษา PHP
การเขียนผังงานแบบทำซ้ำ
การเขียนผังงานแบบทางเลือก
บทที่ 10 คำสั่งควบคุม OUTLINE 1. คำสั่งแบบเรียงลำดับ (Sequence)
2.3.1 รหัสเทียม (Pseudo code)
คำสั่งควบคุมขั้นตอน Flow control statements
การกระโดดและการวนรอบ
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
CHAPTER 4 Control Statements
การใช้คำสั่งเงื่อนไข
การตรวจสอบเงื่อนไขใน PHP
อัลกอริทึ่มทำงานวนซ้ำ
Chapter 6 Repetition Structure[2] ผู้สอน อ. ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยี คอมพิวเตอร์เคลื่อนที่ ng.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
การเขียน แบบวนซ้ำ , วนลูป
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Microcomputer and Assembly Language
โปรแกรมภาษาแอสเซมบลี้เบื้องต้น
ใบสำเนางานนำเสนอ:

บทที่ 10 โครงสร้างควบคุม โครงสร้างการตัดสินใจแบบ if-then-else โครงสร้างการกระทำซ้ำแบบ repeat-until โครงสร้างการกระทำซ้ำแบบ while โครงสร้างการกระทำซ้ำแบบ for 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

โครงสร้าง if-then-else รูปแบบโปรแกรมภาษาแอสเซมบลี้ คำสั่ง จริง เท็จ เงื่อนไข if condition is false then jump to else_label then_actions jump to endif_label else_label: else_actions endif_label: EXAMPLE cmp al,10 jae abovenine mov dl,al add dl,’0’ jmp endif abovenine: add al,’A’-10 endif: if AL<10 then DL:=AL+’0’ else DL:=AL+’A’-10; 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

โครงสร้าง repeat-until คำสั่ง เงื่อนไข เท็จ จริง โครงสร้าง repeat-until รูปแบบโปรแกรมภาษาแอสเซมบลี้ startlabel: actions ... if condition is false then jump to startlabel EXAMPLE startlabel: mov al,bl mul bl add dx,ax inc bl inc cx cmp dx,100 jbe startlabel repeat DX:=DX+BL*BL; BL:=BL+1; CX:=CX+1; until (DX>100); 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

โครงสร้าง while โครงสร้าง while รูปแบบโปรแกรมภาษาแอสเซมบลี้ เท็จ คำสั่ง เงื่อนไข เท็จ จริง โครงสร้าง while รูปแบบโปรแกรมภาษาแอสเซมบลี้ startlabel: if condition is false then jump to endlabel actions ... jump to startlabel endlabel: EXAMPLE startloop: cmp dl,13 jz endloop cmp cx,20 jae endloop add al,dl adc ah,0 inc bx mov dl,data[bx] inc cx jmp startloop endloop: while (DL<>13) and (CX<20) do begin AX:=AX+DL; BX:=BX+1; DL:=DATA[BX] CX:=CX+1; end; 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

โครงสร้าง for โครงสร้าง for รูปแบบโปรแกรมภาษาแอสเซมบลี้ ไม่ใช้คำสั่ง LOOP : ยุ่งยากในการใช้ ใช้คำสั่ง LOOP : สะดวกกว่า แต่ไม่สามารถใช้ในการวนรอบที่ซับซ้อนได้ เท็จ คำสั่ง ค่าของตัวแปร อยู่ในขอบเขต จริง กำหนดค่าเริ่มต้น ปรับค่าตัวแปร initialize index variable startloop: if index value is not in the range then jump to endloop action ... update index variable jump to startloop endloop: set the value of CX startloop: actions LOOP startloop 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

โครงสร้าง for โครงสร้างการทำงานของคำสั่ง LOOPZ และ LOOPNZ EXAMPLE mov cx,0 mov dl,1 startloop: cmp dl,100 ja endloop mov al,dl mov ah,0 mob bl,7 div bl cmp ah,0 jne endif inc cx endif: inc dl jmp startloop endloop: CX:=0; for DL:=1 to 100 do begin if DL mod 7 = 0 then CX:=CX+1; end; โครงสร้างการทำงานของคำสั่ง LOOPZ และ LOOPNZ มีลักษณะปนกันระหว่างโครงสร้าง for และ repeat EXAMPLE mov ax,0 mov cx,100 startloop: add ax,data[bx] add bx,2 cmp data[bx],0 looopnz startloop AX:=0; CX:=100; repeat AX:=AX+data[BX]; BX:=BX+2; CX:=CX-1; until (data[BX]=0) or (CX=0); 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

ตัวอย่าง จงเขียนโปรแกรมตรวจสอบเลขฐานสิบที่รับค่าจากผู้ใช้ (ไม่เกิน 8 บิต) ว่าเป็นจำนวนเฉพาะหรือไม่. อ่านตัวเลขฐานสิบจากผู้ใช้ ใช้ Function หมายเลข 0Ah ในการอ่านข้อความ แปลงให้เป็นตัวเลข ตรวจสอบว่าเป็นจำนวนเฉพาะหรือไม่ ทดลองหาร การอ่านข้อความ .data maxlen db 4 strlen db ? str db 4 dup (?) .code mov ax,@data mov ds,ax mov dx,offset maxlen mov ah,0Ah int 21h 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

แปลงตัวเลข ตัวอย่างการแปลง สมมุติว่าผู้ใช้ป้อน ‘123’ ข้อมูลในหน่วยความจำจะมีค่าเป็น : การแปลง : 123 = 1*102 + 2*10 + 3 = (((0*10 + 1) *10 + 2)*10 + 3) 4 3 ‘1’ ‘2’ ‘3’ 13 maxlen strlen str 0 * 10 + 1 * 10 + 2 + 3 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

แปลงตัวเลข mov cl,strlen mov ch,0 mov bx,offset str mov al,0 extract: mov dh,10 mul dh ;AX=AL*10 ;discard AH mov dl,[bx] sub dl,’0’ add al,dl ;AL=AL+digit loop extract 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

ทดสอบว่าเป็นจำนวนเฉพาะ การทดสอบ ใช้ 2 - (al-1) หาร mov cl,al mov ch,0 sub cx,2 ;cx=al-2 mov dl,al mov bl,2 primetest: mov al,dl mov ah,0 div bl inc bl cmp bl,0 loopnz primetest jz notprime ; print yes notprime: ; print no 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล