Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - permutazioni textbox
Forum - Visual Basic 6 - permutazioni textbox

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 16:24
Lunedì, 04/03/2024
Ciao a tutti,

ho visto un programmino in excel che si chiama calcolo enigmatico ed ho cercato di portarlo in vb6.

vorrei far permutare i textbox a destra quelli in verticale
text12.text
text13.text
text14.text
text15.text
fino ad ottenere il giusto risultato ho provato in diversi modi ma non sono riuscito
mi manca qualche riga che fa si che tutto gira.

se qualcuno puo' aiutarmi????


qui di seguito allego  il progetto zippato.

Ultima modifica effettuata da maurizio74 il 14/03/2024 alle 10:55
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:21
Lunedì, 04/03/2024
Spiegaci cosa è un calcolo enigmatico perchè non l'ho mai sentito.

Ma non fare come hai fatto in

https://forumexcel.it/forum/threads/nuovo-calcolo-enigmatic ...

Ultima modifica effettuata da nessuno il 04/03/2024 alle 21:28


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2308
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:52
Martedì, 05/03/2024
Esponi il problema, dove hai il problema con la relativa parte di codice.
Nessuno scaricherà l'intero progetto e cercherà per te l'errore....


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 11:06
Martedì, 05/03/2024
Ciao Nessuno,

visto che hai citato il forum di excel, vorrei spiegare un po' cosa e' successo, avevo un problema che non so per quale mistero dei computer ho risolto alla fine da solo, facendo solamente un copia ed incolla di tutto il codice in un altro foglio excel e' quindi quei beati valori A e B che citavo li ha scambiati come doveva. Cmq per quanto riguarda il forum di excel se vedi tutti i post, si evince che alla fine ho sbottato sicuramente "sbagliando" anche se avevo solo fatto la battuta della birra, ma se vedi in tutti i post dall'inizio alla fine vedi che ho cercato di esporre il problema, ho postato il codice ho ricercato di esporre nuovamente il problema e via dicendo, e mi hanno sospeso per un battuta, non ho certamente offeso nessuno e non è mai stato nelle mie intenzioni.

cmq ritornando a questo post rispondendo alla tua domanda, Il calcolo enigmatico è un semplice gioco enigmistico spesso si trova nella settimana enigmistica per il quale  ti si chiede di sostituire i numeri ai simboli o alle lettere per trovare la soluzione.

quindi per capirci il programma dovrebbe effettuare un serie di permutazioni e scambi di valori nei text fino a permettere di trovare la soluzione corretta.

ho cercato di essere più chiaro possibile e non so, se ci sono riuscito.


intanto ringrazio anticipatamente te e coloro che avranno il piacere di rispondere e cercare un eventuale soluzione.

Ultima modifica effettuata da maurizio74 il 05/03/2024 alle 12:33
PM Quote
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 12:04
Martedì, 05/03/2024
Testo quotato

Postato originariamente da Thejuster:

Esponi il problema, dove hai il problema con la relativa parte di codice.
Nessuno scaricherà l'intero progetto e cercherà per te l'errore....



Private Sub Command1_Click()
command1.SetFocus
Dim i As Long
Dim arr(1 To 4) As Variant

For i = 1 To 4
    arr(i) = i

    Text12.Text = i - 3
    Text13.Text = i - 2
    Text14.Text = i - 1
    Text15.Text = i
Next



Call numeri_Permutabili(arr, 4, 4)


Text1 = Text12
Text2 = Text13
Text3 = Text14
Text4 = Text15
Text5 = Text12

Text17 = Text1 & Text2
Text18 = Text3
Text19 = Text4 & Text5

Text42 = Text17 / Text18

If Text42 = Text19 Then
Text26 = 1
Else
Text26 = 0
End If
Text41 = Text26
End Sub
Sub numeri_Permutabili(vettore() As Variant, dimensione As Long, n As Long)

Dim i As Long

If dimensione = 1 Then
    If risultato(vettore) = True Then End
    Exit Sub
End If

For i = 1 To dimensione
    Call numeri_Permutabili(vettore(), dimensione - 1, n)
    If dimensione Mod 2 = 1 Then
        Call scambio(vettore(), 1, dimensione)
    Else
        Call scambio(vettore(), i, dimensione)
    
    End If
Next


End Sub


Sub scambio(arr() As Variant, indice1 As Long, indice2 As Long)

Dim temp_var As Variant

