Kezdőoldal » Számítástechnika » Programozás » Miért nem működik a program...

Miért nem működik a program (Pascal)?

Figyelt kérdés
Van egy feladat hol fel van töltve egy tömb pozitiv páros számokkal és kéne tesztelni hogy ezek közül melyik prim, viszont valamiért nem működik.Privátba küldök kódot.Kérlek segítsetek fontos!

2012. máj. 18. 22:04
 1/9 A kérdező kommentje:

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.

2012. máj. 18. 22:23
 2/9 anonim ***** válasza:
Ha pozitív páros számokkal van feltöltve ezek közül csak az lehet prím amelyik 2-vel egyenlő.
2012. máj. 18. 23:18
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:
Igen viszont az a kérdésem hogy a működés jó, tehát a programban nincs hiba.
2012. máj. 18. 23:20
 4/9 anonim ***** válasza:

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;

2012. máj. 19. 01:24
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:

Nyahh, a 7. sorban j helyett i-t írtam.

Remélem így már oké.

2012. máj. 19. 01:26
Hasznos számodra ez a válasz?
 6/9 zsomkovacs ***** válasza:

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.

2012. máj. 19. 06:07
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:

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.

2012. máj. 28. 12:18
 8/9 A kérdező kommentje:
Wampa, valamiért nem működik a progi, pedig átírtam az i-t is de úgy se jó.
2012. máj. 28. 12:31
 9/9 anonim ***** válasza:
Akkor logikus és elegáns lenne egy eljárás aminek 2 paramétere van ami "a" és "b" tömb "a" tömbben lévő prímeket átrakja "b" tömbbe. (Ezek szerint az lényegtelen hogy csak páros számokat tartalmaz.)
2012. máj. 28. 13:46
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!