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ì 29 luglio 2025
    Bari
    83
    52
    44
    45
    01
    Cagliari
    28
    75
    63
    09
    44
    Firenze
    73
    36
    45
    35
    87
    Genova
    43
    72
    13
    34
    85
    Milano
    36
    52
    50
    41
    10
    Napoli
    73
    16
    23
    27
    48
    Palermo
    70
    53
    74
    58
    48
    Roma
    57
    40
    45
    47
    32
    Torino
    70
    13
    85
    75
    69
    Venezia
    56
    35
    72
    66
    20
    Nazionale
    81
    25
    45
    54
    32
    Estrazione Simbolotto
    Nazionale
    03
    35
    36
    16
    28

Ultimi Messaggi

Indietro
Alto