Final Review1 Final Exam l Final Exam: Thursday December 15, 2005 at 8:30 pm in room MP-008, the regular classroom. If you can not make it to the exam.

Slides:



Advertisements
Similar presentations
Variables in C Amir Haider Lecturer.
Advertisements

Introduction to C Programming
True or false A variable of type char can hold the value 301. ( F )
C Programming Basics Lecture 5 Engineering H192 Winter 2005 Lecture 05
C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.
CMSC 104, Version 8/061L15Switch.ppt The switch Statement Topics Multiple Selection switch Statement char Data Type and getchar( ) EOF constant Reading.
CMSC 104, Version 8/061L22Arrays1.ppt Arrays, Part 1 of 2 Topics Definition of a Data Structure Definition of an Array Array Declaration, Initialization,
CMSC 104, Version 8/061L18Functions1.ppt Functions, Part 1 of 4 Topics Using Predefined Functions Programmer-Defined Functions Using Input Parameters Function.
CHAPTER 5: CONTROL STRUCTURES II INSTRUCTOR: MOHAMMAD MOJADDAM.
Lecture 4 C Program Control Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education Inc.
CMSC 104, Version 8/061L11Relational&LogicalOps.ppt Relational and Logical Operators Topics Relational Operators and Expressions The if Statement The if-else.
C STRUCTURES. A FIRST C PROGRAM  #include  void main ( void )  { float height, width, area, wood_length ;  scanf ( "%f", &height ) ;  scanf ( "%f",
CMSC 1041 Functions II Functions that return a value.
Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics.
Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.
CMSC 104, Version 9/011 The switch Statement Topics Multiple Selection switch Statement char Data Type and getchar( ) EOF constant Reading Section 4.7,
The ‘while’ loop ‘round and ‘round we go.
CMSC 1041 More Loops ‘for’ loops and ‘do-while’ loops.
CMCS 104, Lecture 25 - REVIEW1 Review l Read textbook chapters l Read Lectures l General Programming Tips: ouse Top-Down Design ouse Incremental.
Variables in C Topics  Naming Variables  Declaring Variables  Using Variables  The Assignment Statement Reading  Sections
Variables in C Topics  Naming Variables  Declaring Variables  Using Variables  The Assignment Statement Reading  Sections
CMSC 104, Version 8/061L09VariablesInC.ppt Variables in C Topics Naming Variables Declaring Variables Using Variables The Assignment Statement Reading.
CMSC 104, Section 301, Fall Lecture 18, 11/11/02 Functions, Part 1 of 3 Topics Using Predefined Functions Programmer-Defined Functions Using Input.
C Program Control September 15, OBJECTIVES The essentials of counter-controlled repetition. To use the for and do...while repetition statements.
L131 Assignment Operators Topics Increment and Decrement Operators Assignment Operators Debugging Tips rand( ) math library functions Reading Sections.
UMBC CMSC 104 – Section 01, Fall 2016
Chapter 4 C Program Control Part I
2008/11/19: Lecture 18 CMSC 104, Section 0101 John Y. Park
Functions, Part 2 of 2 Topics Functions That Return a Value
Variables and Arithmetic Operators in JavaScript
CMSC 104, Section 4 Richard Chang
Introduction to C Programming
The C “switch” Statement
Arrays, Part 1 of 2 Topics Definition of a Data Structure
2008/10/01: Lecture 8 CMSC 104, Section 0101 John Y. Park
CMSC 104, Section 4 Richard Chang
The C “switch” Statement
Character Set The character set of C represents alphabet, digit or any symbol used to represent information. Types Character Set Uppercase Alphabets A,
Final Exam Final Exam: Thursday Dec 13th, 2001 at 8:30 pm in SS-111, the regular classroom.
Variables in C Topics Naming Variables Declaring Variables
Structured Program
Introduction to C Programming
The switch Statement Topics Multiple Selection switch Statement
The switch Statement Topics Multiple Selection switch Statement
3 Control Statements:.
The while Looping Structure
Variables in C Topics Naming Variables Declaring Variables
The ‘while’ loop ‘round and ‘round we go.
Arrays, Part 2 of 2 Topics Array Names Hold Address How Indexing Works
Arrays, Part 1 of 2 Topics Definition of a Data Structure
Assignment Operators Topics Increment and Decrement Operators
UMBC CMSC 104 – Section 01, Fall 2016
Assignment Operators Topics Increment and Decrement Operators
Variables in C Declaring , Naming, and Using Variables.
Arrays, Part 1 of 2 Topics Definition of a Data Structure
Arrays, Part 1 of 2 Topics Definition of a Data Structure
Arrays, Part 1 of 2 Topics Definition of a Data Structure
Arrays I Handling lists of data.
Arrays, Part 2 of 2 Topics Array Names Hold Address How Indexing Works
Variables in C Topics Naming Variables Declaring Variables
The switch Statement Topics Multiple Selection switch Statement
2008/10/01: Lecture 8 CMSC 104, Section 0101 John Y. Park
The while Looping Structure
2008/11/19: Lecture 18 CMSC 104, Section 0101 John Y. Park
Variables in C Topics Naming Variables Declaring Variables
Arrays, Part 1 of 2 Topics Definition of a Data Structure
Variables in C Topics Naming Variables Declaring Variables
Arrays, Part 1 of 2 Topics Definition of a Data Structure
Assignment Operators Topics Increment and Decrement Operators
Variables in C Topics Naming Variables Declaring Variables
Presentation transcript:

Final Review1 Final Exam l Final Exam: Thursday December 15, 2005 at 8:30 pm in room MP-008, the regular classroom. If you can not make it to the exam tell me after class today. Only critical excuses will be honored.

Final Review2 Using Variables l You may declare variables in C. l The declaration includes the data type you need. l Examples of variable declarations: int meatballs ; float area ;

Final Review3 Declaring Variables l When we declare a variable: o space in memory is set aside to hold that data type o That space is associated with the variable name o Visualization of the declaration int meatballs ; meatballs FE07

Final Review4 Naming Conventions (continued) l Use all uppercase for symbolic constants ( #define ) Example: PI (#define PI ) l Function names follow the same rules as variables

Final Review5 Case Sensitive l C is case sensitive o It matters whether something is upper or lower case o Example: area is different than Area which is different than AREA

Final Review6 More Variables l Predefined types in C l Integers o int, long int, short int l Floating point o float, double l Characters o char

Final Review7 Keywords in C l auto break l case char l const continue l default do l double else l enum extern l float for l goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

Final Review8 Which Are Legal Identifiers ? AREA area_under_the_curve 3D num45 Last-Chance #values x_yt3 pi num$ %done lucky***

Final Review9 Arithmetic Operators Name Operator Example Addition +num1 + num2 Subtraction -initial - spent Multiplication *fathoms * 6 Division /sum / count Modulus %m % n

Final Review10 Modulus % l The expression m % n yields the remainder after m is divided by n. l Modulus is an integer operation. - Both operands MUST be integers. l Examples :17 % 5 = 2 6 % 3 = 0 9 % 2 = 1 5 % 8 = 5

Final Review11 Integer Division l If both operands of a division expression are integers, you get an integer answer. The fractional portion is thrown away. l Examples : 17 / 5 = 3 4 / 3 = 1 35 / 9 = 3 l Division where one operand is a floating point number will produce a floating point answer. Automatic promotion.

Final Review12 Arithmetic Operators Rules of Operator Precedence Operator(s) Precedence & Associativity ( )Evaluated first. If nested - innermost first. If on same level - left to right. * / % Evaluated second. If many, they are evaluated left to right + -Evaluated third. If there are several, evaluated left to right. =Evaluated last, right to left.

Final Review13 Relational Operators <less than >greater than < =less than or equal to > =grater than or equal to = =is equal to !=is not equal to Relational expressions evaluate to the int value 1 (True) or the int value 0 (False) All of these operators are called binary operators because they take two expressions as operands

Final Review14 True or False l Arithmetic expressions also evaluate to true of false. l Any expression that has a zero value is false. ( 0 ) is False l Any expression that has a non-zero value is true. ( 1 ) is True

Final Review15 Structured Programming l All programs can be written in terms of only 3 control structures o The sequence structure – Unless otherwise directed, the statements are executed in the order in which they are written. o The selection structure – Used to choose among alternative courses of action o The repetitive structure – Allows that an action is to be repeated while some condition remains true.

Final Review16 A Selection Structure the if statement if ( condition is “true” ) { statement(s) } if ( value = = 0 ) { printf (“The value you entered was zero\n”); }

Final Review17 Example of if - else if ( value = = 0 ) { printf (“The value you entered was zero\n”); } else { printf (“You didn’t enter a zero\n”); }

Final Review18 Example if ( value = = 0 ) { printf (“The value you entered was zero\n”); } else if ( value < 0 ) { printf (“%d is negative.\n”, value); } else { printf (“%d is positive.\n”, value); }

Final Review19 Gotcha int a = 2; if (a = 1) { printf (“ a is one \n”); } else if (a == 2) { printf (“ a is two \n ”); } else { printf (“ The vaue of a is %d \n”, a); }

Final Review20 Our example while loop children = 10 ; cookies = 1024 ; while ( children > 0 ) { children = children - 1; cookies = cookies / 2 ; }

Final Review21 Using a Sentinel Value l We could let the user keep entering the grades and when he’s done enter some special value that signals us that he’s done. l This special signal value is called a sentinel value. l We have to make sure that the value we choose as the sentinel isn’t a legal grade. (ie. can’t use 0 as the sentinel )

Final Review22 The Priming Read l When we use a sentinel value to contol a while loop, we have to get the first value from the user before we encounter the loop so that it will be tested and the loop can be entered. l This is known as a priming read. l We have to give significant thought to the initialization of variables, the sentinel value and getting into the loop.

Final Review23 Pseudocode for Using a Sentinel to End a while Loop’s Execution Initialize total to 0 Initialize counter to 0 Get the first grade from the user While the grade != the sentinel value Add grade to total Add 1 to counter Get the next grade (could be sentinel) average = total / counter Print the average

Final Review24 The cast operator ( ) l We can use a cast operator to create a temporary value of the desired type, to be used in a calculation. l Does NOT change the variable’s type or how it is stored. l Is only good for the statement it’s in. l Often used to avoid integer division. l Used anytime we want to temporarily change a type for a calculation.

Final Review25 Using a Sentinel (continued) while (grade != -1) { total = total + grade ; counter = counter + 1 ; printf (“Enter grade, -1 to end : “); scanf (“%d”, &grade); } average = ( float ) total / counter ; printf (“The average was %.2f\n”, average) ; }

