Другие языки программирования и технологии

Как упростить программу на паскале. Т.Е. без оператора "inc" и "if .. in .. then else ...;"-13 строка.

RE
Recha Eilazov
200
mn - это множество чисел типа byte. В данном случае - это множество цифр исходного числа.
В 13 строке проверяется входит ли цифра k в множество mn. Если не входит, то добавляется. Этот if, как верно заметил sm, излишество.
В 17 строке проверяется входит ли число (цифра) k в множество mn. Если входит, то инкрементируется (увеличивается на 1) переменная sum.
Программа кривовато написана. Упростить можно:
program N54490696_mn;
var n:longInt;
mn:set of byte;
k,sum:byte;
begin
write('Введите число: '); readln(n);
mn:=[];
while n<>0 do begin
k:=n mod 10;
n:=n div 10;
mn:=mn+[k];
end;
sum:=0;
for k:=0 to 9 do inc(sum,ord(k in mn));
writeln('Кол-во невторяющихся цифр = ' ,sum);
readln;
end.

Можно без множества написать, с массивом, но будет подлиннее.
И не понятно чем вам не угодил inc? Это более элегантно, чем sum := sum +1;
program N54490696_mass;
var n:longInt;
mn:array [ 0 .. 9 ] of byte;
k,sum:byte;
begin
write('Введите число: '); readln(n);
for k := 0 to 9 do mn[k]:=0;
repeat
mn[n mod 10]:=1;
n:=n div 10;
until n=0;
sum:=0;
for k:=0 to 9 do sum:=sum+mn[k];
writeln('Кол-во невторяющихся цифр = ' ,sum);
readln;
end.
СЗ
Сергей Зацепилин
51 590
Лучший ответ
> if k in mn then else mn:=mn+[k];

Здесь if-проверка вообще не нужна

> if k in mn then inc(sum);

Заменить на
Sum := Sum + Byte(k in mn);
mn:set of byte; - объявление структурированного типа МНОЖЕСТВО. mn - это множество.
IN - операция проверка принадлежности.
k in mn - проверяет принадлежность символа k множеству mn.
Результат этой проверки true, если k принадлежит множеству mn.
if k in mn then _____ else mn:=mn+[k]; Здесь пропущено что-то ______
if k in mn then inc(sum); Здесь считает сколько символов k имеется в множестве mn.
СМ прав. Тут сначала формируется множество цифр, а затем подсчитывается количество цифр в этом множестве.
---
Новички-нулевички! Начинайте с этого:
"Песни о Паскале" - программирование для школьников и начинающих.
Погуглите в паутине, скачивается бесплатно.