Задать вопрос
13 января, 13:21

Напишите процедуру, которая выводит переданное ей число прописью. Например, 21 - двадцать один

Язык Паскаль

+3
Ответы (2)
  1. 13 января, 14:10
    0
    procedure p (x:integer; var st:string) ;

    type

    name = array[0 ... 9] of String[50];

    const

    s1 : name = (' ноль ',' один ',' два ',' три ',' четыре ',' пять ',' шесть ',' семь ',' восемь ',' девять ') ;

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

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

    s4 : name = (' ',' одиннадцать ',' двенадцать ',' тринадцать ',' четырнадцать ',' пятнадцать ',' шестнадцать ',' семнадцать ',' восемнадцать ',' девятнадцать ') ;

    var

    s, d, e : Integer;

    begin

    s: = x div 100; x:=x mod 100;

    st:=s3[s];

    d: = x div 10; e:=x mod 10;

    if (d=1) and (e0) then st:=st+s4[e]

    else st:=st+s2[d]+s1[e];

    end;

    var x:integer; st:string;

    Begin

    Write ('Введите число [0 ... 999] : ') ;

    Readln (x) ;

    p (x, st) ;

    writeln (st) ;

    End.

    Пример:

    Введите число [0 ... 999] : 714

    семьсот четырнадцать
  2. 13 января, 15:49
    +1
    Procedure P (A:integer) ;

    Var

    B:byte;

    S, Z:string;

    Begin

    if A = 0 then Write ('Ноль')

    else

    Begin

    if A < 0 then

    Begin

    Z:='минус ';

    A:=-A;

    End;

    B:=A mod 100;

    if B div 10 = 1 then

    Case B mod 10 of

    0:S:='десять';

    1:S:='одиннадцать';

    2:S:='двенадцать';

    3:S:='тринадцать';

    4:S:='четырнадцать';

    5:S:='пятнадцать';

    6:S:='шестнадцать';

    7:S:='семнадцать';

    8:S:='восемнадцать';

    9:S:='девятнадцать';

    End

    else

    Begin

    Case B mod 10 of

    1:S:='один';

    2:S:='два';

    3:S:='три';

    4:S:='четыре';

    5:S:='пять';

    6:S:='шесть';

    7:S:='семь';

    8:S:='восемь';

    9:S:='девять';

    End;

    Case B div 10 of

    2:S:='двадцать '+S;

    3:S:='тридцать '+S;

    4:S:='сорок '+S;

    5:S:='пятьдесят '+S;

    6:S:='шестьдесят '+S;

    7:S:='семьдесят '+S;

    8:S:='восемьдесят '+S;

    9:S:='девяносто '+S;

    End;

    End;

    Case (A div 100) mod 10 of

    1:S:='сто '+S;

    2:S:='двести '+S;

    3:S:='триста '+S;

    4:S:='четыреста '+S;

    5:S:='пятьсот '+S;

    6:S:='шестьсот '+S;

    7:S:='семьсот '+S;

    8:S:='восеьсот '+S;

    9:S:='девятьсот '+S;

    End;

    WriteLn (Z+S) ;

    End;

    End;

    Var

    A:longint;

    Begin

    Write ('Введите целое число: ') ; ReadLn (A) ;

    P (A) ;

    End.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Напишите процедуру, которая выводит переданное ей число прописью. Например, 21 - двадцать один Язык Паскаль ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы