Introduction to Computer Organization and Architecture Flow of Control ภาษาเครื่อง สายงานของการ ควบคุม.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา C
Advertisements

โครงสร้างควบคุม 1. โครงสร้างควบคุมแบบวนทางเลือก
Chapter 8 : Logic Modeling & Data Modeling
รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
ขอความคำสั่งควบคุม แบงเปนกลุมใหญ ๆ ได 2 กลุม คือ
Control Statement if..else switch..case for while do-while.
บทที่ ๖ หลักการแก้ปัญหาด้วยคอมพิวเตอร์
โครงสร้างควบคุมและคำสั่งแบบเงื่อนไข
โครงสร้างการควบคุมการทำงานของโปรแกรม Program control structures
Control structure part II
Functional Programming
Data Structures and Algorithms
Data Structures and Algorithms
Lecture no. 5 Control Statements
การควบคุมทิศทางการทำงาน
หน่วยที่ 1 ระบบคอมพิวเตอร์
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
วิชา การออกแบบและพัฒนาซอฟต์แวร์
Repetitive Statements (Looping)
Repetitive Instruction
คำสั่งเงื่อนไขและการควบคุม
การจำลองความคิด
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
PROCEDURE <<โปรแกรมย่อย>>
การควบคุมทิศทางการทำงานของโปรแกรม
การเขียนผังงานแบบโครงสร้าง
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
Computer Architecture and Assembly Language
While by Accords (IT SMART CLUB 2006) by Accords 1.
คำสั่งควบคุมเงื่อนไข และการทำงานเป็นรอบ
บทที่ 10 โครงสร้างควบคุม
หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command)
การเขียนโปรแกรมภาษาซี
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Chapter 7 Iteration Statement
โครงสร้างควบคุมการทำงาน
หมวดวิชาคอมพิวเตอร์ โรงเรียนพะเยาพิทยาคม โดย อ.วัชระ การสมพจน์
คำสั่งควบคุมการทำงานของ ActionScripts
Week 3 Flow Control in PHP
บทที่ 10 คำสั่งควบคุม OUTLINE 1. คำสั่งแบบเรียงลำดับ (Sequence)
2.3.1 รหัสเทียม (Pseudo code)
การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
การออกแบบโครงสร้าง (Structured Design)
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
CHAPTER 4 Control Statements
หลักการเขียนโปรแกรม ( )
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
โครงสร้าง ภาษาซี.
ความรู้พื้นฐานเกี่ยวกับการโปรแกรมคอมพิวเตอร์
Introduction ธนวัฒน์ แซ่เอียบ.
บทที่ 6 พจนานุกรมข้อมูล และ คำอธิบายกระบวนการ
การรับและแสดงผลข้อมูล (Input/Output)
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
Syntax and Semantics ธนวัฒน์ แซ่เอียบ.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
Week 5 While and Do-While loop (Control Structure 2)
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
ผังงานโปรแกรม (Program Flowchart)
PHP: [5] คำสั่งควบคุม (Control statement)
Introduction to Computer Organization and Architecture Flow of Control ภาษาเครื่อง สายงานของการ ควบคุม.
การแสดงขั้นตอนวิธีด้วยรหัสเทียม (Pseudo-Code)
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop) Part2
ใบสำเนางานนำเสนอ:

Introduction to Computer Organization and Architecture Flow of Control ภาษาเครื่อง สายงานของการ ควบคุม

2 Control Flow (Flow of Control) หมายถึง ลำดับของการประมวลผลคำสั่งหรือ ชุดคำสั่งย่อยได้เปลี่ยนแปลงไปจากลำดับปกติ Control Flow Statements หมายถึง คำสั่งที่ เมื่อถูกประมวลผลแล้ว จะทำให้ลำดับการ ประมวลผลในลำดับถัดไปจากปกติ เปลี่ยนแปลงลำดับทิศทางไปจากเดิม โปรแกรมภาษาเครื่องหรือโปรแกรม ภาษาแอสเซมบลี คำสั่งควบคุมสายงาน (control flow instructions) จะเป็นการ เปลี่ยนแปลงค่าเลขที่อยู่ใน program counter. หน่วยประมวลผลกลางทั่วไป คำสั่งควบคุมสาย งานมักจัดแบ่งออกเป็นสองกลุ่มคือกระโดด แบบมีเงื่อนไข (Conditional Branches) และ แบบไม่มีเงื่อนไข (Unconditional Branches) บางครั้งอาจใช้คำสั่งว่า jumps แทน ).

