编程基础:内置函数
你需要熟悉大多数常见编程语言中内置的几个编程例程。这些例程非常有用,可以节省你在编写代码以执行常见任务方面的大量工作。你可能会被要求在考试中使用它们,所以要学习它们!
你必须熟悉几个
舍入函数用于使用 Math.Round()
函数将数字舍入到有限的小数位数
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
截断函数返回数字的整数部分,而不管小数位数。
Math.Truncate(19.45) 'Returns 19
Math.Truncate(19.9999) 'Returns 19
这在尝试在 模算术 中执行 DIV 时特别有用。
扩展:随机数 大多数游戏的一个重要部分是使用随机数的能力。这些可能用于在图上随机放置金币,或者计算你是否在一定距离处用步枪击中目标。 Dim rndGen As New Random()
Dim randomNumber As Integer
randomNumber = rndGen.Next()
上面的代码将为你提供一个介于 1 和 2,147,483,647 之间的随机数。你可能需要一个稍微小的数字。要获得两个设定数字之间的随机数,在本例中为 5 和 10,可以使用以下方法 randomNumber = rndGen.Next(5,10)
那么我们到底如何使用它呢?看看下面的游戏 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!")
调整上面的代码以告诉用户他们猜了多少次才找到随机数。提示:你需要一个变量 答案 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
|
练习:算术函数 以下代码输出什么 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))
答案 代码输出
24
编写一些代码以输出用户输入的数字的整数部分
答案 Math.Truncate(input)
编写代码以输出输入数字的整数和小数部分 代码输出
请输入一个十进制数字:13.78 答案 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))
|
非常受欢迎的考试问题涉及操纵字符串。这些简单的函数将帮助你完成此任务。
此函数用于查找传递给它的任何字符串的长度,包括空格在内的所有字符。在 Visual Basic 中,要查找字符串的长度,我们使用 Len("some string")
函数,该函数返回传递给它的字符串的整数长度
someText = "Gary had a little lamb"
Console.writeline(Len(someText))
22
此函数允许我们在给定字符串中查找项目的ตำแหน่ง并返回ตำแหน่ง的位置。在 Visual Basic 中,这是通过以下命令执行的:InStr([string], [item])
例如,我们可能想通过查找句号来查找句子结尾的位置
someText = "Gary had a little lamb. His fleece was white as snow."
Console.writeline(InStr(someText,"."))
23
我们也可以使用此命令在字符串中搜索字符串。例如,如果我们要查看一个句子是否包含某个名称
someText = "Gary had a little lamb. Dave's fleece was white as snow."
Console.writeline(InStr(someText,"Dave"))
25
如果搜索项未包含在字符串中,则它将返回 0
someText = "Gary had a little lamb. Dave's fleece was white as snow."
Console.writeline(InStr(someText,"Julie"))
0
此函数允许你从字符串中剪切项目并返回子字符串。Visual Basic 使用以下命令:[string].Substring([startPosition],[lengthOfReturnString])
。例如,我们可能想从给定的固定电话号码中找到本地号码。我们必须忽略区号
phone = "(01234)567890"
local = phone.Substring(7, 6)
console.writeline(local)
567890
此函数允许你将字符串粘合在一起(连接),以便你可以开始使用变量构建字符串。Visual Basic 使用以下命令:[stringA & stringB]
例如,我们可能在变量 dim name as string
中存储了一个用户的姓名,以及我们想给予他们的问候
name = "Charles"
console.writeline("Hello " & name & ". How are you today?")
你好,查尔斯。今天过得怎么样?
当你声明一个变量时,你给它一个数据类型。此数据类型限制了你可以放入变量的值。例如
dim age as integer
- 将允许:
age = 34
- 将不允许:
age = "cabbages"
这似乎很有道理,但是当你尝试将一个实数放入整数时会发生什么
dim age as integer
age = 34.3
console.writeline(age)
34
这似乎没问题,但是在其他语言中我们可能会遇到麻烦。要执行此操作,我们将不得不从一种数据类型转换为另一种数据类型
dim age as decimal
age = 34.3
console.writeline(age)
age = CInt(34.3) 'converts the decimal into an integer
console.writeline(age)
34.3 34
练习:字符串函数 编写一个简短的程序来告诉某人他们姓名中包含多少个字母(以防他们不知道!),例如 代码输出
输入:Fremlin 答案 Dim name As String
console.write("Input: ")
name = console.readline()
console.writeline("Hello " & name & " you have " & Len(name) & " letters in your name.")
有些人愚蠢地将他们的姓和名输入到数据库中,编写一些代码来显示姓,然后显示名 Dim name as string = "Elizabeth Sheerin"
代码输出
输入:Elizabeth Sheerin 答案 Dim name As String = "Elizabeth Sheerin"
Dim firstname, secondname As String
Dim space, textlength As Integer
space = InStr(name, " ")
textlength = Len(name)
firstname = name.Substring(0, space)
secondname = name.Substring(space, textlength - space)
Console.WriteLine("first name is: " & firstname)
Console.WriteLine("second name is: " & secondname)
电话号码已作为字符串输入到计算机中:(01234)567890 dim phonenum as string = "(01234)567890"
编写一些代码以输出不带括号的号码 代码输出
输入:(01234)567890 答案 Dim phonenum As String = "(01234)567890"
Dim firstbracket, secondbracket As String
Dim textlength, arealength As Integer
firstbracket = InStr(phonenum, "(")
secondbracket = InStr(phonenum, ")")
textlength = Len(phonenum)
arealength = secondbracket - firstbracket
Console.Write(phonenum.Substring(firstbracket, arealength - 1) & phonenum.Substring(secondbracket, textlength - secondbracket))
与上面类似的问题,电话号码目前以一种非常不可读的格式存储:01234567890,完全省略了区号。你能将它们转换为显示前 5 位数字是区号吗 dim phonenum as string = "01234567890"
然后应将其输出为 代码输出
输入:01234567890 答案 Dim phonenum As String = "01234567890"
Console.Write("(" & phonenum.Substring(0, 5) & ")" & phonenum.Substring(6, 5))
Console.ReadLine()
一个 回文 是一个可以从任何方向读作相同的单词、短语或数字。例如 1234321、RACECAR、TOOT 和 NUN。你需要编写一个程序来检查给定的任何输入是否为回文,并告知用户 代码输出
输入:NUN 答案 Dim name As String
Dim length As Integer
Dim Pal As Boolean = TRUE
console.write("Input: ")
name = console.readline()
length = Len(name)
For x = 0 to (length / 2)
If name.Substring(x, 1) != name.Substring(length - x, 1) then
Pal = FALSE
End If
Next
If Pal then
console.writeline("That is a palindrome!")
Else
console.writeline("That is NOT a palindrome!")
End If
|
扩展:REGEX 你通常希望检查输入字符串的格式,如果格式不正确,则希望重新提交。例如,你可能希望某人输入他们最好的朋友的姓名,这意味着他们不应该输入任何数字或空格,并且它应该以大写字母开头 代码输出
最好的朋友的姓名:Beanie(正确) 为此,我们可以根据一些规则将输入字符串与一些规则匹配,正则表达式或 regex,在本例中,我们只希望来自字母表的字符
分解规则
另一个例子可能是检查著名作曲家的正确拼写 "Handel", "Händel", and "Haendel" 我们可以使用模式
大多数正则表达式工具提供以下操作来构建表达式。 布尔“或” 竖线分隔备选方案。例如, 分组 括号用于定义运算符的范围和优先级(以及其他用途)。例如, 量化 在标记(如字符)或组后面的量词指定前面的元素允许出现的次数。
大多数编程语言都有正则表达式函数。在 VB.NET 中,我们可以使用 Regex 例程来使用正则表达式 ' this code enforces the name rule from earlier
Dim name As String
Console.Write("Name of best friend: ")
name = Console.Readline()
' match the string against a regular expression
Dim m As Match = Regex.Match(name, "[A-Z][a-z]+")
If (m.Success) Then
Console.WriteLine("You have input the name correctly")
Else
Console.WriteLine("Incorrect format!")
End If
正则表达式的常见用途是检查您是否输入了正确的电子邮件地址。该规则如下: 您可以在维基百科上了解更多关于 正则表达式 的信息,您将在 A2 中更详细地学习正则表达式。 |
到/从整数、实数、日期/时间。