У меня возникли проблемы с вызовом процедур в моей программе. По сути, это программа, предназначенная для кодирования введенного пользователем сообщения на основе нажатия клавиши, и она отлично работает, когда я не определяю никаких функций или процедур, и все находится только в «основной» процедуре.
Однако теперь, когда я определил функции и процедуры, у меня возникли проблемы с вызовом процедур из «основной» процедуры. Ниже мой код:
Dim alphabet As String = "abcdefghijklmnopqrstuvwxyz "
Dim cipherText As String = "abcdefghijklmnopqrstuvwxyz "
Dim charPos As Integer = 0
Dim Cipher As String = ""
Dim Decoded As String = ""
Function userMessage()
'User inputs message
Dim message As String
Console.WriteLine("Please input your message")
message = Console.ReadLine()
Return message
End Function
Function userKey()
'User inputs key
Dim key As Integer
Console.WriteLine("Please enter your key")
key = Console.ReadLine()
Return key
End Function
Sub encodeMessage(ByRef message, ByRef key)
cipherText = cipherText.Substring(key) & cipherText.Substring(0, key) 'Reorder based on key
'Encode message
For i = 0 To message.Length - 1
charPos = alphabet.IndexOf(message(i))
Cipher = Cipher & cipherText(charPos)
Next i
Console.WriteLine(Cipher)
End Sub
Sub decodeMessage(ByRef message, ByRef key)
cipherText = cipherText.Substring(key) & cipherText.Substring(0, key) 'Reorder based on key
'Decode message
For i = 0 To Cipher.Length - 1
charPos = cipherText.IndexOf(Cipher(i))
Decoded = Decoded & alphabet(charPos)
Next i
Console.WriteLine(Decoded)
End Sub
Sub Main()
userMessage()
userKey()
encodeMessage()
decodeMessage()
Console.ReadLine()
End Sub
End Module
Проблема, которую я обнаружил, заключается в процедуре main
, где я пытаюсь вызвать две процедуры encodeMessage
и decodeMessage
, которые мне говорят
Не указан аргумент для параметра message в Public Sub encodeMessage
и он также показывает ту же ошибку для key
.
Я попытался вставить его туда, например, encodeMessage(key, message)
, и я получаю сообщение об ошибке
key и message не объявлены.
Затем я объявлю их в основной функции, такой как Sub Main(ByRef key, ByRef message)
, однако затем я получаю другую ошибку, говорящую
Не найден доступный метод 'Main' с соответствующей сигнатурой.
Это очень расстраивает, и я был бы очень признателен за помощь в этом (p.s., я очень новичок в Visual Basic).
Спасибо,
Dim key = userKey()
. Этот новый локальный ключ является одним из параметров, которые вы определили дляencodeMessage
, но не передаете - person Ňɏssa Pøngjǣrdenlarp   schedule 20.03.2016