3 ประเภทของสายงาน การควบคุม jump  continuation at a different statement (jump), choice  executing a set of statements only if some condition is met (choice), loop  executing a set of statements zero or more times, until some condition is met (loop), subroutinescoroutinescontinuations  executing a set of distant statements, after which the flow of control may possibly return (subroutines, coroutines, and continuations), halt  stopping the program, preventing any further execution (halt). Type of Control Flow แต่ละภาษาคอมพิวเตอร์อาจใช้รูปแบบ ของคำสั่งที่แตกต่างกันไป

4 Primitive Labels Line Numbers ในภาษา Fortran, BASIC 10 LET X = 3 20 PRINT X Identifier ในภาษา C, Ada Success: printf ("The operation was successful.\n"); ภาษา Algol 60 อนุญาตให้ใช้ได้ทั้ง สองอย่าง GOTO unconditional transfer of control. goto label

5 Primitive Subroutines อาจใช้ชื่อเรียกเป็นอย่างอื่น เช่น routines, procedures, functions ( ส่งค่า ผลลัพธ์กลับ ) หรือ methods ( โดยเฉพาะ กับ classes หรือ type classes). ทศวรรษที่ 1950's, คอมพิวเตอร์มี หน่วยความจำที่จำกัด จึงต้องเขียนโปรแกรม หรือชุดคำสั่งย่อยด้วยขนาดที่เหมาะสม เพื่อให้สามารถเรียกใช้ซ้ำหลายๆ ครั้งได้ใน โปรแกรม. แต่ปัจจุบันชุดคำสั่งย่อยช่วยทำให้โปรแกรม มีโครงสร้างที่ดีขึ้น เช่น ช่วยซ่อนขั้นตอนวิธี ของการทำงานไว้ด้านหลัง หรือซ่อนการ เรียกใช้ข้อมูลพิเศษเฉพาะไว้ส่วนหลัง นอกจากนี้ยังช่วยให้สามารถแบ่งงานการ เขียนโปรแกรมขนาดใหญ่ โดยผู้เขียน โปรแกรมหลายๆ คนสามารถทำงานคู่ขนาน ไปพร้อมกันได้ในลักษณะของการจัดแบ่ง งานออกเป็นโมดูล (Modularity)

6 Control Structures No final keyword No final keyword: Algol 60, C, C++, Haskell, Java, Pascal, Perl, PHP, PL/I, Python. Such languages need some way of grouping statements together: Algol 60 and Pascal : begin... end C, C++, Java, Perl, and PHP: curly brackets {... } PL/1: DO... END Python: uses indentation level (see Off-side rule) Haskell: either indentation level or curly brackets can be used, and they can be freely mixed

7 Control Structures Final keyword: Final keyword: Ada, Algol 68, Modula-2, Fortran 77, Visual Basic. The forms of the final keyword vary: Ada: final keyword is end + space + initial keyword e.g. if... end if, loop... end loop Algol 68: initial keyword spelled backwards e.g. if... fi, case... esac Fortran 77: final keyword is end + initial keyword e.g. IF... ENDIF, DO... ENDDO Modula-2: same final keyword end for everything Visual Basic: every control structure has its own keyword. If... End If; For... Next; Do... Loop

8 Structure Programming Sequence Structure Sequence Structure Selection Structure Selection Structure IF-Then-Else Structure IF-Then-Else Structure Switch or Case Structure Switch or Case Structure Iterative Structure (Loop) Iterative Structure (Loop) Do-While Structure Do-While Structure Do-Until Structure Do-Until Structure

9 Sequence Structure One Entry Proces s A Proces s B One Exit

10 IF-Then-Else Structure One Entry condi tion Tru e Proces s A Fal se Proces s B One Exit

11 Case Structure One Entry Proc ess Cas e 1 Proc ess N Proc ess One Exit

12 Do-While Structure Pre- Test One Entry condi tion Fals e Proce ss One Exit Fals e Tru e

13 Do-Until Structure Post- Test One Entry Proce ss condi tion Tr ue One Exit Fal se Tr ue Repeat, For … Next

14 Count-controlled loops FOR I = 1 TO N xxx NEXT I DO I = 1,N xxx END DO for I := 1 to N do begin xxx end; for ( I=1; I<=N; ++I ){ xxx }

15 Condition-controlled loops DO WHILE (Test) xxx END DO WHILE (Test) { xxx } Repeat xxx Until test; do xxx while (test)

