Jun 5th, 2002, 02:50 AM
#1
Thread Starter
New Member
Please help with this array!
I have to make a project, in wich I have to convert Roman numbers (e.g. XIV) into "normal" numbers (e.g. 1,2,3). An array should cover it, but I really can't find out how it works.
Please Help Me!
ps
Maybe you can help me with the code?
Thanks everybody, It worked! Here is the code:
(some is in Dutch, but you'll get the genaral idea)
'Declarations Roman Numbers
Dim RomijnArray(10) As String
Dim RomLetter As String
Dim Romijnsstring As String
'delaraties arab cijfers
Dim ArabLetter1 As Integer
Dim ArabLetter2 As Integer
Dim ArabArray(10) As Integer
'declaraties totaal
Dim alles As Integer
Romijnsstring = UCase(txtRomeinsveld.Text)
l = Len(Romijnsstring)
alles = 0
For i = 1 To l
RomijnArray(i) = Mid(Romijnsstring, i, 1)
Next
For i = 1 To l
RomLetter = RomijnArray(i)
If RomLetter = "I" Then
ArabArray(i) = 1
ElseIf RomLetter = "V" Then
ArabArray(i) = 5
ElseIf RomLetter = "X" Then
ArabArray(i) = 10
ElseIf RomLetter = "L" Then
ArabArray(i) = 50
ElseIf RomLetter = "C" Then
ArabArray(i) = 100
ElseIf RomLetter = "D" Then
ArabArray(i) = 500
ElseIf RomLetter = "M" Then
ArabArray(i) = 1000
Else
MsgBox "Wrong number", vbExclamation
Exit Sub
End If
Next
For i = 1 To l
ArabLetter1 = ArabArray(i)
ArabLetter2 = ArabArray(i + 1)
If ArabLetter1 < ArabLetter2 Then
alles = alles - ArabLetter1
ElseIf ArabLetter1 > ArabLetter2 Or ArabLetter1 = ArabLetter2 Then
alles = alles + ArabLetter1
Else
MsgBox "Wrong Number", vbExclamation
Exit Sub
End If
Next
txtArabischveld.Text = alles
End Sub
Last edited by DutchBird; Jun 5th, 2002 at 05:00 AM .
Jun 5th, 2002, 03:02 AM
#2
-= B u g S l a y e r =-
Jun 5th, 2002, 03:05 AM
#3
Re: Please help with this array!
Originally posted by DutchBird
I have to make a project, in wich I have to convert Roman numbers (e.g. XIV) into "normal" numbers (e.g. 1,2,3). An array should cover it, but I really can't find out how it works.
Please Help Me!
ps
Maybe you can help me with the code?
Are you sure you really need array,
Can you explain me some...or
I can help you
Gary
Jun 5th, 2002, 03:17 AM
#4
Jun 5th, 2002, 03:20 AM
#5
Retired VBF Adm1nistrator
I had to do this in my computer science class last year.
May be of use to you
Code:
public class convert
{
public static void main (String[] args)
{
int userInput;
System.out.print("Please enter a number to convert : ");
userInput = TextIO.getInt();
if ((userInput > 3999) || (userInput < 0))
{
System.out.println("Can only convert numbers between 0 and 3999");
}
if ((Integer.toString(userInput).length() > 0) && (Integer.toString(userInput).length() < 5))
{
System.out.println(converter(userInput));
}
}
public static String converter(int int_number) {
String to_return = "";
if (Integer.toString(int_number).length() == 1)
{
to_return = onesToRomanNumerals(int_number);
}
else if (Integer.toString(int_number).length() == 2)
{
to_return = tensToRomanNumerals(int_number);
}
else if (Integer.toString(int_number).length() == 3)
{
to_return = hunsToRomanNumerals(int_number);
}
else if (Integer.toString(int_number).length() == 4)
{
to_return = thousandsToRomanNumerals(int_number);
}
return to_return;
}
public static String thousandsToRomanNumerals(int int_number) {
String var_temp = Integer.toString(int_number);
String var_huns = var_temp.substring(var_temp.length() - 3);
String var_thou = var_temp.substring(var_temp.length() - 4, var_temp.length() - 3);
String to_return = "";
switch (Integer.parseInt(var_thou)) {
case 0: to_return = hunsToRomanNumerals(Integer.parseInt(var_huns));
break;
case 1: to_return = "M" + hunsToRomanNumerals(Integer.parseInt(var_huns));
break;
case 2: to_return = "MM" + hunsToRomanNumerals(Integer.parseInt(var_huns));
break;
case 3: to_return = "MMM" + hunsToRomanNumerals(Integer.parseInt(var_huns));
break;
}
return to_return;
}
public static String hunsToRomanNumerals(int int_number) {
String var_temp = Integer.toString(int_number);
String var_tens = "", var_huns = "";
if (Integer.toString(int_number).length() == 3)
{
var_tens = var_temp.substring(var_temp.length() - 2);
var_huns = var_temp.substring(var_temp.length() - 3, var_temp.length() - 2);
}
else if (Integer.toString(int_number).length() == 2)
{
var_tens = var_temp.substring(var_temp.length() - 2);
var_huns = "0";
}
else if (Integer.toString(int_number).length() == 1)
{
var_tens = "0";
var_huns = "0";
}
String to_return = "";
switch (Integer.parseInt(var_huns)) {
case 0: to_return = tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 1: to_return = "C" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 2: to_return = "CC" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 3: to_return = "CCC" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 4: to_return = "CD" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 5: to_return = "D" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 6: to_return = "DC" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 7: to_return = "DCC" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 8: to_return = "DCCC" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
case 9: to_return = "CM" + tensToRomanNumerals(Integer.parseInt(var_tens));
break;
}
return to_return;
}
public static String tensToRomanNumerals(int int_number) {
String var_temp = Integer.toString(int_number);
String var_ones = "", var_tens = "";
if (Integer.toString(int_number).length() == 1)
{
var_ones = Integer.toString(int_number);
var_tens = "0";
}
else if (Integer.toString(int_number).length() == 2)
{
var_ones = var_temp.substring(var_temp.length() - 1);
var_tens = var_temp.substring(var_temp.length() - 2, var_temp.length() - 1);
}
String to_return = "";
switch (Integer.parseInt(var_tens)) {
case 0: to_return = onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 1: to_return = "X" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 2: to_return = "XX" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 3: to_return = "XXX" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 4: to_return = "XL" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 5: to_return = "L" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 6: to_return = "LX" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 7: to_return = "LXX" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 8: to_return = "LXXX" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
case 9: to_return = "XC" + onesToRomanNumerals(Integer.parseInt(var_ones));
break;
}
return to_return;
}
public static String onesToRomanNumerals(int int_number) {
String var_ones = Integer.toString(int_number);
var_ones = var_ones.substring(var_ones.length() - 1 );
String to_return = "";
switch (Integer.parseInt(var_ones)) {
case 0: to_return = "";
break;
case 1: to_return = "I";
break;
case 2: to_return = "II";
break;
case 3: to_return = "III";
break;
case 4: to_return = "IV";
break;
case 5: to_return = "V";
break;
case 6: to_return = "VI";
break;
case 7: to_return = "VII";
break;
case 8: to_return = "VIII";
break;
case 9: to_return = "IX";
break;
}
return to_return;
}
}
Microsoft MVP : Visual Developer - Visual Basic [2004-2005]
Jun 5th, 2002, 05:06 AM
#6
Roman to Decimal
This will work, good luck
Attached Files
Jun 6th, 2002, 06:00 AM
#7
Retired VBF Adm1nistrator
Re: Roman to Decimal
Originally posted by Flounder
This will work, good luck
Irish ?
Microsoft MVP : Visual Developer - Visual Basic [2004-2005]
Jun 6th, 2002, 08:19 AM
#8
Jun 6th, 2002, 08:20 AM
#9
Retired VBF Adm1nistrator
Re: Roman to Decimal
Originally posted by Flounder
Yes, Dun Laoighaire
Ah cool.
You know Everyman Computers on patrick street in dun laoghaire ?
Microsoft MVP : Visual Developer - Visual Basic [2004-2005]
Jun 6th, 2002, 08:41 AM
#10
Ireland
Actually no, I'm down on Crofton Road on the seafront
Jun 6th, 2002, 08:43 AM
#11
Retired VBF Adm1nistrator
Ah right.
'koz thats our dun laoghaire branch
Microsoft MVP : Visual Developer - Visual Basic [2004-2005]
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Click Here to Expand Forum to Full Width