Witam
Mam takie zadanie aby wypełnić tablicę 12 elementową liczbami od -15 do 15 i tak żeby żadna się nie powtórzyła.Próbowałem to zrobić ale nie mam zielonego pojęcia jak bo byłem chory i nie było mnie na tych lekcjach ;p Będę bardzo wdzięczny za szybką pomoc.
0
0
Ech, leń z Ciebie i tyle. Nie było Ciebie to się siada przed kompem i googluje,
aby uzupełnić wiedzę. Masz poniżej gotowca, bo już kiedyś miałem coś w tym
stylu napisane, wystarczyło zmienić stałą z ilością liczb oraz zakres losowania.
A kod jest dla Pascala, ale na sieci idzie znaleźć również moduł crt dla Delphi.
I tak się niczego nie nauczysz, po co szedleś na uczelnię z programowaniem?
P.S. zapamiętaj sobie raz na zawsze od pytan o banalne podstawy jest dział
[!!!] [!!!] [!!!] NEWBIE [!!!] [!!!] [!!!]
program los_15;
uses
crt;
{Ponizsza procedura sortujaca liczby rosnaco/malejaco pochodzi}
{z: http://www.swissdelphicenter.ch/torry/showcode.php?id=1616}
procedure SortujRosnaco(var A : array of integer);
var
H : Word;
Bis, I, J, K : LongInt;
begin
Bis := High(A);
K := Bis shr 1;
while K > 0 do
begin
for I := 0 to Bis - K do
begin
J := I;
{(A[J] < A[J + K]) - dla sortowania malejaco}
{(A[J] > A[J + K]) - dla sortowania rosnaco}
while (J >= 0) and (A[J] > A[J + K]) do
begin
H := A[J];
A[J] := A[J + K];
A[J + K] := H;
if J > K then
J := J - K
else
J := 0;
end;
end;
K := K shr 1;
end;
end;
{Wlasny kod funkcji RandomRange bez uzycia modułu Math:}
function RandomRange(const AFrom, ATo : Integer) : Integer;
begin
if AFrom > ATo then
RandomRange := Random(AFrom - ATo) + ATo
else
RandomRange := Random(ATo - AFrom) + AFrom;
end;
procedure LosujOrazPodajWyniki;
const
{Stala okreslajaca ilosc liczb do wylosowania}
IleLiczb = 12;
var
Losuj : boolean;
I, J, Liczba : integer;
Tablica : array[1..IleLiczb] of integer;
begin
for I := 1 to IleLiczb do
begin
Losuj := False;
{Czy trwa losowanie}
while Losuj = False do
begin
Losuj := True;
{Losowanie liczby z zakresu od -15 do 15 wlacznie}
Liczba := RandomRange(-15, 16);
{Sprawdzenie czy libczba nie zostala wczesniej wylosowana}
if I > 1 then
for J := 1 to I - 1 do
if Tablica[J] = Liczba then
Losuj := False;
end;
Tablica[I] := Liczba;
end;
SortujRosnaco(Tablica);
Writeln;
Write('Wylosowano: ');
for I := 1 to IleLiczb do
begin
Write((Tablica[I]));
if I < IleLiczb then
Write(' ');
end;
end;
var
Klawisz : Char;
begin
ClrScr;
Randomize;
LosujOrazPodajWyniki;
repeat
Writeln;
Writeln('Wylosowac jeszcze raz (T/N)?');
Klawisz := UpCase(ReadKey);
if Klawisz in ['T'] then
begin
LosujOrazPodajWyniki;
end;
until Klawisz in ['N'];
end.