Блог для маленьких школьников и их родителей
ШколаЛа

Как в Pascal ABC написать программу, которая преобразует word в string. То есть программа в которой…

Автор:
Предмет: Информатика
Уровень: 5 - 9 класс

Как в Pascal ABC написать программу, которая преобразует word в string. То есть программа в которой мы вводим цифру, а нам выдают слово

Ответов к вопросу: 1
  • gulnaz45367
    28.06.2024 | 11:17

    Ответ:
    program Num_To_Str;

    uses

     SysUtils, Math;

    const

     Max000 = 6;               {Кол-во триплетов — 000}

     MaxPosition = 18;         {Кол-во знаков в числе }

    function IIF (i: Boolean; s1, s2: Char): Char; overload;

    begin

     if i then result := s1

     else result := s2

    end;

    function IIF (i: Boolean; s1, s2: string ): string; overload;

    begin

     if i then result := s1

     else result := s2

    end;

    function Num000toStr (S: string; Woman: Boolean): string; {Num000toStr возвращает число для триплета}

    const

     c100: array [‘0’.’9′] of string = (», ‘сто ‘, ‘двести ‘, ‘триста ‘, ‘четыреста ‘, ‘пятьсот ‘,

       ‘шестьсот ‘, ‘семьсот ‘, ‘восемьсот ‘  ,’девятьсот ‘);

     c10: array [‘0’.’9′] of string = (»,’десять ‘,’двадцать ‘,’тридцать ‘,’сорок ‘,’пятьдесят ‘,

       ‘шестьдесят ‘,’семьдесят ‘,’восемьдесят ‘,’девяносто ‘);

     c11: array [‘0′.’9′] of string = (»,’один’,’две’,’три’,’четыр’,’пят’,’шест’,’сем’,

       ‘восем’,’девят’);

     c1: array [False.True, ‘0’.’9′] of string=((»,’один ‘,’два ‘,’три ‘,’четыре ‘,’пять ‘,

       ‘шесть ‘,’семь ‘,’восемь ‘,’девять ‘),

     (»,’одна ‘,’две ‘,’три ‘,’четыре ‘,’пять ‘,’шесть ‘,’семь ‘,’восемь ‘,’девять ‘));

    begin{Num000toStr}

     Result := c100 [s[1]] + iif ((s[2] = ‘1’) and (s[3] > ‘0’), c11 [s[3]] + ‘надцать ‘,

       c10 [s[2]] + c1 [woman, s[3]]);

    end;{Num000toStr}

    function NumToStr (n: LongInt): string;    {Возвращает число прописью}

    const

     c1000: array [0.Max000] of string  = (», ‘тысяч’, ‘миллион’, ‘миллиард’, ‘триллион’,

       ‘квадраллион’,’квинтиллион’);

     c1000w: array [0.Max000] of Boolean = (False, True, False, False, False, False, False);

     w: array [False.True, ‘0’.’9′] of string [3]= (

     (‘ов ‘, ‘ ‘ ,’а ‘ ,’а ‘ ,’а ‘ ,’ов ‘ ,’ов ‘ ,’ов ‘ ,’ов ‘ ,’ов ‘),

     (‘ ‘ ,’а ‘, ‘и ‘, ‘и ‘, ‘и ‘, ‘ ‘, ‘ ‘, ‘ ‘, ‘ ‘, ‘ ‘));

    var

     s: string;

     s000: string [3];

     isw, isMinus: Boolean;

     i: Integer;        //Счётчик триплетов

    begin

     s := IntToStr (n);

     Result := »; i := 0;

     isMinus := (s<>») and (s[1] = ‘-‘);

     if isMinus then s := Copy (s, 2, Length (s) — 1);

     while not ((i >= Ceil (Length (s) / 3)) or (i >= Max000)) do begin

       s000 := Copy (’00’ + s, Length (s) — i * 3, 3);

       isw := c1000w [i];

       if (i > 0) and (s000 <> ‘000’) then         //тысячи и т.д.

         Result := c1000 [i] + w [Isw,

         iif (s000 [2] = ‘1’, Char (‘0’), Char (s000 [3]))

         ] + Result;

       Result := Num000toStr (s000, isw) + Result;

       Inc (i)

     end;

     if Result = » then Result := ‘ноль’;

     if isMinus then Result := ‘минус ‘ + Result;

    end;{NumToStr}

    var

     Num: LongInt;

    begin

     Write (‘Введите число: ‘);

     ReadLn (Num);

     WriteLn (NumToStr (Num));

     ReadLn;

    end.

    Объяснение:
    попробуйте эту программу на Паскале, возможно что-то подправить будет нужно

Ответить на вопрос:
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o:
Нажимая на кнопку я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.