カテゴリー
Visual Basic

逆ポーランド記法の計算、Stack使用しました。

Imports System

Module Program
    Sub Main(args As String())
        Dim rpnstr As String = "6.1 5.2 4.3 * + 3.4 2.5 / 1.6 * - "
        Dim opeStack As New Stack

        While True
            If rpnstr.Length = 0 Then
                GoTo owari
            End If

            Dim fSpacePosition As Integer = rpnstr.IndexOf(" ")
            Dim fstr As String = rpnstr.Substring(0, fSpacePosition)
            Dim nstr As String = Strings.Right(rpnstr, rpnstr.Length - fSpacePosition - 1)

            If fstr = "+" Or fstr = "-" Or fstr = "*" Or fstr = "/" Then
                Dim y As Double = CDbl(opeStack.Pop)
                Dim x As Double = CDbl(opeStack.Pop)
                Select Case fstr
                    Case "+" : opeStack.Push(CStr(x + y))
                    Case "-" : opeStack.Push(CStr(x - y))
                    Case "*" : opeStack.Push(CStr(x * y))
                    Case "/" : opeStack.Push(CStr(x / y))
                End Select
            Else
                opeStack.Push(fstr)
            End If
            rpnstr = nstr
        End While
owari:
        Console.WriteLine(opeStack.Pop)
        Console.WriteLine("Hello World!")
    End Sub
End Module
カテゴリー
Visual Basic

逆ポーランド記法の計算式

Imports System

Module Program
    Sub Main(args As String())
        Dim rpnstr As String
        Dim rpnary() As String
        Dim ans As Double
        rpnstr = "6.1 5.2 4.3 * + 3.4 2.5 / 1.6 * - "
        While True
            rpnstr = RTrim(rpnstr)
            rpnary = rpnstr.Split(" ")
            If rpnary.Length = 1 Then
                ans = rpnary(0)
                GoTo owari
            End If
            Dim i As Integer = 0
            While True
                If rpnary(i) = "+" Or rpnary(i) = "-" Or rpnary(i) = "*" Or rpnary(i) = "/" Then
                    GoTo mikke
                End If
                i += 1
            End While

mikke:
            Dim a As Double
            Dim b As Double
            a = CDbl(rpnary(i - 2))
            b = CDbl(rpnary(i - 1))
            If rpnary(i) = "+" Then
                rpnary(i - 2) = a + b
            ElseIf rpnary(i) = "-" Then
                rpnary(i - 2) = a - b
            ElseIf rpnary(i) = "*" Then
                rpnary(i - 2) = a * b
            Else
                rpnary(i - 2) = a / b
            End If

            rpnary(i - 1) = ""
            rpnary(i) = ""
            rpnstr = ""

            Dim j As Integer = 0
            For j = 0 To i - 2 - 1
                rpnstr += rpnary(j) + " "
            Next
            rpnstr += CStr(rpnary(i - 2)) + rpnary(i - 1) + rpnary(i) + " "
            For j = i + 1 To rpnary.Length - 1
                rpnstr += rpnary(j) + " "
            Next

        End While
owari:
        Console.WriteLine(ans)
        Console.WriteLine("Hello World!")
    End Sub
カテゴリー
Visual Basic

Visual Basicでhighlighting code blockを使ってみると…。

#include <stdio.h>
int main(){
    puts("Hello");
    return 0;
}
dim a as integer
a = 100
print a
dim a as integer
a = 100
print a

highlighting code blockを使ってますが、デフォルトでの設定以外では、free契約のWordPressでは出来ないようです。何故かというと、サーバーにアクセスできないようですので。その結果、Visual Basicでは使えないということです。別に試したところでは、VS2022以上の使用感は実現されていないようです。上に載せているように、コードだけであれば問題ないように思います。

inserted by FC2 system