Chapter 4 C Program Control

Similar documents
Chapter 4 C Program Control

C Program Control. Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan

2.11 Assignment Operators. Assignment expression abbreviations c = c + 3; can be abbreviated as c += 3; using the addition assignment operator

Introduction to C Programming

Chapter 2 - Control Structures

Chapter 2 - Control Structures

Chapter 2 - Control Structures

Control Statements: Part Pearson Education, Inc. All rights reserved.

Fundamentals of Programming Session 9

بسم اهلل الرمحن الرحيم

Programming for Engineers Iteration

Structured Program Development in C

CHAPTER 2.1 CONTROL STRUCTURES (SELECTION) Dr. Shady Yehia Elmashad

C++ Programming Lecture 7 Control Structure I (Repetition) Part I

BBM 101 Introduc/on to Programming I Fall 2014, Lecture 5. Aykut Erdem, Erkut Erdem, Fuat Akal

Chapter 3 Structured Program Development

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Control Statements. Musa M. Ameen Computer Engineering Dept.

Structured Programming. Dr. Mohamed Khedr Lecture 9

Control Statements: Part Pearson Education, Inc. All rights reserved.

INTRODUCTION TO C++ PROGRAM CONTROL. Dept. of Electronic Engineering, NCHU. Original slides are from

IS 0020 Program Design and Software Tools

Programming - 1. Computer Science Department 011COMP-3 لغة البرمجة 1 لطالب كلية الحاسب اآللي ونظم المعلومات 011 عال- 3

Loops / Repetition Statements. There are three loop constructs in C. Example 2: Grade of several students. Example 1: Fixing Bad Keyboard Input

CHAPTER 2.2 CONTROL STRUCTURES (ITERATION) Dr. Shady Yehia Elmashad

A Look Back at Arithmetic Operators: the Increment and Decrement

Detail from C Propaganda Poster // Reddit user TheBall BBM 101. Introduction to Programming I. Lecture #11 C Iterations, Functions, Multi-D Arrays

ECET 264 C Programming Language with Applications. C Program Control

Full file at C How to Program, 6/e Multiple Choice Test Bank

Why Is Repetition Needed?

Flow of Control. Flow of control The order in which statements are executed. Transfer of control

Structured Program Development

C++ Programming: From Problem Analysis to Program Design, Fourth Edition. Chapter 5: Control Structures II (Repetition)

V2 2/4/ Ch Programming in C. Flow of Control. Flow of Control. Flow of control The order in which statements are executed

CSE123 LECTURE 3-1. Program Design and Control Structures Repetitions (Loops) 1-1

Sudeshna Sarkar Dept. of Computer Science & Engineering. Indian Institute of Technology Kharagpur

Chapter 5: Control Structures II (Repetition) Objectives (cont d.) Objectives. while Looping (Repetition) Structure. Why Is Repetition Needed?

CS110D: PROGRAMMING LANGUAGE I

Introduction. C provides two styles of flow control:

Loops / Repetition Statements

COP 2000 Introduction to Computer Programming Mid-Term Exam Review

C++ Programming: From Problem Analysis to Program Design, Third Edition

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance.

C++ PROGRAMMING SKILLS Part 2 Programming Structures

Chapter 5 Control Statements: Part 2 Section 5.2 Essentials of Counter-Controlled Repetition

Programming for Engineers Introduction to C

There are algorithms, however, that need to execute statements in some other kind of ordering depending on certain conditions.

Lecture 7 Tao Wang 1

Chapter 4. Flow of Control

Sequence structure. The computer executes java statements one after the other in the order in which they are written. Total = total +grade;

C How to Program, 6/e by Pearson Education, Inc. All Rights Reserved.

CP FAQS Q-1) Define flowchart and explain Various symbols of flowchart Q-2) Explain basic structure of c language Documentation section :

PDS Lab Section 16 Autumn Tutorial 3. C Programming Constructs

Loops! Loops! Loops! Lecture 5 COP 3014 Fall September 25, 2017

Conditional Statement

