Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2016
    Messaggi
    3
    Ok, ho risolto così. Anche se mi rimane il dubbio sul perché il precedente metodo funzionasse per la maggior parte delle possibili coppie di valori.

    Mi chiedevo se la nuova formulazione non fosse eccessivamente ridondante. Dite che si può risparmiare qualche riga di codice?

    codice:
    Private Sub CommandButton1_Click()
    
    
    Dim peso1, peso2 As Single
    
    
    peso1 = Val(TextBox1)
    peso2 = Val(TextBox2)
    
    
        If ((peso1 >= 40) And (peso1 <= 180)) And ((peso2 >= 40) And (peso2 <= 180)) Then
            If (peso1 <> peso2) Then
                If (peso1 < peso2) Then
                    MsgBox ("Il peso minore è" & " " & peso1 & " " & "kg")
                Else
                    MsgBox ("Il peso minore è" & " " & peso2 & " " & "kg")
                End If
            Else
                MsgBox ("Entrambi gli oggetti pesano" & " " & peso1 & " " & "kg")
            End If
        Else
            MsgBox ("Sono ammessi solo valori compresi tra 40 e 180 kg")
        End If
    
    
    End Sub

  2. #2
    Quote Originariamente inviata da pink87 Visualizza il messaggio
    ...Anche se mi rimane il dubbio sul perché il precedente metodo funzionasse per la maggior parte delle possibili coppie di valori.
    L' operatre AND esegue una congiunzione logica tra due espressioni Boolean oppure una congiunzione bit per bit tra due espressioni numeriche.


    Se scrivi: Debug.Print((47 And 48).ToString) vedrai che il risultato della congiunzione bit per bit è = 32.

    Per cui:

    Select Case 32
    Case 40 to 180.... 32 è fuori range


    Riguardo al risparmiare codice... risparmiare si può sempre. Occorre vedere se ne vale la pena.

    Ad esempio dichiarando una unica matrice e facendo un Sort, in modo da porre gli elementi in ordine crescente.

    In tal modo se Elemento1 >= 40 lo sarà sicuramente anche Elemento2, e se Elemento2 <= 180 lo sarà sicuramente anche Elemento1. Se non sono uguali il peso minore è sicuramente Elemento1 senza bisogno di altra verifica.
    Ultima modifica di eziogsv; 21-03-2016 a 19:40

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.