Results 1 to 11 of 11

Thread: Please help with this array!

  1. #1

    Thread Starter
    New Member
    Join Date
    Jun 2002
    Posts
    1

    Exclamation 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.

  2. #2
    -= B u g S l a y e r =- peet's Avatar
    Join Date
    Aug 2000
    Posts
    9,629
    -= a peet post =-

  3. #3
    champgary
    Guest

    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

  4. #4
    champgary
    Guest
    peet this is really cool

  5. #5
    Retired VBF Adm1nistrator plenderj's Avatar
    Join Date
    Jan 2001
    Location
    Dublin, Ireland
    Posts
    10,359
    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]

  6. #6
    Flounder
    Guest

    Roman to Decimal

    This will work, good luck
    Attached Files Attached Files

  7. #7
    Retired VBF Adm1nistrator plenderj's Avatar
    Join Date
    Jan 2001
    Location
    Dublin, Ireland
    Posts
    10,359

    Re: Roman to Decimal

    Originally posted by Flounder
    This will work, good luck
    Irish ?
    Microsoft MVP : Visual Developer - Visual Basic [2004-2005]

  8. #8
    Flounder
    Guest

    Roman to Decimal

    Yes, Dun Laoighaire

  9. #9
    Retired VBF Adm1nistrator plenderj's Avatar
    Join Date
    Jan 2001
    Location
    Dublin, Ireland
    Posts
    10,359

    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]

  10. #10
    Flounder
    Guest

    Ireland

    Actually no, I'm down on Crofton Road on the seafront

  11. #11
    Retired VBF Adm1nistrator plenderj's Avatar
    Join Date
    Jan 2001
    Location
    Dublin, Ireland
    Posts
    10,359
    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
  •  



Click Here to Expand Forum to Full Width