Ezt hogyan lehet megcsinálni FreePascalban halmazok segítségével, mert ötletem sincs rá?
Az én művem a a Pascal-os szita a Wiki-n, ez lényegesen rövidebb amit te akarsz:
program eraszt_halmaz;
var j, p : Integer;
halmaz : set of Byte;
begin
halmaz := [];
for j := 2 to 255 do Include(halmaz, j);
p := 2;
while p * p <= 255 do
begin
j := p * p;
while j <= 255 do
begin
Exclude(halmaz, j);
Inc(j, p);
end;
Inc(p);
end;
for j := 1 to 255 do if j in halmaz then Write(j:4);
ReadLn;
end.
Feles-sör játszik ?
Kicsit optimálisabban:
program eraszt_halmaz;
var j : Integer;
p : Integer = 2;
halmaz : set of Byte = [2..255];
begin
while p * p <= 255 do
begin
if p in halmaz then
begin
j := p * p;
while j <= 255 do
begin
Exclude(halmaz, j);
Inc(j, p);
end;
end;
Inc(p);
end;
for j := 2 to 255 do if j in halmaz then Write(j:4);
ReadLn;
end.
@#6:
No igen, arra céloztam... Történetesen erre a minapi bonyodalomra gondolok:
http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
Szvsz itt elég nehéz lenne végül nem a tanár nyakába varrni a balhét. Igaz, hogy elemista szinten kezeli az egyetemistákat, de legalább maga sem érti, amit tanít nekik.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!