Skocz do zawartości

Losowanie liczb ze z góry podanego zbioru


fresh_matt

Polecane posty

Witam serdecznie,

 

Mój problem polega na wylosowaniu pięciu liczb ze z góry zadeklarowanej konkretnymi wartościami tablicy, w dodatku wylosowane liczby nie powinny sie powtarzać. Wiem, że zadanie nie jest skomplikowane, ale widocznie gorączka nie pozwala mi myśleć, dlatego program nie działa tak jak powinien. Będę bardzo wdzięczny za pomoc.

 

Pozdrawiam

 

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
const
 tab: array [0..23] of integer = (2,34,54,6,37,12,11,18,20,21,29,99,44,61,55,51,22,9,4,78,3,49,16,83);
var
 i:integer;
begin
i:=0;
 repeat
 random(tab[i]);
 writeln(i);
 i:=i+1;
 until i>=5;

readln;
end.

Link do komentarza
Udostępnij na innych stronach

Nie wiem czy dobrze to rozumiem, wiem już, że to musi być wielkość tablicy, czyli:

 

  random(tab[23]);
  writeln(tab[i]); 

 

ale zgodnie z tym co jest zakodowane program wypisał mi 5 kolejnych wartości indexów od 1 do 5, a nie losował.

Mógłbyś mi pokazać co w tym kodzie powinienem zmienić? Naprawdę nie wychodzi mi dzisiaj algorytmiczne myślenie.

Link do komentarza
Udostępnij na innych stronach

Chyba zaczyna to do mnie docierać, widzę, że to naprawdę są podstawy podstaw i przepraszam, że zawracam Wam tym głowy. Stworzyłem już coś takiego i programik rzeczywiście losuje liczby aczkolwiek oprócz tych, ktore są zainicjowane w tablicy pojawiają sie inne... mógłby mi ktoś wytłumaczyć dlaczego tak jest?

 

 const
 tab: array [0..23] of integer = (2,34,54,6,37,12,11,18,20,21,29,99,44,61,55,51,22,9,4,78,3,49,16,83);
var
 i,a:integer;
begin
i:=0;
 repeat
 a:=0;
 randomize;
 a:=random(tab[23]);
 writeln(a);
 i:=i+1;
 until i>=5;

Link do komentarza
Udostępnij na innych stronach

Nie wiem jakiego efektu oczekujesz, ale kod który wkleileś wylosuje liczbę z zakresu od 0 do 82 włącznie, wypisze

ją na ekranie, a operację tę powtórzy pięć razy. A i inicjowanie zmiennej a przez ustawienie zera jest niepotrzebne.

Pozdrawiam: olesio

Link do komentarza
Udostępnij na innych stronach

Można i tak, tylko dynamiczna lista to już wyższa szkoła jazdy dla początkującego programisty. Poza tym fresh_matt pewnie dostał odgórne wytyczne, że ma to zrobić wykorzystując tablice.

A Delphi nie ma gotowego mechanizmu do struktur dynamicznych? Np. w Python'ie mogę sobie zadeklarować tablicę, a tablice w Python'ie są zadeklarowane jako lista.

KODtab=[4,2,6,7,10]

tab.pop(1)

Wiem, że Python to język wyższego poziomu, ale np. C++ ma w swojej bibliotece standardowej pewne konstrukcje pozwalające na łatwiejszą implementację list, więc w Delphi też powinien mieć, skoro jest lepszy od C++ ;)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...