Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente bannato
    Registrato dal
    Oct 2005
    Messaggi
    66

    valore delle lettere

    salve.
    Ho cominciato a scrivere un programmino, dove,
    inserendo in fase di input un nome, una parola,
    mi venga dato in cambio la somma del valore
    delle singole lettere


    textbox di input=testo
    textbox di uscita=totale

    For i = 1 To Len(testo)
    lettera = UCase$(Mid$(testo, i, 1))
    somma = somma + (Asc(lettera) - 64)
    Next i

    totale = Val(somma)

    questo funziona, ma il valore che mi viene dato
    é uguale a a=1, poi b=2...ecc.
    io vorrei invece che i valori dell'alfabeto
    siano decisi da me e dati come variabili fisse
    all'inizio del programma.
    Per es. a=10, b=50, ...ecc. e che la somma finale
    venga fatta in base ai valori da me dati alle lettere.

    Cosa posso fare/cambiare per raggiungere cio'?
    grazie

  2. #2
    Quello che dico vale in generale a prescindere dal linguaggio(che va inserito nel titolo).
    è VB6?
    Con ASC ottieni il codice ASCII del carattere che immetti.
    Tu ottieni A=1, B=2... perchè il codice ASCII di A è 65 il codice ASCII di B è 66...quindi sottraendo 64 ottieni i valori 1,2...
    Tu ha una cosa del genere:
    a = 10
    b = 50
    ...

    Puoi modificare il ciclo for così:
    For i = 1 To Len(testo)
    lettera = UCase$(Mid$(testo, i, 1))
    if lettera = "A" then
    somma = somma + (10 - 64)
    elseif lettera = "B" then
    somma = somma + (50 - 64)
    elseif...
    somma = ...
    end if
    Next i

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da satriano
    salve.
    Ciao e benvenuto nel forum di Programmazione.

    Leggi il Regolamento per conoscere tutte le regole di buona convivenza e corretto utilizzo di questo spazio.

    In particolare, ricordati sempre di specificare il linguaggio utilizzato nel titolo della discussione, magari prendendo spunto dalle discussioni esistenti come esempio.

    Questo titolo lo correggo io, non appena mi confermi linguaggio e versione; ai prossimi, pensaci tu.

    Ciao e buon forum!

    Originariamente inviato da mardok30
    Quello che dico vale in generale a prescindere dal linguaggio(che va inserito nel titolo). è VB6?
    Evitate di fornire risposte fino a quando non è dato per certo linguaggio e versione, altrimenti rischiate di fornire risposte inutili ai fini della discussione.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente bannato
    Registrato dal
    Oct 2005
    Messaggi
    66
    Chiedo scusa per l'omissione del titolo.
    Non succederà più.
    Grazie

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da satriano
    Chiedo scusa per l'omissione del titolo.
    Non succederà più.
    Sì, ma non hai letto il mio messaggio fino in fondo, dato che non mi hai comunicato il linguaggio cui facciamo riferimento. :rollo:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Per ottimizzare potresti definire un array da 26 elementi (da 1 a 26) dentro il quale memorizzi il valore che assumerà la lettera corrispondente. Nel ciclo sommi il contenuto dell'elemento dell'array indicizzato dalla lettera.

    Es:
    codice:
    Array(1 to 26) of integer
    
    Totale=Totale+Array(Asc(UCase$(Mid$(testo, i, 1))-64)

  7. #7
    Utente bannato
    Registrato dal
    Oct 2005
    Messaggi
    66
    Il linguaggio a cui mi riferivo nella mia
    richiesta di aiuto era VB6

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