16 Collection-controlled loops บางภาษาคอมพิวเตอร์ (e.g. Ada, Smalltalk, Perl, Java, C#, Visual Basic) มีโครงสร้าง การวนซ้ำแบบ พิเศษกับแต่ละสมาชิกภายในเซ็ตหรือ array ได้ someCollection do: [:eachElement |xxx]. foreach someArray { xxx } Collection coll; for (String s : coll) {} foreach (string s in myStringCollection) { xxx }

17 Infinite Loops Sometimes it is desirable for a program to loop forever, or until an exceptional condition such as an error arises. For instance, an event-driven program may be intended to loop forever handling events as they occur, only stopping when the process is killed by the operator. หรือบางครั้งหากไม่เกิดการเปลี่ยนแปลง ค่าใดๆ เลยในการวนซ้ำ ก็สามารถ นำมาใช้เป็นเหตุให้ยกเลิกการวนซ้ำได้

18 Continuation with next Iteration บางครั้งต้องการข้ามบรรทัดคำสั่ง ภายใน Loop เพื่อให้ วนซ้ำต่อไปเลย continue skip บางภาษาจะใช้คำสั่ง continue หรือ คำสั่ง skip The effect is to prematurely terminate the innermost loop body and then resume as normal with the next iteration. If the iteration is the last one in the loop, the effect is to terminate the entire loop early.

19 Early exit from loops คำสั่ง break หรือคำสั่ง exit สั่งให้ หยุดการวนซ้ำในทันทีแล้วไปทำงาน ที่คำสั่งถัดไปจากชุดของคำสั่งวนซ้ำ ต่อไป จึงนิยมนำไปประยุกต์ใช้กับงาน ค้นหาข้อมูลในตาราง เมื่อค้นหา พบแล้วโดยชุดคำสั่งวนซ้ำ จะ กระโดดออกจาก การวนซ้ำ ในทันทีโดยไม่ต้องเสียเวลาการวน ซ้ำจนจบรอบ

20 Early exit from loops with Ada.Text IO; with Ada.Integer Text IO; procedure Print_Squares is X : Integer; begin Read_Data : loop Ada.Integer Text IO.Get(X); if X = 0; then exit Read_Data; end if; Ada.Text IO.Put (X * X); Ada.Text IO.New_Line; end loop Read_Data; end Print_Squares;

21 for n in set_of_numbers: if isprime(n): print " Set contains a prime number " break else: print " Set did not contain any prime numbers " Early exit from loops

22 Structured non-local control flow Many programming languages, particularly those which favor more dynamic styles of programming, offer constructs for non-local control flow. These cause the flow of execution to jump out of a given context and resume at some predeclared point. Exceptions, conditions, and continuations are three common sorts of non-local control constructs.

23 Conditions PL/I PL/I has some 22 standard conditions (e.g. ZERODIVIDE SUBSCRIPTRANGE ENDFILE) which can be RAISEd and which can be intercepted by: ON condition action; Programmers can also define and use their own named conditions. Like the unstructured if only one statement can be specified so in many cases a GOTO is needed to decide where flow of control should resume. ON condition GOTO label

24 Exceptions Modern languages have a structured construct for exception handling which does not rely on the use of GOTO: try { xxx1 // Somewhere in here xxx2 // use: '''throw''' someValue; xxx3 } catch (someClass & someId) { // catch value of someClass actionForSomeClass } catch (someType & anotherId) { // catch value of someType actionForSomeType } catch (...) { // catch anything not already caught actionForAnythingElse }

25 Exceptions FileStream stm = null; // C# example try { stm = new FileStream ("logfile.txt", FileMode. Create); return ProcessStuff(stm); // may throw an exception } finally { if (stm != null) stm. Close(); } using (FileStream stm = new FileStream ("logfile.txt", FileMode. Create)) { return ProcessStuff(stm); // may throw an exception }

26 Exceptions try set myNumber to myNumber / 0 on error e number n from f to t partial result pr if ( e = "Can't divide by zero" ) then display dialog "You idiot!" end try

27 Multiple early exit/ exit from nested loops exitwhen EventA or EventB or EventC ; xxx exits EventA: actionA EventB: actionB EventC: actionC endexit;

28 exitwhen found or missing; for I := 1 to N do for J := 1 to M do if table[I,J] = target then found; missing; exits found: print ("item is in table"); missing: print ("item is not in table"); endexit; Multiple early exit/ exit from nested loops

29 Non-local control flow cross reference Programming languageconditionsexceptions AdaNoYes CNo C++NoYes C#NoYes DNoYes HaskellNoYes JavaNoYes Objective CNoYes PHPNoYes PL/1YesNo PythonNoYes RubyNoYes

Loop system cross reference table Programming language conditionalloop early exit Conti Nua tion begin Mid Dle end count Collec tion Gener al Infi nite AdaYes arraysNoYes Deep nested No CYesNoYes No YesNo Deep nested Yes C++ YesNoYes No YesNo Deep nested Yes FORTRAN 77YesNo YesNo one levelYes Fortran 90YesNo YesNo Yes Deep nested Yes JavaYesNoYes No Yes No Deep nested Yes PHPYesNoYes NoYes No Deep nested Yes PythonYesNo YesNo Deep nested Yes

Introduction to Computer Organization and Architecture Machine Language ภาษาเครื่อ ง