Conditionals and Loops

DECISION CONTROL AND LOOPING STATEMENTS

Dept. of CSE, IIT KGP

LECTURE 5 Control Structures Part 2

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

C: How to Program. Week /Mar/05

Module 4: Decision-making and forming loops

3 The L oop Control Structure

Information Science 1

Fundamental of Programming (C)

B.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University

Main Program. C Programming Notes. #include <stdio.h> main() { printf( Hello ); } Comments: /* comment */ //comment. Dr. Karne Towson University

Programming Basics and Practice GEDB029 Decision Making, Branching and Looping. Prof. Dr. Mannan Saeed Muhammad bit.ly/gedb029

Week 2. Relational Operators. Block or compound statement. if/else. Branching & Looping. Gaddis: Chapters 4 & 5. CS 5301 Spring 2018.

Chapter 2 - Introduction to C Programming

UNIT IV 2 MARKS. ( Word to PDF Converter - Unregistered ) FUNDAMENTALS OF COMPUTING & COMPUTER PROGRAMMING

Chapter 4: Expressions. Chapter 4. Expressions. Copyright 2008 W. W. Norton & Company. All rights reserved.

Islamic University of Gaza Computer Engineering Dept. C++ Programming. For Industrial And Electrical Engineering By Instructor: Ruba A.

Theory of control structures

In this chapter you will learn:

Operators & Expressions

Chapter 5: Control Structures

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

Chapter 10 JavaScript/JScript: Control Structures II 289

Information Science 1

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are:

Java. Programming: Chapter Objectives. Why Is Repetition Needed? Chapter 5: Control Structures II. Program Design Including Data Structures

Lecture 3 Tao Wang 1

Conditional Statement

More Programming Constructs -- Introduction

Repetition and Loop Statements Chapter 5

Chapter 5: Control Structures II (Repetition)

1 EEE1008 C Programming

JavaScript: Control Statements I Pearson Education, Inc. All rights reserved.

REPETITION CONTROL STRUCTURE LOGO

Chapter 2. Lexical Elements & Operators

Day06 A. Young W. Lim Mon. Young W. Lim Day06 A Mon 1 / 16

4. Inputting data or messages to a function is called passing data to the function.

Programming Language. Control Structures: Repetition (while) Eng. Anis Nazer Second Semester

Tail recursion. Decision. Assignment. Iteration

Chapter 5. Repetition. Contents. Introduction. Three Types of Program Control. Two Types of Repetition. Three Syntax Structures for Looping in C++

Chapter 4 Introduction to Control Statements

n Group of statements that are executed repeatedly while some condition remains true

Repetition, Looping CS101

Flow Control. CSC215 Lecture

Transcription:

Chapter C Program Control 1 Introduction 2 he Essentials of Repetition 3 Counter-Controlled Repetition he for Repetition Statement 5 he for Statement: Notes and Observations 6 Examples Using the for Statement 7 he switch Multiple-Selection Statement 8 he do while Repetition Statement he break and continue Statements 10 Logical Operators 11 Confusing Equality (==) and Assignment (=) Operators 12 Structured Programming Summary 1 Objectives In this chapter, you will learn: o be able to use the for and do while repetition statements o understand multiple selection using the switch selection statement o be able to use the break and continue program control statements o be able to use the logical operators 2 3 1 Introduction 2 he Essentials of Repetition his 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 Loop Group of instructions computer executes repeatedly while some condition remains 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" 3 Essentials of Counter-Controlled Repetition Counter- controlled repetition requires he name of a control variable (or loop counter) he 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 (ie, whether looping should continue) 5 3 Essentials of Counter-Controlled Repetition Example: int counter = 1; // initialization while ( counter <= 10 ) { // repetition condition printf( "%d\n", counter ); ++counter; // increment } he 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 6 1

