:с клавиатуры вводится число от 1 до 1000. программа должна вывести его прописью. (написать программу на паскале)

EvaGRNV EvaGRNV    3   21.08.2019 03:40    1

Ответы
skorospelovana skorospelovana  05.10.2020 08:34
Program n1;
var
m, n: integer;
ms: array[1..9] of string;
md: array[1..9] of string;
m1: array[11..19] of string;
me: array[1..9] of string;
flag: boolean;
begin
flag := false;
ms[1] := 'сто'; ms[2] := 'двести'; ms[3] := 'триста'; ms[4] := 'Четыреста';
ms[5] := 'пятьсот'; ms[5] := 'пятьсот'; ms[6] := 'шестьсот'; ms[7] := 'семьсот';
ms[8] := 'восемьсот'; ms[9] := 'девятьсот';
md[1] := 'десять'; md[2] := 'двадцать'; md[3] := 'тридцать'; md[4] := 'сорок';
md[5] := 'пятьдесят'; md[6] := 'шестьдесят'; md[7] := 'семьдесят';
md[8] := 'восемьдесят'; md[9] := 'девяносто';
m1[11] := 'одиннадцать'; m1[12] := 'двенадцать'; m1[13] := 'тринадцать';
m1[14] := 'четырнадцать'; m1[15] := 'пятнадцать'; m1[16] := 'шестнадцать';
m1[17] := 'семнадцать'; m1[18] := 'восемнадцать'; m1[19] := 'девятнадцать';
me[1] := 'один'; me[2] := 'два'; me[3] := 'три'; me[4] := 'четыре'; me[5] := 'пять';
me[6] := 'шесть'; me[7] := 'семь'; me[8] := 'восемь'; me[9] := 'девять';

write('введите число: ');
readln(m);
if (m < 1) or (m > 1000) then writeln('число не входит в заданный интервал')
else
if m = 1000 then writeln('одна тысяча ')
else
begin
n := m div 100;
if n > 0 then
begin
write(ms[n]);
flag := true
end;
m := m mod 100;
if m = 0 then writeln(' ')
else
begin
if (m > 10) and (m < 20) then
begin
if flag then write(' ');
writeln(m1[m])
end
else
if m > 0 then
begin
n := m mod 10;
m := m div 10;
if m > 0 then
begin
if flag then write(' ') else flag := true;
Write(md[m])
end;
if n <> 0 then
begin
if flag then write(' ');
write(me[n]);
end
end
end
end
end.
ПОКАЗАТЬ ОТВЕТЫ
aika043 aika043  05.10.2020 08:34
{-}
const
ch_1: array[1..19] of string = ('один', 'два', 'три', 'четыре', 'пять', 'шесть','семь', 'восемь', 'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать','четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');

ch_2: array [2..9] of string = ('двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто'); 

ch_3: array [1..9] of string = ('сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот'); 

var
n : 0..1000;
begin
repeat
write ('Введите натуральное число, меньшее 1000: ');
readln (n);
until n in [1..999];

if n in [100..999] then write (ch_3[n div 100], ' ');
     if (n mod 100) in [20..99] then 
     begin 
         write (ch_2[(n mod 100)div 10], ' '); 
         if (n mod 10) <> 0 then write (ch_1[n mod 10]); 
     end 
     else 
     if (n mod 100) <>0 then write (ch_1[n mod 100]); 

end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика