Войти

Показать полную графическую версию : Турбо паскаль оператор CASE


Elenochka
07-06-2011, 12:22
Помогите составить программу вычисления суммы цифр введенного с клавиатуры трехзначного натурального числа с помощью оператора CASE. Например, для числа 128 сумма цифр 11, для числа 345 сумма цифр 12.


Заранее спасибо...)

Delirium
08-06-2011, 01:11
Переводим число в строку, вырезаем по 1 символу и складываем. В чем проблема?

Busla
08-06-2011, 09:34
Delirium, а я вот тоже задумался: при чём тут CASE - с самого начала учат писать программы через одно место.
и зачем переводить число в строку, если можно сразу вводить строку

lxa85
08-06-2011, 19:12
А зачем вообще нужны строки?
Если сказано, что введено число, значит число.
Поразрядная сегментация - остаток от деления на основание системы счисления в цикле. В данном случае 10.
Зачем вовлекать в простой алгоритм работу со строками?
Elenochka, я не знаю, как правильно использовать здесь оператор CASE, чтобы он не выглядел как "опухоль", пришпандоренную только ради того, что сказали "надо". Поставь его может при анализе остатка от деления. Чтобы была проверка, действительно ли число трехзначное? И в разных случаях, разные действия: вывод предупреждения или что-нибудь еще.

Delirium
09-06-2011, 01:27
Во, я понял зачем тут CASE и куда его можно прикрутить. Т.к. задание звучит:
введенного с клавиатуры трехзначного натурального числа »
То надо сделать CASE примерно такой:
проверять, положительное или отрицательное число
проверять длину введенной строки(числа) и если оно больше 3, то выводить предупреждения
Все остальное делается за 10 минут.

lxa85
09-06-2011, 06:30
может сделать CASE для анализа нажатой клавиши?
Нам ведь не указано четким образом последовательность получения числа, соотв. можно на этом "сыграть".
При этом вести счетчик оставшихся цифр, выдавать предупреждение в случае чего, приводить интересные факты по введенному числу. (Например сказать, что 11 в лото называют "Барабанные палочки") и т.п.

CyberDaemon
09-06-2011, 07:32
Они изучают CASE. Соответственно, и задача стоит в том, чтобы сделать это на CASE, только и всего. А иначе вообще не стоит огород городить - эта задача считается в одну арифметическую строчку. На той теме, когда они проходили арифметические операции.
А в с CASE она решается так:
1) Ввод трехзначного числа в строковую переменную.
1а) Тут можно ввести блок проверки введенных данных на корректность - проверить, число ли вообще ввели, убрать знак, если вдруг ввели отрицательное, проверить что число не меньше 100, а можно и не проверять.
2) В цикле от 1 до 3 :
3) берем i-тый символ введенной строки
4) вот тут будет требуемый CASE
CASE взятый символ OF
'0': сумма := сумма +0;
'1': сумма := сумма +1;
.....
'9': сумма := сумма +9;
5) цикл заканчивается тут
6) Вывод результата на экран.

Все :)




© OSzone.net 2001-2012