1 /* ig 1: fig0_01c 2 Counter-controlled repetition */ 8 int counter = 1; /* initialization */ 10 while ( counter <= 10 ) { /* repetition condition */ 11 printf ( "%d\n", counter /* display counter */ ); 12 ++counter; /* increment */ 13 } /* end while */ 1 fig0_01c 7 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 ); 8 15 return 0; /* indicate program ended successfully */ 16 } /* end function main */ 1 2 3 5 6 7 8 10 1 /* ig 2: fig0_02c 2 Counter-controlled repetition with the for statement */ fig0_02c he for Repetition Statement 10 8 int counter; /* define counter */ 10 /* initialization, repetition condition, and increment 11 are all included in the for statement header */ 12 for ( counter = 1; counter <= 10; counter++ ) { 13 printf( "%d\n", counter ); 1 } /* end for */ 15 16 return 0; /* indicate program ended successfully */ 18 } /* end function main */ 11 12 he for Repetition Statement he for Repetition Statement ormat when using for loops for ( initialization; loopcontinuationest; 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 or loops can usually be rewritten as while loops: initialization; while ( loopcontinuationest ) { 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 ); 2

5 he 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 <= * 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 he 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 13 5 he for Statement : Notes and Observations Establish initial value of control variable counter = 1 Determine if final value of control variable has been reached counter <= 10 printf( "%d", counter ); Body of loop (this may be many statements) counter++ Increment the control variable 1 1 /* ig 5: fig0_05c 2 Summation with for */ 15 1 /* ig 6: fig0_06c 2 Calculating compound interest */ 16 fig0_05c #include <mathh> 5 6 /* function main begins program execution */ fig0_06c (Part 1 of 2) 7 int main() 8 int sum = 0; /* initialize sum */ 8 { int number; /* number to be added to sum */ double amount; /* amount on deposit */ 10 10 double principal = 10000; /* starting principal */ 11 for ( number = 2; number <= 100; number += 2 ) { 11 double rate = 05; /* interest rate */ 12 sum += number; /* add number to sum */ 12 int year; /* year counter */ 13 } /* end for */ 13 1 1 /* output table column head */ 15 printf( "Sum is %d\n", sum ); /* output sum */ 15 printf( "%s%21s\n", "Year", "Amount on deposit" ); 16 16 return 0; /* indicate program ended successfully */ /* calculate amount on deposit for each of ten years */ 18 1 } /* end function main */ Sum is 2550 18 for ( year = 1; year <= 10; year++ ) { 1 20 /* calculate new amount for specified year */ 21 amount = principal * pow( 10 + rate, year ); 22 23 /* output one table row */ 2 printf( "%d%212f\n", year, amount ); 25 } /* end for */ 26 27 return 0; /* indicate program ended successfully */ 28 2 } /* end function main */ Year Amount on deposit 1 105000 2 110250 3 115763 121551 5 127628 6 13010 7 10710 8 76 155133 10 16288 fig0_06c (Part 2 of 2) 7 he 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 ormat Series of case labels and an optional default case switch ( value ){ case '1': actions case '2': actions default: actions } break; exits from statement 18 3

7 he switch Multiple-Selection Statement lowchart of the switch statement 1 1 /* ig 7: fig0_07c 2 Counting letter grades */ 8 int grade; /* one grade */ 20 fig0_07c (Part 1 of 3) int acount = 0; /* number of As */ case a case a action(s) break 10 int bcount = 0; /* number of Bs */ 11 int ccount = 0; /* number of Cs */ 12 int dcount = 0; /* number of Ds */ 13 int fcount = 0; /* number of s */ case b case b action(s) break 1 15 printf( "Enter the letter grades\n" ); 16 printf( "Enter the EO character to end input\n" ); 18 /* loop until user types end-of-file key sequence */ 1 while ( ( grade = getchar() )!= EO ) { 20 21 /* determine which grade was input */ case z case z action(s) break 22 switch ( grade ) { /* switch nested in while */ 23 2 case 'A': /* grade was uppercase A */ 25 case 'a': /* or lowercase a */ default action(s) 26 ++acount; /* increment acount */ 27 break; /* necessary to exit switch */ 28 2 case 'B': /* grade was uppercase B */ 30 case 'b': /* or lowercase b */ 31 ++bcount; /* increment bcount */ 32 break; /* exit switch */ 33 3 case 'C': /* grade was uppercase C */ 35 case 'c': /* or lowercase c */ 36 ++ccount; /* increment ccount */ 37 break; /* exit switch */ 38 3 case 'D': /* grade was uppercase D */ 0 case 'd': /* or lowercase d */ 1 ++dcount; /* increment dcount */ 2 break; /* exit switch */ 3 case '': /* grade was uppercase */ 5 case 'f': /* or lowercase f */ 21 fig0_07c (Part 2 of 3) 5 default: /* catch all other characters */ 55 printf( "Incorrect letter grade entered" ); 56 printf( " Enter a new grade\n" ); 57 break; /* optional; will exit switch anyway */ 58 end switch */ } /* 5 60 } /* end while */ 61 62 /* output summary of results */ 63 printf( "\notals for each letter grade are:\n" ); 6 printf( "A: %d\n", acount ); /* display number of A grades */ 65 printf( "B: %d\n", bcount ); /* display number of B grades */ 66 printf( "C: %d\n", ccount ); /* display number of C grades */ 67 printf( "D: %d\n", dcount ); /* display number of D grades */ 68 printf( ": %d\n", fcount ); /* display number of grades */ 6 22 fig0_07c (Part 3 of 3) 6 ++fcount; /* increment fcount */ 70 return 0; /* indicate program ended successfully */ 7 break; /* exit switch */ 71 8 72 } /* end function main */ case '\n': /* ignore newlines, */ 50 case '\t': /* tabs, */ 51 case ' ': /* and spaces in input */ 52 break; /* exit switch */ 53 Enter the letter grades Enter the EO 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 otals for each letter grade are: A: 3 B: 2 C: 3 D: 2 : 1 23 8 he do while Repetition Statement he 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 ormat: do { statement; } while ( condition ); 2

25 26 8 he do while Repetition Statement 8 he do while Repetition Statement Example (letting counter = 1): do { printf( "%d ", counter ); } while (++counter <= 10); Prints the integers from 1 to 10 lowchart of the do while repetition statement action(s) condition 1 /* ig : fig0_0c 2 Using the do/while repetition statement */ 8 int counter = 1; /* initialize counter */ 10 do { 11 printf( "%d ", counter ); /* display counter */ 12 } while ( ++counter <= 10 ); /* end dowhile */ 13 1 return 0; /* indicate program ended successfully */ 15 16 } /* end function main */ 1 2 3 5 6 7 8 10 fig0_0c 27 he break and continue Statements break Causes immediate exit from a while, for, do while or switch statement Program execution continues with the first statement after the structure Common uses of the break statement Escape early from a loop Skip the remainder of a switch statement 28 1 /* ig 11: fig0_11c 2 Using the break statement in a for statement */ 8 int x; /* counter */ 10 /* loop 10 times */ 11 for ( x = 1; x <= 10; x++ ) { 12 13 /* if x is 5, terminate loop */ 1 if ( x == 5 ) { 15 break; /* break loop only if x is 5 */ 16 } /* end if */ 18 printf( "%d ", x ); /* display value of x */ 1 } /* end for */ 20 21 printf( "\nbroke out of loop at x == %d\n", x ); fig0_11c 2 he break and continue Statements continue Skips the remaining statements in the body of a while, for or do while statement Proceeds with the next iteration of the loop while and do while Loop-continuation test is evaluated immediately after the continue statement is executed for Increment expression is executed, then the loop-continuation test is evaluated 30 22 23 return 0; /* indicate program ended successfully */ 2 25 } /* end function main */ 1 2 3 Broke out of loop at x == 5 5

