// К сожалению, выравнивание текста и, если можно так выразиться, табуляция не везде корректно сохраняются, то сдвиги где-то отображаются, где-то нет. Поэтому прилагаю .cpp файл
Var n,t,s,d,e:integer; begin writeln(''); repeat writeln('Введите сумму в рублях<=1000'); readln(n); until (n>0) and (n<=1000); t:=n div 1000; n:=n-t*1000; s:=n div 100; n:=n-s*100; d:=n div 10; if d<>1 then begin n:=n-d*10; e:=n; end; case t of 1:write('тысяча '); end; if s>=0 then case s of 1:write('сто '); 2:write('двести '); 3:write('триста '); 4:write('четыресто '); 5:write('пятьсот '); 6:write('шестьсот '); 7:write('семьсот '); 8:write('восемьсот '); 9:write('девятьсот '); end; if d>=0 then case d of 1: case n of 10: write('десять '); 11: write('одиннадцать '); 12: write('двенадцать '); 13: write('тринадцать '); 14: write('четырнадцать '); 15: write('пятнадцать '); 16: write('шестнадцать '); 17: write('семнадцать '); 18: write('восемнадцать '); 19: write('девятнадцать '); end; 2:write('двадцать '); 3:write('тридцать '); 4:write('сорок '); 5:write('пятьдесят '); 6:write('шестьдесят '); 7:write('семьдесят '); 8:write('восемьдесят '); 9:write('девяносто '); end; if e>=0 then case e of 1:write('один '); 2:write('два '); 3:write('три '); 4:write('четыре '); 5:write('пять '); 6:write('шесть '); 7:write('семь '); 8:write('восемь '); 9:write('девять '); end; if (e=1) then write('рубль ') else if (e=0)or(e>4) then write('рублей ') else write('рубля '); end.
#include <iostream>
#include <cstdlib>
using namespace std;
void Output(void);
char numbers [10] [6] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int digit;
int main()
{
cout << "Input digit: ";
cin >> digit;
switch(digit)
{
case 0:
Output();
break;
case 1:
Output();
break;
case 2:
Output();
break;
case 3:
Output();
break;
case 4:
Output();
break;
case 5:
Output();
break;
case 6:
Output();
break;
case 7:
Output();
break;
case 8:
Output();
break;
case 9:
cout << "No more digits";
break;
default:
cout << "Input error! This is not a digit";
return 1;
}
return 0;
}
void Output(void)
{
cout << "Next digits are ";
for (int i = digit + 1; i < 10; i++)
cout << numbers [i] << " ";
}
// К сожалению, выравнивание текста и, если можно так выразиться, табуляция не везде корректно сохраняются, то сдвиги где-то отображаются, где-то нет. Поэтому прилагаю .cpp файл
n,t,s,d,e:integer;
begin
writeln('');
repeat
writeln('Введите сумму в рублях<=1000');
readln(n);
until (n>0) and (n<=1000);
t:=n div 1000;
n:=n-t*1000;
s:=n div 100;
n:=n-s*100;
d:=n div 10;
if d<>1 then
begin
n:=n-d*10;
e:=n;
end;
case t of
1:write('тысяча ');
end;
if s>=0 then
case s of
1:write('сто ');
2:write('двести ');
3:write('триста ');
4:write('четыресто ');
5:write('пятьсот ');
6:write('шестьсот ');
7:write('семьсот ');
8:write('восемьсот ');
9:write('девятьсот ');
end;
if d>=0 then
case d of
1:
case n of
10: write('десять ');
11: write('одиннадцать ');
12: write('двенадцать ');
13: write('тринадцать ');
14: write('четырнадцать ');
15: write('пятнадцать ');
16: write('шестнадцать ');
17: write('семнадцать ');
18: write('восемнадцать ');
19: write('девятнадцать ');
end;
2:write('двадцать ');
3:write('тридцать ');
4:write('сорок ');
5:write('пятьдесят ');
6:write('шестьдесят ');
7:write('семьдесят ');
8:write('восемьдесят ');
9:write('девяносто ');
end;
if e>=0 then
case e of
1:write('один ');
2:write('два ');
3:write('три ');
4:write('четыре ');
5:write('пять ');
6:write('шесть ');
7:write('семь ');
8:write('восемь ');
9:write('девять ');
end;
if (e=1) then write('рубль ')
else if (e=0)or(e>4) then write('рублей ')
else write('рубля ');
end.