Так программа выглядела бы без учета условия использования переменной типа "string"
Var x:integer; n:integer; begin n:=0; readln(x); while x<>0 do begin n:=n+1; x:=x div 10; end; writeln(n); end. А если x:string, то программа не будет работать: данные строкового типа нельзя делить
// Площади круга по известному радиусу float spacecircle(float radius){ return (PI * radius * radius); }
// Длины окружности по известному радиусу float circumference(float radius){ return (2 * PI * radius); }
// Площади прямоугольника по значениям длины и ширины float spacerectangle(float width, float height){ return (width * height); }
// Объема цилиндра по значениям высоты цилиндра и радиуса основания float volcylinder(float height, float radius){ return (spacecircle(radius) * height); }
Var
x:integer;
n:integer;
begin
n:=0;
readln(x);
while x<>0 do
begin
n:=n+1;
x:=x div 10;
end;
writeln(n);
end.
А если x:string, то программа не будет работать: данные строкового типа нельзя делить