How to resolve the algorithm Box the compass step by step in the Visual Basic .NET programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Box the compass step by step in the Visual Basic .NET programming language

Table of Contents

Problem Statement

There be many a land lubber that knows naught of the pirate ways and gives direction by degree! They know not how to box the compass!

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Box the compass step by step in the Visual Basic .NET programming language

Source code in the visual programming language

Module BoxingTheCompass
    Dim _points(32) As String

    Sub Main()
        BuildPoints()

        Dim heading As Double = 0D

        For i As Integer = 0 To 32
            heading = i * 11.25
            Select Case i Mod 3
                Case 1
                    heading += 5.62
                Case 2
                    heading -= 5.62
            End Select

            Console.WriteLine("{0,2}: {1,-18} {2,6:F2}°", (i Mod 32) + 1, InitialUpper(GetPoint(heading)), heading)
        Next
    End Sub

    Private Sub BuildPoints()
        Dim cardinal As String() = New String() {"north", "east", "south", "west"}
        Dim pointDesc As String() = New String() {"1", "1 by 2", "1-C", "C by 1", "C", "C by 2", "2-C", "2 by 1"}

        Dim str1, str2, strC As String

        For i As Integer = 0 To 3
            str1 = cardinal(i)
            str2 = cardinal((i + 1) Mod 4)
            strC = IIf(str1 = "north" Or str1 = "south", str1 & str2, str2 & str1)
            For j As Integer = 0 To 7
                _points(i * 8 + j) = pointDesc(j).Replace("1", str1).Replace("2", str2).Replace("C", strC)
            Next
        Next
    End Sub

    Private Function InitialUpper(ByVal s As String) As String
        Return s.Substring(0, 1).ToUpper() & s.Substring(1)
    End Function

    Private Function GetPoint(ByVal Degrees As Double) As String
        Dim testD As Double = (Degrees / 11.25) + 0.5
        Return _points(CInt(Math.Floor(testD Mod 32)))
    End Function
End Module


  

You may also check:How to resolve the algorithm 9 billion names of God the integer step by step in the FreeBASIC programming language
You may also check:How to resolve the algorithm Metronome step by step in the C programming language
You may also check:How to resolve the algorithm Set puzzle step by step in the EchoLisp programming language
You may also check:How to resolve the algorithm Loops/Wrong ranges step by step in the Racket programming language
You may also check:How to resolve the algorithm Loops/For with a specified step step by step in the ChucK programming language