Final Review26 Increment and Decrement Operators l The Increment Operator ++ l The Decrement Operator -- l Precedence - lower than (), but higher than * / and % l Associativity - right to left l Increment and decrement operators can only be applied to variables, NOT to constants or expressions

Final Review27 Post-Increment Operator l The position of the ++ determines WHEN the value is incremented. If the ++ is after the variable then the incrementing is done last. int amount, count; count = 3; amount = 2 * count++; l amount gets the value of 2 * 3 or 6 and then 1 gets added to count l So after executing the last line, amount is 6 and count is 4.

Final Review28 Pre-Increment Operator l If the ++ is before the variable then the incrementing is done first. int amount, count; count = 3; amount = 2 * ++count; l 1 gets added to count first, then amount gets the value of 2 * 4 or 8 l So after executing the last line, amount is 8 and count is 4.

Final Review29 Decrement Operator l If we want to subtract one from a variable, we can say: count = count - 1; l Programs can often contain statements that decrement variables, so to save on typing, C provides these shortcuts : count- - ; OR - - count; They do the same thing. Either of these statements change the value of count by subtracting one from it.

Final Review30 The for loop Repetitive Structure l The for loop handles details of the counter-controlled loop automatically l The initialization of the the loop control variable, termination conditional test and modification are handled in for loop structure for ( i = 1; i < 11; i++) { initialization modification } test

