Computers and Data.

Slides:



Advertisements
Similar presentations
Variables in C Amir Haider Lecturer.
Advertisements

 2005 Pearson Education, Inc. All rights reserved Introduction.
Programs and Data.
CMT Programming Software Applications
Data types and variables
Chapter 2 Data Types, Declarations, and Displays
String Escape Sequences
Chapter 3: Introduction to C Programming Language C development environment A simple program example Characters and tokens Structure of a C program –comment.
© The McGraw-Hill Companies, 2006 Chapter 1 The first step.
Objectives You should be able to describe: Data Types
A Variable is symbolic name that can be given different values. Variables are stored in particular places in the computer ‘s memory. When a variable is.
Copyright 2006 Addison-Wesley Brief Version of Starting Out with C++ Chapter 2 Introduction to C++
CS1 Lesson 2 Introduction to C++ CS1 Lesson 2 -- John Cole1.
Program A computer program (also software, or just a program) is a sequence of instructions written in a sequence to perform a specified task with a computer.
Week 1 Algorithmization and Programming Languages.
Chapter 2 Variables.
A Simple Java Program //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) { public static void main(String[]
Programming Fundamentals. Overview of Previous Lecture Phases of C++ Environment Program statement Vs Preprocessor directive Whitespaces Comments.
Classes, Objects, and Simple Data Version 1.0. Topics Simple data types Variables and constants Declarations Assignment Input and output Classes and objects.
1 Week 5 l Primitive Data types l Assignment l Expressions l Documentation & Style Primitive Types, Assignments, and Expressions.
CHAPTER 2 PROBLEM SOLVING USING C++ 1 C++ Programming PEG200/Saidatul Rahah.
Tokens in C  Keywords  These are reserved words of the C language. For example int, float, if, else, for, while etc.  Identifiers  An Identifier is.
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.
Sudeshna Sarkar, IIT Kharagpur 1 Programming and Data Structure Sudeshna Sarkar Lecture 3.
Lecture 3: More Java Basics Michael Hsu CSULA. Recall From Lecture Two  Write a basic program in Java  The process of writing, compiling, and running.
1 ENERGY 211 / CME 211 Lecture 3 September 26, 2008.
2.1 The Part of a C++ Program. The Parts of a C++ Program // sample C++ program #include using namespace std; int main() { cout
Programs and Data.
Bill Tucker Austin Community College COSC 1315
Chapter 1.2 Introduction to C++ Programming
Chapter 2 Variables.
Chapter Topics The Basics of a C++ Program Data Types
Chapter 1.2 Introduction to C++ Programming
Chapter 1.2 Introduction to C++ Programming
Chapter 2 Introduction to C++ Programming
Chapter 1.2 Introduction to C++ Programming
Chapter 2: Introduction to C++
BASIC ELEMENTS OF A COMPUTER PROGRAM
Tokens in C Keywords Identifiers Constants
Documentation Need to have documentation in all programs
Basic Elements of C++.
Object Oriented Programming
Multiple variables can be created in one declaration
Variables and Primative Types
Variables, Expressions, and IO
An Object-Oriented Approach to Programming Logic and Design Fourth Edition Chapter 2 Applications and Data.
Basic Elements of C++ Chapter 2.
IDENTIFIERS CSC 111.
Variables In programming, we often need to have places to store data. These receptacles are called variables. They are called that because they can change.
2.1 Parts of a C++ Program.
Introduction to C++ Programming
Variables ICS2O.
Chapter 2 Variables.
Topics Introduction Hardware and Software How Computers Store Data
C++ Data Types Data Type
Lectures on Numerical Methods
elementary programming
Focus of the Course Object-Oriented Software Development
Chapter 2: Introduction to C++.
Fundamental Programming
Primitive Types and Expressions
Unit 3: Variables in Java
Chap 2. Identifiers, Keywords, and Types
Subject:Object oriented programming
Chapter 2 Variables.
Chapter 2 Primitive Data Types and Operations
Variables in C Topics Naming Variables Declaring Variables
Variables in C Topics Naming Variables Declaring Variables
The Fundamentals of C++
Presentation transcript:

Computers and Data

Topics How the computer works Simple data types Variables and constants Declarations Assignment Style

