Csphtp1 03

34
2001 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 – Introduction to C# Programming Outline 3.1 Introduction 3.2 Simple Program: Printing a Line of Text 3.3 Another Simple Program: Adding Integers 3.4 Memory Concepts 3.5 Arithmetic 3.6 Decision Making: Equality and Relational Operators

description

C# how to programing

Transcript of Csphtp1 03

Page 1: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

1

Chapter 3 – Introduction to C# Programming

Outline3.1 Introduction3.2 Simple Program: Printing a Line of Text3.3 Another Simple Program: Adding Integers3.4 Memory Concepts3.5 Arithmetic3.6 Decision Making: Equality and Relational Operators

Page 2: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

2

3.1 Introduction

• Console applications– No visual components

– Only text output

– Two types• MS-DOS prompt

– Used in Windows 95/98/ME

• Command prompt

– Used in windows 2000/NT/XP

– Windows applications• Forms with several output types

• Contain Graphical User Interfaces (GUIs)

Page 3: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

3

3.2 Simple Program: Printing a line of text

• Comments– Comments can be created using //…

– Multi-lines comments use /* … */

– Comments are ignored by the compiler

– Used only for human readers

• Namespaces– Groups related C# features into a categories

– Allows the easy reuse of code

– Many namespaces are found in the .NET framework library

– Must be referenced in order to be used

• White Space– Includes spaces, newline characters and tabs

Page 4: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

4

3.2 Simple Program: Printing a line of text

• Keywords– Words that cannot be used as variable or class names or any other

capacity– Have a specific unchangeable function within the language– Example: class – All keywords are lowercase

• Classes– Class names can only be one word long (i.e. no white space in

class name )– Class names are capitalized, with each additional English word

capitalized as well (e.g., MyFirstProgram )– Each class name is an identifier

• Can contain letters, digits, and underscores (_)• Cannot start with digits• Can start with the at symbol (@)

Page 5: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

5

3.2 Simple Program: Printing a line of text

– Class bodies start with a left brace ({)

– Class bodies end with a right brace (})

• Methods– Building blocks of programs

– The Main method• Each console or windows application must have exactly one

• All programs start by executing the Main method

– Braces are used to start ({) and end (}) a method

• Statements– Anything in quotes (“) is considered a string

– Every statement must end in a semicolon (;)

Page 6: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

6

3.2 Simple Program: Printing a line of text

• Graphical User Interface– GUIs are used to make it easier to get data from the user as

well as display data to the user

– Message boxes• Within the System.Windows.Forms namespace

• Used to prompt or display information to the user

Page 7: Csphtp1 03

2001 Prentice Hall, Inc.All rights reserved.

Outline7

Welcome1.cs

Program Output

1 // Fig. 3.1: Welcome1.cs2 // A first program in C#.3 4 using System;5 6 class Welcome17 {8 static void Main( string[] args )9 {10 Console.WriteLine( "Welcome to C# Programming!" );11 }12 }

Welcome to C# Programming!

These are two single line comments. They are ignored by the compiler and are only used to aid other programmers. They use the double slash (//)

This is the using directive. It lets the compiler know that it should include the System namespace.

This is a blank line. It means nothing to the compiler and is only used to add clarity to the program.This is the beginning of the Welcome1 class definition. It starts with the class keyword and then the name of the class.

This is the start of the Main method. In this case it instructs the program to do everything

This is a string of characters that Console.WriteLine instructs the compiler to output

Page 8: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

8

3.2 Simple Program: Printing a Line of Text

Fig. 3.2 Visual Studio .NET-generated console application.

Page 9: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

9

3.2 Simple Program: Printing a Line of Text

Fig. 3.3 Execution of the Welcome1 program.

Page 10: Csphtp1 03

2001 Prentice Hall, Inc.All rights reserved.

Outline10

Welcome2.cs

Program Output

1 // Fig. 3.4: Welcome2.cs2 // Printing a line with multiple statements.3 4 using System;5 6 class Welcome27 {8 static void Main( string[] args )9 {10 Console.Write( "Welcome to " );11 Console.WriteLine( "C# Programming!" );12 }13 }

Welcome to C# Programming!

Console.WriteLine will pick up where the line ends. This will cause the output to be on one line even though it is on two in the code.

Page 11: Csphtp1 03

2001 Prentice Hall, Inc.All rights reserved.

Outline11

Welcome3.cs

Program Output

1 // Fig. 3.5: Welcome3.cs2 // Printing multiple lines with a single statement.3 4 using System;5 6 class Welcome37 {8 static void Main( string[] args )9 {10 Console.WriteLine( "Welcome\nto\nC#\nProgramming!" );11 }12 }

WelcometoC#Programming!

The \n escape sequence is used to put output on the next line. This causes the output to be on several lines even though it is only on one in the code.

Page 12: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

12

3.2 Simple Program: Printing a Line of Text

Escape sequence Description \n Newline. Position the screen cursor to the beginning of the

next line. \t Horizontal tab. Move the screen cursor to the next tab stop. \r Carriage return. Position the screen cursor to the beginning

of the current line; do not advance to the next line. Any characters output after the carriage return overwrite the previous characters output on that line.

\\ Backslash. Used to print a backslash character. \" Double quote. Used to print a double quote (") character. Fig. 3.6 Some common escape sequences.

