classes, objects, and simple data version 1.0. topics simple data types variables and constants...

92
Classes, Objects, and Simple Data Version 1.0

Upload: brandon-mckenzie

Post on 21-Jan-2016

238 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Classes, Objects, and Simple Data

Version 1.0

Page 2: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Topics

Simple data typesVariables and constantsDeclarations

AssignmentInput and output

Classes and objects

Style

Page 3: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

ObjectivesAt the completion of this topic, students should be able to:

Create proper identifiers in a C# programDescribe the difference between an object and simple dataDescribe the simple data types in the C# languageWrite C# programs that correctly• use declarations• use assignment statements• use literal data• use the Console class• format simple floating point data

Describe the object model of programming

Describe the way that data is stored in the computer

Page 4: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

We can imagine computer memory to be something likea set of post office boxes.

Page 5: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

We can imagine computer memory to be something likea set of post office boxes.

Some boxeshold small things(like integers)

Some boxeshold larger things(like real numbers)

Some boxes holdreally big things(like objects)

and each boxhas an address

Page 6: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

When we write a program, we need to reserve spacein memory for any data that the program will use.

We do this by giving thedata a name and tellingthe computer what kind of data it is.

The computer translates thisname into an address.

Page 7: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

In order to be able to refer to the data stored at some address in the computer, we give the data at thataddress a name. These names are called identifiers.

In the computer’s memory,a piece of data is known only

by it’s address.

12

X000054EA – hex address

Page 8: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Identifiers

The name that you use to refer to a piece of dataor a method in C# is called an identifier.

A C# identifier must begin with either a letteror an underscore character i.e. [a-z A-Z _]

The remaining characters may be letters, digits, orthe underscore character[a-z A-Z 0-9 _]. All other characters are invalid.

Identifiers can be of any length.

Identifiers are case sensitive.

Page 9: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Some Valid Identifiers

xx1_abcsumdata2oldValue

It is common in C# to run words togetherlike this. Just capitalize all words after the first.

Page 10: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Some Invalid Identifiers

123&change1_dollarmy-data

Page 11: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Good programmers selectnames that are meaningfuland somehow describe the

data that they name.

Page 12: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

In Lab #2 you have to find the un-watered area ofFarmer John’s field.

x would be a bad choice to name that variableunWateredArea would be a good choice

Page 13: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Keywords

C# has a set of built in keywords that are considered tobe part of the language. You cannot use any of these asidentifiers in your program. In Visual C# Express Edition, By default these will show up in blue. Examples include

boolbreakcharintdoubleclassconstdo…

Page 14: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

A C# program manages two general kinds of data

Simple Datathe most basic forms of data - numbers and characters

Objectsmore complex data – strings and others, usually composed ofmany pieces of simple data

Page 15: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Every piece of data in C# has a given size and shape and is stored at an address. The values that we store in a memory address must fit the size and shape that we specified for that address.

Page 16: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

A Memory Chip

Page 17: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

A Memory Chip

. . .00110001000110 . . .binary digits (bits)

Address:Where the data resides in memory

Size:How many bits make upthe data

Shape:How the data is coded

Page 18: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Simple Data

Simple data elements all have a data typethat defines its size and shape and an identifierthat is an alias for its address in memory.

The data type defines the possible set of valuesthat a simple data element can have, and theoperations that can be performed on the data.

Page 19: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Simple (Sort of) Numeric Data Types

Type Storage Max Value

int 32 bits - 2,147,483,647 to 2,147,483,648double64 bits over 10308

The C# language defines a number of differentkinds of data. In this course we will mainly use thefollowing numeric data types:

Page 20: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Integer Numbers

Integers are whole numbers they have nofractional part.

Integer operations includeadditionsubtractionmultiplicationdivisionremainderassignment

Page 21: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Examples of Integers

10-53272,905,301

Page 22: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Real Numbers

Real numbers have fractional parts

Real numbers are often written in scientific format

The most common real data type is double

Operations on real numbers includeadditionsubtractiondivisionmultiplicationassignment

Page 23: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Examples of Real Numbers

