 |
нужна помощь с программой - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
01.07.2013, 12:59
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 06.08.2012
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
нужна помощь с программой
Задача: Вывести заданное трехзначное число в буквенном формате.
Код:
var
H,D,O: string;
x,y,z,n: integer;
begin
writeln('введите трехзначное число');
readln(n);
if n= 0 then
writeln('ноль')
else
x:= n div 100; //сотни
case x of
1: H:='сто';
2: H:='двести';
3: H:='триста';
4: H:='четыреста';
5: H:='пятьсот';
6: H:='шестьсот';
7: H:='семьсот';
8: H:='восемьсот';
9: H:='девятьсот';
0: H:='';
end;
n:= n mod 100; //убираем сотни
y:= n div 10; // десятки
case y of
0: D:='';
2: D:='двадцать';
3: D:='тридцать';
4: D:='сорок';
5: D:='пятьдесят';
6: D:='шестьдесят';
7: D:='семьдесят';
8: D:='восемьдесят';
9: D:='девяносто';
end;
z:= n mod 10; //единицы
case z of
0: O:='';
1: O:='один';
2: O:='два';
3: O:='три';
4: O:='четыре';
5: O:='пять';
6: O:='шесть';
7: O:='семь';
8: O:='восемь';
9: O:='девять';
end;
case n of //10-19
10: D:='десять';
11: D:='одиннадцать';
12: D:='двенадцать';
13: D:='тринадцать';
14: D:='четырнадцать';
15: D:='пятнадцать';
16: D:='шестнадцать';
17: D:='семнадцать';
18: D:='восемнадцать';
19: D:='девятнадцать';
end;
if (n<=19) and (n>=10) then O:='';
writeln(H,' ',D,' ',O);
end.
Можно ли более рационально реализовать то же самое(меньше кода, тот же результат)?
Заранее спасибо.
|
|
|
01.07.2013, 16:25
|
#2
|
|
|
|
Старший сержант
|
 Регистрация: 25.12.2011
 Сообщений: 191
 Популярность: 5259
 Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
|
Re: нужна помощь с программой
разве что через массивы
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
01.07.2013, 18:05
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 06.08.2012
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: нужна помощь с программой
Можете примерно описать алгоритм? Просто я неделю назад начал изучать паскаль и мне немного трудно представить, как это выглядит.
|
|
|
01.07.2013, 22:47
|
#4
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 21.07.2010
 Сообщений: 528
 Популярность: 17011
 Сказал(а) спасибо: 199
Поблагодарили 1,228 раз(а) в 356 сообщениях
|
Re: нужна помощь с программой
________________
ARS LONGA, VITA BREVIS
╔ Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
╠ Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
╠ Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
╠ Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
╚ Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кандидат на пост Гаранта Zhyk.ru
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
03.07.2013, 10:20
|
#5
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 14.06.2012
 Сообщений: 511
 Популярность: 7566
 Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
|
Re: нужна помощь с программой
если более простым методом то можешь сначала считать длину, чтобы определить будут в ней сотни, тысячи или десятки. потом сканировать от первого символа и добавлять его значение в буквенной форме. а если еще код короче сделать, то занести всевозможные варианты в строковый компонента, а из него через цикл вытащить нужное значение. конечно предварительно придется массив всех значений создать
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо" Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
|
|
|
06.07.2013, 12:28
|
#6
|
|
|
|
Маршал
|
 Регистрация: 14.08.2010
 Сообщений: 874
 Популярность: 5016
 Золото Zhyk.Ru: 95
 Сказал(а) спасибо: 157
Поблагодарили 386 раз(а) в 241 сообщениях
|
Re: нужна помощь с программой
Было когда-то похожее задание, можешь сравнить и разобрать алгоритм.
Было дано 40 цапель и нужно было вывести словесно их количество.
Код:
program abc;
var
a: integer;
b, c: string;
begin
write('Введите количество цапель (от 10 до 40): ');
readln(a);
if a mod 10 = 1 then b := 'одна выносливая цапля';
if a mod 10 = 2 then b := 'две выносливых цапель';
if a mod 10 = 3 then b := 'три выносливых цапель';
if a mod 10 = 4 then b := 'четыре выносливых цапель';
if a mod 10 = 5 then b := 'пять выносливых цапель';
if a mod 10 = 6 then b := 'шесть выносливых цапель';
if a mod 10 = 7 then b := 'семь выносливых цапель';
if a mod 10 = 8 then b := 'восемь выносливых цапель';
if a mod 10 = 9 then b := 'девять выносливых цапель';
if a mod 10 = 0 then b := '';
if a div 10 = 2 then c := 'Двадцать';
if a div 10 = 3 then c := 'Тридцать';
if a div 10 = 4 then c := 'Сорок';
case a of
10: writeln('Десять выносливых цапель');
11: writeln('Одиннадцать выносливых цапель');
12: writeln('Двенадцать выносливых цапель');
13: writeln('Тринадцать выносливых цапель');
14: writeln('Четырнадцать выносливых цапель');
15: writeln('Пятнадцать выносливых цапель');
16: writeln('Шестнадцать выносливых цапель');
17: writeln('Семнадцать выносливых цапель');
18: writeln('Восемнадцать выносливых цапель');
19: writeln('Девятнадцать выносливых цапель');
40: writeln('Сорок выносливых цапель');
20: writeln('Двадцать выносливых цапель');
30: writeln('Тридцать выносливых цапель');
else writeln( c, ' ', b, ' ');
end;
end.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
ICQ 31-32-31
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 01:25.
|
 |