430 likes | 695 Views
C PROGRAMMING. Introduction to Programming. Introduction to Programming. Computer System - Hardware - Software - Peopleware. Introduction to Programming. ขอบเขตปัญหา. จัดทำเอกสาร คู่มือประกอบ การพัฒนา โปรแกรม. เก็บรวบรวมข้อมูล และวิเคราะห์ปัญหา. ออกแบบโปรแกรม. สร้างโปรแกรม.
E N D
C PROGRAMMING Introduction to Programming
Introduction to Programming Computer System - Hardware - Software - Peopleware
Introduction to Programming ขอบเขตปัญหา จัดทำเอกสาร คู่มือประกอบ การพัฒนา โปรแกรม เก็บรวบรวมข้อมูล และวิเคราะห์ปัญหา ออกแบบโปรแกรม สร้างโปรแกรม ทดสอบ ติดตั้ง และบำรุงรักษาโปรแกรม
The Programming Process • Algorithm Method or approach used to solve a problem. • Steps involved in solving a problem: • Studying the problem in detail. • Gathering the relevant information. • Processing the information. • Arriving at the results.
Introduction to Programming การออกแบบโปรแกรม • อัลกอริทึม (Algorithm) คือลำดับขั้นตอนการทำงาน ซึ่งกำหนดการทำงานของคอมพิวเตอร์ • อัลกอริทึมจะถูกทำให้อยู่ในรูปแบบที่เรียกว่าโปรแกรม (Program) ด้วยการใช้เครื่องมือที่ใช้สร้างโปรแกรม
Introduction to Programming ความสำคัญของอัลกอริทึม • ออกแบบอัลกอริทึม • เขียนโปรแกรมตามอัลกอริทึมที่ออกแบบ • ป้อนโปรแกรมเพื่อให้คอมพิวเตอร์ทำงานตามโปรแกรม • ผู้พัฒนาโปรแกรมให้ความสำคัญในเรื่องอัลกอริทึมมากกว่าการเขียนโปรแกรมและตัวเครื่องคอมพิวเตอร์ เนื่องจากอัลกอริทึมเป็นรากฐานที่สำคัญในการพัฒนาระบบงานคอมพิวเตอร์
The Programming Process(Cont.) • Steps to check if a number is even or odd: • Read the number. • Divide the number by 2. • If the remainder of the division is zero, then the number is even. • Otherwise the number is odd.
Introduction to Programming การออกแบบขั้นตอนการแก้ปัญหา • กำหนดการแก้ปัญหาในภาพรวม • กำหนดรายละเอียดของการแก้ปัญหา • เปลี่ยนให้อยู่ในรูปของอัลกอริทึม • ผังงาน (Flowchart) • คำสั่งหรือรหัสเทียม (Pseudocode)
PseudoCode จำลองการเขียนโปรแกรม โดยคำสั่งที่ใช้จะไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ทำให้การเขียนโปรแกรมง่ายขึ้น หลักเกณฑ์ในการเขียน Pseudo Code • ใช้ภาษาที่เข้าใจได้ง่าย ๆ • เขียนให้มีย่อหน้าเป็นบรรทัด • คำสั่งควรเป็นตัวพิมพ์ใหญ่ • ไม่จำเป็นต้องมีเครื่องหมายวรรคตอน
ตัวอย่างการเขียนคำสั่งเทียมตัวอย่างการเขียนคำสั่งเทียม Begin Sum( ) result = 0, i = 0 Repeat Read num result = result + num i = i + 1 Until i = 10 Print sum End Sum
Flowchart • Diagrammatic representation that illustrates the sequence of operations to be performed to arrive at a solution. • Serve the following purposes: • Easier to understand at a glance than a narrative description. • Programs can be reviewed and debugged easily. • Provide effective program documentation. • Explaining a program or discussing a solution is made easy.
โฟลว์ชาร์ต (Flowchart) • เข้าใจและแยกแยะปัญหาได้ง่ายขึ้น • เห็นลำดับการทำงาน ทำก่อนหลัง • หาข้อผิดพลาดของโปรแกรมได้ง่าย • เข้าใจได้ง่ายกว่าดูจาก source code • ไม่ขึ้นกับภาษาใด เรียนรู้และเข้าใจง่าย
Symbols Used in a Flowchart Start or end of the program Computational steps Input or output instructions Decision making and branching Connectors of two parts of a program Flow of the program n n
Start Read two numbers Add them up Display the sum Stop Flowcharts(Cont.) • Flowchart to find the sum of two numbers
รูปแบบการเขียนโปรแกรมรูปแบบการเขียนโปรแกรม • การเขียนโปรแกรมแบบเรียงลำดับ(Sequential Programming) • การเขียนโปรแกรมแบบเลือกทำ(Condition or Branching Programming) • การเขียนโปรแกรมแบบวนซ้ำหรือ loop(Repetitive or Iterative Programming)
Sequential Programming • เป็นรูปแบบการเขียนโปรแกรมแบบเรียงลำดับ • คำสั่งจะถูกกำหนดให้ทำงานจากจุดเริ่มต้นไปที่ละคำสั่ง จนถึงคำสั่งสุดท้าย • แต่ละคำสั่งจะมีการทำงานเพียงครั้งเดียว และผ่านไปทำงานในคำสั่งถัดไป • ทุกคำสั่งในรูปแบบ Sequential จะถูกทำงานทั้งหมด
Sequential Programming START READ WIDTH, LENGTH AREA = WIDTH*LENGTH DISPLAY AREA STOP
Conditional or Branching Programming • Process of following one of two or more alternate paths of computations. • เป็นการกำหนดทางเลือกหรือชุดคำสั่งที่เตรียมไว้ในโปรแกรม อาจมีทางเลือก 1 , 2 , 3 , . . . หรือมากกว่า • การเลือกว่าชุดคำสั่งใดจะถูกทำงาน ขึ้นอยู่กับการตรวจสอบเงื่อนไขที่กำหนดไว้ • ผลลัพธ์จากการตรวจสอบเงื่อนไข จะมีเพียง 1 ทางเลือกหรือเพียง 1 ชุดคำสั่งเท่านั้นที่จะถูกทำงาน หรืออาจไม่มีชุดคำสั่งใดถูกทำงานเลยก็ได้
Compute Compute ? ? (i) (ii) Compute General Form of Flowcharts Involved in Conditional or Branching Programming
General Form of Flowcharts Involved in Conditional or Branching Programming Cond 1 Cond 2 Cond 3 Cond n Statement1 Statement2 statement3 Statement n Statement n+1
CONDITIONAL PROGRAMMING START READ SCORE SCORE >= 50 NO or FALSE YES or TRUE DISPLAY “PASS” DISPLAY “FAIL” STOP
CONDITIONAL PROGRAMMING START READ N1, N2, N3 N1 > N2 NO YES YES N1 > N3 N2 > N3 YES NO NO DISPLAY MAX = N1 DISPLAY MAX = N3 DISPLAY MAX = N2 STOP
CONDITIONAL PROGRAMMING Start A program to find if the number is odd or even. Read a number Divide it by 2 Yes No remainder=0? Display Odd Display Even Stop
CONDITIONAL PROGRAMMING in C • Conditional or Branching statement • If… statement • If…else… statement • If…else if…else statement • Switch…case… statement
Assignment on Conditional Programming • ออกแบบโปรแกรมในการคิดค่าคะแนน และตัดเกรด โดยมีข้อกำหนดดังนี้ • รับคะแนนสอบ 3 ครั้ง แต่ละครั้งคะแนนเต็ม 100 คะแนน • หาค่าคะแนนเฉลี่ย • ตรวจสอบค่าคะแนนเฉลี่ย จากตาราง • แสดงค่าคะแนน และเกรด
Basic Flowchart for Repetitive programming ? No Yes Compute
START I = 1 , SUM = 0 READ NUM I <= 10 NO YES I = I + 1 SUM = SUM+NUM DISPLAY SUM STOP REPETITIVE PROGRAMMING คำนวณหาค่าผลรวมของตัวเลข 10 จำนวน
REPETITIVE PROGRAMMING Start To calculate the sum of monthly expenditure for an entire year. tot_exp = 0, no_mon = 1 Read exp Add to tot_exp no_mon=no_mon+1 Yes no_mon<=12 No exp = expense tot_exp = total expense no_mon = number of month Display tot_exp Stop
REPETITIVE PROGRAMMING Start Given the information such as name and age and to maintain a list of people aged above 50. Read name, age age > 50 ? No Yes Add details of the person to list Continue ? Yes No Stop
REPETITIVE PROGRAMMING • Refers to the repeated use of one or more steps. • Types • Fixed • Variable
REPETITIVE PROGRAMMING • Fixed • Repeat operations for a fixed number of times. • Values being computed or handled inside the loop have no effect on the number of times the looping operation is done. • Variable • Repeat operations until a specified condition is met. • Number of times the loop is repeated may vary.
REPETITIVE PROGRAMMING in C • Looping Statements • for… statement • while… statement • do…while… statement
Assignment on Repetitive Programming • ออกแบบโปรแกรมเพื่อรับค่าตัวเลขจากผู้ใช้แบบไม่จำกัดจำนวน เพื่อคำนวณหาค่าผลรวมและค่าเฉลี่ย หากค่าตัวเลขที่ผู้ใช้ป้อนเข้ามาเท่ากับ 0 ให้ทำการคำนวณและแสดงผลลัพธ์ที่ได้ออกจอภาพ
จุดเชื่อมต่อ (Connectors) • In preparing flowcharts for complex problems • The flowchart may not fit in a single page • It may be difficult to interconnect all boxes directly • Flowcharts can bebroken into parts. • Connectors can be used to indicate the location of joins.
Connectors(contd.) • A unique number is specified within the connector . • An arrow is drawn into it at the point where the chart is broken.
Start Read a, b, c Yes No a>b 1 2 Connectors(Cont.) • 1 and 2 here are the connector symbols. 1 2 Yes No No Yes a>c c>b Display a Display c Display b Stop
หลักในการเขียนผังงาน • ใช้สัญลักษณ์ที่มีรูปแบบเป็นมาตรฐานและขนาดเหมาะสม • ทำหัวลูกศรกำกับทิศทาง • ใช้ข้อความที่เข้าใจง่าย สั้นและชัดเจน • เกิดจุดตัดน้อยที่สุด หรือใช้ “ตัวเชื่อม" • ควรเขียนผังงานให้จบภายในหน้าเดียว • เป็นระเบียบ ชัดเจน ติดตามขั้นตอนง่าย • จุดเริ่มต้นและสิ้นสุดมีเพียงจุดเดียว
Tips for Flowcharting • Points to be remembered while drawing a flowchart: • Initially concentrate on the logic of the problem and draw the main-path of the flowchart. • After the main part is completed, add all the branches and loops. • A flowchart can have only one Start point and one Stop point.
Tips for Flowcharting(Cont.) • As far as possible, keep the flowchart machine independent by not using terms associated with the computer. • It is not necessary to represent each and every step of a program in the flowchart. • Use descriptive terms that aptly represent the logic of a problem.
Tips for Flowcharting(Cont.) • Do not use ambiguous terms. • Remember that another user or programmer should easily understand the flowchart.
Dry Run • Tests an algorithm manually for its correctness. • Consists of a table with columns for each variable used in the algorithm • Every one step in the algorithm updates the value of each variable in the table. • The success depends upon the ability to step through the instructions exactly as the computer would execute them.
Dry Run (cont.) • An Example: Step 1Start Step 2X=10 Step 3Y=5 Step 4M=0 Step 5M=X+Y+(X*Y) Step 6Y=Y+4 Step 7M=M+Y Step 8Display X,Y,M Step 9End