Page 13: Csphtp1 03

2001 Prentice Hall, Inc.All rights reserved.

Outline13

Welcome4.cs

Program Output

1 // Fig. 3.7: Welcome4.cs2 // Printing multiple lines in a dialog Box.3 4 using System;5 using System.Windows.Forms;6 7 class Welcome48 {9 static void Main( string[] args )10 {11 MessageBox.Show( "Welcome\nto\nC#\nprogramming!" );12 }13 }

The System.Windows.Forms namespace allows the programmer to use the MessageBox class.

This will display the contents in a message box as opposed to in the console window.

Page 14: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

14

3.2 Simple Program: Printing a Line of Text

Fig. 3.8 Adding a reference to an assembly in Visual Studio .NET (part 1).

Add Reference dialogue

Page 15: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

15

3.2 Simple Program: Printing a Line of Text

References folder

Solution Explorer

System.Windows.Forms reference

Fig. 3.8 Adding a reference to an assembly in Visual Studio .NET (part 2).

Page 16: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

16

3.2 Simple Program: Printing a Line of Text

Text field MenuButtonLabel Menu bar

Fig. 3.9 Internet Explorer’s GUI.

Page 17: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

17

3.2 Simple Program: Printing a Line of Text

Fig. 3.10 Dialog displayed by calling MessageBox.Show.

OK button allows the user to dismiss the dialog.

Dialog is automatically sized to accommodate its contents.

Mouse cursor

Close box

Page 18: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

18

3.3 Another Simple Program: Adding Integers

• Primitive data types– Data types that are built into C#

• String, Int, Double, Char, Long

• 15 primitive data types (chapter 4)

– Each data type name is a C# keyword

– Same type variables can be declared on separate lines or on one line

• Console.ReadLine()– Used to get a value from the user input

• Int32.Parse()– Used to convert a string argument to an integer

– Allows math to be preformed once the string is converted

Page 19: Csphtp1 03

2001 Prentice Hall, Inc.All rights reserved.

Outline19

Addition.cs

1 // Fig. 3.11: Addition.cs2 // An addition program.3 4 using System;5 6 class Addition7 {8 static void Main( string[] args )9 {10 string firstNumber, // first string entered by user11 secondNumber; // second string entered by user12 13 int number1, // first number to add14 number2, // second number to add15 sum; // sum of number1 and number216 17 // prompt for and read first number from user as string18 Console.Write( "Please enter the first integer: " );19 firstNumber = Console.ReadLine();20 21 // read second number from user as string22 Console.Write( "\nPlease enter the second integer: " );23 secondNumber = Console.ReadLine();24 25 // convert numbers from type string to type int26 number1 = Int32.Parse( firstNumber );27 number2 = Int32.Parse( secondNumber );28 29 // add numbers30 sum = number1 + number2;31

This is the start of class Addition

Two string variables defined over two lines

The comment after the declaration is used to briefly state the variable purpose

These are three ints that are declared over several lines and only use one semicolon. Each is separated by a coma.

Console.ReadLine is used to take the users input and place it into a variable.

This line is considered a prompt because it asks the user to input data.

Int32.Parse is used to convert the given string into an integer. It is then stored in a variable.

The two numbers are added and stored in the variable sum.

Page 20: Csphtp1 03

2001 Prentice Hall, Inc.All rights reserved.

Outline20

Addition.cs

Program Output

32 // display results33 Console.WriteLine( "\nThe sum is {0}.", sum );34 35 } // end method Main36 37 } // end class Addition

Please enter the first integer: 45 Please enter the second integer: 72 The sum is 117.

Putting a variable out through Console.WriteLine is done by placing the variable after the text while using a marked place to show where the variable should be placed.

Page 21: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

21

3.4 Memory Concepts

• Memory locations– Each variable is a memory location

• Contains name, type, size and value

– When a new value is enter the old value is lost

– Used variables maintain their data after use

Page 22: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

22

3.4 Memory Concepts

Fig. 3.12 Memory location showing name and value of variable number1.

number1 45

Page 23: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

23

3.5 Arithmetic

• Arithmetic operations– Not all operations use the same symbol

• Asterisk (*) is multiplication

• Slash (/) is division

• Percent sign (%) is the modulus operator

• Plus (+) and minus (-) are the same

– Must be written in a straight line

– There are no exponents

• Division– Division can vary depending on the variables used

• When dividing two integers the result is always rounded down to an integer

• To be more exact use a variable that supports decimals

Page 24: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

24

3.5 Arithmetic

• Order– Parenthesis are done first

– Division, multiplication and modulus are done second• Left to right

– Addition and subtraction are done last• Left to right

Page 25: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

25

3.4 Memory Concepts

Fig. 3.13 Memory locations after values for variables number1 and number2 have been input.

number1 45

number2 72

