1 / 71

Branching Algorithm & C Program Control

Learn about branching algorithms and C program control, including if-then-else statements, calculating averages, finding the largest number, determining odd and even numbers, and more.

kaitlint
Download Presentation

Branching Algorithm & C Program Control

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorithm and ProgrammingBranching Algorithm & C Program Control Dr. Ir. Riri Fitri Sari MM MSc International Class Electrical Engineering Dept University of Indonesia 23 February 2009

  2. Branching • No every lines are executed • Only those that comply with the prerequisite (condition). • The prerequisite consists of operans which is connected to the relational and logical operators

  3. Branching • Produce a boolean statement, with the value of true and false. • Using the command: if_then_else

  4. Branching • Example : • 5 = 5  True • 3 > 5  False • 5 <> 3  True • (A>5) AND (B>10)  • True if both are true • (A>5) OR (B>10)  • True if both are true or one of the value is ture. START condition Statement 1 Statement 2 END

  5. Branching • Sample case: The average of positive numbers. Aim : • To calculate the average of some numbers entered through the keyboard (ended with entrance of the null value) • To show the frequency of positive number, total, and the average.

  6. Branching Algorithm development • Global Algorithm read (bil) while bil <> 0 do [added all the positive number and calculate the frequency of the positive number) read (bil) ewhile [write the frequency of the number, the total, and the average value]

  7. Branching Algorithm development (cont’d) • Flowchart with the branching command if-then-eif

  8. Branching Number> 0 yes no Total := Total + number n := n + 1

  9. Branching Algorithm development (cont’d) • Modify the global algorithm • variable n and total must be emptied

  10. Branching • If there is only the null number entered : • Before write command check if n=0. • If n=0 or no number entered except the end sign, do not perform the write command.

  11. Branching Modification Algorithm : n := 0 total := 0 read (bil) while bil <> 0 do if bil > 0 then total := total + number n := n + 1 eif

  12. Branching Modified algorithm: read (bil) ewhile if n <> 0 then write (n, total, total/n) eif

  13. Branching • Sample case “The largest number” endData := 0 read (bil) while bil <> endData do [check if the number is the largest number from all of the read number, write if so] read (bil) ewhile [write the largest number]

  14. Branching • Algorithm Development : EndData := 0 read (bil) while bil <> EndData do if bil > maks then maks := bil eif read (bil) ewhile write (maks) • Is it true ?

  15. Branching • Discussion: • Variable maks should be given initial number to avoid mistakes. • Variabel maks should be filled in with the first number read from the keyboard.

  16. Branching • Algorithm becomes : EndData := 0 read (bil) maks := bil while bil <> EndData do if bil > maks then maks := bil eif read (bil) ewhile write (maks)

  17. Branching • How if the number entered is 0 ? What happened ? • Correction ?

  18. Branching Example “Odd and Even numbers” • Aim: to make an algorithm which can state a number is odd or even.

  19. Stages: • To define if a number is odd or even by dividing by 2 (mod) . • If the modulus is 0  Even number • If not 0  Odd number

  20. Branching • Algorithm EndData : = 0 read(bil) while bil <> 0 do sisa :=bil mod 2 if sisa = 0 then write (‘even’) else write (‘odd’) eif read (bil) ewhile

  21. Branching Example: “Square Root” • Aim : to write a program to calculate the square root of the quadratic equation, in which the coefficient is entered from keyboard.

  22. Branching • Stages: • Select the wrong condition by checking the coefficient value. • To define the type of square root equation based on the equation.

  23. Branching Algorithm: read(a) while a<>0 do read (b,c) d:=b^2-4*a*c continue

  24. Branching if d<0 then {Calculate complex square root} p:= -b/(2*a) q: = abs (sqr(-d)/((2*a)) write (‘x1=‘, p, ‘+’, q, ‘i’) write (‘x2=‘, p, ‘-’, q, ‘i’) else continue

  25. Branching {complex square root or not } if d=0 then {calculate twin square } x1:= -b/(2*a) x2 := x1

  26. Branching else {Calculate not twin sqrt} x1:= (-b+sqr(d))/(2*a) x2 := (-b-sqr(d))/(2*a) eif write (‘x1=‘, x1) write (‘x2=‘,x2) eif read(a)

  27. Chapter 4 – C Program Control Outline 4.1 Introduction 4.2 The Essentials of Repetition 4.3 Counter-Controlled Repetition 4.4 The for Repetition Statement 4.5 The for Statement: Notes and Observations 4.6 Examples Using the for Statement 4.7 The switch Multiple-Selection Statement 4.8 The do…while Repetition Statement 4.9 The break and continue Statements 4.10 Logical Operators 4.11 Confusing Equality (==) and Assignment (=) Operators 4.12 Structured Programming Summary

  28. Objectives • In this chapter, you will learn: • To be able to use the for and do…while repetition statements. • To understand multiple selection using the switch selection statement. • To be able to use the break and continue program control statements • To be able to use the logical operators.

  29. 4.1 Introduction • This chapter introduces • Additional repetition control structures • for • Do…while • switch multiple selection statement • break statement • Used for exiting immediately and rapidly from certain control structures • continue statement • Used for skipping the remainder of the body of a repetition structure and proceeding with the next iteration of the loop

  30. 4.2 The Essentials of Repetition • Loop • Group of instructions computer executes repeatedly while some condition remains true • Counter-controlled repetition • Definite repetition: know how many times loop will execute • Control variable used to count repetitions • Sentinel-controlled repetition • Indefinite repetition • Used when number of repetitions not known • Sentinel value indicates "end of data"

  31. 4.3 Essentials of Counter-Controlled Repetition • Counter-controlled repetition requires • The name of a control variable (or loop counter) • The initial value of the control variable • An increment (or decrement) by which the control variable is modified each time through the loop • A condition that tests for the final value of the control variable (i.e., whether looping should continue)

  32. 4.3 Essentials of Counter-Controlled Repetition • Example: int counter = 1; // initialization while ( counter <= 10 ) { // repetition condition printf( "%d\n", counter ); ++counter; // increment } • The statement int counter = 1; • Names counter • Defines it to be an integer • Reserves space for it in memory • Sets it to an initial value of 1

  33. fig04_01.c Program Output 1 2 3 4 5 6 7 8 9 10

  34. 4.3 Essentials of Counter-Controlled Repetition • Condensed code • C Programmers would make the program more concise • Initialize counter to 0 • while ( ++counter <= 10 ) printf( “%d\n, counter );

  35. fig04_02.c

  36. 4.4 The for Repetition Statement

  37. 4.4 The for Repetition Statement • Format when using for loops for ( initialization; loopContinuationTest; increment ) statement • Example: for( int counter = 1; counter <= 10; counter++ ) printf( "%d\n", counter ); • Prints the integers from one to ten No semicolon (;) after last expression

  38. 4.4 The for Repetition Statement • For loops can usually be rewritten as while loops: initialization;while( loopContinuationTest ) { statement; increment;} • Initialization and increment • Can be comma-separated lists • Example: for (int i = 0, j = 0; j + i <= 10; j++, i++) printf( "%d\n", j + i );

  39. 4.5 The for Statement : Notes and Observations • Arithmetic expressions • Initialization, loop-continuation, and increment can contain arithmetic expressions. If x equals 2 and y equals 10 for ( j = x; j <= 4 * x * y; j += y / x ) is equivalent to for ( j = 2; j <= 80; j += 5 ) • Notes about the for statement: • "Increment" may be negative (decrement) • If the loop continuation condition is initially false • The body of the for statement is not performed • Control proceeds with the next statement after the for statement • Control variable • Often printed or used inside for body, but not necessary

  40. 4.5 The for Statement : Notes and Observations Establish initial value of control variable counter = 1 counter = 1 true counter <= 10 printf( "%d", counter ); counter++ Increment the control Determine if final false Body of loop variable value of control (this may be many variable has been statements) reached

  41. fig04_05.c Program Output Sum is 2550

  42. fig04_06.c (Part 1 of 2)

  43. Year Amount on deposit 1 1050.00 2 1102.50 3 1157.63 4 1215.51 5 1276.28 6 1340.10 7 1407.10 8 1477.46 9 1551.33 10 1628.89 fig04_06.c (Part 2 of 2) Program Output

  44. 4.7 The switch Multiple-Selection Statement • switch • Useful when a variable or expression is tested for all the values it can assume and different actions are taken • Format • Series of case labels and an optional default case switch ( value ){ case '1': actions case '2': actions default: actions } • break; exits from statement

  45. true false true false . . . true false case a action(s) case z action(s) case b action(s) break break break default action(s) case b case a case z 4.7 The switch Multiple-Selection Statement • Flowchart of the switch statement

  46. fig04_07.c (Part 1 of 3)

  47. fig04_07.c (Part 2 of 3)

  48. fig04_07.c (Part 3 of 3)

  49. Enter the letter grades. Enter the EOF character to end input. a b c C A d f C E Incorrect letter grade entered. Enter a new grade. D A b ^Z Totals for each letter grade are: A: 3 B: 2 C: 3 D: 2 F: 1 Program Output

  50. 4.8 The do…while Repetition Statement • The do…while repetition statement • Similar to the while structure • Condition for repetition tested after the body of the loop is performed • All actions are performed at least once • Format: do { statement; } while (condition );

More Related