10.5-5.02327.9812,905,301.0040.0000239897-1.56 X 10-4

Page 24: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Character Data

Different standards exist for encoding characters

The ASCII standard, finalized in 1968, uses 7 bits for each character.In the ASCII standard, 1000001 is interpreted as the character ‘A’.The 8 bit ASCII standard was added later to add lower-case characters.

7 bits only allows for the definition of 128 unique characters. Subsequentstandards (ISO8859 and ISO10646) define much larger, multi-nationalcharacter sets. However, both are supersets of ASCII.

Character data is defined by the keyword char

When interpreted as a character, certain bit patternsrepresent printable characters and control characters.

Page 25: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

The ASCII Code Table1st hex digit

2n

d h

ex d

igit

x41 = ‘A’

Page 26: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Characters

* Characters are written, in C# programs, as 'A', 'B', etc.* 'A' is stored as 0100 0001 in memory or hex 0X41 or dec 65* 'B' is stored as 0100 0010 in memory or hex 0X42 or dec 66* 'a' is stored as 0110 0001 in memory or hex 0X61 or dec 97* 'b' is stored as 0110 0010 in memory or hex 0X62 or dec 98

Page 27: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Control Characters

Control characters are characters that donot print, but cause some action, such as movingto a new line, to occur. In C# we write control characters as a backslash, followed by a characterthat denotes the action to be taken.

'\b' backspace'\t' tab'\n' new-line'\r' carriage return

Page 28: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Boolean Data

A piece of Boolean data can only have oneof two values:

truefalse

Boolean data is defined by the keyword bool

Page 29: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Variables and Constants

A variable is a name for a memory location (address)that holds some piece of data. The valuestored in that location may change duringexecution of the program; however, the typemay not.

A constant is a name for a memory location (address)that holds some piece of data, where thevalue of the data cannot change duringexecution of the program.

Page 30: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Declarations

In C#, all variables and constants must be declared before they are used in a program.

C# is what is known as a strongly typed language.This means that we must tell the compiler what thedata type is for every variable. The compiler thenchecks all operations to make sure that they arevalid for the given type of data.

Page 31: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Question . . .

Assume that you are able to peek into the memory of yourcomputer, and you see the bit pattern

0000 0000 0000 0000 0000 0000 0110 0010

What does this bit pattern mean?

Page 32: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

The correct answer is that you don’t know.Unless you know what type of data you arelooking at, it is impossible to interpret thebits stored in memory.

Page 33: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Integer Representation

In most modern digital computers, integer numbers are stored internally in binary. The number of bits used tostore an integer in C# is 32 bits.

Example: the integer 5 is0000 0000 0000 0000 0000 0000 0000 0101

Page 34: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Floating Point Representation

Numbers that contain decimal points are stored internally in a very different format. The exact

format depends upon the processor used in the computer, but in general it looks like:

sign exponent Mantissa or Coefficient

for example, the number 6,045.03 (0.604503 x 104) would have sign of 0 an exponent of 4 and a

mantissa of .604503

The actual binary representation is beyond thescope of this course.

Page 35: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Character Representation

Characters are stored internally in a codedformat. For example, using the standardASCII code, the character ‘A’ would be stored as 0100 0001. C# actually uses a superset of ASCII called Unicode, thatsupports a multiple byte character code andThe character ‘A’ is stored as 0000 0000 0100 0001.

Page 36: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Computer Instructions

Locations in memory can hold both dataand instructions. A special register, calledthe program counter points in memory to the next instruction to be executed. The computer fetches the next instruction from memory. The program counter moves to the next instruction. The computer thendecodes an executes the instruction it just fetched.

Page 37: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Machine Language

We call the instructions stored in computer memory machine language instructions. They are defined by the chip manufacturer. For example, the machine instruction

0011 0011 0001 1010

might mean something like

take the byte stored in memory location 0024 and put it into the A register.

Page 38: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Summary

Integers straight binary representation

Real Numbers split into sign, exponent and coefficient

Characters coded bytes – Unicode an ASCII superset

Instructions coded bytes – machine language

Page 39: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Declaring a Variable

