proc to convert dec to hex.... in never ending loop... anyone help?


I have written this code and am finding myself in a never ending loop, i've tried changing the 0 ( eg while num >0 do) to a different number and this stops the loop but i'm still not getting the right calculations... And the answers that are coming out I don't understand where they are coming from, think maybe something to do with using +...
It'd be much appreciated if anyone could help me out here...

[/code]
program Test5_1;

{$APPTYPE CONSOLE}

uses
SysUtils;
var
user, prop : integer;

procedure DecToHex (Number : integer);

const
HexValue : string [16] = '123456789ABCDEF';

var
HexStr : string;
remainder : integer;

begin
HexStr := '';
while Number > 0 do
begin
Remainder := Number mod 16;
HexStr := HexValue[Remainder + 1] + HexStr;
Number := Number div 16 + 1;

write (HexStr);
writeln;
end;
end;
begin
writeln (' please enter number');
readln (user);
DecToHex (user);
readln (prop);
end.
[/code]



Comments

  • :
    : I have written this code and am finding myself in a never ending loop, i've tried changing the 0 ( eg while num >0 do) to a different number and this stops the loop but i'm still not getting the right calculations... And the answers that are coming out I don't understand where they are coming from, think maybe something to do with using +...
    : It'd be much appreciated if anyone could help me out here...
    :
    : [/code]
    : program Test5_1;
    :
    : {$APPTYPE CONSOLE}
    :
    : uses
    : SysUtils;
    : var
    : user, prop : integer;
    :
    : procedure DecToHex (Number : integer);
    :
    : const
    : HexValue : string [16] = '0123456789ABCDEF';
    :
    : var
    : HexStr : string;
    : remainder : integer;
    :
    : begin
    : HexStr := '';
    : while Number > 0 do
    : begin
    : Remainder := Number mod 16;
    : HexStr := HexValue[Remainder + 1] + HexStr;
    : Number := Number div 16;
    :
    : write (HexStr);
    : writeln;
    : end;
    : end;
    : begin
    : writeln (' please enter number');
    : readln (user);
    : DecToHex (user);
    : readln (prop);
    : end.
    : [/code]
    :
    :
    :
    :
    ^
    ^


  • [b][red]This message was edited by DirtyK at 2004-12-2 8:9:10[/red][/b][hr]
    : :


    : : I have written this code and am finding myself in a never ending loop, i've tried changing the 0 ( eg while num >0 do) to a different number and this stops the loop but i'm still not getting the right calculations... And the answers that are coming out I don't understand where they are coming from, think maybe something to do with using +...
    : : It'd be much appreciated if anyone could help me out here...
    : :
    : : [code]
    : : program Test5_1;
    : :
    : : {$APPTYPE CONSOLE}
    : :
    : : uses
    : : SysUtils;
    : : var
    : : user, prop : integer;
    : :
    : : procedure DecToHex (Number : integer);
    : :
    : : const
    : : HexValue : string [16] = '0123456789ABCDEF';
    : :
    : : var
    : : HexStr : string;
    : : remainder : integer;
    : :
    : : begin
    : : HexStr := '';
    : : while Number > 0 do
    : : begin
    : : Remainder := Number mod 16;
    : : HexStr := HexValue[Remainder + 1] + HexStr;
    : : Number := Number div 16;
    : :
    : : write (HexStr);
    : : writeln;
    : : end;
    : : end;
    : : begin
    : : writeln (' please enter number');
    : : readln (user);
    : : DecToHex (user);
    : : readln (prop);
    : : end.
    : : [/code]
    : :
    : :
    : :
    : :
    : ^
    : ^
    :
    : sorry ... did you write anything in reply to this??
    I just couldn't see any changes...
    cheers
    :



  • [b][red]This message was edited by Masterijn at 2004-12-2 8:13:2[/red][/b][hr]
    : [b][red]This message was edited by DirtyK at 2004-12-2 8:9:10[/red][/b][hr]
    : : :
    :
    :
    : : : I have written this code and am finding myself in a never ending loop, i've tried changing the 0 ( eg while num >0 do) to a different number and this stops the loop but i'm still not getting the right calculations... And the answers that are coming out I don't understand where they are coming from, think maybe something to do with using +...
    : : : It'd be much appreciated if anyone could help me out here...
    : : :
    : : : [code]
    : : : program Test5_1;
    : : :
    : : : {$APPTYPE CONSOLE}
    : : :
    : : : uses
    : : : SysUtils;
    : : : var
    : : : user, prop : integer;
    : : :
    : : : procedure DecToHex (Number : integer);
    : : :
    : : : const
    : : : HexValue : string [16] = '[blue]0[/blue]123456789ABCDEF';
    : : :
    : : : var
    : : : HexStr : string;
    : : : remainder : integer;
    : : :
    : : : begin
    : : : HexStr := '';
    : : : while Number > 0 do
    : : : begin
    : : : Remainder := Number mod 16;
    : : : HexStr := HexValue[Remainder + 1] + HexStr;
    : : : Number := Number div 16 [red]+ 1[/red];
    : : :
    : : : write (HexStr);
    : : : writeln;
    : : : end;
    : : : end;
    : : : begin
    : : : writeln (' please enter number');
    : : : readln (user);
    : : : DecToHex (user);
    : : : readln (prop);
    : : : end.
    : : : [/code]
    : : :
    : : :
    : : :
    : : :
    : : ^
    : : ^
    : :
    : : sorry ... did you write anything in reply to this??
    : I just couldn't see any changes...
    : cheers
    : :
    :
    I did, I changed vour code a bit. It should resolve the problem.




  • : [b][red]This message was edited by Masterijn at 2004-12-2 8:13:2[/red][/b][hr]
    : : [b][red]This message was edited by DirtyK at 2004-12-2 8:9:10[/red][/b][hr]
    : : : :
    : :
    : :
    : : : : I have written this code and am finding myself in a never ending loop, i've tried changing the 0 ( eg while num >0 do) to a different number and this stops the loop but i'm still not getting the right calculations... And the answers that are coming out I don't understand where they are coming from, think maybe something to do with using +...
    : : : : It'd be much appreciated if anyone could help me out here...
    : : : :
    : : : : [code]
    : : : : program Test5_1;
    : : : :
    : : : : {$APPTYPE CONSOLE}
    : : : :
    : : : : uses
    : : : : SysUtils;
    : : : : var
    : : : : user, prop : integer;
    : : : :
    : : : : procedure DecToHex (Number : integer);
    : : : :
    : : : : const
    : : : : HexValue : string [16] = '[blue]0[/blue]123456789ABCDEF';
    : : : :
    : : : : var
    : : : : HexStr : string;
    : : : : remainder : integer;
    : : : :
    : : : : begin
    : : : : HexStr := '';
    : : : : while Number > 0 do
    : : : : begin
    : : : : Remainder := Number mod 16;
    : : : : HexStr := HexValue[Remainder + 1] + HexStr;
    : : : : Number := Number div 16 [red]+ 1[/red];
    : : : :
    : : : : write (HexStr);
    : : : : writeln;
    : : : : end;
    : : : : end;
    : : : : begin
    : : : : writeln (' please enter number');
    : : : : readln (user);
    : : : : DecToHex (user);
    : : : : readln (prop);
    : : : : end.
    : : : : [/code]
    : : : :
    : : : :
    : : : :
    : : : :
    : : : ^
    : : : ^
    : : :
    : : : sorry ... did you write anything in reply to this??
    : : I just couldn't see any changes...
    : : cheers
    : : :
    : :
    : I did, I changed vour code a bit. It should resolve the problem.
    :
    :
    : Wow thank-you... I just couldn't see it...
    : cheers Kel
    :

  • : : [b][red]This message was edited by Masterijn at 2004-12-2 8:13:2[/red][/b][hr]
    : : : [b][red]This message was edited by DirtyK at 2004-12-2 8:9:10[/red][/b][hr]
    : : : : :
    : : :
    : : :
    : : : : : I have written this code and am finding myself in a never ending loop, i've tried changing the 0 ( eg while num >0 do) to a different number and this stops the loop but i'm still not getting the right calculations... And the answers that are coming out I don't understand where they are coming from, think maybe something to do with using +...
    : : : : : It'd be much appreciated if anyone could help me out here...
    : : : : :
    : : : : : [code]
    : : : : : program Test5_1;
    : : : : :
    : : : : : {$APPTYPE CONSOLE}
    : : : : :
    : : : : : uses
    : : : : : SysUtils;
    : : : : : var
    : : : : : user, prop : integer;
    : : : : :
    : : : : : procedure DecToHex (Number : integer);
    : : : : :
    : : : : : const
    : : : : : HexValue : string [16] = '[blue]0[/blue]123456789ABCDEF';
    : : : : :
    : : : : : var
    : : : : : HexStr : string;
    : : : : : remainder : integer;
    : : : : :
    : : : : : begin
    : : : : : HexStr := '';
    : : : : : repeat
    : : : : : Remainder := Number mod 16;
    : : : : : HexStr := HexValue[Remainder + 1] + HexStr;
    : : : : : Number := Number div 16 [red]+ 1[/red];
    : : : : : until Number = 0
    : : : : : write (HexStr);
    : : : : : writeln;
    : : : : : end;
    : : : : : begin
    : : : : : writeln (' please enter number');
    : : : : : readln (user);
    : : : : : DecToHex (user);
    : : : : : readln (prop);
    : : : : : end.
    : : : : : [/code]
    : : : : :
    : : : : :
    : : : : :
    : : : : :
    : : : : ^
    : : : : ^
    : : : :
    : : : : sorry ... did you write anything in reply to this??
    : : : I just couldn't see any changes...
    : : : cheers
    : : : :
    : : :
    : : I did, I changed vour code a bit. It should resolve the problem.
    : :
    : :
    : : Wow thank-you... I just couldn't see it...
    : : cheers Kel
    : :
    :
    :
    It's also better to use a repeat until loop, otherwise a 0 gives an empty stirng.


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories