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