[Pascal] Random dla dwóch tych samych liczb

0

Chcę wykonać, aby powtarzały mi się liczby po 2 razy. Chcę znaleźć np. taką drugą liczbę. Mając 20 pól, będę robił radnom(10). Ale niestety nie wiem jak wykonać by dana liczba powtórzyła się 2 razy?

0

Zapamiętaj wylosowaną liczbę do zmiennej i wpisz ją dwa razy w odpowiednie miejsca tabliczy czy czego tam chcesz.

0

Mam zamiar odkrywać Buttony, gdzie do każdego będzie przypisana liczba losowa. Dlatego muszą być 2 Buttony o tej samej wartości. Możesz mi to pokazać na przykładzie?

0

Piszesz, że chodzi o Pascala, a mi buttony sugerują, że chcesz zrobić albo aplikację okienkową albo coś w
trybie graficznym. Jednak jeżeli masz tablicę to najprostsze rozwiązanie nasuwa mi się takie jak poniżej.

//...
var
  I, R : Byte;
  Buttony : array[1..20] of Byte;
begin
  Randomize;
  I := Low(Buttony);
  repeat
    R := Random(10);
    Buttony[I] := R;
    Buttony[I + 1] := R;
    I := I + 2;
  until I > High(Buttony);
  for I := Low(Buttony) to High(Buttony) do
  begin
    Writeln('  ', Buttony[I]);
  end;
  Readln;
end.
0

Dokładnie ma to być pod Buttony, czyli jak powinno wyglądać?

 //...
var
  I, R : Byte;
  TButton : array[1..20] of TButton;
begin
  Randomize;
  I := Low(TButton);
  repeat
    R := Random(10);
    TButton[I] := R;
    TButton[I + 1] := R;
    I := I + 2;
  until I > High(TButton);
  for I := Low(TButton) to High(TButton) do
  begin
    Writeln('  ', TButton[I]);
  end;
  Readln;
end.

Ale i na takim kodzie coś mi nie działa.

0

Po pierwsze poczytaj jakieś kursy, bo błądzisz po omacku i robisz wszystko trochę bezmyślnie, a raczej w programowaniu
nie ma zgadywania. TButton jak i wiele innych komponentów wizualnych ma własność Tag, którą można wykorzystać, tak
więc w Twoim przypadku powinieneś zastosowąc przykładowo taki kod. Oczywiście moduł StdCtrls ma być w sekcji uses.
Poza tym w aplikacji VCL nie korzystajej z konsoli - nie można stosować polecen typu: Write(ln) czy Read(ln) dla tekstu.

//...
const
  Przyciskow_W_Rzedzie = 10;
var
  I, R : Byte;
  OdLewej, OdGory : integer;
  ButtonsArr : array[1..20] of TButton;
begin
  Randomize;
  OdLewej := 8;
  OdGory := 10;
  for I := Low(ButtonsArr) to High(ButtonsArr) do
  begin
    ButtonsArr[I] := TButton.Create(Self);
    with ButtonsArr[I] do
    begin
      Parent := Self;
      Name := 'Btn' + IntToStr(I);
      if (I > 1) and (I mod Przyciskow_W_Rzedzie = 1) then
      begin
        OdLewej := 8;
        OdGory := OdGory + Height + 10;
      end;
      Top := OdGory;
      Height := 26;
      Width := 74;
      Left := OdLewej;
      OdLewej := OdLewej + Width + 10;
      // Ewentualnie pozostałe własności dla przycisków
    end;
  end;
  I := Low(ButtonsArr);
  repeat
    R := Random(10);
    ButtonsArr[I].Tag := R;
    ButtonsArr[I + 1].Tag := R;
    I := I + 2;
  until I > High(ButtonsArr);
  for I := Low(ButtonsArr) to High(ButtonsArr) do
  begin
    with ButtonsArr[I] do
    begin
      Caption := IntToStr(Tag);
    end;
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1