Kezdőoldal » Számítástechnika » Programozás » Pascal programozás, segítség?

Pascal programozás, segítség?

Figyelt kérdés

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.



2013. ápr. 1. 22:24
 1/8 A kérdező kommentje:
vagyis segítséget kérnék a hiba okáért és szeretném ha elmagyarázná mi volt a hiba, és persze magára a jó megoldásra is kíváncsi lennék, köszönöm :)
2013. ápr. 1. 22:26
 2/8 anonim ***** válasza:
pascalban van mod operátor, mely két szám osztási maradékát adja,
2013. ápr. 1. 22:29
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:
ismerem a mod -ot, benne is van :)
2013. ápr. 1. 22:31
 4/8 anonim ***** válasza:
Ja most látom használtad is, csak nem értettem a kérdésben ezt: "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."
2013. ápr. 1. 22:33
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

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 :)

[link]

2013. ápr. 1. 22:35
 6/8 ejbenjaro ***** válasza:

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.

2013. ápr. 1. 22:36
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:
hmmm... köszi :) eltudnád valamelyest magyarázni hogy mi merre hány méter ? :D
2013. ápr. 1. 22:37
 8/8 anonim ***** válasza:
Azért ez egy meglehetősen primkó kód, olvasd el kétszer, ha nem érted, akkor térj vissza a hello world-re és kezd újra az egészet.
2013. ápr. 1. 23:33
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!