int someNumber;char firstLetter;bool theAnswer;

double density = 12.45;int hoursWorked = 14;char key = ‘g’;

this statement reservesspace in computer memoryfor an integer. We can then refer to the data in this location using the name “someNumber” whichis an alias for the the address in memory of that int value.

this statement reservesspace in computer memory for a character. The bit patternfor ‘g’ is then stored in thatlocation. We can now refer to thedata in this location using the name “key” .

Page 40: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

int idata = 500;

data type(size & shape)

identifier (“address” in memory)

value(value in memory)

Page 41: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Declaring a Variable

int value1, value2, value3;

This statement, termed a comma delimited list, declares threevariables, all of which are int’s with an unknown value .

Page 42: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Declaring a Variable

int value1= 12, value2= 4, value3= 21;

This statement, comma delimited list, declares threevariables, all of which are int’s, and initializes them.

Page 43: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Declaring a Constant

const int SCALE_VALUE = 14;

The keyword const means that this is a constant.You cannot change the value after it is declared and initialized.

We normally use all upper caseletters when writing the name of a constant.

Page 44: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Assignment

The easiest way to change the value of a variableis to use an assignment statement.

temperature = 68.4;

note that all statementsend with a semicolon.

the right hand side of the assignmentstatement may be a literal value, oran expression involving variables, literalvalues, and operators, or even methodcalls.

the expression on the rightside of the operator is evaluatedand the resulting value is storedin the storage location allocatedto the variable “temperature”

Page 45: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Assignment Compatibility

In general, it is invalid to assign a variable of one typeto a variable of another. For example if you write

int a = 6.52;

The compiler will issue the warning Cannot implicitly convert type 'double' to 'int'. …

This means you are trying to put a square peg in around hole. It won’t fit. REMEMBER variables havesizes and shapes.

Page 46: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Assignment Compatibility

Note that you can do this assignment.

double a = 6;

The compiler will force a conversion. Why?

Sort of like being able to put a round peg in a square hole

Page 47: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

The compiler will allow you to do Widening Conversions

double a = 3;

because no information will be lost.

The compiler will not allow you to do Narrowing Conversions

int pi = 3.14159;

because information is lost.

Page 48: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Un-initialized Data

In C#, numbers are not always initialized to a known value. Thus theymay not always be what you expect.

So …… always initialize data when it is declared.

Page 49: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Initializing Data

int numOne = 5, numTwo = 4, numThree = 17;

int numOne = 5;int numTwo = 4;int numThree = 17;

Page 50: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Literal Data

In the statement sum = a + 5;

the value 5 is what is called literal data.

It is good programming practice to use constantsinstead of literal data in your program.

const int MAX = 5;...sum = a + MAX;

Exceptions are 1, -1 and 0

Page 51: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

We use the term “Magic Numbers” to refer toliteral data that is written into an expressionin your program.

double avgTemperature = sumTemperature / 2;

This is a magic number

You do not want magic numbers in your programs.They make programs hard to maintain. You willlose points if I see magic numbers in your programs.

Page 52: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Objects and Classes

Object oriented languages give programmers theability to model real-world objects.

Page 53: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

for example, a car has attributes* it is black* it has a 200 hp engine* it has 2 doors* it was built in 1943* etc

it also has behaviors* when you turn the key it starts* when you press the brake it stops* when you push the horn it beeps* etc

object-oriented languagesencapsulate the data and themethods that operate on thatdata into an object.

Page 54: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

size

color

Get

Size

( )

GetColor( )

an object’s methods (behaviors)manage specific piecesof data (attributes) inside the object.

External Method

methods outside ofthe object cannot see or manipulate the object’sdata, which is private.However, they can call public methods inside the object to accessthe data.

Page 55: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Classes

Later on, we will spend much more time talkingabout objects and classes. For now, just thinkof a class as a blueprint that the computer useswhen creating objects of that class. When we writean object oriented program, much of our time is devoted to designing and writing classes.

Page 56: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Languages that primarily deal with objectsare called object-oriented languages.

Page 57: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Some Convenient Classes

