Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Турбо паскаль оператор CASE (http://forum.oszone.net/showthread.php?t=208435)

Elenochka 07-06-2011 12:22 1689867

Турбо паскаль оператор CASE
 
Помогите составить программу вычисления суммы цифр введенного с клавиатуры трехзначного натурального числа с помощью оператора CASE. Например, для числа 128 сумма цифр 11, для числа 345 сумма цифр 12.


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

Delirium 08-06-2011 01:11 1690354

Переводим число в строку, вырезаем по 1 символу и складываем. В чем проблема?

Busla 08-06-2011 09:34 1690465

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

lxa85 08-06-2011 19:12 1690952

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

Delirium 09-06-2011 01:27 1691164

Во, я понял зачем тут CASE и куда его можно прикрутить. Т.к. задание звучит:
Цитата:

Цитата Elenochka
введенного с клавиатуры трехзначного натурального числа »

То надо сделать CASE примерно такой:
проверять, положительное или отрицательное число
проверять длину введенной строки(числа) и если оно больше 3, то выводить предупреждения
Все остальное делается за 10 минут.

lxa85 09-06-2011 06:30 1691199

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

CyberDaemon 09-06-2011 07:32 1691206

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

Все :)


Время: 19:01.

Время: 19:01.
© OSzone.net 2001-