Miért nem működik a program (Pascal)?
Itt van a programrészlet:
procedure prim(var l:tomb);
var k:integer;
begin
for i:=1 to 30 do
k:=0;
if a[i] mod i=0 then
inc(k);
if k=2 then
l[i]:=a[i];
end;
Teljes programot privátba küldök.
procedure prim(var l:tomb, n:byte); //l:amibe teszi a primeket, n:db prim
var i,j:byte;
begin
n:=0;
for i:=1 to 30 do //|a|=30
for j:=2 to round(sqrt(a[i])) do
if a[i] mod i=0 then begin inc(n); l[n]:=a[i]; end;
end;
Nyahh, a 7. sorban j helyett i-t írtam.
Remélem így már oké.
Ennél egy kicsit pontosabb specifikáció kéne. Jól értelmeztem, hogy:
Adott egy A tömböd, amely pozitív páros számokat tartalmaz. Egy másik, l nevű tömbbe szeretnénk kiválogatni a megfelelő elemeket (vagy az indexüket?).
Amúgy meg a problémák:
- Pascalban nincs olyan típus, hogy "tomb". Definiáltad ezt egy Type típussal?
- Amint látom, te egy prímtesztet akartál írni, ami az osztól számát ellenőrzi. Ez egyrészt így lassú, másrészt meg fölösleges, ugyanis egy pozitív páros szám csak akkor prím, ha 2. Tehát igazából a 2 értékeket kéne megkeresned a tömbben. Ráadásul a prímteszted sem jó, már ha tényleg az akart lenni. Teljesen kusza a programrészlet. Leírom, pontosan mit csinál:
1.) a k változó értékét 0-ra állítja. Harmincszor.
2.) Ha az a tömb 31. eleme osztható 31-el, k értéke 1 lesz, különben 0.
3.) k értéke nem lehet 2, így ez a rész kimarad.
VÉGE.
Ha megmondod, mi a pontos specifikáció, vagy hogy megegyezik-e azzal, amit fent leírtam, írok kódot.
Tehát van egy "a" tömböm amiben páros pozitív számok vannak, és át szeretném tenni a prím számokat egy l tömbbe.
Problémák:
-természetesen definiáltam type-al, tudtom szerint nem lehet paraméterként tömböt deklarálni azért csináltam így.
-Prímteszt akar lenni, és tudom hogy csak a 2-eseket válogatja, de ebben nem az a lényeg hanem hogy lássa a tanár hogy tudjuk a tesztelést, és ezért csinálom ezzel a módszerrel mert így tanították.
Figyelj, ngyon örülnék ha segítenél.Írj rám prvátba és küldöm a teljes kódot.
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!