Public Tiedot(5) As Variant
Dim KaTiedot(3, 2)
Kuinka käänetään yllä määritellyissä taulukoissa olevien merkkijonojen merkkien järjestys niin, että syntyy uudet vastaavat taulukot PublicUus(5) As Variant ja Dim KaTiedotUus, joissa merkeillä on käänteinen järjestys?
Eli Tiedot(5) taulussa "auto" muuttu muotoon "otua".
Ja KaTiedot muutuvat seuraavasti:
alkuperäinen KaTiedot(3,2)
Petteri Pura
Anneli Taina
Kimmo Sasi
KaTiedotUus
araP iretteP
aniaT ilennA
isaS ommiK
Dim KaTiedot(3, 2)
Kuinka käänetään yllä määritellyissä taulukoissa olevien merkkijonojen merkkien järjestys niin, että syntyy uudet vastaavat taulukot PublicUus(5) As Variant ja Dim KaTiedotUus, joissa merkeillä on käänteinen järjestys?
Eli Tiedot(5) taulussa "auto" muuttu muotoon "otua".
Ja KaTiedot muutuvat seuraavasti:
alkuperäinen KaTiedot(3,2)
Petteri Pura
Anneli Taina
Kimmo Sasi
KaTiedotUus
araP iretteP
aniaT ilennA
isaS ommiK
Vastaukset 2
Vanhimmat
Aliohjelma palauttaa käännetyn merkkijonon (taulukoiden ulottuvuuksia ja indeksejä muutettu).
Sub Main()
Dim KaTiedot(3) As Variant
Dim KaTiedotUus(3) As Variant
Dim Tiedot(1) as Variant
Dim Uus(1) As Variant
Dim i As Integer
KaTiedot(1) = "Petteri Pura"
KaTiedot(2) = "Anneli Taina"
KaTiedot(3) = "Kimmo Sasi"
Tiedot(1) = "auto"
For I = 1 To 3
KaTiedotUus(I) = Vaihda(KaTiedot(I, 1))
Next I
Uus(1) = Vaihda(Tiedot(1))
End Sub
Function Vaihda(Mj As Variant)
Dim I As Integer
Dim MjUus As Variant
For I = Len(Mj) To 1 Step -1
MjUus = MjUus & Mid(Mj, I, 1)
Next I
Vaihda = MjUus
End Function
Koden koodissa virhe
KaTiedotUus(I) = Vaihda(KaTiedot(I, 1))
pitäisi olla
KaTiedotUus(I) = Vaihda(KaTiedot(I))
Riippuu siitä miten tiedot syötetään yksi tai kaksirivisenä. Alkuperäinen oli ainakin määritelty 2 riviseksi, joten tässä malli molemmista
Option Base 1
Sub Main()
Dim KaTiedot(3) As Variant
Dim KaTiedotUus(3) As Variant
Dim Tiedot(5) As Variant
Dim Uus(5) As Variant
Dim I As Integer
KaTiedot(1) = "Petteri Pura"
KaTiedot(2) = "Anneli Taina"
KaTiedot(3) = "Kimmo Sasi"
Tiedot(1) = "auto"
For I = 1 To 3
KaTiedotUus(I) = StrReverse(KaTiedot(I))
Next I
Uus(1) =StrReverse(Tiedot(1))
End Sub
tai
Option Base 1
Sub koe()
Dim KaTiedot(3, 2)
Dim KaTiedotUus(3, 2)
Dim Tiedot(5) As Variant
Dim Uus(5) As Variant
Dim c As Integer
KaTiedot(1, 1) = "Petteri"
KaTiedot(1, 2) = "Pura"
KaTiedot(2, 1) = "Anneli"
KaTiedot(2, 2) = "Taina"
KaTiedot(3, 1) = "Kimmo"
KaTiedot(3, 2) = "Sasi"
Tiedot(1) = "auto"
For a = 1 To UBound(KaTiedot)
c = 1
For b = 2 To 1 Step -1
KaTiedotUus(a, c) = StrReverse(KaTiedot(a, b))
c = c 1
Next b
Next a
Uus(1) =StrReverse(Tiedot(1))
End Sub