1 / 52

Lecture 5 Introduction to Programming in C

Lecture 5 Introduction to Programming in C. Arne Kutzner Hanyang University / Seoul Korea. Further loop structures: for structures, do-while statements. for structure. Syntax: For-loops have three loop control statements: Initialization of the loop control variable.

jock
Download Presentation

Lecture 5 Introduction to Programming in C

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. Lecture 5Introduction to Programming in C Arne Kutzner Hanyang University / Seoul Korea

  2. Further loop structures:for structures,do-while statements

  3. for structure • Syntax: • For-loops have three loop control statements: • Initialization of the loop control variable. • Test of the loop repetition condition • Update of the loop variable for(initialization; loop_repetition_condition; update)statement; Introduction to C

  4. for structure with compound • Syntax: for(initialization; loop_repetition_condition; update) { statement_1; statement_2; … statement_n;} Introduction to C

  5. for structure (cont.) • Any for-loop may be represented as while-loop as follows: stat1;while (expr2) {statement; stat3;} for (stat1; expr2; stat3) {statement;} Introduction to C

  6. Example while versus for loop repetition condition initialization i = 0; while (i < N) { printf("*"); i = i + 1; } update loop repetitioncondition updatestatement initialization for (i = 0; i < N; i = i + 1) printf("*"); Introduction to C

  7. Caution: common error • The following loop does not sum up the values from 0 to n. (only up to n – 1) for (i=0; i<n; i = i + 1) sum = sum + i; Introduction to C

  8. Caution (weird C) Adding a semicolon at the end of the for clause before the loop body is a common mistake: int i; for (i = 0; i < 10; i = i + 1); { printf("i is %d", i); } Wrong Introduction to C

  9. do-whileStatement • Syntax • The for and while statements both evaluate the loop repetition condition before the execution of the loop body • The do-while loop checks the repetition condition at the end of the loop body do {statement_1; statement_2; … statement_n;} while (loop_repetition_condition); Introduction to C

  10. while versus do-while do { printf("Enter a letter from A to Z>"); scanf("%c", &letter_choice); } while (letter_choice < 'A' || letter_choice > 'Z'); printf("Enter a letter from A to Z>"); scanf("%c", &letter_choice); while (letter_choice < 'A' || letter_choice > 'Z') { printf("Enter a letter from A to Z>"); scanf("%c", &letter_choice); }; Introduction to C

  11. Caution (weird C) The problem with while, do-while and the semicolon. int i=0; while (i<10); { printf("i is %d", i); i = i + 1; } In the case of the do loop, the following semicolon is needed to end the loop. int i=0; do { printf("i is %d“, i); i = i + 1; } while (i<10); Wrong Correct Introduction to C

  12. break, continue and goto

  13. break and continue Statements • A break statement causes the innermost enclosing loop to be exited immediately. • continue causes the next iteration of the enclosing for, while, or do-while loop to begin. • When continue statement is used in while and do-while loops, then this means that the condition part is executed immediately; in the for loop, control passes to loop variable update step. Introduction to C

  14. Flowchartcontinue statement(for while loop) false Continue condition? true Statement(s) continue; Statement(s) Next Statement Introduction to C

  15. Flowchart break statement (for while loop) false Continue condition? true Statement(s) break; Statement(s) Next Statement Introduction to C

  16. Example continue int sum = 0; int n = 1; while (n <= 100) { if ((n % 2) == 0) { n = n + 1; continue; } sum = sum + n; n = n + 1; } • In the above program the sum of all odd numbers from 1 to 99 is calculated. Introduction to C

  17. The goto statement • General Syntax: goto label; … label:… • The goto statement is only for very special situations and almost never used. If the program flow reaches the goto statement it continues at the position marked with label: Introduction to C

  18. The goto statement (cont.) • Example:for (…) for (…) { … if (disaster) goto error; } …error:error related code Introduction to C

  19. switch Structures

  20. switchstructure • Syntaxswitch (expression) { case const-expr : statements;break;case const-expr : statements;break; … defaultstatements; } Introduction to C

  21. switchstructure • To select one of several alternatives. • Selection is based on the value of an expression. • Expression can be a single value. • The type of expression can be either int or char, but not double. Introduction to C

  22. true case A case A actions break false switch structure / Flow diagram true case B case B actions break false true case N case N actions break false default actions Introduction to C

  23. switchstructure (Example) switch (class) {case 'B':case 'b': printf ("Battleship\n"); break;case 'C':case 'c': printf ("Cruiser\n"); break;case 'D':case 'd': printf ("Destroyer\n"); break;case 'F':case 'f': printf ("Frigate\n"); break;default: printf ("Unknown ship class%c\n", class);} Introduction to C

  24. Conditional Operator, decrement and increment Operators, Shortcut assignments

  25. Conditional Operator • General form:(booleanExp) ? exp1 : exp2 • Example:if (x > 0) y = 1 else y = -1;is equivalent toy = (x > 0) ? 1 : -1; Ternary operator Introduction to C

  26. Increment andDecrement Operators Introduction to C

  27. Increment andDecrement Operators, cont. int i=10; Equivalent to int newNum = 10*i; int newNum = 10*(i++); i = i + 1; int i=10; Equivalent to i = i + 1; int newNum = 10*(++i); int newNum = 10*i; Introduction to C

  28. Shortcut Assignment Operators Operator Example Equivalent +=i+=8i = i+8 -=f-=8.0f = f-8.0 *=i*=8i = i*8 /=i/=8i = i/8 %=i%=8i = i%8 Introduction to C

  29. Functions

  30. Functions: Introduction • Functions are program modules written to • avoid the repetition of identical code parts • solve “a bigger problem” by decomposing it into “smaller problems” • Example:A Function max that delivers the maximum of two values. • Functions • take one or several arguments, • compute some statements and • return a single value Introduction to C

  31. Function Definition in C • Syntax Data type of the returned value Function name(identifier) Formal Arguments data_type identifier (arg_1, arg_2,…) {local variable declarations executable statements} Introduction to C

  32. Function Arguments /Local Variables • Syntax of a single formal argument:data_type identifier • Local variables are variables that are known inside a function only • Different functions may have local variables with identical names Introduction to C

  33. Scope of Local Variables • Scope of a variable: The part of the program where a variable can be referenced. • The scope of a local variable starts from its declaration and continues to the end of the function that contains the variable. Introduction to C

  34. The return statement • Functions return a single value using the return statement.Syntax:return expression ; Introduction to C

  35. Example: max function int max (int i, int j) { int m; if (i > j) m = i; else m = j; return m;} Local variable definition Introduction to C

  36. Function Calls actualarguments • Syntax: function_name(arg1, arg2, …); • Actual arguments may be constants, variables, or expressions. • Example of function callmax(a, b) • Example of function call plus assignmentx = max(a, b); Introduction to C

  37. Example Function Call pass i pass j void main() { int a, b, x; a = 5; b = 2; x = max (a, b); printf("%d", x);} int max (int i, int j) { int m; if (i > j) m = i; else m = j; return m;} Introduction to C

  38. Example Function Call, cont. • The values of a and bare copied to i and j .Graphically: pass 5 The main method The max method a: i: 5 5 pass 2 parameters 2 2 b: j: 5 5 m: x: return value Introduction to C

  39. Call by Value Semantic • Because the arguments are copied in C we talk of a call by value semantic Introduction to C

  40. Function withoutReturned Value • Syntaxvoid fname(arg1, arg2, …) {local variable declarations executable statements} • The keyword void indicates that the function does not return any value Introduction to C

  41. Iterative Programming • The factorial function can be programmed by a for loop as follows: int factorial(int x) { int prod, i; prod = 1; for (i = 1; i <= x; i = i + 1) prod = prod * i; return prod;} • Such a loop-based solution is called a “iterative programming” Introduction to C

  42. Recursion • A function can call itself inside its body.Example factorial function:int factorial(int x) { if (x > 1) return x * factorial(x - 1); else return 1;} • This programming technique is called Recursion Recursive call of factorial Introduction to C

  43. Computing Factorial, cont. Step 9: factorial(4) returns 24 (4*6) Main function:factorial (4) factorial(4) is called in the main factorial (4) = 4*factorial(3) Step 8: factorial(3) returns 6 (3*2) Step 1: factorial(4) calls factorial(3) factorial (3) = 3*factorial(2) Step 7: factorial(2) returns 2 (2*1) Step 2: factorial(3) calls factorial(2) factorial (2) = 2*factorial(1) Step 6: factorial(1) returns 1 (1*1) Step 3: factorial(2) calls factorial(1) factorial (1) = 1*factorial(0) Step 5: factorial(0) returns 1 Step 4: factorial(1) calls factorial(0) factorial (0) = 1 Introduction to C

  44. Function Declarations • Function declaration formatreturn-value-type function-name (arguments'-type); • return-value-type: data type of the result(default int) • void indicates that the function returns nothing • function-name: any valid identifier • Arguments' type: comma separated list of arguments' type Introduction to C

  45. Example: Function declaration and definition in a program A function named example that takes 2 arguments of type double and returns no data, would look like: double example(double, int); int main() { … } double example (double a, int b); { … } Introduction to C

  46. Predefined Library Functions • Functions that are implemented as a part of C toolkit.Example: printf • If a library function is used, then the corresponding header file should be included at the top of the program using an appropriate preprocessor directive.Example: #include <stdio> for printf function. Introduction to C

  47. Some Mathematical Library Functions Defined in math.h Introduction to C

  48. Some Mathematical Library Functions Defined in math.h Defined instdlib.h Introduction to C

  49. Programming Technique:Top-Down Design • A problem-solving method in which a given problem is first broken into its major subproblems. • Then the subproblems are solved to get some solution for the original problem • Subproblems are typically solved by use of functions. Introduction to C

  50. Example Top-Down Design:Structure Chart for drawing a Stick figure ** * * ** /\ / \ / \ ----- /\ / \ / \ Introduction to C

More Related