- #1
tawi
- 33
- 0
Homework Statement
Read two integers. First one tells you the type of your numeral system (binary, decimal, hexadecimal) the second one will be your number in decimal. Using functions or procedures I need to convert the number into the required system and then count the sum of its digits in that system. For example you are given the integers: 16, 17.
You convert the number 17 into hexadecimal, that is 11 and then you add up its digits and write the result. So your output in this case is 2.
Homework Equations
I´ve written two functions. One to convert the number and second to make the sum. The problem is that the first function output is a string whereas the second is an integer. That means I need to come up with a solution to convert the numbers without using string at all. And I have no idea at all how to do that.
The Attempt at a Solution
Here is what I´ve got so far. The first function needs to be replaced with something else.
Code:
program abcd;
var n,x,system: integer;
function convert(sys:byte;Nr:longint):string;
const Letters:string='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var temp:string;
modulo:longint;
begin
if sys>length(Letters) then
writeln('system too big');
temp:='';
if Nr=0 then
convert:='0'
else begin
modulo:= Nr;
while modulo > sys - 1 do begin
temp:=Letters[1+modulo mod sys]+temp;
modulo:=modulo div sys ;
end;
end;
convert:=Letters[1+modulo]+temp;
end;
function digitSum(number: longint): integer;
var digit, torso, sumt: integer;
begin
sum := 0;
torso := number;
repeat
digit := torso mod 10;
sum := sum+ digit;
torso := torso div 10;
until torso = 0;
digitSum := soucet;
end;
begin
writeln(digitSum(?));
end.
Last edited: