Potrzebuję pomocy przy zastosowaniu randomowej liczby.

0

Witam.

Posiadam taki oto skrypt:

 procedure TForm1.Button1Click(Sender: TObject);
begin

  if SpinEdit2.Value < SpinEdit1.Value*SpinEdit4.value/100 then //oblicza procent. gdy np. liczba w SpinEdit1.Value wynosi 10000, a liczba w SpinEdit4.Value wynosi 10, wtedy wynikiem będzie 1000.
  begin
  edit1.text:='przegrales';
  end;
  end;


end.

Trochę namieszane, ale w praktyce to lepiej wygląda. Planuję zrobić coś takiego, że program nie będzie obliczać jakby ciągle tej samej liczby, tylko by była różnica np. 1-5%. Chodzi mi o różnicę na zasadzie random cyfry.

Na moją logikę powinno to być tak:

var
i:integer;
begin
from i:= 1 to 5 do

  if SpinEdit2.Value < (SpinEdit1.Value*SpinEdit4.value/100) - i then    
  begin
  edit1.text:='przegrales';
  end;
  end;

Może ktoś to ogarnia. Jeśli tak to proszę o pomoc. Ja kombinowałem i niestety nic mi dziś do tego pustego łba nie przychodzi na myśl.

0
if 100*(SpinEdit2.Value+Random(5)+1) < SpinEdit1.Value*SpinEdit4.value then
0

Zapewne też mogło by to tak wyglądać:

i:integer;
for i := 0 to spinedit5.value do

if 100*(SpinEdit2.Value+Random(i) < SpinEdit1.Value*SpinEdit4.value then 

Niestety, ale nie jest to o co mi chodziło. Wpisuję w spinedit5.value np. 20, więc powinien program używać funkcji z różnicą +/- 20 %. Zawsze robi to gdy jest tyle % ile wpisuję xd

0

@DroniC - jeśli jeszcze raz napiszesz, że podajesz skrypt napisany w Delphi, to dostaniesz bana na miesiąc; Pamiętaj - będę Cię obserwował;


Jeśli o losowanie liczby chodzi, to przede wszystkim zapoznaj się w procedurą Randomize i funkcją Random; Po drugie skoro jasno określasz margines +/-, to chyba nie problem pobrać wartość 20% z wprowadzonej do komponentu liczby, następnie z jej zakresu wylosować liczbę i albo ją dodać, albo odjąć o tej z komponentu;

Zakładając, że w komponencie podajesz liczbę 20:

  • obliczasz wartość jej 20%, czyli 4;
  • losujesz liczbę z zakresu (0 .. 3) + 1, czyli Random(4) + 1;
  • losujesz czy masz ją dodać do tych 20, czy odjąć;
  • dodajesz lub odejmujesz;
    dzięki temu z liczby 20 uzyskać możesz liczby z zakresu 16 .. 24; O takie coś Ci chodzi?
0

Widzę że masz zaległości nie tylko w podstawach programowania zaś również w podstawach matematyki.

if ((100-spinedit5.value)*(SpinEdit2.Value)<=SpinEdit1.Value*SpinEdit4.value)and(SpinEdit1.Value*SpinEdit4.value<=(100+spinedit5.value)*(SpinEdit2.Value) then

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