Novità

X amici scripter Codice MinimoV - MassimoV

Mike58

Advanced Member >PLATINUM PLUS<
Ciao ogni tanto anche io chiedo delle delucidazioni in merito ai codici Vbscript MinimoV e MassimoV.

Spesso mi imbatto in richieste script che chiedono numeri da mettere in un ipotetico quadrato dal + grande al minimo.
La dificoltà non è trovare il + grande o il minimo ma identificare gli altri 2 numeri per abbinarli a una variabile o vettore, ora per questo negli esempi Test di spazioMetria ho cercato di simulare il tutto con MassimoV e MinimoV ma i dati con certi numeri vengono scritti correttamente invece con altri numeri non vengono scritti correttamente.

Chiedo in primis a Luigi, Joe e altri amici se riescono ad farmi capire il concetto.

allego script di prova.

Codice:
Sub Main
    
    Call Scrivi("Esempio 1 dal + grande al + piccolo ",True)
    ' ----- 1 esempio non scrive i dati ordinati -----
    'a = 88
    'b = 35
    'c = 66
    'd = 90
    ' ------ 2 esempio scrive i dati ordinati --------
    a = 11
    b = 22
    c = 33
    d = 44

    ReDim aN(4)
    
    'aN(0) = 10000 ' il vettore conta anche l'indice 0  percio se non usato va valorizzato con un numero molto alto per aggirare il problema
    aN(1) = a
    aN(2) = b
    aN(3) = c
    aN(4) = d
    Call Scrivi(MassimoV(aN,4,4)) ' 1° massimo
    Call Scrivi(MassimoV(aN,3,3)) ' 2° massimo
    Call Scrivi(MassimoV(aN,2,2)) ' 3° massimo
    Call Scrivi(MassimoV(aN,1,1)) ' 4° massimo

    
    Call Scrivi("Esempio 2 dal + piccolo al + grande ",True)
    
    ReDim aN(4)
    
    'aN(0) = 0' il vettore conta anche l'indice 0  se non vogliamo considerarlo usiamo i parametri nella funzione MinimoV
    aN(1) = a
    aN(2) = b
    aN(3) = c
    aN(4) = d
    
    Call Scrivi(MinimoV(aN,1))
    Call Scrivi(MinimoV(aN,2))
    Call Scrivi(MinimoV(aN,3))
    Call Scrivi(MinimoV(aN,4))

    
End Sub
 
Ciao Mike , devo dire che c'è una pecca nel ragionamento forse dovuto al fatto che non hai capito bene la funzione.
Questo che segue è un esempio dell'uso della funzione minimo e massimo

Codice:
Sub Main

	ReDim a(10)
    	Dim k 

	For k = 0 To 10
		a(k) = NumeroCasuale(1 ,90)
		
		Call Scrivi ( Format2(k) & " - Numero -- > " & a(k) )
	Next

	Call Scrivi ("Il Numero piu grande è -- > " & MassimoV ( a) )
	Call Scrivi ("Il Numero piu piccolo è -- > " & MinimoV (  a) )
	
	
	
End Sub


nel tuo codice invece la riga scritta in rosso non ha senso .. la funzione MassimoV restituisce un valore massimo dentro un array ma se i limiti in cui deve cercare identificano un solo numero sto famoso massimo sarebbe rispetto a cosa ?
Un saluto


Codice:
 ReDim aN(4)
    
    'aN(0) = 10000 ' il vettore conta anche l'indice 0  percio se non usato va valorizzato con un numero molto alto per aggirare il problema
    aN(1) = a
    aN(2) = b
    aN(3) = c
    aN(4) = d
    [COLOR="#FF0000"]Call Scrivi(MassimoV(aN,4,4)) ' 1° massimo
[/COLOR]
 
ah dimenticavo di dire che non ho capito perche il tuo problema non si potrebbe risolvere con ordina matrice ..
in quel caso avresti un array ordinato e il primo elemento è anche il piu piccolo (o il piu grande) mentre l'ultimo sara sempre il piu grande ( o il piu piccolo se ordinamento discendente)
 
Scusa Mike e non vorrei passare avanti a Luigi che ti ha dato una risposta matematica-scriptica.

Ma quadrato "dentro un quadrato" è una cosa mentre in quadratura è tutt'altro,

pertanto e considerando che le tue richieste potrebbero essere di natura lottologica ...

e ciclometrica, anch'io, chiedo.

:) Cordiali saluti.
 
Ciao Luigi, Joe forse intentevo quadratura... il problema però sta nel fatto che non voglio ordinare i numeri ma identificarli.
Esempio... A = 1
B = 2
C = 3
D = 4

Se devo sottrarre dal Numero Massimo(4 " D ") i numeri Medi(3 " C " ) or Medi(2 " B ) ) come faccio ad inindividuarli se non indivuarli con la posizione del MassimoV or MinimoV.

Perchè una richiesta sarebbe.... trova 2 numeri per ambo in una ruota, trova 2 numeri di ambo in un altra ruota, dal numero massimo1(dei quattro numeri) sottrai il massimo2.
es. 1° ambo 12-56
2° ambo 23-34
operazione da fare 56-34 e 56-23 ossia i numeri Medi

io quello che volevo fare è individuare da codice le posizioni di massimo1 massimo2 etc. per poi richiamarli in operazioni.

Ciao e grazie per la risposta
 
come come faccio .. ti scrivi una funzione che lo fa ...prende l'array in input e ti ritorna il numero piu alto e la sua posizione nell'array passato ..
 
Scusa Mike, se ho capito bene devi solo identificarli.
Con OrdinaMatrice in pratica a(1) diventa il numero minimo
a(4) il numero massimo
a(2) e a(3) gli intermedi ovviamente in ordine crescente.
Ciao


Sub Main
Dim a(4)
a(1)=25
a(2)=88
a(3)=2
a(4)=80
OrdinaMatrice a,3
Scrivi a(1)
Scrivi a(2)
Scrivi a(3)
Scrivi a(4)
End Sub
 
Proviano in pratica ...

Dati 2 numeri A = 75 : B = 25

Calcolare la chiusura che si ottiene sommando 20 al più piccolo e sottraendo 20 al più grande,

forse è questo che non ti torna, non è della matematica che hai bisogno, ma della ciclometria.

Codice:
Sub Main
 Dim Nu(2) : Nu(1) = 75 : Nu(2) = 25
 DisegnaCerchioCiclometrico Nu,True
End Sub
 
Grazie a tutti, ma devo dire che la dritta di Daniel ha risolto il quesito era proprio quello che dovevo fare.
Stavo proprio rivedendo la funzione ma ancora non ero arrivato al punto.

Grazie Joe, per la chiusura può servire anche quella.

Grazie Luigi, so che ci stimoli a fai da te, ma qualche volta ahinoi ci incasiniamo la dove le cose possono essere semplici.

Grazie a voi un altro tassello Vbscript.

Ciao
Mike
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 16 dicembre 2025
    Bari
    78
    53
    62
    77
    16
    Cagliari
    15
    58
    32
    39
    24
    Firenze
    85
    20
    39
    32
    29
    Genova
    17
    60
    15
    33
    43
    Milano
    13
    39
    14
    15
    34
    Napoli
    82
    76
    15
    24
    73
    Palermo
    40
    55
    78
    26
    08
    Roma
    23
    41
    17
    53
    76
    Torino
    52
    20
    70
    59
    65
    Venezia
    43
    58
    19
    08
    09
    Nazionale
    71
    55
    60
    04
    35
    Estrazione Simbolotto
    Venezia
    28
    37
    27
    40
    10
Indietro
Alto