Objectives At the completion of this topic, students should be able to: Explain how e computer works Describe the way that data is stored in the computer Describe the object model of programming Create proper identifiers in a C# program Describe the difference between an object and simple data Describe the simple data types in the C# language Write C# statements that correctly use declarations use assignment statements use literal data

General Purpose Registers The Computer Data Segment CPU Program Counter Code Segment Instruction Register Memory General Purpose Registers Status Registers Stack Arithmetic and Logic Unit Heap

General Purpose Register The Computer Data Segment Program Counter Code Segment Instruction Register General Purpose Register Status Registers Stack Arithmetic and Logic Unit Heap

General Purpose Register The Computer Watch how the computer adds two numbers together … Data Segment Program Counter Code Segment Instruction Register General Purpose Register Status Registers Stack Arithmetic and Logic Unit Heap

The Computer The program to be executed is stored in the code segment. The data is stored in the data segment. The program counter points to the next instruction to be executed. address 24 28 32 10 12 -- Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 60 Code Segment Instruction Register Register r1 Register r2 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 12 -- 60 address 24 28 32 10 12 -- Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 60 Code Segment Instruction Register Register r1 Register r2 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 12 -- 60 address 24 28 32 10 12 -- Data Segment 60 64 68 72 ld r1, 24 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 60 Code Segment Instruction Register Register r1 Register r2 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 10 12 -- address 24 28 32 10 10 12 -- Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 60 Code Segment Instruction Register ld r1, 24 Register r1 Register r2 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 10 12 -- address 24 28 32 10 10 12 -- Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 64 Code Segment Instruction Register ld r1, 24 Register r1 10 Register r2 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 10 12 -- address 24 28 32 10 10 12 -- Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 64 ld r2, 28 Code Segment Instruction Register ld r1, 24 Register r1 10 Register r2 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 12 -- 10 address 24 28 32 10 12 -- 10 12 Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 64 Code Segment Instruction Register ld r2, 28 Register r1 10 Register r2 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 10 12 -- address 24 28 32 10 10 12 -- Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 68 Code Segment Instruction Register ld r2, 28 Register r1 10 Register r2 12 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 12 -- 10 address 24 28 32 10 12 -- 10 Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 68 Code Segment Instruction Register ld r2, 28 add r1, r2 Register r1 10 Register r2 12 Stack Arithmetic and Logic Unit Heap

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 10 12 -- address 24 28 32 10 10 12 -- Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 68 Code Segment Instruction Register add r1, r2 Register r1 10 10 Register r2 12 12 Stack 22 Heap Arithmetic and Logic Unit

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 12 -- 10 address 24 28 32 10 12 -- 10 Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 68 Code Segment Instruction Register add r1, r2 Register r1 10 Register r2 12 Stack 22 Heap Arithmetic and Logic Unit

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 12 -- 10 address 24 28 32 10 12 -- 10 Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 72 Code Segment Instruction Register ld r1, 24 sto r1, 32 Register r1 22 Register r2 12 Stack Heap Arithmetic and Logic Unit

The Computer Data Segment Code Segment Stack Heap 24 28 32 10 10 12 60 address 24 28 32 10 10 12 Data Segment 60 64 68 72 ld r1, 24 ld r2, 28 add r1, r2 sto r1, 32 Program Counter 72 Code Segment Instruction Register sto r1, 32 Register r1 22 22 Register r2 12 Stack Heap Arithmetic and Logic Unit

The Operating System Manages the memory in the computer Manages how and when programs are executed Manages the devices attached to the computer and lots of other stuff …

The code editor provides a way for The programmer to create and edit the source code text for his or her program. Editors provide tools to cut and paste source Code text, move between source code files, and do many other editing tasks.