1 /* ig 12: fig0_12c 2 Using the continue statement in a for statement */ 8 int x; /* counter */ 10 /* loop 10 times */ 11 for ( x = 1; x <= 10; x++ ) { 12 13 /* if x is 5, continue with next iteration of loop */ 1 if ( x == 5 ) { 15 continue; /* skip remaining code in loop body */ 16 } /* end if */ 18 printf( "%d ", x ); /* display value of x */ 1 } /* end for */ 20 21 printf( "\nused continue to skip printing the value 5\n" ); 22 23 return 0; /* indicate program ended successfully */ 2 25 } /* end function main */ 1 2 3 6 7 8 10 Used continue to skip printing the value 5 fig0_12c 31 10 Logical Operators &&( logical AND ) Returns if both conditions are ( logical OR ) Returns if either of its conditions are!( logical NO, logical negation ) Reverses the truth/falsity of its condition Unary operator, has one operand Useful as conditions in loops Expression Result &&! 32 33 3 10 Logical Operators 10 Logical Operators expression1 expression2 expression1 && expression2 0 0 0 0 nonzero 0 nonzero 0 0 nonzero nonzero 1 ig 13 ruth table for the && (logical AND) operator Operators Associativity ype ++ -- + -! (type) right to left unary * / % left to right multiplicative + - left to right additive < <= > >= left to right relational expression1 expression2 expression1 expression2 0 0 0 0 nonzero 1 nonzero 0 1 nonzero nonzero 1 ig 1 ruth table for the logical OR ( ) operator ==!= left to right equality && left to right logical AND left to right logical OR?: right to left conditional = += -= *= /= %= right to left assignment, left to right comma ig 16 Operator precedence and associativity expression! expression 0 1 nonzero 0 ig 15 ruth table for operator! (logical negation) 11 Confusing Equality (==) and Assignment (=) Operators Dangerous error Does not ordinarily cause syntax errors Any expression that produces a value can be used in control structures Nonzero values are, zero values are Example using ==: if ( paycode == ) printf( "You get a bonus!\n" ); Checks paycode, if it is then a bonus is awarded 35 11 Confusing Equality (==) and Assignment (=) Operators Example, replacing == with =: if ( paycode = ) printf( "You get a bonus!\n" ); his sets paycode to is nonzero, so expression is, and bonus awarded no matter what the paycode was Logic error, not a syntax error 36 6

