Pascal programozás, segítség?
Lazarusban ( pascal nyelven ) szeretném a következőt megcsinálni:
Az algoritmus egy szám (a) legnagyobb osztóját keresi meg úgy, hogy egy megadott kezdőértéktől (b) indulva megvizsgálja, hogy a osztható-e b-vel. Ha nem, akkor b értékét eggyel csökkenti és újra próbálkozik. (Az oszthatóság vizsgálata úgy történik, hogy b értékét egy ciklusban levonjuk az a-ból és megnézzük, hogy a maradék nagyobb-e nullánál.)
vagy valami hasonló módon. A következőkig jutottam:
program feladat;
var a,b,c,d:integer;
begin
write('Add meg "a" - erteket: ');
read(a);
writeln('*******');
b:=a-1;
c:=(a mod b);
d:=(b-1);
if c = 0 then begin
writeln('', b);
readln;
end;
repeat
if c<>0 then begin
b:=d;
writeln('',b);
end
else
if c = 0 then begin
writeln('', b);
readln;
end;
until c=0;
readln;
readln;
end.
igaziból maga a feladat onnan van, hogy megnéztem mivolt a világ legelső programjának a feladata, és azt prübáltam én pascalban megcsinálni, de nem sikerült... ezért fogtam magát a feladat szövegét egy az egybe és bemásoltam ide :)
Nagyjából azt csimálja, amit szeretnél:
program oszthato;
var
a,b,c: integer;
oszto: boolean;
begin
write('Kérem a számot: ');
readln(a);
oszto:=True;
b:=a;
while oszto or (b=1) do
begin
dec(b);
c:=a mod b;
if c=0 then oszto:=False;
end;
writeln('A legnagyobb osztó: ',b);
writeln('A kilépéshez nyomd meg az ENTER-t!');
readln;
end.
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!