Вопрос задан 15.03.2021 в 17:03. Предмет Информатика. Спрашивает Колосов Вова.

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

мы вводим цифру, а нам выдают слово
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ткаченко Антон.

Ответ:

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.

Объяснение:

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример программы на Pascal ABC, которая преобразует цифру в слово:

pascal
program WordConversion; var inputNumber: Integer; begin Write('Введите число: '); ReadLn(inputNumber); case inputNumber of 0: WriteLn('Ноль'); 1: WriteLn('Один'); 2: WriteLn('Два'); 3: WriteLn('Три'); 4: WriteLn('Четыре'); 5: WriteLn('Пять'); // Добавьте остальные числа по аналогии else WriteLn('Неизвестное число'); end; ReadLn; end.

В этой программе мы сначала запрашиваем число у пользователя с помощью ReadLn(inputNumber). Затем используем оператор case для проверки значения inputNumber. В каждом случае мы выводим соответствующее слово на экран с помощью WriteLn.

Вы можете добавить или изменить слова для других чисел в соответствии с вашими потребностями.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос