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

от admin

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

Прикреплённый файлы:
test1.py (2,6 KБ)

#2 Ноя. 3, 2017 03:02:48

В 2013 году писал такую программу, правда на C дело было

#3 Ноя. 3, 2017 11:32:55

Прикреплённый файлы:
attachmenttest1.py (3,0 KБ)

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

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 (e<>0) 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.

Пример:
<span>Введите число [0..999] : 714
семьсот четырнадцать</span>

Вывести число прописью

Задача Преобразовать число к прописному текстовому виду, например
2141 — Две тысячи сто сорок один
.

Указанная задача возникает при необходимости вывести сумму прописью, а также может использоваться для составления капчи для сайтов (например, в форме комментариев ниже).

Читать:
Скачать paint как на компьютере на андроид

Перед решением задачи необходимо определиться с диапазоном ввода числа. Предположим, что вводимое число будет состоять из 4 разрядов:

  • тысячи;
  • сотни;
  • десятки;
  • единицы.

Для решения задачи необходимо разбить число на значащие разряды и каждому разряду поставить в соответствие некоторую текстовую строку. При этом необходимо учитывать, что числа в диапазоне от 10 до 20 не нужно разделять на десятки и единицы, например
11 — одиннадцать, в то время как
21 — двадцать один.

Реализация на C++

Для генерации случайных чисел в диапазоне 1000-9999 используется формула, приведенная здесь.

Число прописью

Результат выполнения

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

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 (e<>0) 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
семьсот четырнадцать

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.

Похожие статьи