temp_var = arr(indice1)
arr(indice1) = arr(indice2)
arr(indice2) = temp_var

End Sub


Function risultato(vettore()) As Boolean

Dim trasposto() As Variant
..........................................

if text41.text=1 then
    risultato = True
  else
risultato = False
end if

End Function

questo è tutto il codice ma la parte che non riesco a far elaborare e la function?????

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1351
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 20:36
Martedì, 05/03/2024
Capirai che non si può cercare di capire cosa non va senza sapere cosa dovrebbe succedere.
Una volta lanciato il programma cosa dovrebbe succedere?
Cosa funziona e cosa non funziona?


in programmazione tutto è permesso
PM Quote
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 21:03
Martedì, 05/03/2024
Ciao Carlo,

praticamente una volta lanciato il programma se tutto funzionasse a dovere, dovrebbe dare questo risultato:

42 / 3  = 14
PER L'ESATTEZZA il
4=A
2=B
3=C
1=D
per far si' che cio' si verifichi il programma dovrebbe permutare i valori nei text a-b-c-d quelli posizionati in verticale a destra fino
a quando si troveranno nella posizione giusta e daranno il risultato corretto.

ora a quanto ne capisco io ed è sicuramente poco sembra che la parte di codice che non sta fungendo sia:

Function risultato(vettore()) As Boolean

Dim trasposto() As Variant

trasposto = Application.Form1.Transpose(vettore)

Form1("text12:text15").Value = trasposto

If Text1.Text = 1 Then

risultato = True
   Else
risultato = False

End If

ho provato in diversi modi ma non riesco a far si che scambi i valori immessi nei text che vanno da text12 a text15.

non riesco a spiegarlo meglio....

vedete un po'....  grazie a tutti....

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1351
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 21:33
Martedì, 05/03/2024
Non ho capito ma ti posso dare gli strumenti per sapere se il programma si comporta riga riga come vorresti.
Clicca a sinistra della prima riga: Sub numeri_Permutabili(vettore() As Variant, dimensione As Long, n As Long)
Appare un pallino rosso. Lancia il programma con F5 e poi premi il tasto solve, il codice sotto a: Private Sub Command1_Click() viene eseguito, prima ci sono le dichiarazioni poi c'è il ciclo for:
Codice sorgente - presumibilmente VB.NET

  1. command1.SetFocus
  2. Dim i As Long
  3. Dim arr(1 To 4) As Variant
  4.  
  5. For i = 1 To 4
  6.     arr(i) = i
  7.  
  8.     Text12.Text = i - 3
  9.     Text13.Text = i - 2
  10.     Text14.Text = i - 1
  11.     Text15.Text = i
  12. Next


che scrive 1, 2, 3, 4 dentro alla matrice arr() agli indici 1,2,3,4
dentro al ciclo for scrivi per 4 volte dentro alle text, ma solo gli ultimi valori saranno visualizzati, per la precisione quando  i=4, dentro alle text scrivi 4-3 = 1, 4-2 = 2, 4-1 = 3 e 4.
ora il codice salta alla sub con: Call numeri_Permutabili(arr, 4, 4)
nella sub hai inserito il pallino rosso (breakpoint) e il programma si ferma li. Se premi F8 il programma avanza di una riga e se vai sopra alle variabili vedi tutti i valori, continua con F8 e controlla se il programma procede come voluto e i valori cambiano come voluto.
Se metti VB6 in modo che non copra il form vedi anche cosa succede nel form quando sei sul codice che scrive nel form.
Di più per ora non ti so dire.

Perchè non alleghi l'excel?? (lo devi zippare)

Ultima modifica effettuata da Carlo il 05/03/2024 alle 21:56


in programmazione tutto è permesso
PM Quote
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 22:19
Martedì, 05/03/2024
Ciao Carlo,

intanto grazie per la risposta, ti allego il file zip excel nel quale tutto funge corrrettamente.
in excel il calcolo enigmistico è completo con tutte le celle, mentre quello che ho postato in vb6 l'avevo ridotto per convenienza.
ma alla fine vorrei con vb6 la stessa cosa che avviene in excel.

ho provato in molti modi ma non sono riuscito a far fare sti benedetti scambi dei textbox così come avviene in excel.

vedi un po' se hai qualche idea...

Grazie




maurizio74 ha allegato un file: calcolo enigmatico con 5 numeri.zip (67642 bytes)
Clicca qui per scaricare il file
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo