GRY-Online.pl --> Archiwum Forum

pascal

26.01.2011
16:26
smile
[1]

conic [ Centurion ]

pascal

siema mam kolejny problem w pascalu. Mianowicie mam za zadanie wyznaczyć teraz a,b (czyli liczby wprowadzone przez uzytkownika, pytanie banalne dla niektórych, ale jak to zrobic? :P

uses crt;
var a,b:integer;
begin
clrscr;
writeln('wprowadz pierwsza liczbe');
readln(a);
writeln('wprowadz druga liczbe');
readln(b);
WHILE a<>b do
if a>b then
a:=a-b
else b:=b-a;
writeln('najwyzszy wspolny dzielnik jest ronwy: ',a);

readln;
end.



ed. no bo tak. to jest program, ktory liczy najwiekszy wspolny dzielnik i mam teraz go ulepszyc tak, aby podal jeszcze liczby wprowadzone przez uzytkownika( a i b)

26.01.2011
16:29
smile
[2]

pagare [ Legionista ]

co dokładnie masz zrobić?

26.01.2011
16:32
[3]

jagged_alliahdnbedffds [ Rock'n'Roll ]

Przypisujesz na początku, po podaniu liczb, te liczby jakimś zmiennym, np. temp1, temp2. Na końcu piszesz:

writeln('Dla liczb: ',temp1,' i ',temp2,' wprowadzonych przez uzytkownika, NWD wynosi: ',a);

NWD robi się dużo prościej funkcją rekurencyjną:

function NWD(a,b:integer):integer;
begin
if b=0 then NWD:=a else NWD(b,a mod b);
end;

26.01.2011
16:43
[4]

conic [ Centurion ]

[3] dzieki ale
jak przypisuje?
tak?
a=temp1;
b=temp2;


ed. ok juz sobie poradzilem :), dzieki
powinno byc temp1:=a
temp2:=b

26.01.2011
22:28
[5]

DEXiu [ Senator ]

jagged ==> Nie ucz złych nawyków (rekurencja ogonowa) ;)

© 2000-2024 GRY-OnLine S.A.