Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2013, 12:56   #1
Алсу1
 
Регистрация: 03.05.2013
Сообщений: 4
Печаль решить задачу на с++

Программа должна читать данные из файла INPUT.TXT.

Файл содержит последовательность сумм (в рублях), которые необходимо записать прописью. Суммы представляют собой неотрицательные десятичные числа, не превосходящие 999 999 999 999 999.99 (девятьсот девяносто девять триллионов девятьсот девяносто девять миллиардов девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять рублей 99 копеек) и содержащие не более двух знаков после десятичной точки. Незначащие ведущие нули отсутствуют. Каждая сумма записана с новой строки.

Конец ввода обозначается числом -1.
Вывод.

Для каждой суммы из входного файла программа должна вывести в файл OUTPUT.TXT запись этой суммы прописью. Число рублей передается соответствующим количественным числительным, число копеек - цифрами, например: Тридцать пять рублей 56 копеек. Первая буква в записанной прописью сумме должна быть заглавной, остальные - строчными. Запись должна быть грамматически верной.

Запись всегда должна быть полной, т.е. включать количество рублей и копеек. Количество копеек должно быть записано двумя цифрами, т.е. при необходимости дополнено ведущими нулями.

Каждая сумма должна быть записана с новой строки.
Алсу1 вне форума Ответить с цитированием
Старый 03.05.2013, 12:57   #2
Алсу1
 
Регистрация: 03.05.2013
Сообщений: 4
По умолчанию

Помогите пожалуйста очень надо((((
Алсу1 вне форума Ответить с цитированием
Старый 15.05.2013, 16:25   #3
Алсу1
 
Регистрация: 03.05.2013
Сообщений: 4
По умолчанию

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
87
88
89
90
91
92
93
94
95
96
97 program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var st:string;
n,i:integer;
c:array[1..4]of integer;
s:array[1..4,1..3]of string;
begin
s[1,1]:='миллиард';
s[1,2]:='миллиарда';
s[1,3]:='миллиардов';
s[2,1]:='миллион';
s[2,2]:='миллиона';
s[2,3]:='миллионов';
s[3,1]:='тысяча';
s[3,2]:='тысячи';
s[3,3]:='тысяч';
s[4,1]:='';
s[4,2]:='';
s[4,3]:='';
write('Введите число до 2 147 483 647 n=');
readln(n);
st:='';
c[1]:=n div 1000000000;
c[2]:=(n mod 1000000000) div 1000000;
c[3]:=(n mod 1000000) div 1000;
c[4]:=n mod 1000;
for i:=1 to 4 do
write(c[i],' ');
writeln;
for i:=1 to 4 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=3 then st:=st+' одна' else st:=st+' один';
2:if i=3 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 (c[i] mod 100>=10) and (c[i] mod 100<=19) then st:=st+' '+s[i,3]+' '
else
case c[i] mod 10 of
1:st:=st+' '+s[i,1]+' ';
2..4:st:=st+' '+s[i,2]+' ';
5..9,0:st:=st+' '+s[i,3]+' ';
end;
end;
writeln(st);
readln;
end.
Алсу1 вне форума Ответить с цитированием
Старый 15.05.2013, 16:29   #4
Алсу1
 
Регистрация: 03.05.2013
Сообщений: 4
По умолчанию

правильно сделала?)
Алсу1 вне форума Ответить с цитированием
Старый 15.05.2013, 17:51   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Сообщение от Алсу1 Посмотреть сообщение
правильно сделала?)
ну если работает - правильно. не работает - не правильно.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решить задачу на с++. Недознайка Помощь студентам 5 10.01.2013 23:46
решить задачу на С# alex(21) Фриланс 1 09.01.2013 11:55
Решить задачу в C# Надежда1286 Помощь студентам 3 25.10.2012 01:09
решить задачу Евгений 9 Общие вопросы Delphi 0 23.12.2011 09:33
решить задачу Рон99 Паскаль, Turbo Pascal, PascalABC.NET 0 01.11.2011 21:23