Homework Any Questions?.

Slides:



Advertisements
Similar presentations
Control Structures.
Advertisements

Chapter 3: Control Flow S. M. Farhad. Statements and Blocks An expression becomes a statement when it is followed by a semicolon Braces { and } are used.
Programming Languages and Paradigms The C Programming Language.
0 Chap. 3 Control Flow 3.1 Statements and Blocks Imperative Programming, B. Hirsbrunner, diuf.unifr.ch/pai/ip Session 4, 3 April if, if … else.
Homework Any Questions?. Statements / Blocks, Section 3.1 An expression becomes a statement when it is followed by a semicolon x = 0; Braces are used.
CS 106 Introduction to Computer Science I 02 / 12 / 2007 Instructor: Michael Eckmann.
1 Lecture 5  More flow control structures  for  do  continue  break  switch  Structured programming  Common programming errors and tips  Readings:
Algorithms and Computing Lecture 3 Control Statements By Dr. M. Tahir Khaleeq.
Fundamentals of C and C++ Programming Control Structures and Functions.
Control Structures – Selection Chapter 4 2 Chapter Topics  Control Structures  Relational Operators  Logical (Boolean) Operators  Logical Expressions.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee C Language Part 2.
CPS120: Introduction to Computer Science Decision Making in Programs.
Chapter 3 Control Flow Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
1 Homework / Exam Turn in HW3 today Exam 1 next class –Open Book / Open Notes –Recommended Use of Book / Notes in Exam: Avoids reliance on “rote memorization”
PHP Conditional Statements Conditional statements in PHP are used to perform different actions based on different conditions. Conditional Statements Very.
CPS120: Introduction to Computer Science Decision Making in Programs.
Current Assignments Homework 2 is available and is due in three days (June 19th). Project 1 due in 6 days (June 23 rd ) Write a binomial root solver using.
Controlling Execution Dong Shao, Nanjing Unviersity.
COMPUTER PROGRAMMING. Iteration structures (loops) There may be a situation when you need to execute a block of code several number of times. In general,
Week 3 - Wednesday.  What did we talk about last time?  Other C features  sizeof, const  ASCII table  printf() format strings  Bitwise operations.
Exam / Homework Exam 1 Starting K&R chapter 4 tonight
1 Loops II. 2 Recall the while Loop int sum = 0; int i = 1;... /* Sum the integers 1 to 10 */ while ( i
Loops cause a section of a program to be repeated a certain number of times. The repetition continues while a condition remains true. When a condition.
 Control Flow statements ◦ Selection statements ◦ Iteration statements ◦ Jump statements.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 8 Java Fundamentals Control Structures Fri.
Statements / Blocks, Section 3.1 An expression becomes a statement when it is followed by a semicolon x = 0; Braces are used to group declarations and.
1 CS428 Web Engineering Lecture 13 Flow Control & Loops (JavaScript - III)
CPS120: Introduction to Computer Science Decision Making in Programs.
Week 3 - Friday.  What did we talk about last time?  Preprocessor directives  Other C features  sizeof, const  ASCII table  printf() format strings.
PHP Condtions and Loops Prepared by Dr. Maher Abuhamdeh.
Information and Computer Sciences University of Hawaii, Manoa
UMBC CMSC 104 – Section 01, Fall 2016
Programmation impérative - Prof. Béat Hirsbrunner
Week 3 - Friday CS222.
Control Flow (Chapter 3)
Statements (6 of 6) A statement causes an action to be performed by the program. It translates directly into one or more executable computer instructions.
Programming Languages and Paradigms
Chapter 12 Variables and Operators
EGR 2261 Unit 4 Control Structures I: Selection
Chapter 4 - Program Control
Lecture 13 & 14.
Programming Paradigms
Week 4 - Monday CS222.
Flow of Control.
Control Structures – Selection
11/10/2018.
Flow of Control.
Java - Data Types, Variables, and Arrays
Chapter 6 Decision Making and Looping
Loops in C.
Flow of Control.
CSC215 Lecture Flow Control.
CSC215 Lecture Control Flow.
Your questions from last session
Flow of Control.
Chapter 4: Control Structures I (Selection)
C Programming Getting started Variables Basic C operators Conditionals
The Java switch Statement
1-6 Midterm Review.
ECE 103 Engineering Programming Chapter 18 Iteration
Chapter 4 - Program Control
Decision making and control functions
Programming Languages and Paradigms
Chap 7. Advanced Control Statements in Java
CSC215 Lecture Control Flow.
Controlling Program Flow
Lecture 3 More on Flow Control, More on Functions,
Programming Language  C Control Flow
Presentation transcript:

Homework Any Questions?

Statements / Blocks, Section 3.1 An expression becomes a statement when it is followed by a semicolon x = 0; Braces are used to group declarations and statements into a compound statement { y = 1; } /* Note: No semicolon after right brace */ Scope of the variable in the statement block Show an example Why do we need it? The variables defined in the block, they will be removed from the stack

if statements, Section 3.2 Shortcut for “equal and not equal to 0” tests Can use: if (expression) if (!expression) In place of if (expression != 0) if (expression == 0) !expr == not expr

Else-if, Section 3.3 Consider cascading else-if sequence: if (i == 1) /* NOTE: Only one will execute */ statement-1; else if (i == 2) statement-2; . . . else if (i == 49) statement-49; else statement-50; /* Default or "catch-all" */ Use indentation

Switch, Section 3.4 Also have switch statement **LIKE JAVA** switch (i) { /* in special limited situations */ case 1: statement-1; break; case 2: statement-2; . . . case 49: statement-49; default: statement-50; } The break is optional. If you don’t type break, it will continue to execute next cases. So it starts from where you want You can put a printf in default for better debugging Switch(c = getchar()){ Case ‘a’: …; }

Switch The way the if-else cascade works is to test Test if i == 1 If that fails, test if i == 2. If that fails, test if i == 3. . . . When we test i == 27, we have done 26 prior tests. With the switch statement, we achieve the same effect, but probably faster: Usually compiled into assembly language as a jump table Array of "go to" instructions subscripted by the value of i If i = 27 we "look up" the “go to” at address 27 in table And execute only that one “go to” Note the need for break statements. The default action is to cascade down to the code for the next case!!

Loops –while and for, Section 3.5 This “for” statement” for (expr1; expr2; expr3) statement; Is equivalent to this “while” statement: expr1; while (expr2) { expr3; }

For loop Any part of for loop can be left out. for (init; loop-test; increment) If init or increment expression is left out, just not evaluated (program must initialize and increment by other means) If loop-test is left out, assumes permanently true condition and loops forever. (program must break or goto to end to exit the loop)

Comma operator: "," Most often used in for loop statement Might have been useful for reverse () in hw2 for (i = 0, j = strlen(s) - 1; i < j; i++, j--) Pairs of expressions separated by "," are evaluated left-to-right and type/value of expression is type/value of result. See K & R, pg 53, Precedence Table

Do … While, Section 3.6 The do … while tests at the end of the loop statement(s); } while (expression); Executes the statement(s) once even if the “while” loop expression is false upon entry Used much less often than “for” and “while”

