cse 1301 lecture 2 data types figures from lewis, “c# software solutions”, addison wesley...

37
CSE 1301 Lecture 2 Data Types Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick

Upload: brendan-whitehead

Post on 31-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

CSE 1301

Lecture 2

Data Types

Figures from Lewis, “C# Software Solutions”, Addison Wesley

Richard Gesick

CSE 1301

Topics

• Character Strings• Variables and Assignments• Primitive Data Types

CSE 1301

Review

• C# program structure• Comments• Identifiers• White space• Objects• Classes• Methods

CSE 1301

CSE 1301

Program Structure• In the C# programming language:

– A program is made up of one or more classes– A class contains one or more methods– A method contains program statements

• These terms will be explored in detail throughout the course

• An application always contains a method called Main

CSE 1301

Building Blocks - Comments • Comments explain the program to yourself and

others• Block comments

– Can span several lines– Begin with /* – End with */– Compiler ignores all text between /* and */

• Line comments– Start with //– Compiler ignores text from // to end of line

CSE 1301

Identifiers - symbolic names• Identifiers are used to name classes,

variables, and methods • Identifier Rules:

– Must start with a letter– Can contain essentially any number of letters and

digits, but no spaces– Case sensitive!!

• Number1 and number1 are different!

– Cannot be keywords or reserved words

CSE 1301

CSE 1301

White Space• Spaces, blank lines, and tabs are called white space

• White space is used to separate words and symbols in a program

• Extra white space is ignored

• A valid C# program can be formatted many ways

• Programs should be formatted to enhance readability, using consistent indentation

CSE 1301

Character Strings

• Object in C#, defined by string class• String literal is 0 or more characters enclosed

with double quotes– “The quick brown fox jumped.”– “x”– “”

• Can contain any valid character

CSE 1301

Write and WriteLine MethodsConsole.Out.WriteLine (“Whatever you are, be a good one.”);

Output device

Monitor

Console – class

Out - objects

Method name

parameter

WriteLine method includes a “new line” character.

CSE 1301

CSE 1301

string Concatenation Operator (+)

• String literals cannot span lines• Combines string literals with other data types for

printingExample: String hello = "Hello"; String there = "there"; String greeting = hello + ' ' + there; Console.Out.WriteLine( greeting );

Output is: Hello there

CSE 1301

The + Operator

• What it does depends on the order– String concatenation– addition

CSE 1301

string + number = string

number + number = number

CSE 1301

Escape SequencesTo include a special character in a string, use an escape sequence

CSE 1301

CSE 1301

Variables• A variable is a name for a location in memory used to hold a data

value.

• A variable must be declared by specifying the variable's name and the type of information that it will hold

int total;

int count, temp, result;

Multiple variables can be created in one declaration

data type variable name

CSE 1301

CSE 1301

Conventions

• Names of variables should be meaningful and reflect the data they will store– This makes the logic of the program clearer

• Don't skimp on characters, but avoid extremely long names

• Avoid names similar to C# keywords

CSE 1301

Assignment• An assignment statement changes the value of a

variable• The assignment operator is the = sign

total = 55;

• The value that was in total is overwritten

• You can only assign a value to a variable that is consistent with the variable's declared type

• The expression on the right is evaluated and the result is stored in the variable on the left

CSE 1301

Assignment Operator Syntax: target = expression;expression: operators and operands that

evaluate to a single value --value is then assigned to target

--target must be a variable (or constant) --value must be compatible with target's data

type

CSE 1301

Examples:int numPlayers = 10; // numPlayers holds 10numPlayers = 8; // numPlayers now holds 8

int legalAge = 18;int voterAge = legalAge;

The next statement is illegal

int height = weight * 2; // weight is not definedint weight = 20;

CSE 1301

CSE 1301

• Declare a variable only once• Once a variable is declared, its data type

cannot be changed. These statements: double twoCents; double twoCents = .02;

generate a compiler error

CSE 1301

• Once a variable is declared, its data type cannot be changed.

These statements: double cashInHand; int cashInHand;

generate a compiler error

CSE 1301

Constants• Value cannot change during program execution• Syntax:const dataType constantIdentifier =assignedValue;

Note: assigning a value when the constant is declared is optional. But a value must be assigned before the constant is used.

CSE 1301

Constants

• Constants are useful for three important reasons• First, they give meaning to otherwise unclear literal

values– For example, MAX_LOAD means more than the literal 250

• Second, they facilitate program maintenance– If a constant is used in multiple places, its value need only

be updated in one place• Third, they formally establish that a value should not

change, avoiding inadvertent errors by other programmers

CSE 1301

Conventions

• Use all capital letters for constants and separate words with an underscore:

Example: const double TAX_RATE = .05;

• Declare constants at the top of the program so their values can easily be seen

• Declare as a constant any data that should not change during program execution

CSE 1301

Data Types

• For all data, assign a name (identifier) and a data type

• Data type tells compiler:– How much memory to allocate– Format in which to store data– Types of operations you will perform on data

• Compiler monitors use of data– C# is a "strongly typed" language

CSE 1301

Primitive Data Types

• 13 simple data types:– 8 subsets of integers– 2 subsets of floating point numbers– Character– Boolean– Decimal data type

• Everything else is an object

CSE 1301

CSE 1301

Why so many types?

• Difference is in amount of memory reserved for each (and hence the size of the value stored

• float only has 7 significant digits• Signed numbers have both positive and

negative values• Unsigned numbers are >= 0

CSE 1301

Literals• All numeric values without a decimal point are considered int

• All numeric values with decimal point are considered double int testGrade = 100;

long cityPopulation = 425612340L; byte ageInYears = 19;

float salesTax = .05F; double interestRate = 0.725; double avogadroNumber = +6.022E23;

CSE 1301

Decimal Data Type

• 128 bit storage• greater precision and smaller range than other

numeric types• suitable for financial and monetary

calculations

CSE 1301

char Data Type

• One Unicode character (16 bits - 2 bytes)Type Size Minimum Value Maximum Value in Byteschar 2 character character encoded as 0 encoded as FFFF

Example declarations: char finalGrade = ‘A’; char newline, tab, doubleQuotes;

CSE 1301

boolean Data Type

• Two values only: true false

• Used for decision making or as "flag" variables• Example declarations:

bool isEmpty; bool passed, failed = false;