Wollo University College of Informatics Department of computer science C# Language Fundamentals I

Introduction to C# Prepared by: kibrom Haftu Kombolcha 2017

Table of Contents Variables and Data Types 

How Computing Works?



What Is a Data Type?



Implicit and Explicit Type

Conversions 

What Is a Variable?

Loops

Control Statements 

Comparison and Logical

Operators 

The if Statement



The if-else Statement



Nested if Statements



The switch-case Statement

How Computing Works? 

Computers are machines that process data  Data

is stored in the computer memory in variables  Variables have name, data type and value 

Example of variable definition and assignment in C# Variable name

Data type

int count = 5;

Variable value

What Is a Data Type? 

A data type:  Is

a domain of values of similar characteristics

 Defines

the type of information stored in the computer memory (in a variable)



Examples:  Positive

integers: 1, 2, 3, …

 Alphabetical  Days

characters: a, b, c, …

of week: Monday, Tuesday, …

Data Type Characteristics 

A data type has:  Name

(C# keyword or .NET type)  Size (how much memory is used)  Default value 

Example:  Integer

numbers in C#  Name: int  Size: 32 bits (4 bytes)  Default value: 0

What are Integer Types? 

Integer types:  Represent

whole numbers  May be signed or unsigned  Have range of values, depending on the size of memory used 

The default value of integer types is: – for integer types (short mean 32 bit), except  0L – for the long type(64 bit representation) 0

What are Floating-Point Types 



Floating-point types: 

Represent real numbers



May be signed or unsigned



Have range of values and different precision depending on the used memory



Can behave abnormally in the calculations

Floating-point types are: float: 32-bits, precision of 7 digits  double: 64-bits, precision of 15-16 digits 



The default value of floating-point types: Is 0.0F for the float type  Is 0.0D for the double type 

The Boolean Data Type 

 

The Boolean data type:  Is declared by the bool keyword  Has two possible values: true and false  Is useful in logical expressions The default value is false Example of boolean variables taking values of true or false:

int a = 1; int b = 2; bool greaterAB = (a > b);

Console.WriteLine(greaterAB); // False bool equalA1 = (a == 1); Console.WriteLine(equalA1);

// True

The Character Data Type 

The character data type:  Represents

symbolic information  Is declared by the char keyword  Gives each symbol a corresponding integer code  Has a '\0' default value  Takes 16 bits of memory (from U+0000 to U+FFFF)

The String Data Type 

The string data type:  Represents

a sequence of characters  Is declared by the string keyword  Has a default value null (no value) 

Strings are enclosed in quotes: string s = "Microsoft .NET Framework";



Strings can be concatenated  Using

the + operator

Saying Hello – Example 

Concatenating the two names of a person to obtain his full name: string firstName = "Ivan"; string lastName = "Ivanov"; Console.WriteLine("Hello, {0}!\n", firstName); string fullName = firstName + " " + lastName; Console.WriteLine("Your full name is {0}.", fullName); 

NOTE: a space is missing between the two names! We have to add it manually

The Object Type 

The object type:  Is

declared by the object keyword  Is the base type of all other types  Can hold values of any type 

Example of an object variable taking different types of data:

object dataContainer = 5; Console.Write("The value of dataContainer is: "); Console.WriteLine(dataContainer); dataContainer = "Five"; Console.Write("The value of dataContainer is: "); Console.WriteLine(dataContainer);

Implicit and Explicit Type Conversions 

Implicit Type Conversion  Automatic

conversion of value of one data type to value of another data type  Allowed when no loss of data is possible  "Larger"

types can implicitly take values of smaller "types"

 Example:

int i = 5; long l = i;



Explicit type conversion  Manual

conversion of a value of one data type to a value of another data type  Allowed only explicitly by (type) operator  Required when there is a possibility of loss of data or precision  Example: long l = 5; int i = (int) l;

Type Conversions – Example 

Example of implicit and explicit conversions:

float heightInMeters = 1.74f; // Explicit conversion double maxHeight = heightInMeters; // Implicit

double minHeight = (double) heightInMeters; // Explicit float actualHeight = (float) maxHeight; // Explicit float maxHeightFloat = maxHeight; // Compilation error! 

Note: Explicit conversion may be used even if not required by the compiler

What Is a Variable? 

A variable is a:  Placeholder

of information that can usually be changed

at run-time 

Variables allow you to:  Store

information  Retrieve the stored information  Manipulate the stored information

Variable Characteristics 

A variable has:  Name  Type

(of stored data)  Value 

Example: int counter = 5;  Name:

counter  Type: int  Value: 5

Declaring Variables 

When declaring a variable we:  Specify

its type

 Specify

its name (called identifier)

 May 

give it an initial value

The syntax is the following:

[= ]; 

Example: int height = 200;

Identifiers 

Identifiers may consist of:   



Identifiers  



Can begin only with a letter or an underscore Cannot be a C# keyword

Identifiers   



Letters (Unicode) Digits [0-9] Underscore "_"

Should have a descriptive name It is recommended to use only Latin letters Should be neither too long nor too short

Note: 

In C# small letters are considered different than the capital letters (case sensitivity)

Identifiers – Examples 

Examples of correct identifiers:

int New = 2; // Here N is capital int _2Pac; // This identifiers begins with _ string поздрав = "Hello"; // Unicode symbols used // The following is more appropriate: string greeting = "Hello"; int n = 100; // Undescriptive int numberOfClients = 100; // Descriptive

// Overdescriptive identifier: int numberOfPrivateClientOfTheFirm = 100; 

Examples of incorrect identifiers:

int new; int 2Pac;

// new is a keyword // Cannot begin with a digit

Assigning Values 

Assigning of values to variables  Is



achieved by the = operator

The = operator has  Variable

identifier on the left  Value of the corresponding data type on the right  Could be used in a cascade calling, where assigning is done from right to left

Assigning Values – Examples 

Assigning Values – Examples

int firstValue = 5; int secondValue; int thirdValue; // Using an already declared variable: secondValue = firstValue; // // // //

The following cascade calling assigns 3 to firstValue and then firstValue to thirdValue, so both variables have the value 3 as a result:

thirdValue = firstValue = 3; // Avoid this!

Initializing Variables 

Initializing  Is

assigning of initial value

 Must 

be done before the variable is used!

Several ways of initializing:  By

using the new keyword

 By

using a literal expression

 By

referring to an already initialized variable

Initialization – Examples 

Example of some initializations: // The following would assign the default // value of the int type to num: int num = new int(); // num = 0 // This is how we use a literal expression: float heightInMeters = 1.74f;

// Here we use an already initialized variable: string greeting = "Hello World!"; string message = greeting;

Control statements

Conditional Statements



Comparison Operators

Example: bool result = 5 <= 6; Console.WriteLine(result); // True

Logical Operators



De Morgan laws  !!A

 A

 !A && !B  !(A && B)  !A || !B  !(A

|| B)

if and if-else Implementing Conditional Logic

The if Statement   



The most simple conditional statement Enables you to test for a condition Branch to different parts of the code depending on the result The simplest form of an if statement: if (condition) { statements; }

Condition and Statement 

The condition can be:  Boolean

variable  Boolean logical expression  Comparison expression 



The condition cannot be integer variable (like in C / C++) The statement can be:  Single

statement ending with a semicolon  Block enclosed in braces

How It Works? 

The condition is evaluated  If

it is true, the statement is executed  If it is false, the statement is skipped

The if Statement – Example static void Main() { Console.WriteLine("Enter two numbers."); int biggerNumber = int.Parse(Console.ReadLine());

int smallerNumber = int.Parse(Console.ReadLine()); if (smallerNumber > biggerNumber) { biggerNumber = smallerNumber; } Console.WriteLine("The greater number is: {0}", biggerNumber); }

The if-else Statement  



More complex and useful conditional statement Executes one branch if the condition is true, and another if it is false The simplest form of an if-else statement: if (expression) { statement1; } else { statement2; }

How It Works ?



The condition is evaluated  If

it is true, the first statement is executed  If it is false, the second statement is executed

if-else Statement – Example 

Checking a number if it is odd or even string s = Console.ReadLine(); int number = int.Parse(s); if (number % 2 == 0) { Console.WriteLine("This number is even."); } else { Console.WriteLine("This number is odd."); }

Nested if Statements if and if-else statements can be nested, i.e. used inside another if or else statement  Every else corresponds to its closest preceding if 

Nested if Statements – Example if (first == second) { Console.WriteLine( "These two numbers are equal."); } else { if (first > second) {

Console.WriteLine("The first number is bigger."); } else {

Console.WriteLine("The second is bigger."); } }

The switch-case  

Making Several Comparisons at Once Selects for execution a statement from a list depending on the value of the switch expression

switch (day) { case 1: Console.WriteLine("Monday"); break; case 2: Console.WriteLine("Tuesday"); break; case 3: Console.WriteLine("Wednesday"); break; case 4: Console.WriteLine("Thursday"); break; case 5: Console.WriteLine("Friday"); break; case 6: Console.WriteLine("Saturday"); break; case 7: Console.WriteLine("Sunday"); break; default: Console.WriteLine("Error!"); break; }

How switch-case Works? 1. 2.

The expression is evaluated When one of the constants specified in a case label is equal to the expression 

3.

The statement that corresponds to that case is executed

If no case is equal to the expression  

If there is default case, it is executed Otherwise the control is transferred to the end point of the switch statement

Loops Execute Blocks of Code Multiple Times  What is a Loop?  Loops in C# • while loops • do … while loops • for loops • foreach loops  Nested loops 

What Is Loop? 

A loop is a control statement that allows repeating execution of a block of statements  May

execute a code block fixed number of times  May execute a code block while given condition holds  May execute a code block for each member of a collection 

Loops that never end are called an infinite loops

Using while(…) Loop 



Repeating a Statement While Given Condition Holds The simplest and most frequently used loop while (condition) { statements; }



The repeat condition Returns a boolean result of true or false  Also called loop condition 

while(…) examples int counter = 0; while (counter < 10) { Console.WriteLine("Number : {0}", counter);

counter++; }

while(…) examples 

Calculate and print the sum of the first N natural numbers( Sum 1..N)

Console.Write("n = "); int n = int.Parse(Console.ReadLine()); int number = 1; int sum = 1; Console.Write("The sum 1"); while (number < n) { number++; sum += number ; Console.Write("+{0}", number); } Console.WriteLine(" = {0}", sum);

Prime Number – Example 

Checking whether a number is prime or not

Console.Write("Enter a positive integer number: "); uint number = uint.Parse(Console.ReadLine()); uint divider = 2; uint maxDivider = (uint) Math.Sqrt(number); bool prime = true; while (prime && (divider <= maxDivider)) { if (number % divider == 0) { prime = false; } divider++; } Console.WriteLine("Prime? {0}", prime);

Using break Operator to Calculating Factorial 

break operator exits the inner-most loop

static void Main() { int n = Convert.ToInt32(Console.ReadLine()); // Calculate n! = 1 * 2 * ... * n int result = 1; while (true) { if(n == 1) break; result *= n; n--; } Console.WriteLine("n! = " + result); }

do { … } 

while (…) Loop

Another loop structure is:

do { statements; } while (condition); 

The block of statements is repeated  While



the boolean loop condition holds

The loop is executed at least once

Factorial – Example 

Calculating N factorial

static void Main() { int n = Convert.ToInt32(Console.ReadLine()); int factorial = 1; do { factorial *= n; n--; } while (n > 0); Console.WriteLine("n! = " + factorial);

}

Product[N..M] – Example 

Calculating the product of all numbers in the interval [n..m]:

int n = int.Parse(Console.ReadLine()); int m = int.Parse(Console.ReadLine()); int number = n; decimal product = 1; do { product *= number; number++; } while (number <= m); Console.WriteLine("product[n..m] = " + product);

For Loops 

The typical for loop syntax is: for (initialization; test; update) { statements; }



Consists of  Initialization

statement  Boolean test expression  Update statement  Loop body block

The Initialization Expression for (int number = 0; ...; ...) { // Can use number here } // Cannot use number here 

Executed once, just before the loop is entered  Like



it is out of the loop, before it

Usually used to declare a counter variable

The Test Expression for (int number = 0; number < 10; ...) { // Can use number here } // Cannot use number here 

Evaluated before each iteration of the loop  If

true, the loop body is executed  If false, the loop body is skipped 

Used as a loop condition

The Update Expression for (int number = 0; number < 10; number++) { // Can use number here } // Cannot use number here 



Executed at each iteration after the body of the loop is finished Usually used to update the counter

Simple for Loop – Example 

A simple for-loop to print the numbers 0…9:

for (int number = 0; number < 10; number++) { Console.Write(number + " "); } 

A simple for-loop to calculate n!: decimal factorial = 1; for (int i = 1; i <= n; i++) { factorial *= i; }

Complex for Loop – Example 

Complex for-loops could have several counter variables: for (int i=1, sum=1; i<=128; i=i*2, sum+=i) { Console.WriteLine("i={0}, sum={1}", i, sum); }



Result:

i=1, i=2, i=4, i=8, ...

sum=1 sum=3 sum=7 sum=15

N^M – Example 

Calculating n to power m (denoted as n^m): static void Main() { int n = int.Parse(Console.ReadLine()); int m = int.Parse(Console.ReadLine()); decimal result = 1; for (int i=0; i
 The

above loop iterates of the array of days

 The

variable day takes all its values

Nested Loops 

Using Loops Inside a Loop



A composition of loops is called a nested loop A



loop inside another loop

Example:

for (initialization; test; update) { for (initialization; test; update) { statements; } … }

Triangle – Example 

Print the following triangle: 1 1 2 … 1 2 3 ... n

int n = int.Parse(Console.ReadLine()); for(int row = 1; row <= n; row++) { for(int column = 1; column <= row; column++) { Console.Write("{0} ", column); } Console.WriteLine(); }

Primes[N, M] – Example int n = int.Parse(Console.ReadLine()); int m = int.Parse(Console.ReadLine()); for (int number = n; number <= m; number++) { bool prime = true; int divider = 2; int maxDivider = Math.Sqrt(num); while (divider <= maxDivider) { if (number % divider == 0) { prime = false; break; } divider++; } if (prime) { Console.Write("{0} ", number); } }

Questions?

C# Language Fundamentals I.pdf

The if Statement. The if-else Statement. Nested if Statements. The switch-case Statement. Variables and Data Types Control Statements. Loops. Page 2 of ...

4MB Sizes 0 Downloads 159 Views

Recommend Documents

No documents