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
    sabato 28 marzo 2026
    Bari
    53
    04
    01
    11
    09
    Cagliari
    67
    19
    47
    35
    64
    Firenze
    13
    48
    58
    39
    15
    Genova
    52
    87
    51
    79
    67
    Milano
    07
    79
    84
    28
    37
    Napoli
    26
    90
    68
    82
    67
    Palermo
    38
    57
    65
    20
    56
    Roma
    81
    66
    45
    53
    08
    Torino
    29
    47
    55
    78
    71
    Venezia
    07
    29
    76
    14
    15
    Nazionale
    17
    10
    21
    29
    15
    Estrazione Simbolotto
    Firenze
    02
    38
    33
    11
    39
Indietro
Alto