ТС же просил "жизу".
Для того третий вариант: сколько букв включая (вариант - исключая) пробелы в наименовании данного числа?
Там именно на выбор из таблицы задача, отдельно для тысяч, сотен, 20-99,11-19,1-10.
Так что три кейса -- по тысячам, сотням, десяткам.
Ну типа
Тысячи:
Код:
Case Number of
0..999: Numletters:=0;
1000..1999,6000..6999: NumLetters:=10;
2000..3999,5000..5999,7000..7999: Numletters:=9;
4000..4999: NumLetters:=12;
8000..9999: NumLetters:=12;
else Error:="Число не в диапазоне 0..9999";
end;
Сотни:
Код:
Case Number_Hundreds of
0: NumLetters:=Numletters+0;
1: Numletters:=NumLetters+3;
2,3: Numletters:=NumLetters+6;
4,8,9: Numletters:=NumLetters+9;
5,7: NumLetters:=NumLetters+7;
6: NumLetters:=NumlLetters+8;
Else Error:="Случилась беда в определителе сотен";
End
Ну в общем ясно - дальше кейс по десяткам от 20 до 99 и затем кейс по от 0 до 19 (можно на два разделить).
В Паскале есть целочисленные деления и остатки, так что Number_Hundreds считаются легко но я не помню как.