Ver Mensaje Individual
  #5  
Antiguo 05-06-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
A la pregunta 2:

A la pregunta 2:

Deberías crear una función que rellene un array con los numeros que quieres y que vaya verificando que no exista.
Luego con ese array pones el primer elemento en el Memo.Text, el segundo en el Label1.Caption, el tercero en Label2.Caption y así sucesivamente.

Además de esto, te serviría mucho dividir cada parte en un procedimiento/funcion simple.

Se me ocurre un código como este:
Código Delphi [-]
type
  MiArray = Array[1..6] of integer;

function DameNumeroAleatorio: integer;
begin
  Result := Random(38) + 1;
end;

procedure InicializaArray(var A: MiArray);
var
  i : integer;
begin
  // Recorro el array poniendo 0
  for i := 1 to 6 do
  begin
     A[i] := 0;
  end;
end;

function ExisteEnArray(A: MiArray; Numero: integer): boolean;
var
  i : integer;
begin
  // Inicializo resultado
  Result := False;

  // Recorro Array
  for i := 1 to 6 do
  begin
     // Si en esta posicion existe este numero, devuelvo verdadero
     if A[i] = Numero then
        Result := True;
  end;
end;

procedure AgregarNumeroAArray(var A: MiArray; Posicion, Numero: integer);
begin
  A[Posicion] := Numero;
end;

var
  Contador, Posicion, Numero : integer;
  A: MiArray;

begin
  // Inicializo con 0
  InicializaArray(A);

  // Busco 6 numeros para rellenar las posiciones del Array
  for Posicion := 1 to 6 do
  begin
     // Obtengo un numero aleatorio
     Numero := DameNumeroAleatorio;

     // Sigo buscando mientras exista el numero en el array
     while (ExisteEnArray(A, Numero)) do
        Numero := DameNumeroAleatorio;

     AgregarNumeroAArray(A, Posicion, Numero);
  end;

  // Recorro los valores y los imprimo formateados en un Memo
  for Posicion := 1 to 6 do
     MTest.Lines.Add(Format('%.2d', [A[Posicion]]));
end;
Responder Con Cita