1)Задача решается несколькими способами. Можно перевести число в строку и с помощью строковых функций (и процедур) определить, есть ли в ней одинаковые символы.
Еще один способ (на мой взгляд, чуть-чуть попроще) заключается в том, чтобы просто сосчитать количество каждой цифры в числе:
Пусть у нас есть массив col[0..9], который будет хранить количество цифр. Сосчитать количество каждой цифры в массиве ch можно так:
while (ch mod 10)>0 do begin
c:=ch mod 10;
ch:=ch div 10;
col[ c ]:=col[ c ]+1;
end;
Теперь нужно просто посмотреть, нет ли в массиве col числа >=2 . Если такое есть, то это будет означать, что цифра встретиласи два или более раза:
b:=false;
for i:=0 to 9 do if col[ i ]>=2 then b:=true;
if b then writeln ('да') else writeln('нет');
Кстати, не забудь обнулить массив col перед использованием.
2)В этой последовательности каждый следующий член равен сумме предыдущего члена и порядкового номера предыдузего члена
1
2=1+1
4=2+2
7=4+3
11=7+4
Очевидно, задача на циклы.
Цикл должен отсчитать 10 первых членов:
for i:=1 to 10 do begin...
Внутри мы должны сосчитать сам член, записать его и вывести квадрат и куб этого члена.
i - порядковый номер члена, а сам член предположим записываем в переменную ch. Тогда он вычисляется по формуле
ch:=ch+i-1;
Не забудь перед циклом указать начальное значение ch.