Autore Topic: [RISOLTO] Numeri senza ripetizione  (Letto 2113 volte)

Offline unt182

  • Gamberetto
  • *
  • Post: 3
  • Io sono io...e tu sei io...
    • Mostra profilo
[RISOLTO] Numeri senza ripetizione
« il: 25 Luglio 2010, 02:24:13 »
Salve Gente!!!  ;D Sono un nuovo utente ignorantello che si è appena intrufolato nel meraviglioso mondo di Gambas! In passato ho frequentato un pò Visual Basic, poi ho scoperto Linux e non ho più abbandonato il pinguino. Ora ho deciso di buttarmi a capofitto nell'impararmi un bel linguaggio di programmazione: il BASIC! Gambas fa al caso mio!!!  :rotfl:

Ora vengo al sodo. Stò cercando di creare un programmino che estrae dei numeri a caso, il problema è che si ripetono questi numeri, cioè, escono numeri uguali in più caselle. Come posso fare per non farli ripetere nelle altre caselle? Vi posto il codice sotto e spero in un vostro aiuto (come vi ho detto sono abbastanza ignorantello  :-[ ) Grazie Infinite a quanti di voi mi aiuteranno!!! :)

Codice: gambas [Seleziona]
PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
TextBox1.text = ""
TextBox2.text = ""
TextBox3.text = ""

END

PUBLIC SUB Button1_Click()
RANDOMIZE
TextBox1.Text = Rnd(1, 90)
TextBox2.Text = Rnd(1, 90)
TextBox3.Text = Rnd(1, 90)

END

PUBLIC SUB Button2_Click()
TextBox1.text = ""
TextBox2.text = ""
TextBox3.text = ""


END

PUBLIC SUB Button3_Click()
ME.Close
END
« Ultima modifica: 26 Luglio 2010, 16:46:55 da unt182 »
Unt182

Offline ealmuno

  • Maestro Gambero
  • ****
  • Post: 388
    • Mostra profilo
    • http://www.ealmuno.com
Re: Numeri senza ripetizione
« Risposta #1 il: 25 Luglio 2010, 10:09:29 »
potresti fare un semplice controllo if con un ciclo while che esce quando i numeri sono diversi. Cioè:

Codice: gambas [Seleziona]
Public controllo as boolean

Public Sub Button1_click()
TextBox1.Text = Rnd(1, 90)
controllo=false
TextBox2.Text = Rnd(1, 90)
IF TextBox2.text=TextBox1.text then
  controllo=true
  TextBox2.Text = Rnd(1, 90)
  while controllo=true then
  IF TextBox2.text=TextBox1.text then
  controllo=false
  endif
  Wend
ENDIF
END


Facendo lo stesso per la terza casella. Questa è solo una soluzione ma ce ne sono molte altre.
(Non l'ho provata, credo che funzioni, sperando di ricordarmi bene la sintassi)
il mio nuovo sito : ealmuno.com

Offline Will32

  • Maestro Gambero
  • ****
  • Post: 273
  • Evviva Linux e la Programmazione
    • Mostra profilo
    • TuttoComputer
Re: Numeri senza ripetizione
« Risposta #2 il: 25 Luglio 2010, 10:28:31 »
@ealmuno => il tuo codice funziona perfettamente  ;)
@unt182 => ho provato il tuo codice ( sempre con 3 textbox ) ma non sono mai ( ho provato 10/11 volte ) usciti 2 numeri uguali  :rotfl:

Visita le comunità di Gambas, programma e diventa nostro amico :2birre:

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Numeri senza ripetizione
« Risposta #3 il: 25 Luglio 2010, 13:08:36 »
Salve Gente!!!  ;D Sono un nuovo utente ignorantello che si è appena intrufolato nel meraviglioso mondo di Gambas! In passato ho frequentato un pò Visual Basic, poi ho scoperto Linux e non ho più abbandonato il pinguino. Ora ho deciso di buttarmi a capofitto nell'impararmi un bel linguaggio di programmazione: il BASIC! Gambas fa al caso mio!!!  :rotfl:

Ora vengo al sodo. Stò cercando di creare un programmino che estrae dei numeri a caso, il problema è che si ripetono questi numeri, cioè, escono numeri uguali in più caselle. Come posso fare per non farli ripetere nelle altre caselle? Vi posto il codice sotto e spero in un vostro aiuto (come vi ho detto sono abbastanza ignorantello  :-[ ) Grazie Infinite a quanti di voi mi aiuteranno!!! :)

Codice: gambas [Seleziona]
PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
TextBox1.text = ""
TextBox2.text = ""
TextBox3.text = ""

