Mi lehet a gond az alábbi pascal programmal?
program p1;
var x:array[1..1000]of integer;
be,i,vizsgalt:integer;
procedure olvas(a1:array of integer);
var i1:integer;
begin
i1:=1;
be:=0;
repeat
readln(a1[i1]);
inc(i1,be);
until a1[i1]=0;
end;
function prim(sum:integer):boolean;
var i2:integer;
begin
prim:=TRUE;
for i2:=2 to sum div 2 do
if sum mod i2=0 then
prim:=FALSE;
end;
function osszeg(a3:integer):integer;
var sum:integer;
begin
sum:=0;
while a3>9 do
begin
sum:=sum+a3 mod 10;
a3:=a3 div 10;
end;
end;
begin
olvas(x);
for i:=1 to be do
vizsgalt:=x[i];
if prim(osszeg(vizsgalt))=TRUE then
writeln(x[i]);
readln;
end.
futni fut, de nem akar kiirni
Tesztelted az eljárásokat külön-külön?
Mert ránézésre az osszeg nevű nem ad vissza semmilyen értéket.
Szerintem a fő gond az, hogy rossz.
El kéne árulnod, hogy szerinted mit kéne csinálnia, valamint hogy helyette mit csinál.
Az első függvényben a függvény nevét használod változóként, innentől már esélyed sincs, a második nem ad vissza semmit.
módosÍtottam a fent emlitetteket. Alapjában ez egy bonyolultabb példa, de ez csak egy töredéke
Beolvasnák egy sorozatot, majd meg kell nézni minden elemre, hogy a szj. összege prim-e
Ha nem kéne alprogramokat használni, menne a dolog:D
Akkor csak annyi hiányzott hogy osszeg:=sum?
Vagy még mindig nem megy?
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!