Помогите с задачкой по информатике, нужно решить с помощью оператора выбора (case):
Написать программу, которая для любого заданного натурального числа печатает количество цифр в записи этого числа. Максимально допускается пятизначное число. Через условие я решил, а надо было через оп. выбора, совсем не понимаю как через него тут можно решить.
Спасибо.

@темы: Информатика

Комментарии
13.01.2009 в 12:01

вообще не понимаю.
вроде задача вообще легкотня. Тебе дают число,ты возвращаешь длину строки.

какие могут быть варианты вводимых данных?
можно на код посмотреть?
13.01.2009 в 19:42

program cifri;
var a:integer;
begin
writeln('vvedite chislo');
readln(a);
if a div 10 = 0 then
writeln('1 cifra')
else
if a div 100 =0 then
writeln('2 cifri')
else
if a div 1000 = 0 then
writeln('3 cifri')
else
if a div 10000 = 0 then
writeln('4 cifri')
else
if a div 100000 = 0 then
writeln('5 cifer');
readln;
end.
13.01.2009 в 20:23

program cifri;
var a:integer;
s:string;
begin
writeln('vvedite chislo');
readln(a);
s=str(a); {вроде такая функция, проверте в хелпе}
writeln(length(s),'-значное число');
readln;
end.

как решать с кэйсом не знаю, потому что условие тут не нужно
13.01.2009 в 20:31

тю дошло, это ж диапазоны. Элементарно, просто мой предыдуший вариант еще элемнтарнее))

program cifri;
var a:integer;
begin
writeln('vvedite chislo');
readln(a);
case a of
0..9: writeln('1 cifra');
10..99: writeln('2 cifri');
100..999: writeln('3 cifri');
1000..9999: writeln('4 cifri');
10000..99999: writeln('5 cifer')
else writeln ('Mistake');
end;
readln;
end.
13.01.2009 в 21:47

большое спасибо, надоучиться мыслить проще :)