Autore Topic: Percentuali  (Letto 1045 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Percentuali
« Risposta #15 il: 03 Maggio 2023, 21:53:15 »
Mostraci queste formule che hai utilizzato...
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
Re:Percentuali
« Risposta #16 il: 03 Maggio 2023, 21:59:42 »
Mostraci queste formule che hai utilizzato...

formula
percentuale = (valore_percentuale / 100) * valore_totale

Applico il 40%
Codice: [Seleziona]
   Dim Risultato As String
    Dim Espressione As String
    espressione = "5+1+30*3+(40/100)*100"
    Risultato = Eval(Espressione)
    Print "Il risultato dell'espressione " & Espressione & " è: " & Risultato
« Ultima modifica: 03 Maggio 2023, 22:01:36 da Gratisweb »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Percentuali
« Risposta #17 il: 03 Maggio 2023, 22:02:49 »
Eh... questo codice funziona.
Dove è invece il problema ?  ???

Come vedi, trovando prima la percentuale, in "Eval()" non hai problemi.
« Ultima modifica: 03 Maggio 2023, 22:04:39 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
Re:Percentuali
« Risposta #18 il: 03 Maggio 2023, 22:09:48 »
Eh... questo codice funziona.
Dove è invece il problema ?  ???

Come vedi, trovando prima la percentuale, in "Eval()" non hai problemi.

Come risultato mi da 136, invece se lo faccio da calcolatrice come risultato mi da 136

se lo faccio dda calcolatrice fisica
5+1+30*3+40%

mi da 134,4

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Percentuali
« Risposta #19 il: 03 Maggio 2023, 22:12:59 »
Non desidero avventurarmi in "Eval()", poiché io non lo uso mai. quindi in sostanza non lo conosco adeguatamente.  :-X
Suppongo che il segno di percentuale non lo supporti, e pertanto non lo comprenda.  :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
Re:Percentuali
« Risposta #20 il: 03 Maggio 2023, 22:14:48 »
Non desidero avventurarmi in "Eval()", poiché io non lo uso mai. quindi in sostanza non lo conosco adeguatamente.  :-X
Suppongo che il segno di percentuale non lo supporti, e pertanto non lo comprenda.  :-\

al posto di eval cosa usi ?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Percentuali
« Risposta #21 il: 03 Maggio 2023, 22:16:55 »
Faccio fare i calcoli in modo esplicito, in sostanza.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
Re:Percentuali
« Risposta #22 il: 03 Maggio 2023, 22:24:49 »
Faccio fare i calcoli in modo esplicito, in sostanza.

Avevo fatto prima i calcoli in modo esplicito ma però c'era il problema della regola cioè che prima deve iniziare a moltiplicare e poi alla fine aggiungere cioè mi spiego
Prima deve eseguire le moltiplicazioni e divisioni e poi alla fine le addizioni e sottrazioni.
Siccome eval la regola la applica però dda il problema con la percentuale.........

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Percentuali
« Risposta #23 il: 03 Maggio 2023, 22:31:46 »
Gambas pensa lui a svolgere le operazione in base all'ordine di valutazione degli operatori.
Laddove servono le parentesi per separare, ad esempio, il calcolo di una percentuale dal resto, le imponi adeguatamente.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
Re:Percentuali
« Risposta #24 il: 03 Maggio 2023, 22:34:35 »
Gambas pensa lui a svolgere le operazione in base all'ordine di valutazione degli operatori.
Laddove servono le parentesi per separare, ad esempio, il calcolo di una percentuale dal resto, le imponi adeguatamente.

Ma io devo risolvere il problema delle percentuali

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Percentuali
« Risposta #25 il: 03 Maggio 2023, 22:37:06 »
...in che senso ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
Re:Percentuali
« Risposta #26 il: 03 Maggio 2023, 22:55:58 »
...in che senso ?

Rileggi i post di prima

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Percentuali
« Risposta #27 il: 03 Maggio 2023, 23:38:33 »
Ho perso il filo di questa discussione, sono anziano, pertanto vado a dormire.
L'algebra non la conosco e non conosco Eval, però so che Eval funziona se passi una formula corretta.
Devi costruire la formula prima di passarla, per esempio:

Il risultato corretto del primo calcolo è 369

Prova questo codice:

Codice: [Seleziona]
Public Sub Main()

  Print Eval("((((5+5)*1.1)-1)+400)*0.9") ' risultato corretto
  Print Eval("5+5*1.1-1+400*0.9") ' risultato errato
  Print Eval("5+5+10%-1+400-10%+1-1") ' risultato errato

End

Qui quanto scritto sul libro tedesco:
https://gambas-buch.de/doku.php?id=k19:k19.8:start
https://gambas-buch.de/doku.php?id=k19:k19.8:k19.8.1:start
https://gambas-buch.de/doku.php?id=k19:k19.8:k19.8.2:start
https://gambas-buch.de/doku.php?id=k19:k19.8:k19.8.4:start

Buonanotte
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Percentuali
« Risposta #28 il: 03 Maggio 2023, 23:50:40 »
Rileggi i post di prima
eh... se non vuoi o non puoi usare "Eval()", le devi porre in modo esplicito nel codice.
Per esempio, se vuoi sapere quant'è il 40% del valore di 200, nel codice porrai la formula:
  (200 * 40) / 100
oppure, come diceva Gianluigi:
  200 * 0.4 (che deriva da: 200 * (40 /100) )

Per esempio, se voglio porre un "Button" al centro del "Form", suo Contenitore, posso fare:
Codice: [Seleziona]
Public Sub Button1_Click()

  Button1.Move((Me.W / 2) - (Button1.W * 0.5), (Me.H / 2) - (Button1.H * 0.5))

End
Ho posto esplicitamente i calcoli di due proporzioni con le seguenti formule:
   (Button1.W * 0.5)
   (Button1.H * 0.5)
per impostare posizione orizzontale e verticale del "Button".
« Ultima modifica: 04 Maggio 2023, 07:35:54 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
Re:Percentuali
« Risposta #29 il: 04 Maggio 2023, 16:17:54 »
Non riesco a fare un codice che calcola la percentuale corretta che danno le calcolatrici fisiche....

In un form metto un textbox1.text
un commandbutton1

dentro il textbox1 scrivo una operazione contenente una percentuale
ed appena premo il command button mi deve dare il risultato corretto visualizzandolo tramite il print

ma ho provato molti codici ma non riesco ad arrivare ad una soluzione

Questo è uno dei tanti codici:

Codice: [Seleziona]
    Dim espressione As String
    Dim risultato As Float
    Dim errore As String
   
    espressione = textbox1.text
   
    ' Cerchiamo la percentuale nell'espressione e la sostituiamo con la formula corretta
    If InStr(espressione, "%") <> 0 Then
        espressione = Replace(espressione, "%", "/100")
    End if
   
    ' Elaboriamo l'espressione matematica e gestiamo eventuali errori
    errore = Error
    risultato = Eval(espressione)
    If errore = 0 Then
        Print "Il risultato dell'espressione è: " & risultato
    Else
        Print "Errore nell'elaborazione dell'espressione: " & errore
    End if
print risultato
« Ultima modifica: 04 Maggio 2023, 16:24:27 da Gratisweb »