C# has built in to it some classes that will make ourprogramming tasks much easier. The first of these wewill talk about is the Console class.

Page 58: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

keyboard bufferConsole.In program

keyboard buffer

output bufferConsole.Out program

display buffer

When a Console program executes, the C# runtimeenvironment automatically creates these two streamobjects to help manage Console input and output.

Page 59: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Console.ReadLine( )

The Console class provides the ReadLine( ) method to readdata from the standard input stream, Console.In. This methodwaits for the user to type in some data and press the Enter key.The ReadLine( ) method returns the data that the user typed inas a string object.

keyboard bufferConsole.In program

keyboard buffer

Page 60: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

String name;name = Console.ReadLine( );

keyboard bufferConsole.In

name

keyboard buffer

John Doe

John Doe

Page 61: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

When dealing with numbers, we have to use theParse method to convert the string value intothe appropriate numerical data type

int age = 0;age = int.Parse(Console.ReadLine( ) );

keyboard bufferConsole.In

age

keyboard buffer

25

25Parse

method

Page 62: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

When dealing with numbers, we have to use theParse method to convert the string value intothe appropriate numerical data type

double money = 0.0;money = double.Parse(Console.ReadLine( ) );

keyboard bufferConsole.In

money

keyboard buffer

12.50

12.50

Parsemethod

Page 63: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

output bufferConsole.Out program

Console.WriteLine

display buffer

The Console class provides the WriteLine( ) method to writeTo the standard output stream, Console.Out. This methodtakes a string as it’s parameter. After writing to the display,the cursor is moved to the next line.

Page 64: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

output bufferConsole.Out

name

Console.WriteLine

display buffer

string name = “Joe Coder”;Console.WriteLine( name );

Joe CoderJoe Coder

Page 65: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

output bufferConsole.Outmoney

Console.WriteLine

display buffer

Numbers are automatically converted tostrings by the WriteLine( ) method:

double money = 12.50Console.WriteLine( money);

12.5012.50

Page 66: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

output bufferConsole.Outmoney

Console.WriteLine

display buffer

You can combine string literals and numerical datausing the placeholder { .. } to mark the place wherethe numerical data should be displayed.

double money = 12.50Console.WriteLine( “You owe {0} to me”, money);

12.50You owe 12.50 to me

Page 67: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

output bufferConsole.Outmoney

Console.WriteLine

display buffer

You can use a format string to format the output

double money = 12.50Console.WriteLine( “You owe {0:C} to me”, money);

12.50You owe $12.50 to me

Page 68: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Formatting Strings

D or d: Display an integer value as a decimal numberF or f: Display a real value - default is two digits after the decimal pointC or c: Display a real value as currency

Page 69: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Formatting Strings

Use a number to indicate how many digits to display

int number = 23;Console.WriteLine(“The value is {0:D4}”, number)

The value is 0023

Page 70: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Formatting Strings

Use a number to indicate how many decimal digits to display

double number = 23.9834;Console.WriteLine(“The value is {0:F2}”, number)

The value is 23.98

Page 71: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Style

When writing programs, in any programminglanguage, it is helpful to use a consistentstyle. Good software development organizationswill often dictate that programmers use a specificstyle. This makes it easier for everyone to readthe code that is being developed.

In this course, you are expected to follow certainstyle guidelines. They are available on the courseweb site.

Page 72: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Style - IdentifiersUse names that have meaning. Avoid single character, very short, or very long names.

Examples: Meaningful Names Baffling Names amount aisFinished xl

ConstantsAll upper case with words separated by an underscore

Example: SIZE Classes and Method namesTitle case (capitalization of the first letter in each word)

Example: SimpleCalc( ) Data

VariablesLower case for the first word and title case for every word thereafter.

Example: myAccount

Page 73: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Style - Braces

Many C# language statements do not require braces; however, some statementssuch as conditionals and loops may or may not require braces and it is good programming practice to provide them. Use braces liberally to visually delimit the beginning and end of code blocks. Including braces now avoids the possibility of errors creeping into your code when you add additional statements at the last minute.

