320 likes | 452 Views
This chapter focuses on the essential concepts of control structures and data files in C programming. It covers fundamental programming techniques, including sequence, selection (if, if-else, switch statements), and repetition (while, do-while, for loops). Additionally, the chapter delves into conditional expressions, relational operators, logical operators, and operator precedence. Understanding these concepts is crucial for developing efficient algorithms and solving complex engineering problems. Students will also learn about data file handling techniques crucial for I/O operations in C.
E N D
Engineering Problem Solving with C Fundamental Concepts Chapter 3 Control Structures and Data Files INTEC CS160 - Jeanine Ingber
Algorithm Development INTEC CS160 - Jeanine Ingber
no yes Structured Programming • Sequence • Selection • Repetition no yes INTEC CS160 - Jeanine Ingber
Conditional Expressions INTEC CS160 - Jeanine Ingber
Relational Operators • == equality • != non equality • < less than • > greater than • <= less than equal to • >= greater than equal to INTEC CS160 - Jeanine Ingber
Logical Operators • ! not • & and • || or INTEC CS160 - Jeanine Ingber
Operator Precedence • < <= > >= • == != • && • || INTEC CS160 - Jeanine Ingber
Selection Statements INTEC CS160 - Jeanine Ingber
Selection Statements • if • if else • switch INTEC CS160 - Jeanine Ingber
If statement • if(Boolean expression) statement; //single statement • if(Boolean expression) { //more than one statement statement1; . statement n; } INTEC CS160 - Jeanine Ingber
If statement - examples • if (x>0) • k++; • if(x>0) • { • x=sqrt(x); • k++; • { INTEC CS160 - Jeanine Ingber
if - else statement • if(Boolean expression) statement; else statement; • if(Boolean expression) { statement block } else { statement block } INTEC CS160 - Jeanine Ingber
nested if-else if(x > y) if(y < z) k++; else m++; else j++; INTEC CS160 - Jeanine Ingber
Practice! int x=9, y=7, z=2, k=0, m=0, j=0; if(x > y) if(y < z) k++; else m++; else j++; What are the values of j, k and m? INTEC CS160 - Jeanine Ingber
Switch Statement • switch(expression) • { • case constant: • statement(s); • break; • case constant: • statement(s); • break; • /* default is optional*/ • default: • statement(s); • } INTEC CS160 - Jeanine Ingber
Switch Statement • Expression must be of type integer or character • The keyword case must be followed by a constant • break statement is required unless you want all subsequent statements to be executed. INTEC CS160 - Jeanine Ingber
Practice! • Convert the following nested if/else statements to a switch statement: • if (rank==1 ΩΩ rank==2) • printf("Lower division \n"); • else • { • if (rank==3 ΩΩ rank==4) • printf("Upper division \n"); • else • { • if (rank==5) • printf("Graduate student \n"); • else • printf("Invalid rank \n"); • } • } INTEC CS160 - Jeanine Ingber
Loop Structures INTEC CS160 - Jeanine Ingber
repetition • while statement • do while statement • for statement INTEC CS160 - Jeanine Ingber
while statement • while(expression) statement; • while(expression) { statement; statement; . } INTEC CS160 - Jeanine Ingber
do while • do statement; while(expression); • do { statement1; statement2; . } while(expression); • note - the expression is tested after the statement(s) are executed, so statements are executed atleast once. INTEC CS160 - Jeanine Ingber
for statement • for(initialization; test; increment/decrement) statement; • for(initialization; test; increment/decrement) { statement; statement; . } INTEC CS160 - Jeanine Ingber
for statement initalize test increment/ decrement true statement(s) statement(s) INTEC CS160 - Jeanine Ingber
for statement - examples int sum =0; for(int I=1;I<10;I+=2) sum = sum + I; int fact =1; for(int n=5;n>1;n- -) fact = fact * n; INTEC CS160 - Jeanine Ingber
Practice! Determine the number of times that each of the following for loops are executed. for (k=3; k<=20; k++) { statements; } for (k=3; k<=20; ++k) { statements; } for (count=-2; count<=14; count++) { statements; } INTEC CS160 - Jeanine Ingber
break statement • break; • terminates loop • execution continues with the first statement following the loop INTEC CS160 - Jeanine Ingber
continue statement • continue; • forces next iteration of the loop, skipping any remaining statements in the loop INTEC CS160 - Jeanine Ingber
Data Files INTEC CS160 - Jeanine Ingber
Data Files Each data file must have a filepointer • file pointer must be defined • FILE *sensor1; • FILE *balloon; • file pointer must be associated with a specific file using the fopen function • sensor1 = fopen(“sensor1.dat”, “r”); • balloon = fopen(“balloon.dat”, “w”); INTEC CS160 - Jeanine Ingber
I/O Statements • Input file - use fscanf instead of scanf • fscanf(sensor1, “%1f %lf”, &t, &motion); • Output file - use fprint instead of printf • fprintf(balloon, “%f %f %f\n”, time, height, velocity); INTEC CS160 - Jeanine Ingber
Reading Data Files • counter controlled loop • for loop • sentinel controlled loop • while loop • end of file controlled loop • while loop INTEC CS160 - Jeanine Ingber