Informatyka 10, 06.12.2007

grudzień 6, 2007

Poprawa a dla innych: wylosowac tablice liczb wiekszych od 1 i uporzadkowac ja w sposob: najpierw liczby podzielne przez 2, potem przez 3, potem dalej.

program dupa;
const
n=10;
type
tablica=array [1..n] of integer;
function szukaj(A:tablica; j:integer; d:integer):integer;
var
b:boolean;
begin
b:=true;
while b do
if A[j] mod d = 0 then
begin
szukaj:=j;
b:=false
end
else
begin
j:=j+1 ;
if j>n then
begin
szukaj:=0;
b:=false
end;
end;
end;
procedure Losuj(var A:tablica);
var
i:integer;
begin
for i:=1 to n do
A[i]:=random(100)+2;
end;
procedure Wypisz(var A:tablica);
var
i:integer;
begin
for i:=1 to n do
write(A[i],’ ‘);
writeln;
writeln;
end;
procedure sortuj(var A:tablica);
var
d, zap,i,j,m:integer;
b:boolean;
begin
i:=1;
d:=2;
while i<n do
begin
j:=szukaj(A, i, d);
If j=0 then
d:=d+1
else
begin
zap:=A[i];
A[i]:=A[j];
A[j]:=zap;
i:=i+1
end;
end;
end;
var
A,B,C:tablica;
begin
randomize;
Losuj(A);
Wypisz(A) ;
sortuj(A);
wypisz (A)
end.