Place the opening (left) brace { so that it lines up with the left side of class headers, function headers, conditional statements, or repetitive statements. Place the closing (right) brace } in the same column as the opening brace. Always enter braces in opening/closing pairs to avoid forgetting to add one or the other or both. For braces that span more than three to five lines, comment the ending brace to indicate its nature (e.g., // end if ).

Page 74: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Indentation

As you moved from block to block, indentat least three spaces. Indentation makes codemuch more readable.

Page 75: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Example

void reviewCode( ){ if ( meetsGuidelines ) { Console.WriteLine(““Proceed to the next assignment”); } else { Console.WriteLine(“Rework your documentation”); } // end if/else} // end reviewCode( )

Page 76: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Your Own Code Declaration

Every source code file must contain the followingdeclaration. Code that does not contain thisdeclaration will not be graded!

"I declare that the following source code was written solely by me. I understand that copying any source code, in whole or in part, constitutes cheating, and that I will receive a zero on this project if I am found in violation of this policy.

Page 77: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Magic Numbers

A magic number is any numeric literal other than 1, 0, or –1 used in your program. However if 1, 0 and –1 are used to represent something other than the integers 1, 0, or –1 they will be considered magic numbers. Unfortunately, most code you will see in C# books or programming books in general will include magic numbers because it’s easier to code in the short run. In the long run, six months from today, you will be clueless as to what the number means. Therefore, DON’T USE MAGIC NUMBERS in your assignments.

Page 78: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Where are variables stored?

If a variable is declared inside of the curly brackets,that define a method, then that variable is said to be local to the method. Only the code in the method cansee a local variable. It is stored on the stack.

If a variable is declared outside of the curly brackets,that define a method, then that variable is said to be aclass level variable. It is stored in the data segment. It is available to any method in the program.

Page 79: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

using System;

Class Program{ const double PI = 3.14149;

static void Main( ) { double radius;

. . . }}

Declared inside ofcurly braces – stack

This is a local variable

Page 80: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

using System;

Class Program{ const double PI = 3.14149;

static void Main( ) { double radius;

. . . }}

Declared outside ofany method – data segment

It is a global variable.It is available to any methodin the class Program.

This is a class level variable

Page 81: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Name the simple C# data types.

Page 82: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Here is some data stored in the memory of thecomputer.

0000 0000 0000 1001

What is it’s value?

Page 83: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Suppose that you needed a Student objectin a course registration program.

What attributes might a Student have?

What behaviors might a Student require?

Page 84: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

In which part of computer storage iseach of the following stored?

* A class level variable * A local variable

Page 85: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Name one class that we have learned about in thislesson.

Page 86: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Which method is used to convert data into itscharacter representation and send it to thestandard output device?

To what class does this method belong?

Page 87: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Name a method that is used to convert numerical data from its character representation and store it to in memory in its binary representation?

Page 88: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Write a program that prints the message

“Hello, my name is Hal”.

Then the program will prompt the user for his or her first name. It then Will print

“Hello, user name, how are you?”

Page 89: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Write a program that prints the message

“Hello, my name is Hal”.

Then the program will prompt the user for his or her name.It then Will print

“Hello, user name, how are you?”

Prompt the user to type in their age. Then print

“user name, you are n years old”

Page 90: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Write a program that prints the message

“Hello, my name is Hal”.

Then the program will prompt the user for his or her age.

Then prompt the user to type in their name. Then print

“ Hello user name, you are n years old”

Page 91: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Write a program that works as follows:- It asks the user for the amount of a purchase- It calculates the state sales tax (5.5%)- It calculates the county sales tax (1.5%)- It displays the total tax and the amount due- It asks the user to enter the amount paid- It calculates and displays the change due.

Page 92: Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects

Practice

Write a program that does the following:• Declares an integer, a double, and a character.• In turn, asks the user to enter in an appropriate piece of

data for each variable and stores it in that variable.• Add together the integer and the double and the character. The result is stored in a double named sum.• Print out the sum.• Ask the user to type their name (first and last).• Store their name in a string variable.• Print out “Thank you (their name).

• Be able to discuss the results of your program.