Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a program that reads a number between 1,000 and 999,999 from the user and

ID: 3625225 • Letter: W

Question

Write a program that reads a number between 1,000 and 999,999 from the user and prints it with a comma separating the thousands. Here is a sample dialog; the user input is in color:

Please enter an integer between 1000 and 999999: 23456
23,456

Explanation / Answer

Public myNumber As Long Private Sub Command1_Click() myNumber = Val(Text1.Text) SortNumberPosition (myNumber) End Sub Public Sub SortNumberPosition(ByRef theNumber As Long) Dim t As String Dim NumberPos(5) As String t = Val(theNumber) If t > 0 And t < 10 Then NumberPos(5) = t ElseIf t >= 10 And t < 100 Then NumberPos(5) = t Mod 10 NumberPos(4) = Left$(t, 1) ElseIf t >= 100 And t < 1000 Then NumberPos(5) = t Mod 10 NumberPos(4) = Mid$(t, 2, 1) NumberPos(3) = Left$(t, 1) ElseIf t >= 1000 And t < 10000 Then NumberPos(5) = t Mod 10 NumberPos(4) = Mid$(t, 3, 1) NumberPos(3) = Mid$(t, 2, 1) NumberPos(2) = Left$(t, 1) ElseIf t >= 10000 And t < 100000 Then NumberPos(5) = t Mod 10 NumberPos(4) = Mid$(t, 4, 1) NumberPos(3) = Mid$(t, 3, 1) NumberPos(2) = Mid$(t, 2, 1) NumberPos(1) = Left$(t, 1) ElseIf t >= 100000 And t < 1000000 Then NumberPos(5) = t Mod 10 NumberPos(4) = Mid$(t, 5, 1) NumberPos(3) = Mid$(t, 4, 1) NumberPos(2) = Mid$(t, 3, 1) NumberPos(1) = Mid$(t, 2, 1) NumberPos(0) = Left$(t, 1) ElseIf t > 0 And t >= 1000000 Then 'Roll back to zero theNumber = 0 'Redisplay number with 2 leading zeros to start NumberPos(5) = "0" NumberPos(4) = "0" NumberPos(3) = "" NumberPos(2) = "" NumberPos(1) = "" NumberPos(0) = "" End If 'Print for testing Print NumberPos(0); NumberPos(1); NumberPos(2); NumberPos(3); _ NumberPos(4); NumberPos(5) End Sub