Break and Continue, Sections 3.7 The break statement works for: for loop / while loop / do loop and switch. Brings you to end of loop or switch statement ONE LEVEL ONLY. The continue statement works for: for loop / while loop / do loop, but not switch! It causes next iteration of enclosing loop to begin Continue -> it will skip that iteration and continue with next iteration Show an example

GOTO, and Labels, Section 3.8 The goto statement breaks TWO OR MORE levels It “goes to” a statement with a label, e.g. ret: It may be OK to use goto if you always do it in a FORWARD direction. (See axtoi, if use a goto ret; then don't need flag or test in “for” loop.) K&R, pg 66: “goto should be used rarely, if at all.” Note: Project coding standards may prohibit “goto”! You can use GOTO and it’s fine with the compiler but I recommend you not to do it Why it’s not good to use it? You can not trace from where you came here. You can’t debug. You don’t know the client tries to access this line of code

Binary Search /* binsearch: find x in v[0] <= v[1] <= . . <= v[n-1] returns subscript of x if found, -1 if not */ int binsearch ( int x, int v[ ], int n) { int low, high, mid; low = 0; high = n - 1; For binary search your data should be sorted -> x[0] < x[1] < … Start from first element to the end Show on the board

Binary Search while ( low <= high) { mid = (low + high)/2; if (x < v[mid]) high = mid - 1; else if (x > v[mid]) low = mid + 1; else /* found match */ return mid; } return -1; /* no match */ Complexity -> log(n)

Functions / Program Structure C makes functions efficient and easy to use Program != a few big functions Program = = many small functions Functions may reside in separate source files Source files compiled and loaded separately Some times you see your main function is getting bigger and bigger and more complex, so it’s better to divide it to some functions Divide your big functions

Function Prototypes Return type, function name, and ( ) Argument List int foo ( ); float foo ( ); Argument List List of Types and optionally Variable Names int foo (int *, int, float); int foo (int array[], int i, float j); Output arguments usually listed first

Function Prototypes Special case for null argument lists Always code function prototype as: int foo (void); Keeps compiler parameter checking enabled Demonstration of bad example: int foo (); x = foo (i, j, k); /* compiler won’t catch! */ Compiler will not find the mistake if you don’y use void

Function Declarations Same as function prototype, except: Must have variable names in argument list Followed by { function statements; } not ; Example: int foo (int array[], int i, float j) { function statements; }