Autore Topic: Aiuto per nuovo utente  (Letto 5201 volte)

Offline borelg

  • Gamberetto
  • *
  • Post: 15
    • Mostra profilo
Aiuto per nuovo utente
« il: 22 Settembre 2008, 15:22:45 »
salve a tutti colgo l' occasione per salutarvi dato che è il mio primo post  :ciao:  :ciao:
Io avrei bisogno di un grosso aiuto, infatti dovrei fare un programma è l' ambiente basic mi era sembrato il + adatto dato che è l' unico che ho studiato un po a scuola... comunque ciò che dovrei fare sarebbe questo:
un programma che generi 3 numeri casuali (da 1 a 50) e che vada a cercare in un file di testo la frase con il numero corrispondente (nel file di testo ci sarebbe un elenco numerato di frasi) e che la faccia vedere nella schermata del programma e che permetta di copiarla. Questa operazione dovrebbe farla con tre frasi alla volta, mi spiego meglio: lui genera 3 numeri es: 45 - 16 - 37. Poi va in 3 file di testo diversi e preleva le 3 frasi la frase AAAAA la frase BBBB e la frase CCCC e le faccia vedere nella schermata del programma in ordine: AAAA. BBBBB. CCCCCC. Inoltre dovrebbe anche avere il tasto tipo "Start" per permettere di ripetere questa operazione, voglio dire un bottone che se schiacciato ripete l' operazione e molstra altre 3 frasi...
Qualcuno sarebbe così gentile da aiutarmi? io non so proprio da dove iniziare...
Vi ringrazio tantissimo in anticipo :-)  :-)

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 417
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #1 il: 22 Settembre 2008, 18:21:47 »
Ciao, ho dato uno sguardo al tuo problema, ora vado di fretta, ti prometto che stasera ci lavoro su.
comunque, per contare il numero di lettere inserite in una frase puoi utilizzare l'istruzione LENGHT : Numero = Len(testo)
dovresti scrivere una cosa del genere:
Dim testo as string 'dichiari la variabile testo come stringa
Dim numero as integer 'dichiari la variabile numero come intero. Ti serve per contare
                      'il numero di lettere della frase
testo = "prova"   'In questo caso il testo da contare è prova
numero = len(testo) 'Da il numero di lettere che contiene la parola prova
Print numero 'stampa a video il numero

Questo è un esempio di funzionamento dell'istruzione lenght
Ora non ho ben capito quando dici che deve contare delle frasi (fai attenzione perchè la funzione lenght conta come carattere anche gli spazzi quindi la frase "luigi gioca" è composta da 11 caratteri e non 10!) contenute in un file di testo quindi dovresti aprire un faile di testo e leggere quello che c'è dentro? o sbaglio?
Per aprire un file di testo puoi usare il metodo OPEN
"hFile = OPEN "~/documenti/mio file di testo.txt" FOR INPUT
Credo che quindi ci vuole un ciclo che cerchi la frase che ha il numero di caratteri richiesto.
Credo che forse occorre un ciclo anche per dare i tre numeri a caso.
userei la funzione for..
tipo:
dim i as integer
For i = 1 to 3 'hai detto che deve dare 3 numeri
    quì devo pensare cosa scrivere...sorry    
Next
Comunque mi faccio vivo e ti faccio sapere come farei io
ovviamente aspettando qualcuno che ne capisca più di me e che corregga le probabili sciocchezze che ho scritto
ciao.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Aiuto per nuovo utente
« Risposta #2 il: 22 Settembre 2008, 18:40:02 »
allora: per ciò che riguarda l'estrazione casuale dei numeri puoi usare il seguente codice:


Codice: [Seleziona]

Int(Rnd() * num_max) + 1


dove num_max è il numero massimo che vuoi che venga estratto...

per farli fare 3 estrazioni crei 3 variabili

Codice: [Seleziona]

dim num1 as integer
dim num2 as integer
dim num3 as integer


poi crei l'estrazione per il primo numero
Codice: [Seleziona]

num1 = Int(Rnd() * num_max) + 1


poi per il secondo

Codice: [Seleziona]

num2 = Int(Rnd() * num_max) + 1

IF num2 = num1 then Int(Rnd() * num_max) + 1


come vedi ho fatto in mod che se il secondo numero estratto sia uguale al primo l'estrazione viene ripetuta così da non ottenere mai due numerio uguali....

e con il terzo numero farai la stessa cosa....

Mi dispiace ma per ora posso essertio d'aiuto solo così...

