da Rael » 25/09/2005, 16:26
Ciao, premetto che non sono proprio un gran esperto di pascal, ma programmo in C è assembler.
-per la funzione di generazione dei numeri pseudo-casuali "random" evidentemente ottieni ad ogni esecuzione gli stessi numeri a causa del fatto che la sequenza è fatta partire dallo stesso punto.
potresti risolvere il problema se trovi il modo di inizializzare la sequenza (in C, si fa con la funzione srand(int a), si passa un "seed" da cui la sequenza partirà scelto dall'utente) con l'ora interna del pc, mi sembra che il pascal implementi qualcosa del genere. Cmq puoi montare un generatore di numeri pseudo-random al volo, purchè ottenga l'ora interna del sistema (così poi non genera sempre gli stessi numeri ad ogni avvio ^_^)
Se ti restituisce un certo numero x,
per far si che sia compreso tra 1 e 100 fai (x%100)+1.
Per la seconda parte se non erro vuoi che il tuo array contenga 50 numeri interi pseudo-random, tutti diversi ?
Bene, per fare questo puoi fare due cose, o ti crei al volo un generatore di numeri casuali, che sei sicura dia sempre un numero diverso, o per ogni numero che trovi random, devi fare la ricerca lineare nell'array, e nel caso ci sia già, generare un numero random nuovo, quindi penso che per fare il tutto in modo più o meno decente dovresti trovarti con un for all'interno di un while.
1)generi il numero
2)cerchi nei numeri finora inseriti, se c'è già, rigeneri e ricerchi
se non c'è aggiungi ed incrementi l'indice.
3) ricomincia da 1