Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema: maggiore tra più numeri VB

    Ciao a tutti, ho riscontrato un problema con l'esecuzione di un programma in cui devo inserire in input una stringa contenente dei numeri, separati da un punto e virgola, e devo individuare e mandare in output solo il maggiore.
    Non riesco a capire dove sia l'errore perchè mi dice che massimo è pari a 0, qualcuno può aiutarmi?

    Dim stringa As String
    Dim calc_massimo As Double
    Dim max, min As String


    max = ""


    stringa = TB_stringa.Text


    If stringa >= "A" And stringa <= "Z" Or stringa >= "a" And stringa <= "z" Then
    MsgBox("la stringa non contiene solo numeri") : Exit Sub
    End If


    calc_massimo = Calcola_Massimo(stringa, max)


    Call Ris( calc_massimo)
    End Sub




    Private Sub Ris(ByVal calc_massimo As Double)
    MsgBox("il numero maggiore è: " & calc_massimo)
    End Sub



    Private Function Calcola_Massimo(ByVal max As String, ByVal stringa As String) As String
    Dim car, num As String
    Dim n As Double
    Dim massimo As Double
    Dim conta As Integer


    num = 0


    For i = 1 To Len(stringa)


    car = Mid(stringa, i, 1)


    If IsNumeric(car) Then
    num &= car
    End If


    If car = ";" Or car = "" Or i = Len(stringa) Then


    n = CDbl(car)
    num = ""
    conta += 1


    If conta = 1 Then
    max = n
    End If


    If n > max Then
    massimo = n
    Else
    massimo = max
    End If
    End If
    Next


    Return massimo
    End Function
    End Class

  2. #2
    non devi fare tutti quei giri per separare i numeri; c'è la funzione Split() che tu permette di ottenere un array (esempio:
    codice:
    DIM listaNumeri()
    listaNumeri=Split(stringaInput,";")
    poi cicla l'array e trovi il più grande

    P.S. il codice va tra i tag CODE, come ho fatto io, sennò non si capisce niente

  3. #3
    la funzione split, l'insegnate non l'ha introdotta e non posso usarla. Alla fine sono riuscita a risolvere riordinando la sequenza delle variabili quando le passavo ad un'altra funzione.
    Grazie

  4. #4
    bene, sono contento che tu abbia risolto. Se puoi, posta il codice corretto, così da aiutare altri forumisti che avessero lo stesso problema.

    Piccolo off-topic: che scuola frequenti? Perché sono incuriosito dal fatto che per insegnare programmazione si usi un linguaggio il cui ciclo di vita è terminato più di 15 anni fa... (anche se continua ad essere usato). Grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.