2012-02: Community suggested
Create a program that generates 40 random numbers between 01 and 99 (inclusive).
Display them in four rows of ten columns.
They must be in ascending order, and include no duplicates.
Any number under 10 must include a leading zero to preserve the symmetry.
Scrivi un programma che genera 40 numeri casuali tra 1 e 99 compresi.
Li visualizza su 4 righe e 10 colonne.
Devono essere in ordine crescente e senza duplicati.
Un numero minore di 10 deve essere preceduto da uno 0 per mantenere l’allineamento.
Soluzione

For i=1 To 99 ' ---- genera tutti i numeri da 1 a 99
numero[i]=i
EndFor
eliminati=0 ' ---- elimina 59 numeri a caso
While(eliminati < 59)
pos=Math.GetRandomNumber(99)
If(numero[pos] <> 0) Then
numero[pos]=0
eliminati=eliminati+1
EndIf
EndWhile
visualizzati=0 ' ---- visualizza i 40 numeri rimasti
For i=1 To 99
If(numero[i] <> 0) Then
If(numero[i] < 10) Then ' ---- zero iniziale?
TextWindow.Write("0")
EndIf
TextWindow.Write(numero[i] + " ")
visualizzati=visualizzati+1 ' ---- andare a capo?
If(Math.Remainder(visualizzati,10) = 0) Then
TextWindow.WriteLine("")
EndIf
EndIf
Endfor
TextWindow.WriteLine("")
Note
Le richieste sono molto restrittive e il procedimento risolutivo è piuttosto inusuale
- genera tutti i numeri da 1 a 99, ordinatamente...
- elimina 59 numeri in modo casuale
- visualizza i 40 numeri rimasti
- va a capo ogni 10 numeri visualizzati