Задать вопрос
24 ноября, 12:15

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

Язык Паскаль

+3
Ответы (2)
  1. 24 ноября, 15:01
    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. 24 ноября, 15:23
    0
    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 - двадцать один Язык Паскаль ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы