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
 
L

LuigiB

Guest
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]
 
L

LuigiB

Guest
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)
 

Joe91

Advanced Member >PLATINUM PLUS<
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.
 

Mike58

Advanced Member >PLATINUM PLUS<
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
 
L

LuigiB

Guest
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 ..
 
R

Roby

Guest
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
 

Joe91

Advanced Member >PLATINUM PLUS<
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
 

Mike58

Advanced Member >PLATINUM PLUS<
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 13 aprile 2024
    Bari
    36
    14
    82
    54
    13
    Cagliari
    30
    22
    07
    06
    10
    Firenze
    15
    90
    28
    24
    51
    Genova
    67
    14
    23
    85
    90
    Milano
    67
    53
    40
    90
    84
    Napoli
    62
    58
    64
    29
    05
    Palermo
    61
    36
    90
    70
    83
    Roma
    71
    49
    72
    12
    54
    Torino
    16
    41
    78
    17
    75
    Venezia
    52
    09
    56
    85
    81
    Nazionale
    17
    84
    54
    28
    15
    Estrazione Simbolotto
    Genova
    33
    25
    27
    15
    10

Ultimi Messaggi

Alto