Page 26: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

26

3.4 Memory Concepts

Fig. 3.14 Memory locations after a calculation.

number1 45

number2 72

sum 117

Page 27: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

27

3.5 Arithmetic

C# operation Arithmetic operator Algebraic expression C# expression

Addition + f + 7 f + 7

Subtraction – p – c p - c

Multiplication * bm b * m

Division / x / y or x / y

Modulus % r mod s r % s

Fig. 3.15 Arithmetic operators.

xy

Page 28: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

28

3.5 Arithmetic

Operator(s) Operation Order of evaluation (precedence) ( ) Parentheses Evaluated first. If the parentheses are nested,

the expression in the innermost pair is evaluated first. If there are several pairs of parentheses “on the same level” (i.e., not nested), they are evaluated left to right.

*, / or % Multiplication Division Modulus

Evaluated second. If there are several such operators, they are evaluated left to right.

+ or - Addition Subtraction

Evaluated last. If there are several such operators, they are evaluated left to right.

Fig. 3.16 Precedence of arithmetic operators.

Page 29: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

29

3.5 Arithmetic

Fig. 3.17 Order in which a second-degree polynomial is evaluated.

Step 1.

Step 2.

Step 5.

Step 3.

Step 4.

Step 6.

y = 2 * 5 * 5 + 3 * 5 + 7;

2 * 5 is 10 (Leftmost multiplication)

y = 10 * 5 + 3 * 5 + 7;

10 * 5 is 50 (Leftmost multiplication)

y = 50 + 3 * 5 + 7;3 * 5 is 15 (Multiplication before addition)

y = 50 + 15 + 7;

50 + 15 is 65 (Leftmost addition)

y = 65 + 7;

65 + 7 is 72 (Last addition)

y = 72; (Last operation—place 72 into y)

Page 30: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

30

3.6 Decision Making: Equality and Relational Operators

• The if structure– Used to make a decision based on the truth of the condition

• True: a statement is performed

• False: the statement is skipped over

– The start of an if statement should not end in a semicolon (;)

– Fig. 3.18 lists the equality and rational operators• There should be no spaces separating the operators

Page 31: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

31

3.6 Decision Making: Equality and Relational Operators

Standard algebraic equality operator or relational operator

C# equality or relational operator

Example of C# condition

Meaning of C# condition

Equality operators == x == y x is equal to y != x != y x is not equal to y Relational operators > > x > y x is greater than y < < x < y x is less than y >= x >= y x is greater than or equal to

y <= x <= y x is less than or equal to y Fig. 3.18 Equality and relational operators.

Page 32: Csphtp1 03

2001 Prentice Hall, Inc.All rights reserved.

Outline32

Comparison.cs

1 // Fig. 3.19: Comparison.cs2 // Using if statements, relational operators and equality3 // operators.4 5 using System;6 7 class Comparison8 {9 static void Main( string[] args )10 {11 int number1, // first number to compare12 number2; // second number to compare13 14 // read in first number from user15 Console.Write( "Please enter first integer: " );16 number1 = Int32.Parse( Console.ReadLine() );17 18 // read in second number from user19 Console.Write( "\nPlease enter second integer: " );20 number2 = Int32.Parse( Console.ReadLine() );21 22 if ( number1 == number2 )23 Console.WriteLine( number1 + " == " + number2 );24 25 if ( number1 != number2 )26 Console.WriteLine( number1 + " != " + number2 );27 28 if ( number1 < number2 )29 Console.WriteLine( number1 + " < " + number2 );30 31 if ( number1 > number2 )32 Console.WriteLine( number1 + " > " + number2 );33

Combining these two methods eliminates the need for a temporary string variable.

If number1 is the same as number2 this line is preformed

If number1 does not equal number2 this line of code is executed.If number1 is less than number2

the program will use this lineIf number1 is greater than number2 this line will be preformed

Page 33: Csphtp1 03

2001 Prentice Hall, Inc.All rights reserved.

Outline33

Comparison.cs

Program Output

34 if ( number1 <= number2 )35 Console.WriteLine( number1 + " <= " + number2 );36 37 if ( number1 >= number2 )38 Console.WriteLine( number1 + " >= " + number2 );39 40 } // end method Main41 42 } // end class Comparison

Please enter first integer: 2000 Please enter second integer: 10002000 != 10002000 > 10002000 >= 1000

Please enter first integer: 1000 Please enter second integer: 20001000 != 20001000 < 20001000 <= 2000

Please enter first integer: 1000 Please enter second integer: 10001000 == 10001000 <= 10001000 >= 1000

If number1 is less than or equal to number2 then this code will be usedLastly if number1 is greater

than or equal to number2 then this code will be executed

Page 34: Csphtp1 03

2001 Prentice Hall, Inc. All rights reserved.

34

3.6 Decision Making: Equality and Relational Operators

Operators Associativity Type () left to right parentheses * / % left to right multiplicative + - left to right additive < <= > >= left to right relational == != left to right equality = right to left assignment Fig. 3.20 Precedence and associativity of operators discussed in this

chapter.