Final Review31 A for loop that counts from 0 to 10 for (i = 0; i < 11 ; i++) { printf (“%d”, i); } printf (“\n”);

Final Review32 do-while example do { printf (“Enter a positive number: “); scanf (“%d”, &num); if (num < = 0) { printf (“ \n That is not positive, try again \n ”); } } while (num <= 0);

Final Review33 for vs while l use a for loop when your program “knows” exactly how many times to loop l use a while loop when there is a condition that will terminate your loop

Final Review34 Nested for loops for (i = 1; i < 5; i++) { for (j = 1; j < 3; j+) { if (j % 2 = = 0) { printf (“O”); } else { printf (“X”); } printf (“\n”); } How many times is the ‘if’ statement executed? What is the output ??

Final Review35 The char data type l The char data type holds a single characterchar ch; l The char is held as a one-byte integer in memory. The ASCII code is what is actually stored, so we can use them as characters or integers, depending on our purpose l Use scanf (“%c”, &ch); to input 1 char

Final Review36 Character Example #include main ( ) { char ch; printf (“Enter a character: “); scanf (“%c”, &ch); printf (“The value of %c is %d.\n”, ch, ch); } If the user entered an A the output would be The value of A is 65.

Final Review37 The getchar ( ) function l We can also use the getchar() function that is found in the stdio library l The getchar ( ) function reads one charcter from stdin and returns that character (value) l The value can then be stored in either a char variable or an integer variable

Final Review38 getchar () example #include main ( ) { char grade; printf (“Enter a letter grade: “); grade = getchar ( ); printf (“\nThe grade you entered was %c.\n”, grade); }

Final Review39 switch example switch (day) { case 0: printf (“Sunday\n”); break; case 1: printf (“Monday\n”); break; case 2: printf (“Tuesday\n”); break; case 3: printf (“Wednesday\n”); break; case 4: printf (“Thursday\n”); break; case 5: printf (“Friday\n”); break; case 6: printf (“Saturday\n”); break; default: printf (“Error -- unexpected value for day\”); break; }

Final Review40 break l The last statement of each ‘case’ in the switch should be (99 % of the time) break; l The break causes program control to jump to the right brace of the switch l Without the break, the code flows into the next case. This is almost never what you want.

Final Review41 #define EOF l getchar( ) is usually used to get characters from a file until the “end of file” is reached l The value used to indicate the end of file varies from system to system. It is “system dependent”. l But, regardless of the system we’re using, there is a #define in stdio library for EOF

Final Review42 Logical Operators l Logical operators are used for combining condition l &&is ANDif ( (x > 5) && (y < 6) ) l || is ORif ( (z == 0) || (x > 10) ) l ! is NOTif (! (bob >42) )

Final Review43 Example of || if (grade == ‘D’ || grade == ‘F’) { printf (“See you next semester!\n”); }

Final Review44 Operator Precedence & Associativity ( )left to right/inside-out ! + (unary) - (unary) (type)right to left * / %left to right + (addition) - (subtraction)left to right >=left ot right == !=left to right &&left to right ||left to right = += -= *= /= %=right to left, (comma)right to left

Final Review45 Examining PrintMessage #include void PrintMessage (void);function Prototype main ( ) { PrintMessage ( );function call } void PrintMessage (void)function header { printf (“A message for you:\n\n”);function printf (“Have a Nice Day!\n”); body }

Final Review46 Another version of PrintMessage void PrintMessage (int counter); main ( ) { int num; printf (“Enter an integer: “); scanf (“%d”, &num); PrintMessage (num); one argumentmatches the one } of type intformal parameter of type int void PrintMessage (int counter) { int i; for (i = 0; i < counter; i++) { printf (“Have a nice day\n\n”); }

Final Review47 Using AverageTwo #include float AverageTwo (int num1, int num2); main ( ) { float average; int num1 = 5, num2 = 8; average = AverageTwo (num1, num2); printf (“The average of %d and %d is %f\n”, num1, num2, average); } float AverageTwo (int num1, int num2) { float average; Promoted to float average = (num1 + num2) / 2.0; return average; }

Final Review48 Local Variables l Functions only “see” their own local variable. This includes main ( ) l The variables that are passed to the function are matched with the formal parameters in the order they are passed l The parameters are declarations of local variables. The values passed are assigned to those variables l Other local variables can be declared within the function

Final Review49 Data Types and Conversion Specifiers Data Type printf scanf conversion conversion float%f%f double%f%lf long double%Lf%Lf int%d%d long int%ld%ld unsigned int%u%u unsigned long int%lu%lu shortint%hd%hd char%c%c

Final Review50 Commonly Used Header Files header fileContains function prototypes for the standard input/output library functions & information used by them the math library functions the conversion of number to text, text to number, memory allocation, random numbers and other utility functions maninpulating time and date functions that test characters for certain properties and that can convert case otherssee page 159 of text

Final Review51 Manipulating what rand() returns l Since rand() returns unsigned integers in a large range, we often have to manipulate the return value to suit our purposes l Suppose we want only random numbers in the range from 0 to 5 o num = rand () % 6 l How about 1 to 6? o num = 1 + rand( ) % 6; l How about 5 to 20? o num = 5 + rand ( ) % 16;

Final Review52 srand ( ) and rand ( ) l The pseudo-random number generator needs an unsigned int as it’s seed l Although it produces what appear to be random numbers, if we use the same seed, we get the same sequence of random numbers l To get different random numbers each time we run our program, we have to give a different seed each time

Final Review53 Array Declarations l int array [5] ; l This declaration sets aside a chunk of memory that’s big enough to hold 5 integers. l It does not initialize those memory locations to 0 or any other value. l Initializing an array may be done with an array initializer, as in : int array [5] = { 5, 2, 6, 9, 3 } ; array

Final Review54 Indexing Array Elements l Values of individual elements can be found by indexing into the array. In our example, array [0] is equal to 5 and array [3] is equal to 9. l The integer in square brackets is called the subscript. l The subscript could also be an expression that evaluates to an integer. l In our example, array is the name of the array.

Final Review55 Filling Arrays l Since many arrays are quite large, using an array initializer is impractical. l Large arrays are often filled using a for loop. for ( i = 0; i < 100; i++) { rolls [ i ] = 0 ; } would set every element of the 100 element array, rolls, to 0.

Final Review56 Using #define for array sizes l We often use the #define to give the sizes of arrays. #define SSIZE 39 #define GSIZE 5 main ( ) { int score [SSIZE], gradeCounter [GSIZE] ; }

Final Review57 Arrays and Pointers l The array name alone (without [ ] ) is just a variable that contains the starting address of the block of memory where the array is held. l A pointer is just a variable that holds an address. l So the array name alone is a pointer to the array. l Pointers have types. If an array is an array of ints, then the name of that array has the type pointer to int or int pointer.

Final Review58 Passing Arrays to Functions l The function prototype : void FillArray ( int array[ ], int numElems); l The function definition header: void FillArray ( int array[ ], int numElems) l The function call: FillArray ( array, SIZE); l Notice that we are passing only the name of the array (an address) and that we aren’t returning anything (the function is void)

Final Review59 Passing an Array to a Function Example #include #define SIZE 4 void FillArray (int array[ ], int numElems) ; main ( ) { int array [SIZE]; FillArray ( array, SIZE); /* Print the elements of the array */ for ( i = 0; i < SIZE; i++) { printf (array[%d] = %d\n”, i, array[ i ] ); } /******************************************* FillArray is a function that will fill each element of any integer array passed to it with a value that is the same as that element’s subscript. *******************************************/ void FillArray (int array[ ], int numElems) { int i; for ( i = 0; i < numElems; i++) { array [i] = i; } array[0] = 0 array[1] = 1 array[2] = 2 array[3] = 3 output

Final Review60 Passing Arrays to Functions l If an individual element of an array such as temper[3] is passed to a function, it is passed by value not address. So the array is not modified. l Not like when &temper[0] or temper is passed.