Offline borelg

  • Gamberetto
  • *
  • Post: 15
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #3 il: 22 Settembre 2008, 19:56:08 »
grazie mille per esserti interessato al mio problema ma hai inteso male, probabilmente mi sono spiegato male io...
non deve contare il numero di lettere nelle frasi ma il numero di frasi.
Infatti io ho 3 documenti con 50 frasi ciascuno e vorrei che questo prgramma, dopo aver generato 3 numeri a caso vada a prendere le frasi corrispondenti a quei numeri ovvero per esempio genera i numeri 43, 32, 18 e va nel primo documento cerca la frase n° 43 e la mette per prima nella finestra di testo del programma, poi va nel secondo documento cerca la frase n° 32 e la mette di seguito alla prima nel documento di testo e poi fa così anche cn la riga 18....
dopodichè se voglio che lo faccia 1 altra volta dovrei cliccare il tasto START e poi vorrei tanto anche integrare il tasto COPIA
ps. guarda l' immagine alllegata che così è + chiaro...
ti ringrazio ancora moltissimo per il tuo aiuto... magari il mondo fosse pieno di persone così gentili... :-D

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 417
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #4 il: 22 Settembre 2008, 22:00:13 »
Ok, allora avevo capito male... :ehm:
rieccomi, ho visto la tua immagine al tasto start devi assegnare il codice che ti ha postato Ceskho, a questo dobbiamo aggiungere un paio di cosucce, devi darmi il tempo di pensare, ora mi metto all'opera...
Io sostituirei il textbox con un ListBox al quale aggiungi le 3 frasi.
Provo a scrivere qualcosa anche se sinceramente non so come fargli contare le parole....
Ciao

Offline borelg

  • Gamberetto
  • *
  • Post: 15
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #5 il: 22 Settembre 2008, 22:09:48 »
ma non deve contare le parole... ma le frasi... per contare le frasi che sono una sotto l' altra non basta dirgli la riga?
comunque ti ringrazio ancora molto per l' aiuto che mi stai dando... :-)

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 417
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #6 il: 22 Settembre 2008, 22:11:42 »
Passo 1) ecco il codice per l'estrazione di tre numeri casuali
Codice: [Seleziona]
PUBLIC SUB Main() 
      DIM x AS Integer
      DIM y AS Integer
      DIM z AS Integer
      x = Rnd(1, 30)
      y = Rnd(1, 30)
      IF y = x THEN    
         y = Rnd(1, 30)
      END IF      
      z = Rnd(1, 30)
      IF z = y OR z = x THEN    
         z = Rnd(1, 30)
      END IF
      PRINT x
      PRINT y
      PRINT z
END

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 417
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #7 il: 22 Settembre 2008, 22:14:37 »
Perdonami, ora ho capito....numero 22, pesca la frase 22 tra le tante....
Capito. :lol:  :lol:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #8 il: 23 Settembre 2008, 12:55:26 »
Nella lettura del file, nel loop di lettura (LINE INPUT), durante il loop ti conti quante volte lo fai, e al raggiungimento del numero desiderato, ti salvi la frase in una variabile.
La funzione LINE INPUT legge una riga di file alla volta, e la legge partendo dal primo carattere fino al primo ritorno a capo, la successiva lettura sarà dal successivo carattere dopo il ritorno a capo precedente, fino al successivo ritorno a capo, e così via.
A questo punto il loop ti rende la cosa facile, visto che devi leggere intere frasi (e non singole parole); una variabile Integer per il contatore può andare bene, a meno che il file non sia spropositatamente grande (altrimenti usa un Long). Nel loop, ogni volta che legge una frase, incrementi questo contatore di uno, e così via; quando sei arrivato al numero di frasi voluto (numeri casuali), ti salvi la frase in un'appositiva variabile String, e vai avanti fino alla successiva.
L'ordinamento dei numeri casuali generato (dal più piccolo al più grande) devi farlo, in modo che in una singola lettura ti prendi tutto, altrimenti sei costretto a rileggere nuovamente tutto il file.

Spero di essermi capito ... :-)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Aiuto per nuovo utente
« Risposta #9 il: 23 Settembre 2008, 14:15:11 »
Non penso abbia di questi problemi...può farlo in 3 cicli separati dato che le frasi vengono pescate da 3 file diversi..se non ho capito male...

Offline borelg

  • Gamberetto
  • *
  • Post: 15
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #10 il: 23 Settembre 2008, 14:39:09 »
ok ragazzi mi è venuto una idea che magari è + semplice:
da quello che ho capito in gambas ci sono i moduli che sarebbero un po come dei file di testo dove ci puoi mettere delle stringhe o roba così... comunque ditemi se è gusto...
evento: click START
-crea 3 numeri a caso a, b, c, compresi tra 1 e 50
-print (uno dei poki comandi che conosco) riga a (numero generato) del modulo 1 nella testbox1
-print riga b del modulo 2 nella testbox1
-print riga c del modulo 3 nella testbox1

evento: click COPIA
-copia negli appunti il contenuto della testbox1 (come quando selezioni una cosa e spingi il tasto copia... solo che non c'è bisogno di selezionarla....)
cosa ne dite?

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Aiuto per nuovo utente
« Risposta #11 il: 23 Settembre 2008, 15:52:12 »
non usare i moduli....usa tre file di testo....in questo modo puoi editarli in seguito cambaindo le frasi o permettendo ad un eventuale esterno di cambiarle a suo piacimento....

Offline borelg

  • Gamberetto
  • *
  • Post: 15
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #12 il: 23 Settembre 2008, 16:05:15 »
ah... ok ma io sinceramente non ho la più pallida idea di come fare...
cmq grazie anche a te ceskho per il tuo aiuto...

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Aiuto per nuovo utente
« Risposta #13 il: 23 Settembre 2008, 16:14:51 »
ora provo a fare il programma sul mio computer e poi ti dico come fare ok?

Offline borelg

  • Gamberetto
  • *
  • Post: 15
    • Mostra profilo
Re: Aiuto per nuovo utente
« Risposta #14 il: 23 Settembre 2008, 16:28:45 »
ok grazie mille!!!