А что вообще надо то? Вот полный исходник: var x, y: real;
begin
write('x: '
readln(x);
y := exp(exp(x));
writeln('y(x) = ', y)
end. Так как у(х) - функция экспоненциального роста, то значения переменной x надо брать из интервала (-inf;㏑[㏑(x)]), где inf - это положительная машинная бесконечность для чисел типа real, иначе значение переменной у просто не впишется в тип real.
Справка: inf ≈ 1,797·10³⁰⁸
㏑[㏑(x)] ≈ 6,564958
Если же x<inf, тогда у=1 и больше здесь нечего мудрить! Однако если x>㏑[㏑(x)], тогда действовать нужно более филигранно:
у(х)=exp[exp(x)]=10^[M·exp(x)] - тут можно найти показатель степени десятки, разложив его на две составляющие (целую и дробную). Для дробной части находим её степень десятки, выводим значение на экран, а справа к нему приписываем e+{а здесь целая часть произведения M·eˣ, где M - это lg(e)}. Надёжно можно разделять M·eˣ на целую и дробную части тоже при не очень больши́х х (где-то примерно до сорока́ или вроде того).