END

PUBLIC SUB Button1_Click()
RANDOMIZE
TextBox1.Text = Rnd(1, 90)
TextBox2.Text = Rnd(1, 90)
TextBox3.Text = Rnd(1, 90)

END

PUBLIC SUB Button2_Click()
TextBox1.text = ""
TextBox2.text = ""
TextBox3.text = ""


END

PUBLIC SUB Button3_Click()
ME.Close
END


Senza utilizzare controlli con IF e roba sinile puoi inserire i tuoi numeri in un array e di volta in volta prelevarti il numero da lì ed eliminarlo così sei sicurissimo che non escano mai due numeri uguali. Sul mio blog trovi il software Meganalotto che usa questo sistema per estrarre i numeri.

Offline unt182

  • Gamberetto
  • *
  • Post: 3
  • Io sono io...e tu sei io...
    • Mostra profilo
Re: Numeri senza ripetizione
« Risposta #4 il: 25 Luglio 2010, 15:02:35 »
Scusate, forse sarò ancora rincoglionito dal sonno visto che sono andato a dormire 4 ore fa e ora son di nuovo sveglio xkè mamma fa le pulizie...cmq nn ho capito gli array...come caspita devo fare? :)  :-\ :-\Grazie a quanti di voi mi aiutano e a quanti di voi dormiranno x me :D eheheheh!!! :rotfl:
Unt182

Offline ealmuno

  • Maestro Gambero
  • ****
  • Post: 388
    • Mostra profilo
    • http://www.ealmuno.com
Re: Numeri senza ripetizione
« Risposta #5 il: 25 Luglio 2010, 20:36:34 »
se scrivi senza nn, xkè eccetera è meglio, divento pazzo a leggerlo.
Crei un array che contenga i tuoi 90 numeri (da 1 a 90), poi crei un numero random come già fai, vai nella posizione dell'array ed effettui un controllo, se quel valore è un numero allora lo "prendi" e metti al suo posto un valore tipo "x" se no ripassi con la generazione del numero casuale e lo prelevi di nuovo.
Credo sia questo che intenda Ceskho.
Comunque credo i controlli siano necessari da come vuole organizzare il tutto.
il mio nuovo sito : ealmuno.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Numeri senza ripetizione
« Risposta #6 il: 26 Luglio 2010, 10:45:47 »
Scusate, forse sarò ancora rincoglionito dal sonno visto che sono andato a dormire 4 ore fa e ora son di nuovo sveglio xkè mamma fa le pulizie...cmq nn ho capito gli array...come caspita devo fare? :)  :-\ :-\Grazie a quanti di voi mi aiutano e a quanti di voi dormiranno x me :D eheheheh!!! :rotfl:

Cito il regolamento che hai accettato all'atto dell'iscrizione:

Citazione
14)
Infine, si richiede il rispetto delle cosiddette "buone regole per una felice convivenza":
- presentarsi agli altri dopo l'iscrizione;
...
- scrivere educatamente, chiaramente e, possibilmente, in italiano corretto: gli SMS sono per il cellulare quindi evitare di utilizzare abbreviazioni difficilmente traducibili;

Per quanto riguarda gli array trovi del materiale in giro...basta cercare. Per di più gli array ci sono anche in Visual Basic e dovresti conoscerli.

Offline unt182

  • Gamberetto
  • *
  • Post: 3
  • Io sono io...e tu sei io...
    • Mostra profilo
Re: Numeri senza ripetizione
« Risposta #7 il: 26 Luglio 2010, 15:05:12 »
Chiedo scusa a tutti per quello che ho scritto!! :) Gli array a scuola non li abbiamo fatti in Basic, siamo solo arrivati a if, then, else e while!!! Comunque ho risolto facendo controllo as boolean e poi mettendo gli if dove andavano messi :) scusate la mia ignoranza! :) grazie a voi e a presto!
Unt182

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Numeri senza ripetizione
« Risposta #8 il: 26 Luglio 2010, 15:07:28 »
Chiedo scusa a tutti per quello che ho scritto!! :) Gli array a scuola non li abbiamo fatti in Basic, siamo solo arrivati a if, then, else e while!!! Comunque ho risolto facendo controllo as boolean e poi mettendo gli if dove andavano messi :) scusate la mia ignoranza! :) grazie a voi e a presto!

Secondo me usi più cicli così....comunque se hai raggiunto il tuo obiettivo e hai risolto il tuo problem edita il primo messaggio inserendo [RISOLTO] nel titolo...grazie....