output doesn't match number

Here's my program:

var i: integer;

type string10 = string[10];


const
  ones: array[0..9] of string10 = ('', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine');
  tens: array[0..9] of string10 = ('','ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety');


function wordnumber (number: word) : string;
  begin
     wordnumber:= tens [number div 10] + '-' +ones [number div 10];
  end;

begin {main}
   for i:= 20 to 99 do
     writeln ('You write ',i, ' like this: ', wordnumber(i));
end.



This is the output it's giving me:

'You write 20 like this: twenty-two'

It gives me twenty-two from 20 to 29.

I'm having similar problems with the other numbers:

'You write 30 like this: thirty-three'   I get thirty-three from 30 to 39.

'You write 40 like this: forty-four'    I get forty-four from 40 to 49.

'You write 50 like this: fifty-five'  I get fifty-five from 50 to 59.

'You write 60 like this: sixty-six'  I get sixty-six from 60 to 69.

'You write 70 like this: seventy-seven'   I get seventy-seven from 70 to 79.

'You write 80 like this: eighty-eight'    I get eighty-eight from 80 to 89.

'You write 90 like this: ninety-nine'   I get ninety-nine from 90 to 99.


BTW... The program is supposed to let the user enter a number from 20 rto 99 and it outputs the number in equivalent number form.
kazooie21Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
HypoConnect With a Mentor Commented:
Hi,
There's one misstake in your code,
One of the "div"s should be a "mod"

Here's a modifyed version of your code

var i: integer;

type string10 = string[10];

const
  ones: array[0..9] of string10 = ('', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine');
  tens: array[0..9] of string10 = ('','ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety');


function wordnumber (number: word) : string;
  begin
     wordnumber:= tens [number div 10] + '-' +ones [number mod 10];
  end;

begin {main}
   for i:= 20 to 99 do
     writeln ('You write ',i, ' like this: ', wordnumber(i));
end.


0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.