# Fundamentals of Programming: Built-in functions

 ← Iteration Built-in functions One-Dimensional Arrays →

You need to be familiar with several programming routines that come built into most common programming languages. These routines are very useful and should save you a lot of effort in writing code to perform common tasks. You might be asked to use them in the exam so learn them!

### Arithmetic functions

You'll have to be familiar with several

#### Round

The round function is used to round numbers to a limited number of decimal places using the Math.Round() function

Math.Round(1.94, 1) 'Returns 1.9
Math.Round(1.95, 1) 'Returns 1.9 !0.5 rounds down!
Math.Round(1.96, 1) 'Returns 2.0
Math.Round(1.9445, 2) 'Returns 1.94
Math.Round(1.9545, 3) 'Returns 1.954
Math.Round(6.765, 2) 'Returns 6.76
Math.Round(1.9445) 'Returns 2 - the equivalent of saying round to 0 dp

#### Truncation

The truncate function returns the integer part of a number, regardless of the decimal places.

Math.Truncate(19.45) 'Returns 19
Math.Truncate(19.9999) 'Returns 19

This is particularly useful when you are trying to perform DIV in modular arithmetic.

 Extension: Random numbers An essential part of most games is the ability to use random numbers. These might be used to randomly place gold coins on a map, or to calculate whether you hit a target with a rifle at some distance. Dim rndGen As New Random() Dim randomNumber As Integer randomNumber = rndGen.Next() The above code will give you a random number between 1 and 2,147,483,647. You might well require a number that is a little smaller. To get a random number between two set numbers, in this case 5 and 10 you can use the following: randomNumber = rndGen.Next(5,10) So how exactly can we use this? Take a look at the following game: Dim rndGen As New Random() Dim randomNumber As Integer Dim guess as Integer randomNumber = rndGen.Next(1,100) console.writeline("Please guess the random number between 1 and 100") Do console.write("your guess:") guess = console.readline() if guess > randomNumber console.writeline("Too High") end if if guess < randomNumber console.writeline("Too Low") end if Loop While guess <> randomNumber console.writeline("Well done, you took x guesses to find it!") Adjust the code above to tell the user how many guesses they took to find the random number. HINT: you'll need a variable Answer : Sub Main() Dim rndGen As New Random() Dim randomNumber As Integer Dim guess As Integer Dim count As Integer = 1 randomNumber = rndGen.Next(1, 100) Console.WriteLine("Please guess the random number between 1 and 100") Do Console.Write("your guess:") guess = Console.ReadLine() If guess > randomNumber Then Console.WriteLine("Too High") End If If guess < randomNumber Then Console.WriteLine("Too Low") End If If guess <> randomNumber Then count = count + 1 End If If guess = randomNumber Then Console.WriteLine("Well done, you took " & count & " guesses to find it!") End If Loop End Sub
 Exercise: Arithmetic function What does the following code output: dim num1 as single = 12.75 dim num2 as single = 12.499 dim total as single num2 = Math.Round(num2, 1) num1 = Math.Truncate(num1) total = num1 + num2 console.writeline(Math.Round(total)) Answer :    Code Output 24 Write some code to output the integer part of a number input by the user Answer : Math.Truncate(input) Write code to output the integer and decimal parts of an input number:    Code Output Please insert a decimal number: 13.78 The whole number part of this number is: 13 The decimal part is: 0.78 Answer : dim num as single console.write("Please insert a decimal number: ") num = console.readline() console.writeline("The whole number part of this number is: " & Math.Truncate(num)) console.writeline("The decimal part is: " & num - Math.Truncate(num))

### String handling functions

#### Length

This function is used to find the length of any string you pass it, counting all the characters, including the spaces. In visual basic to find the length of a string we use the Len("some string") function that returns the integer length of the string that it has been passed:

someText = "Gary had a little lamb"
Console.writeline(Len(someText))
Code Output

22

#### Position

This function allows us to find the position of an item within a given string and returns the position's location. In visual basic this is performed by the following command: InStr([string], [item]) For example we might want to find the location of an end of a sentence by looking for a fullstop:

someText = "Gary had a little lamb. His fleece was white as snow."
Console.writeline(InStr(someText,"."))
Code Output

23

We can also use this command to search for strings within strings. For example if we were to look for to see if a sentence contained a certain name:

someText = "Gary had a little lamb. Dave's fleece was white as snow."
Console.writeline(InStr(someText,"Dave"))
Code Output

25

If the search item is not contained in the string then it will return 0

someText = "Gary had a little lamb. Dave's fleece was white as snow."
Console.writeline(InStr(someText,"Julie"))
Code Output

0

#### Substring

This function allows you to snip items out of a string and return a substring. Visual Basic uses the following command: [string].Substring([startPosition],[lengthOfReturnString]). For example we might want to find the local number from a landline phone number we have been given. We'll have to ignore the area code:

phone = "(01234)567890"
local = phone.Substring(7, 6)
console.writeline(local)
Code Output

567890

#### Concatenation

This function allows you to stick strings together (concatenate) so that you can start to build strings using variables. Visual Basic uses the following command: [stringA & stringB] For example we might have a users name stored in a variable dim name as string and a greeting that we would like to give them:

name = "Charles"
console.writeline("Hello " & name & ". How are you today?")
Code Output

Hello Charles. How are you today?

#### String conversion functions

When you declare a variable you give it a datatype. This datatype restricts the values that you can place into the variable. For example:

dim age as integer
would allow: age = 34
would NOT allow: age = "cabbages"

This seems to make sense, but what would happen when you try to place a real number into a integer:

dim age as integer
age = 34.3
console.writeline(age)
Code Output

34

This might seem OK, but in other lanuages we might run into trouble. To perform this we would have to convert from one datatype to another:

dim age as decimal
age = 34.3
console.writeline(age)
age = CInt(34.3) 'converts the decimal into an integer
console.writeline(age)
Code Output

34.3 34