nhat_thuc88tb
28-10-2010, 16:31
đề bài: đổi một số từ hệ 10 sang hệ 2.
program doiso;
const n = 50;
type stack = array[1..n] of integer;
var s : stack;
sodu, t, x, kq : integer;
{-------------------------------------}
procedure push(var s : stack; var t : integer; x : integer);
begin
if (t >= n) then write('stack tran')
else begin
t := t + 1;
s[t] := x;
end;
end;
{-------------------------------------}
procedure pop(var s : stack; var t : integer; var w : integer);
begin
if (t <= 0) then write('stack rong')
else begin
t := t - 1;
w := s[t+1];
end;
end;
{-------------------------------------}
procedure doi(x : integer; var w: integer);
begin
while (x > 0) do
begin
sodu := x mod 2;
push(s, t, sodu);
x := x div 2;
end;
while (t > 0) do
begin
pop(s, t, w);
write(w);
end;
end;
{--------------------------------------}
begin
repeat
writeln;
write('so muon doi la: '); readln(x);
doi(x, kq);
writeln('ket qua la : ', kq);
until x = 0;
end.
program doiso;
const n = 50;
type stack = array[1..n] of integer;
var s : stack;
sodu, t, x, kq : integer;
{-------------------------------------}
procedure push(var s : stack; var t : integer; x : integer);
begin
if (t >= n) then write('stack tran')
else begin
t := t + 1;
s[t] := x;
end;
end;
{-------------------------------------}
procedure pop(var s : stack; var t : integer; var w : integer);
begin
if (t <= 0) then write('stack rong')
else begin
t := t - 1;
w := s[t+1];
end;
end;
{-------------------------------------}
procedure doi(x : integer; var w: integer);
begin
while (x > 0) do
begin
sodu := x mod 2;
push(s, t, sodu);
x := x div 2;
end;
while (t > 0) do
begin
pop(s, t, w);
write(w);
end;
end;
{--------------------------------------}
begin
repeat
writeln;
write('so muon doi la: '); readln(x);
doi(x, kq);
writeln('ket qua la : ', kq);
until x = 0;
end.