11 Confusing Equality (==) and Assignment (=) Operators lvalues Expressions that can appear on the left side of an equation heir values can be changed, such as variable names x = ; rvalues Expressions that can only appear on the right side of an equation Constants, such as numbers Cannot write = x; Must write x = ; lvalues can be used as rvalues, but not vice versa y = x; 37 12 Structured-Programming Summary Se q u e n c e if statement (single selection) switch statement (multiple selection) break break Selection break if else statement (double selection) 38 3 0 12 Structured-Programming Summary 12 Structured-Programming Summary Repetition while statement do while statement for statement Structured programming Easier than unstructured programs to understand, test, debug and, modify programs Rules for structured programming Rules developed by programming community Only single-entry/single-exit control structures are used Rules: 1 Begin with the simplest flowchart 2 Stacking rule: Any rectangle (action) can be replaced by two rectangles (actions) in sequence 3 Nesting rule: Any rectangle (action) can be replaced by any control structure (sequence, if, if else, switch, while, do while or for) Rules 2 and 3 can be applied in any order and multiple times 1 2 12 Structured-Programming Summary 12 Structured-Programming Summary Rule 1 - Begin with the simplest flowchart Rule 2 - Any rectangle can be replaced by two rectangles in sequence Rule 3 - Replace any rectangle with a control structure Rule 3 Rule 2 Rule 2 Rule 2 Rule 3 Rule 3 7

3 12 Structured-Programming Summary 12 Structured-Programming Summary Stacked b uilding b lo cks Nested build ing blocks igure 23 An unstructured flowchart Overla pping b uilding blocks (Illega l in structured pro gra ms) 5 12 Structured-Programming Summary All programs can be broken down into 3 controls Sequence handled automatically by compiler Selection if, if else or switch Repetition while, do while or for Can only be combined in two ways Nesting (rule 3) Stacking (rule 2) Any selection can be rewritten as an if statement, and any repetition can be rewritten as a while statement 8