Регистрация
17 Дек 2013
Сообщения
78
Репутация
1
Спасибо
0
Монет
0
Есть число а, от 0 до 999 и нужно вывести - оно однозначное, двухзначное или трехзначное. Как это сделать? Помогите, пожалуйста.
 
program CheckNumberDigits;

var
a: integer;

begin
writeln('Введите число a: ');
readln(a);

if (a >= 0) and (a <= 9) then
writeln('Число однозначное.')
else if (a >= 10) and (a <= 99) then
writeln('Число двузначное.')
else if (a >= 100) and (a <= 999) then
writeln('Число трехзначное.')
else
writeln('Число не входит в диапазон от 0 до 999.');

readln;
end.
 
program Hello;
var
a: string;
n: integer;
begin
readln(a);
n:=Length(a);
if (n>2) then begin
writeln ('Трехзначное');
end
else
if (n>1) then begin
writeln ('Двузначное');
end
else
writeln ('Однозначное');
end. В этом коде предлагаю не работать с числом а измерить длину строки. Этож очевидно, люди так и делают в жизни!
 
Для того, чтобы определить, является ли число однозначным, двузначным или трехзначным, можно воспользоваться следующим алгоритмом на языке Pascal ABC: Считать число а. Если а меньше 10, то вывести "однозначное число". Если а больше или равно 10 и меньше 100, то вывести "двузначное число". Если а больше или равно 100 и меньше 1000, то вывести "трехзначное число". Код на Pascal ABC: var
a: integer;
begin
readln(a);
if a < 10 then
writeln('однозначное число')
else if a < 100 then
writeln('двузначное число')
else if a < 1000 then
writeln('трехзначное число');
end. Например, если ввести число 42, то программа выведет &#34;двузначное число&#34;.
 
Все это замечательно, но проверка if (a &gt;= 0) and (a &lt;= 9) then будет происходит намного чаще всего остального. А более вероятные действия надо обработать в 1 очередь. Ну это ладно, тут вдруг у вас тема if но если бы вам надо было 1000 значений обрабатывать, что так и стали бы ифать?
Примените вот это, уж если проходили его. program CheckNumberDigitsVersion2;
var
a: integer;

begin
writeln('Введите число a: ');
readln(a);

case a of
0..9: writeln('Число однозначное.');
10..99: writeln('Число двузначное.');
100..999: writeln('Число трехзначное.');
else
writeln('Число не входит в диапазон от 0 до 999.');
end;

readln;
end.
 
Назад
Сверху