Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - variabili pubbliche
Forum - C# / VB.NET - variabili pubbliche

Avatar
gnapolitano@teletu.it (Normal User)
Newbie


Messaggi: 13
Iscritto: 20/06/2020

Segnala al moderatore
Postato alle 17:12
Mercoledì, 23/09/2020
Il programma è proteso a calcolare le operazioni rispettando le regole della precedenza.
Stringa è una variabile dichiarata pubblica a livello di modulo.
Essa contiene una serie di operazioni ,tipo 1200+5-2*90/10.
Sto procedendo così :
1)effettuo -con una serie di calcoli- la prima operazione, che è la moltiplicazione 2*90=180.
2)modifica quindi stringa originale in 1200+5-180/10 usando la funzione replace
        
    
Codice sorgente - presumibilmente Plain Text

  1. stringa = stringa.Replace(primonumero & simbolo & secondonumero, risultato)



Quando il programma va ad eseguire la nuova operazione (la divisione,cioè) si aspetta di trovare la nuova stringa,
invece...stringa è sempre quella originale.

Sbaglio,ma non capisco dove e perchè.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6117
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:32
Mercoledì, 23/09/2020
In vb.net non in c#....

Ultima modifica effettuata da nessuno il 23/09/2020 alle 21:47


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 797
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 21:06
Mercoledì, 23/09/2020
Metti una listbox e controlla la progressione del codice, così controlli se primonumero, simbolo e secondonumero, contengono veramente quello che vuoi, basta che ci sono degli spazi di troppo e replace non farà quello che vuoi.

Codice sorgente - presumibilmente VB.NET

  1. Dim stringa As String = "1200+5-2*90/10"
  2. ListBox1.Items.Add(stringa )
  3. Dim primonumero As String = "2"
  4. Dim simbolo As String = "*"
  5. Dim secondonumero As String = "90"
  6. Dim risultato As String = "180"
  7. ListBox1.Items.Add(primonumero & simbolo & secondonumero)
  8. ListBox1.Items.Add(risultato)
  9. stringa = stringa.Replace(primonumero & simbolo & secondonumero, risultato)
  10. ListBox1.Items.Add(stringa)



In che linguaggio stai programmando C# o VB .Net?

Ultima modifica effettuata da Carlo il 23/09/2020 alle 21:13


in programmazione tutto è permesso
PM Quote
Avatar
gnapolitano@teletu.it (Normal User)
Newbie


Messaggi: 13
Iscritto: 20/06/2020

Segnala al moderatore
Postato alle 21:25
Mercoledì, 23/09/2020
Grazie,Carlo.
Ho risolto comunque il problema passando "stringa" byref e non byval.

PM Quote