The Compiler source code compiler static void Main( ) { int a = 5; int b = 27; . . . source code compiler

source code Intermediate Language compiler Xvnvyi Lklil Hjfkkfol98 Op09kij Plollk Etc … source code compiler Intermediate Language Xvnvyi Lklil Hjfkkfol98 Op09kij Plollk Etc …

Interpreter source code Intermediate Language .exe compiler code segment data segment stack segment Intermediate Language Xvnvyi Lklil Hjfkkfol98 Op09kij Plollk Etc … .exe

program A program B loader program C the heap reserved for operating code segment data segment stack segment program A program B loader program C the heap is left over memory, not being used by any program. It is managed by the O/S. the heap reserved for operating system

Data Central to the idea of how a program works is the concept of data. Every program you will ever write will deal with some kind of data.

That data might be … An image Some music A person’s name A person’s age A table of temperatures by week A list of scores for a gymnastic event A model of a molecule A model of a character in a game etc

Data is stored in the computer’s memory. We can imagine computer memory to be something like a set of post office boxes.

Some boxes hold small things (like integers) Some boxes hold larger things (like real numbers) and each box has an address Some boxes hold really big things (like objects)

When we write a program, we need to reserve space in memory for any data that the program will use. We do this by giving the data a name and telling the computer what kind of data it is. The computer translates this name into an address.

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

Identifiers The name that you use to refer to a piece of data or a method in C# is called an identifier. A C# identifier must begin with either a letter or an underscore character i.e. [a-z A-Z _] The remaining characters may be letters, digits, or the underscore character[a-z A-Z 0-9 _]. All other characters are invalid. Identifiers can be of any length. Identifiers are case sensitive.

Some Valid Identifiers x x1 _abc sum data2 oldValue It is common in C# to run words together like this. Just capitalize all words after the first.

Some Invalid Identifiers 123 &change 1_dollar my-data

Good programmers select names that are meaningful and somehow describe the data that they name.

For example, we might have a piece of data that represents the area of a circle. x would be a bad choice to name that variable areaOfCircle would be a good choice

Keywords C# has a set of built in keywords that are considered to be part of the language. You cannot use any of these as identifiers in your program. In Visual C# Express Edition, By default these will show up in blue. Examples include bool break char int double class const do …

Programs deal with all kinds of data. This data can be put into two broad categories. Simple Data the most basic forms of data - numbers and characters Objects more complex data – made up of many pieces of simple data. For example, a person’s address is usually made up of a House number and a street name – 123 Main Street.

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

A Memory Chip

A Memory Chip Address: Where the data resides in memory Size: How many bits make up the data Shape: How the data is coded . . .00110001000110 . . . binary digits (bits)

Number Systems

Decimal: Base 10 In all number systems, each position represents a power of the base, where the rightmost digit is the multiplied by the base0, the next digit to the left is multiplied by base1, and so on. So 352 can be expressed in powers of 10 as (3 * 102) + (5 * 101) + (2 * 100) = 300 + 50 + 2

Binary: Base 2 In binary we only have two symbols with which to count, 0 and 1. We call these binary symbols “bits”, short for “binary digits”. If we group 8 of them together we have a byte, for example: 01001001. What does this represent? Who knows? Maybe an integer, maybe a character, maybe an instruction or a pixel on your monitor or a tiny bit of music.

Binary: Base 2 Since the base is 2, the place value represents a power of 2. So a number like 1100 means…   (1 * 23) + (1 * 22) + (0 * 21) + (0 * 20) = 8 + 4 + 0 + 0 …which would translate to 12 in decimal

Hexadecimal: Base 16 Here we need 16 unique symbols to count with, so 0 – 9 aren’t enough. To fill in the remaining equivalents of 10 – 15 in decimal, we use the letters A – F. So to count in hex, we use 0, 1, 2…8, 9, A, B, C, D, E, F. That gives us 16 unique symbols, where A16 = 1010, F16 = 1510 etc.   Note that in documentation, we often express the base with a subscript, as in 3D2F16 (hex) or 10112 (binary).

Hexadecimal: Base 16 In hex, an number like C416 means…   (C * 161) + (4 * 160) + …which could be converted to decimal with (C * 16) + (4 * 1) = (1210 * 16) + 4 = 19610 (Note that the symbols 0 -9 have the same value in decimal and hex)

Hexadecimal: Base 16 The convenient thing about hex (which is not true of decimal) is that the base (16) is a power of 2, specifically 24   As a result, hex is a concise shorthand for binary, because each hex digit represents four binary digits.

Equivalent Values Decimal Binary Hex 0000 1 0001 2 0010 3 0011 4 0100 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 Decimal Binary Hex 8 1000 9 1001 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F

Hexadecimal: Base 16 For example, we would write the binary equivalent of decimal 12 as 11002, or C16. For large binary numbers (like memory addresses), it is more convenient to write the address in hex.   So 0100 1011 0010 01012 can be shortened to 4B2516, which programmers often write as 0x4B25 or just x4B25. That said, keep in mind that in memory, on your hard drive and on the Internet, binary is the only format that computers use! Decimal and hex are for humans!

Simple Data Simple data elements all have a data type that defines its size and shape and an identifier that is an alias for its address in memory. The data type defines the possible set of values that a simple data element can have, and the operations that can be performed on the data.

Simple Numeric Data Types The C# language defines a number of different kinds of data. In this course we will mainly use the following numeric data types: Type Storage Max Value int 32 bits - 2,147,483,647 to 2,147,483,648 double 64 bits over 10308

Integer Numbers Integers are whole numbers they have no fractional part. Integer operations include addition subtraction multiplication division remainder assignment

Examples of Integers 10 -5 327 2,905,301

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 include addition subtraction division multiplication assignment

Examples of Real Numbers 10.5 -5.02 327.981 2,905,301.004 0.0000239897 -1.56 X 10-4

Character data is defined by the keyword char When interpreted as a character, certain bit patterns represent printable characters and control characters. 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 increase the number of possible characters that could be encoded. 7 bits only allows for the definition of 128 unique characters. Subsequent standards (ISO8859 and ISO10646) define much larger, multi-national character sets. However, both are supersets of ASCII. Character data is defined by the keyword char

The ASCII Code Table 1st hex digit x41 = ‘A’ 2nd hex digit

Character Representation Characters are stored in the computer’s memory in ASCII format. For example, using the standard ASCII code, the character ‘A’ would be stored as 0100 0001. C# actually uses a superset of ASCII called Unicode, that supports a multiple byte character code and The character ‘A’ is stored as 0000 0000 0100 0001.

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

Control Characters Control characters are characters that do not print, but cause some action, such as moving to a new line, to occur. In C# we write control characters as a backslash, followed by a character that denotes the action to be taken. '\b' backspace '\t' tab '\n' new-line '\r' carriage return

Boolean Data A piece of Boolean data can only have one of two values: true false Boolean data is defined by the keyword bool

Variables and Constants A variable is a name for a memory location (address) that holds some piece of data. The value stored in that location may change during execution of the program; however, the type may not. A constant is a name for a memory location (address) that holds some piece of data, where the value of the data cannot change during execution of the program.

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 the data type is for every variable. The compiler then checks all operations to make sure that they are valid for the given type of data.

Question . . . Assume that you are able to peek into the memory of your computer, and you see the bit pattern 0000 0000 0000 0000 0000 0000 0110 0010 What does this bit pattern mean?

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

Integer Representation In most modern digital computers, integer numbers are stored internally in binary. The number of bits used to store an integer in C# is 32 bits. Example: the integer 5 is 0000 0000 0000 0000 0000 0000 0000 0101 This is the sign bit, and when this bit is zero, the number is positive

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 the scope of this course.

Computer Instructions Locations in memory can hold both data and instructions. A special register, called the 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 then decodes and executes the instruction it just fetched.

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.

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

Declaring a Variable int someNumber; char firstLetter; bool theAnswer; this statement reserves space in computer memory for an integer. We can then refer to the data in this location using the name “someNumber” which is an alias for the the address in memory where the value is stored. int someNumber; char firstLetter; bool theAnswer; double density = 12.45; int hoursWorked = 14; char key = ‘g’; this statement reserves space in computer memory for a character. The bit pattern for ‘g’ is then stored in that location. We can now refer to the data in this location using the name “key” .

(an alias for its address) data type (size & shape) int idata = 500; value (value in memory) identifier (an alias for its address)

Declaring a Variable int value1, value2, value3; This statement, termed a comma delimited list, declares three variables, all of which are int’s with an unknown value .

Declaring a Variable int value1= 12, value2= 4, value3= 21; This statement, comma delimited list, declares three variables, all of which are int’s, and initializes them.

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. const int SCALE_VALUE = 14; We normally use all upper case letters when writing the name of a constant.

Assignment The easiest way to change the value of a variable is to use an assignment statement. temperature = 68.4; note that all statements end with a semicolon. the expression on the right side of the operator is evaluated and the resulting value is stored in the storage location allocated to the variable “temperature” the right hand side of the assignment statement may be a literal value, or an expression involving variables, literal values, and operators, or even method calls.

Assignment Compatibility In general, it is invalid to assign a variable of one type to 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 a round hole. It won’t fit. REMEMBER variables have sizes and shapes.

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

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.

Un-initialized Data In C#, numbers are not always initialized to a known value. Thus they may not always be what you expect. So …… always initialize data when it is declared.

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

Literal Data In the statement sum = a + 5; the value 5 is what is called literal data. It is good programming practice to use constants instead of literal data in your program. Exceptions are 1, -1 and 0 const int MAX = 5; . sum = a + MAX;

We use the term “Magic Numbers” to refer to literal data that is written into an expression in 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 will lose points if I see magic numbers in your programs.

Objects and Classes Object oriented languages give programmers the ability to model real-world objects.

Data Methods 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 Data 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 Methods object-oriented languages encapsulate the data and the methods that operate on that data into an object.

an object’s methods (behaviors) manage specific pieces of data (attributes) inside the object. methods outside of the object cannot see or manipulate the object’s data, which is private. However, they can call public methods inside the object to access the data. size color GetSize ( ) GetColor( ) External Method

Classes Later on, we will spend much more time talking about objects and classes. For now, just think of a class as a blueprint that the computer uses when creating objects of that class. When we write an object oriented program, much of our time is devoted to designing and writing classes.

Languages that primarily deal with objects are called object-oriented languages.

Some Convenient Classes C# has built in to it some classes that will make our programming tasks much easier. The first of these we will talk about is the String class.

A string is just a sequence of characters. “hello” “George” “12 East State Road”

Declare a string this way: string myName;

Declare a string and give it an initial value this way: string myName = “John Dolittle”;

Style When writing programs, in any programming language, it is helpful to use a consistent style. Good software development organizations will often dictate that programmers use a specific style. This makes it easier for everyone to read the code that is being developed. Program that do not conform to the style guidelines for this class will lose points.

Style - Identifiers Use names that have meaning. Avoid single character, very short, or very long names. Examples: Meaningful Names Baffling Names amount a isFinished xl Constants All upper case with words separated by an underscore Example: SIZE Classes and Method names Title case (capitalization of the first letter in each word) Example: SimpleCalc( ) Data Variables Lower case for the first word and title case for every word thereafter. Example: myAccount

Style - Braces Many C# language statements do not require braces; however, some statements such 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 ).

Indentation As you moved from block to block, indent at least three spaces. Indentation makes code much more readable.

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

Your Own Code Declaration Every source code file must contain the following declaration. Code that does not contain this declaration 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.

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.

Comments Keep in mind that every program that you submit should contain comments that describe how the program works. More on this later …

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 can see 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 a class level variable. It is stored in the data segment. It is available to any method in the program.

This is a local variable using System; Class Program { const double PI = 3.14149; static void Main( ) double radius; . . . } Declared inside of curly braces – stack This is a local variable

This is a class level variable using System; Class Program { const double PI = 3.14149; static void Main( ) double radius; . . . } Declared outside of any method – data segment It is a global variable. It is available to any method in the class Program. This is a class level variable

Practice Name the simple C# data types.

Practice Here is some data stored in the memory of the computer. 0000 0000 0000 1001 What is it’s value?

Practice Suppose that you needed a Student object in a course registration program. What attributes might a Student have? What behaviors might a Student require?

Practice In which part of computer storage is each of the following stored? * A class level variable * A local variable

Practice Name one class that we have learned about in this lesson.

Practice Which method is used to convert data into its character representation and send it to the standard output device? To what class does this method belong?

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.

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?”

Practice Write a program that prints the message “Hello, my name is Hal”. Then the program will ask the user for his or her name. Get the name and save it in a String object. Then print the message “Hello, user name, how are you?” Prompt the user to type in their age. Save it in an Integer. Then print the message “user name, you are n years old”

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.