Homework –Continue Reading K&R Chapter 2 –We’ll go over HW2 –HW3 is posted Questions?

Slides:



Advertisements
Similar presentations
Chapter 10 C Structures, Unions, Bit Manipulations and Enumerations Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc.
Advertisements

CSci 1130 Intro to Programming in Java
Enumerated data type & typedef. Enumerated Data Type An enumeration consists of a set of named integer constants. An enumeration type declaration gives.
ENUMERATED, typedef. ENUMERATED DATA TYPES An enumeration consists of a set of named integer constants. An enumeration type declaration gives the name.
Primitive Data Types There are a number of common objects we encounter and are treated specially by almost any programming language These are called basic.
Data Types in Java Data is the information that a program has to work with. Data is of different types. The type of a piece of data tells Java what can.
10-Jun-15 Just Enough Java. Variables A variable is a “box” that holds data Every variable has a name Examples: name, age, address, isMarried Variables.
1 Homework Assignments Turn in HW1 (If not done yet, catch up!) Questions about HW1? Anyone still stuck on apply / UNIX account? Everyone have the books?
Introduction to Computers and Programming Lecture 4: Mathematical Operators New York University.
1 Chapter 4 Language Fundamentals. 2 Identifiers Program parts such as packages, classes, and class members have names, which are formally known as identifiers.
Aalborg Media Lab 21-Jun-15 Software Design Lecture 2 “ Data and Expressions”
0 Chap. 2. Types, Operators, and Expressions 2.1Variable Names 2.2Data Types and Sizes 2.3Constants 2.4Declarations Imperative Programming, B. Hirsbrunner,
Bit Operations C is well suited to system programming because it contains operators that can manipulate data at the bit level –Example: The Internet requires.
A bit can have one of two values: 0 or 1. The C language provides four operators that can be used to perform bitwise operations on the individual bits.
0 Chap. 2. Types, Operators, and Expressions 2.1Variable Names 2.2Data Types and Sizes 2.3Constants 2.4Declarations System-oriented Programming, B. Hirsbrunner,
String Escape Sequences
Homework Reading –Finish K&R Chapter 1 (if not done yet) –Start K&R Chapter 2 for next time. Programming Assignments –DON’T USE and string library functions,
C Programming. Chapter – 1 Introduction Study Book for one month – 25% Learning rate Use Compiler for one month – 60%
1 Chapter 10 Various Topics User defined Types Enumerated Types Type Casting Syntactic Sugar Type Coercion.
Homework Reading Programming Assignments
Types, Operators and Expressions CSE 2031 Fall /5/2015 3:59 PM.
© Janice Regan, CMPT 128, Jan CMPT 128: Introduction to Computing Science for Engineering Students Data representation and Data Types Variables.
Java Primitives The Smallest Building Blocks of the Language (corresponds with Chapter 2)
1 Homework Turn in HW2 tonight HW3 is on-line already Questions?
CHAPTER:8 OPERATORS AND EXPRESSION IN C++ Prepared By Prepared By : VINAY ALEXANDER ( विनय अलेक्सजेंड़र ) PGT(CS),KV JHAGRAKHAND.
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
CompSci 100E 2.1 Java Basics - Expressions  Literals  A literal is a constant value also called a self-defining term  Possibilities: o Object: null,
1 Exam / Homework Exam 1 in Class 10 –Open book / open notes HW3 due next class HW4 will be on-line soon. Finishing Chapter 2 of K&R. We will go through.
Operators Precedence - Operators with the highest precedence will be executed first. Page 54 of the book and Appendix B list C's operator precedence. Parenthesis.
Compound Statements If you want to do more than one statement if an if- else case, you can form a block of statements, or compound statement, by enclosing.
PHY-102 SAPVariables and OperatorsSlide 1 Variables and Operators In this section we will learn how about variables in Java and basic operations one can.
Data Types Declarations Expressions Data storage C++ Basics.
CSE 232: C++ memory management Overview of Arrays Arrays are the simplest kind of data structure –One item right after another in memory (“contiguous range”
1 Homework –Continue Reading K&R Chapter 2 –We’ll go over HW2 at end of class today –Continue working on HW3 Questions?
School of Computer Science & Information Technology G6DICP - Lecture 4 Variables, data types & decision making.
Starting Chapter 2 K&R. Read ahead.. Call by Value vs Call by Reference Simple variables passed as function parameters in C are actually only copies on.
Programming in Java (COP 2250) Lecture 4 Chengyong Yang Fall, 2005.
Operators and Expressions. 2 String Concatenation  The plus operator (+) is also used for arithmetic addition  The function that the + operator performs.
 In the java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this,
© 2007 Pearson Addison-Wesley. All rights reserved2-1 Character Strings A string of characters can be represented as a string literal by putting double.
0 Chap.2. Types, Operators, and Expressions 2.1Variable Names 2.2Data Types and Sizes 2.3Constants 2.4Declarations 2.5Arithmetic Operators 2.6Relational.
Expressions and Order of Operations Operators – There are the standard operators: add, subtract, divide, multiply – Note that * means multiply? (No times.
Chapter 2: Data and Expressions. Variable Declaration In Java when you declare a variable, you must also declare the type of information it will hold.
Announcements Assignment 2 Out Today Quiz today - so I need to shut up at 4:25 1.
CS113 Introduction to C Instructor: Ioannis A. Vetsikas Lecture 2 : August 28 webpage:
OPERATORS IN C CHAPTER 3. Expressions can be built up from literals, variables and operators. The operators define how the variables and literals in the.
© 2004 Pearson Addison-Wesley. All rights reserved August 27, 2007 Primitive Data Types ComS 207: Programming I (in Java) Iowa State University, FALL 2007.
Chapter 12 Variables and Operators
Chap. 2. Types, Operators, and Expressions
University of Central Florida COP 3330 Object Oriented Programming
Primitive Data Types August 28, 2006 ComS 207: Programming I (in Java)
University of Central Florida COP 3330 Object Oriented Programming
Multiple variables can be created in one declaration
Operators and Expressions
Chapter 12 Variables and Operators
Escape Sequences What if we wanted to print the quote character?
Types, Operators and Expressions
Introduction to Primitive Data types
Gantt Chart Enter Year Here Activities Jan Feb Mar Apr May Jun Jul Aug
Building Java Programs
Homework Homework Continue Reading K&R Chapter 2 Questions?
Your questions from last session
Homework Reading Programming Assignments Finish K&R Chapter 1
SSEA Computer Science: Track A
CS 240 – Lecture 7 Boolean Operations, Increment and Decrement Operators, Constant Types, enum Types, Precedence.
Homework Finishing Chapter 2 of K&R. We will go through Chapter 3 very quickly. Not a lot is new. Questions?
Homework Homework Questions? Continue Reading K&R Chapter 2
Problem 1 Given n, calculate 2n
Introduction to Primitive Data types
Chapter 12 Variables and Operators
Presentation transcript:

Homework –Continue Reading K&R Chapter 2 –We’ll go over HW2 –HW3 is posted Questions?

Review HW2 Solution Let’s go over solutions to HW2 –Learn to write pseudo code effectively –Learn to think about the problem logically –Learn to write C code from pseudo code These are key for being a good programmer

trim Pseudo code for the trim program while there is still a line to process for each character starting at the end of the line find the first non blank character or the beginning of the line if a non-blank character is found add an EOL and a terminating zero and print out the string

trim While writing the pseudo code, think about: –A good strategy (e.g. scan line from the end backwards rather than trying to go forwards) –Stopping each scan (e.g. not blank, not tab, etc) –What’s needed to make a shorter line printable (e.g. add a new EOL and terminating zero) –What indicates that it is time to stop looping on input lines (e.g. return from getline > 0 is false)

trim C code for the trim program while ((len = getline(line, MAXLINE)) > 0) { stop = 0; for (i=len-1; i>=0 && !stop; --i) { if (line[i] != ' ' && line[i] != '\t' && line[i] != '\n') { stop = 1; /* stop on any non-blank,tab,eol */ line[i+1] = '\n'; /* add an eol */ line[i+2] = '\0'; /* and a zero to term the string */ printf("%s",line); }

reverse Pseudo code for the reverse function find length of the string to reverse for each character from the beginning of the string to half way copy the character here to a holding variable copy the character the same distance from end to here copy the holding variable to the same distance from end Holding Variable String Array

reverse While writing the pseudo code, think about: –The basic steps needed (e.g., three way move) –The loop conditions (e.g., go halfway through) –The beginning/end as possible special cases What about a string that has an odd length? What about a string that has an even length? –Does it matter if we move the middle character in an odd length string out and back in or not?

reverse C code for the reverse function int len, i; char c; len = strlen(line) - 1; /* array index = len - 1 */ for (i=0; i<=len/2; ++i) { /* go halfway through the line */ c = line[i]; /* save a character from line */ line[i] = line[len-i]; /* overwrite that character */ line[len-i] = c; /* save reversed character */ }

Forcing Groups of Bits Off Given char n, how to turn off all bits except the least significant 5 bits: n = n & ‘\x1f’ n = ‘\xa5’ n & ‘\x1f’ & turn off all bits except bottom 5 Called "masking" the bits -- only see bits on in result where 1's found in mask value

Forcing Groups of Bits Off x = x & ~077 (octal for a change) Sets least significant 6 bits in x to 0 Even if you don't know size of x (e.g. size of int) ~077 = ~ = of required size Extends itself with 1 bits on left for length of x

Forcing Groups of Bits On Given n, how to turn on the MS two bits (if already on, leave on). n = n | ‘\xc0’ n = '\xa5' n | '\xc0': | turn on MS 2 bits

“Encryption” with Exclusive Or Show that x ^ (x ^ y) == y char y =‘\xa5’ (plain text bits) char x =‘\x69’ (encryption key) x ^ y (cipher text bits) x ^ (x ^ y) (decrypted bits) Same as original value of y!

String Constants String constant: “I am a string.” –An array (a pointer to a string) of char values somewhere ending with NUL = '\0', the char with zero value. –"0" is not same as '0'. The value "0" can't be used in an expression - only in arguments to functions like printf(). Also have string functions: See pg. 241, Appendix B and B3, pg. 249 #include With these definitions, can use: len = strlen(msg); where msg is string in a string array NOTE: Write your own string functions for homework!!

Enumeration Symbolic Constants enum boolean {FALSE, TRUE}; –Enumerated names assigned values starting from 0 FALSE = 0 TRUE = 1 Now can declare a variable of type enum boolean: enum boolean x; x = FALSE; Just a shorthand for creating symbolic constants instead of with #define statements Storage requirement is the same as int

Enumeration Symbolic Constants If you define months as enum type enum months {ERR, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}; Debugger might print value 2 as FEB

Code Example of the enum type int main() { enum month {ERR, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}; enum month this_month; this_month = FEB; … }

const "const" declaration is like "final" in Java –warns compiler that variable value shouldn't change const char msg[ ] = "Warning:..."; –Commonly used for function arguments int copy(char to[ ], const char from[ ]); If logic of the copy function attempts to modify the “from” string, compiler will give a warning Exact form of warning and actual behavior of the code is installation defined

Operators Arithmetic Operators: +Add -Subtract *Multiply /Divide % Modulo (Remainder after division ) e.g. 5%7 = 5 7%7 = 0 10%7 = 3 Examples: int x, y; x / y truncates (no fractional part) x % y is the remainder when x is divided by y. Always true that: x == y*(x/y) + x%y

Operators Logical Operators: &&logical and ||logical or ! Not Example: … int year; if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) printf( "%d is a leap year\n", year); else printf( "%d is not a leap year\n", year); Why are no inner parentheses needed? See precedence table, P 53. Good questions for exams!!

Precedence and Associativity of Operators ( ) [ ] ->.Left to right ! ~ * & (type) sizeofright to left * / %left to right + -left to right > left to right >=left to right = = !=left to right &left to right ^left to right |left to right &&left to right ||left to right ?:right to left = += -= *= /= %= &= ^= |= >=right to left,left to right Precedence signdereference addresscasting Associativity

Precedence and Associativity Precedence –Operators in the same row have the same precedence –Operators are in order of decreasing precedence Associativity –Determine the order if the operators have the same precedence –e.g x = y +=z -= 4 means x = y +=(z -= 4) x =(y +=(z -= 4))

Relations / Comparisons We call a comparison between two arithmetic expressions a "relation" ae1 =, > ) A relation is evaluated as true or false (1 or 0) based on values of given arithmetic expressions if ( i < lim-1 = = j < k) –What's it mean? –See precedence table P 53 Instead of c != EOF, could write !(c = = EOF)