help em câu này ạ,mai thi r,chạy bằng file (pascal)

help em câu này ạ,mai thi r,chạy bằng file (pascal)
Câu trả lời này dùng AI, hãy kiểm tra lại trước khi sử dụng
```pascal
program DaySo;
uses crt;

var
N, i, count: Integer;
numbers: array[1..1000] of Integer; // Mảng để lưu các số nguyên
maxPerfectSquare: Integer; // Biến để lưu số chính phương lớn nhất

begin
// Khởi tạo
count := 0;
maxPerfectSquare := -1; // Gán giá trị âm để kiểm tra sau

// Nhập vào số N
Write('Nhập vào số nguyên N (0 < N <= 1000): ');
ReadLn(N);

// Kiểm tra điều kiện N
if (N <= 0) or (N > 1000) then
begin
WriteLn('N không hợp lệ. Vui lòng nhập lại trong khoảng (0, 1000].');
exit;
end;

// Nhập vào N số nguyên
WriteLn('Nhập ', N, ' số nguyên (từ 0 đến 1000):');
for i := 1 to N do
begin
Read(numbers[i]);

// Kiểm tra nếu số lớn hơn 2^10 (1024)
if (numbers[i] >= 0) and (numbers[i] < 1024) then
begin
// Kiểm tra nếu số đó là số chính phương
if (sqrt(numbers[i]) = trunc(sqrt(numbers[i]))) then
begin
count := count + 1; // Tăng biến đếm số chính phương
if numbers[i] > maxPerfectSquare then
maxPerfectSquare := numbers[i]; // Cập nhật số chính phương lớn nhất
end;
end;
end;

// Xuất kết quả
if count = 0 then
WriteLn('Không có số chính phương.')
else
begin
WriteLn('Có ', count, ' số chính phương.');
WriteLn('Số chính phương lớn nhất là ', maxPerfectSquare);
end;

ReadLn; // Dừng màn hình
end.
```

Chương trình trên thực hiện các bước sau:
1. Khai báo các biến cần thiết để lưu số lượng và giá trị của các số nguyên nhập vào.
2. Nhập vào số N và kiểm tra xem N có hợp lệ (trong khoảng từ 1 đến 1000) hay không.
3. Nhập N số nguyên trong phạm vi cho phép (từ 0 đến 1000).
4. Kiểm tra từng số nếu nó là số chính phương, sử dụng hàm căn bậc hai.
5. Đếm số lượng số chính phương tìm thấy và cập nhật số chính phương lớn nhất.
6. Xuất kết quả cho người dùng.

Đây là một chương trình cơ bản nhưng đầy đủ các yêu cầu của đề bài, bao gồm cả việc xử lý các tình huống không hợp lệ và kiểm tra số chính phương.
Đăng phản hồi