Zadání:
Sestavte program, který odečte dvě celá velká čísla.
Řešení:
Program po zadání dvou celých čísel otestuje pomocí příkazu IF, které z obou čísel je kratší a pomocí cyklu FOR
ho doplní zleva nulami na délku druhého čísla.
V dalším kroku program porovná obě čísla. Pokud je první číslo menší než druhé, obě čísla prohodí a zapamatuje
si znaménko"mínus".
Poté program pomocí cyklu FOR prochází obě čísla zprava, převede každý znak na číslo,
odečte tato čísla, odečte od nich přenos, výsledek převede na znak a přidá ho zleva k výsledku. Poté vypočte
přenos do vyššího řádu.
Na konci programu se výsledek vytiskne.
Module Module1
Sub Main()
Dim c1, c2, v, pom As String
Dim i As Integer
Dim z1, z2, prenos, s As Integer
Dim znamenko As Char
Console.Write("Zadejte prvni cislo: ")
c1 = Console.ReadLine
Console.Write("Zadejte druhe cislo: ")
c2 = Console.ReadLine
If Len(c1) > Len(c2) Then
For i = 1 To Len(c1) - Len(c2)
c2 = "0" + c2
Next i
Else
For i = 1 To Len(c2) - Len(c1)
c1 = "0" + c1
Next i
End If
znamenko = ""
If c1 < c2 Then
pom = c1
c1 = c2
c2 = pom
znamenko = "-"
End If
prenos = 0
v = ""
For i = Len(c1) - 1 To 0 Step -1
z1 = Asc(c1(i)) - Asc("0")
z2 = Asc(c2(i)) - Asc("0")
s = z1 - z2 - prenos
If s < 0 Then
s += 10
prenos = 1
Else
prenos = 0
End If
v = Chr((s) + Asc("0")) + v
Next i
If v(1) = "0" Then
v = Right(v, Len(v) - 2)
End If
v = znamenko + v
Console.WriteLine("Vysledek: {0}", v)
Console.ReadLine()
End Sub
End Module
program ke stažení