Jak w języku Turbo Pascal napisać program, który wpisze do tablicy jedowymiarowej 6 losowych liczb nie powtarzających się.
Rozumiem, że podczas wpisywania wartości to tablicy trzeba ją przeszukać.
Doszedłem to tego miejsca:
Kod: Zaznacz cały
program zad3;
uses crt;
var
tab:array[1..6] of integer;
i,j,k,z: byte;
a,b,c: integer;
begin
randomize;
repeat
writeln ('Podaj maksymalna wartosc');
readln(a);
until (a>6);
for i:=1 to 6 do
begin
tab[i]:=random(a-1)+1;
for j:=1 to 6 do
while (tab[i]=tab[j]) do
begin
tab[i]:=random(a-1)+1;
end;
write(tab[i],' ');
end;
end.
Jednak program się crashuje.
Mam dobry tok rozumowania czy źle myślę.
Skrócony plan działania:
1. Sprawdzenie, czy zakres podany przez usera jest większy od 6 (tablica 6 miejscowa)
2. Wylosowanie wartości do danego miejsca w tablicy
3. Przeszukanie tablicy, czy taka wartość już jest:
4. Jeśli jest, to ponowne losowanie i powrót do sprawdzania warunku
5. Jeśli nie wpisanie jej do tablicy.
Mogę od razu wpisać tą wartość do tablicy i sprawdzać tablicę, czy np. wpisać tą wartość do zmiennej/drugiej tablicy i tą dopiero przeszukiwać?
Pozdrawiam,
v.