Ask Me Help Desk

Ask Me Help Desk (https://www.askmehelpdesk.com/forum.php)
-   Visual Basic (https://www.askmehelpdesk.com/forumdisplay.php?f=469)
-   -   Visual basics how many rolls to cover a wall (https://www.askmehelpdesk.com/showthread.php?t=431124)

  • Jan 3, 2010, 08:07 PM
    littleivyle
    visual basics how many rolls to cover a wall
    I have to create an application that calculates the number of wallpaper rolls to cover a wall. I also have to use one or more independent sub or function procedures. So far I have this but it keeps telling me I can't divide by zero.
    'declare variables
    Dim WallWidth As Integer 'width of wall
    Dim WallHeight As Integer 'height of wall
    Dim RollLength As Integer ' length of wallpaper roll
    Dim RollWidth As Integer ' width of wallpaper roll
    Dim areawall As Integer
    Dim area As Integer
    Dim NumofRoll As Integer 'number of rolls needed
    Dim totroll As Integer

    'Text box is numeric
    If txtwidthwall.Text <> "" Then
    'assign text box
    If IsNumeric(txtwidth.Text) Then
    WallWidth = Convert.ToInt32(txtwidth.Text)
    ElseIf IsNumeric(txtheight.Text) Then
    WallHeight = Convert.ToInt32(txtheight.Text)
    ElseIf IsNumeric(txtlengthwall.Text) Then
    RollLength = Convert.ToInt32(txtlengthwall.Text)
    ElseIf IsNumeric(txtwidthwall.Text) Then
    RollWidth = Convert.ToInt32(txtwidthwall.Text)

    Else
    MessageBox.Show("Please enter number.", _
    "Wallpaper", MessageBoxButtons.OK, _
    MessageBoxIcon.Information, _
    MessageBoxDefaultButton.Button1)

    End If
    areawall = WallWidth * WallHeight
    Call Arearoll(RollLength, RollWidth, Area)
    totroll = areawall / area

    End If
    Me.lbltotal.Text = Convert.ToString(totroll)






    End Sub
    Private Sub Arearoll(ByVal length As Integer, ByVal width As Integer, ByRef area As String)
    'calculates the number of rolls
    area = length * width
  • Jan 4, 2010, 08:29 AM
    InfoJunkie4Life

    You never put a value in your "area" variable, but you defined it as an integer. This will cause it to be equal to zero until otherwise stated. The "length" and "width" variables were never declared, or assigned a value, so your Sub does nothing. You can't divide by zero (at least not in VB). Thus areawall / area = nonsense.
  • Jan 4, 2010, 08:29 AM
    InfoJunkie4Life
    Just from this glance, it seems like you're over complicating this task.
  • Jan 5, 2010, 04:15 PM
    littleivyle

    so if I don't do a separate sub function and just solve the area in the calculate sub would I put the area intger and change that to a string variable
  • Jan 5, 2010, 06:33 PM
    InfoJunkie4Life

    totroll = areawall / area

    instead

    totroll = areawall / Val(area)

    As long as area doesn't contain any other characters.

    Why is it a string value anyway?
  • Jan 5, 2010, 08:30 PM
    littleivyle

    No I think that should work! Thanks so much!

  • All times are GMT -7. The time now is 11:50 PM.