Практика программирования (Бейсик, Си, Паскаль)


Задачи,советы и ответы - часть 20


int digl,dig10,dig100;

if(m==0) return numl[0]; Result[0]=0x0;

if(m<0) /* Учет знака числа */ {

m=-m;

strcpy(Result,"минус ") ; }

diglOO=m/100; /* Выделение сотен */

strcat(Result,num3[diglOO]);

/* Приклеили обозначение сотен */

m=m-100*dig100;

/* Удаление обработанных сотен */

if (m=0) return Result;

/* Если две оставшиеся цифры - нули */

if(m<20) /* Если две младшие цифры меньше 20 */

{

strcat(Result,numl[m]);

return Result; }

diglO=m/10;

/* Выделение десятков, если diglO >=20 */

strcat(Result,num2[diglO-2]);

digl=m % 10;

/* Если в числе присутствуют ненулевые разряды единиц */

if(digl != 0)

strcat(Result,numl[digl]);

return Result; }

Программа 2_11.pas

program nd_10;

{ Формирование словесного описания числа )

uses Crt;

var

n:longint;

function num_to_str(m:longint):string;

{ Преобразование числа в словесное описание }

label ret;

"const

numl :array [0. .19] o£ string= (

1 ноль', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь','восемь','девять','десять','одиннадцать', 'двенадцать','тринадцать','четырнадцать', 'пятнадцать','шестнадцать','семнадцать', 'восемнадцать','девятнадцать');

num2:array [2..9] of string=(

'двадцать ','тридцать ','сорок ','пятьдесят ', 'шестьдесят ','семьдесят ','восемьдесят ','девяносто ');

num3:array [0..9] of string = ('',

'сто ','двести ','триста ','четыреста ','пятьсот ', 'шестьсот ','семьсот ','восемьсот ','девятьсот ');

var

digl,diglO,diglOO: byte;

Result:string;

begin

if m=0 then begin

Result:=numl[0];

goto ret;

end;

Result:='';

if m<0 then { Учет знака числа }

begin

m:=-m;

Result:='минус '; end;

diglOO:=m div 100; { Выделение сотен }

Result:=Result + num3[diglOO];

{ Приклеили обозначение сотен }

m:=m-100*diglOO;

{ Удаление обработанных сотен }

if m=0 then goto ret;

{ Если две оставшиеся цифры - нули }

if m<20 then begin

{ Если две младшие цифры меньше 20 }

Result:=Result+numl [m] ;

goto ret;

end;




- Начало -  - Назад -  - Вперед -