0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 1
1

Ввод числа прописью до 1000000

06.12.2016, 07:01. Показов 1977. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел тут программу с прописью чисел до 3000, как её дополнить до 1000000?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
uses Crt;
type nazw = array[0..9] of String[15];
const
ed : nazw = ('',' один',' два',' три',' четыре',' пять',' шесть',' семь',
              ' восемь',' девять');
des: nazw = ('',' десять',' двадцать',' тридцать',' сорок',' пятьдесят',
             ' шестьдесят',' семьдесят',' восемьдесят ',' девяносто');
sot: nazw = ('',' сто',' двести',' триста',' четыреста',' пятьсот',' шестьсот',
             ' семьсот',' восемьсот',' девятьсот');
dd : nazw = ('',' одинадцать',' двенадцать',' тринадцать',' четырнадцать',
             ' пятнадцать',' шестнадцать',' семнадцать',' восемьнадцать',
             ' девятнадцать');
tys: array[1..3] of string[15]=('одна тысяча','две тысячи','три тысячи');
var t,s,d,e,x : Integer;
    st      : String;
Begin
repeat
Write('Введите число [0..3000] :');
Readln(x);
until (x>=0)and(x<=3000);
if x=0 then
 begin
  writeln('ноль');
  exit
 end;
st:='';
t:=x div 1000;
if t>0 then st:=st+tys[t];
s:=x div 100 mod 10;
st:=st+sot[s];
x:=x mod 100;
d:=x div 10;
e:=x mod 10;
if (d=1) and (e<>0) then st:=st+dd[e]
else st:=st+des[d]+ed[e];
writeln(st);
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2016, 07:01
Ответы с готовыми решениями:

Программа пишет прописью числа, помогите доделать ввод числа с клавиатуры
Программа пишет прописью числа, помогите доделать ввод числа с клавиатуры. using System; using...

Вывести простые числа от 1 до 1000000 с помощью решета Эратосфена
Вывести список простых чисел от 1 ого до млн.(1000000) с помощью решета иратосфена. Помогите...

Выписаны все натуральные числа от 1 до 1000000. Сколько раз выписана цифра 1
Выписаны все натуральные числа от 1 до 1000000. Сколько раз выписана цифра 1.

В возростающем порядке напечатать все целые числа из диапазона от 1 до 1000000 которые отображаються в виде k=n^2+m^2,m>0,n>0
В возростающем порядке напечатать все целые числа из диапазона от 1 до 1000000 которые...

1
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
06.12.2016, 08:52 2
Лазить в чужой программе, разбирать каждую буковку утомительно, поэтому если Вам все равно что содрать, возьмите это. хотите, переделывайте ту.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
uses crt;
var st:string;
    n,i:longint;
    c:array[1..2]of integer;{массив тысяч(0-999) и единиц(0-999)}
    s:array[1..3]of string;{массив склонений тысяч}
begin
s[1]:='тысяча';
s[2]:='тысячи';
s[3]:='тысяч';
repeat
write('Введите число от 0 до 1 000 000 n=');
readln(n);
until(n>=0)and(n<=1000000);
if n=1000000 then st:='один миллион'
else if n=0 then st:='ноль'
else
 begin
  st:='';
  c[1]:=n div 1000;
  c[2]:=n mod 1000;
  for i:=1 to 2 do
  if c[i]<>0 then
   begin
    if c[i] div 100<>0 then
    case c[i] div 100 of
    1:st:=st+'сто';
    2:st:=st+'двести';
    3:st:=st+'триста';
    4:st:=st+'четыреста';
    5:st:=st+'пятьсот';
    6:st:=st+'шестьсот';
    7:st:=st+'семьсот';
    8:st:=st+'восемьсот';
    9:st:=st+'девятьсот';
    end;
  if (c[i] mod 100) div 10<>1 then
   begin
    case (c[i] mod 100) div 10 of
    2:st:=st+' двадцать';
    3:st:=st+' тридцать';
    4:st:=st+' сорок';
    5:st:=st+' пятьдесят';
    6:st:=st+' шестьдесят';
    7:st:=st+' семьдесят';
    8:st:=st+' восемьдесят';
    9:st:=st+' девяносто';
    end;
    case c[i] mod 10 of
    1:if i=1 then st:=st+' одна' else st:=st+' один';
    2:if i=1 then st:=st+' две' else st:=st+' два';
    3:st:=st+' три';
    4:st:=st+' четыре';
    5:st:=st+' пять';
    6:st:=st+' шесть';
    7:st:=st+' семь';
    8:st:=st+' восемь';
    9:st:=st+' девять';
    end;
   end
  else
   case (c[i] mod 100) of
   10:st:=st+' десять';
   11:st:=st+' одиннадцать';
   12:st:=st+' двенадцать';
   13:st:=st+' тринадцать';
   14:st:=st+' четырнадцать';
   15:st:=st+' пятндцать';
   16:st:=st+' шестнадцать';
   17:st:=st+' семнадцать';
   18:st:=st+' восемнадцать';
   19:st:=st+' девятнадцать';
   end;
   if i=1 then
    begin
     if(c[i] mod 100>=10) and (c[i] mod 100<=19) then st:=st+' '+s[3]+' '
     else
     case c[i] mod 10 of
     1:st:=st+' '+s[1]+' ';
     2..4:st:=st+' '+s[2]+' ';
     5..9,0:st:=st+' '+s[3]+' ';
     end;
    end;
  end;
 end;
writeln(st);
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2016, 08:52
Помогаю со студенческими работами здесь

Найти сумму двух денежных сумм заданных прописью, ответ вывести прописью
Приветствую форумчан, прошу момочь с задачей : Сложить две денежные суммы в рублях и копейках,...

Числа прописью
В программе Ексел создать такую формулу невозможно, т.к там идет арифметический посчет. Мне нужно...

Числа прописью
Добрый день! Как можно сделать в аксесс при вормировании запроса число прописью? (да и вообще как...

Числа прописью
Всем привет. Помогите пожалуйста с программой. Задача - Ввести число от 0 до 999. Вывести его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru