Đây là các bài toán lập trình sử dụng ngôn ngữ Turbo Pascal. Dưới đây là các mã nguồn giúp giải quyết các bài toán được yêu cầu:
Câu 1:
```
program Bai1;
var
N, i, count: integer;
A: array [1..100] of integer;
begin
write('Nhap vao so N: ');
readln(N);
for i := 1 to N do
begin
write('Nhap phan tu thu ', i, ' : ');
readln(A[i]);
end;
count := 0;
for i := 1 to N do
if (A[i] mod 2 = 0) then
count := count + 1;
writeln('So luong so chan trong day la: ', count);
end.
```
Câu 2:
```
program Bai2;
var
N, i, count: integer;
A: array [1..100] of integer;
f: text;
begin
write('Nhap vao so N: ');
readln(N);
for i := 1 to N do
begin
write('Nhap phan tu thu ', i, ' : ');
readln(A[i]);
end;
assign(f, 'SOCHAN.OUT');
rewrite(f);
count := 0;
for i := 1 to N do
begin
if (A[i] mod 2 = 0) then
begin
write(f, A[i], ' ');
count := count + 1;
end;
end;
writeln(f);
writeln(f, 'So luong so chan trong day la: ', count);
close(f);
end.
```
Câu 3:
```
program Bai3;
var
str: string;
count: integer;
function IsDelimiter(ch: char): boolean;
begin
IsDelimiter := (ch = ' ') or (ch = ',') or (ch = '.') or (ch = ';') or (ch = ':') or (ch = '?') or (ch = '!');
end;
procedure CountWords(str: string; var count: integer);
var
i: integer;
begin
count := 0;
for i := 1 to length(str) do
begin
if (not IsDelimiter(str[i])) and ((i = 1) or (IsDelimiter(str[i-1]))) then
count := count + 1;
end;
end;
begin
write('Nhap vao mot xau ki tu: ');
readln(str);
CountWords(str, count);
writeln('So tu trong xau la: ', count);
end.
```
Chú ý: Các chương trình này chỉ là ví dụ và chưa được kiểm tra tính đúng đắn. Người lập trình cần kiểm tra và sửa lỗi nếu có.