Đây là một ví dụ về cách viết chương trình Pascal để đếm số dấu cách và số chữ số trong một xâu:
```pascal
program CountSpacesAndDigits;
function CountSpaces(s: string): integer;
var
i, count: integer;
begin
count := 0;
for i := 1 to length(s) do
begin
if s[i] = ' ' then
count := count + 1;
end;
CountSpaces := count;
end;
function CountDigits(s: string): integer;
var
i, count: integer;
begin
count := 0;
for i := 1 to length(s) do
begin
if isDigit(s[i]) then
count := count + 1;
end;
CountDigits := count;
end;
var
s: string;
spaces, digits: integer;
begin
write('Enter a string: ');
readln(s);
spaces := CountSpaces(s);
digits := CountDigits(s);
writeln('The string has ', spaces, ' spaces and ', digits, ' digits.');
end.
```
Chương trình này sử dụng hai hàm con để đếm số dấu cách và số chữ số trong xâu. Hàm CountSpaces duyệt qua tất cả các ký tự trong xâu, kiểm tra xem ký tự đó có phải là dấu cách không và đếm số lượng dấu cách. Tương tự, hàm CountDigits duyệt qua các ký tự có chứa chữ số và đếm số lượng chữ số.
Để kiểm tra xem một ký tự có phải là chữ số hay không, chúng ta có thể sử dụng hàm isDigit, như sau:
```pascal
function isDigit(ch: char): boolean;
begin
isDigit := (ch >= '0') and (ch <= '9');
end;
```
Hàm này trả về giá trị true nếu ký tự là chữ số và false nếu ký tự không phải là chữ số.