[Bài tập Pascal] Viết chương trình in ra màn hình các số chính phương <1000, Hướng dẫn giải các bài tập Pascal từ cơ bản tới nâng cao, các từ khoá, thuật toán, hàm, câu lệnh hay gặp trong lập trình Pascal C C++ html php

Đề bài:

Viết chương trình in ra màn hình các số chính phương <1000

Nhấn để mở rộng...

Gợi ý hướng làm:

Đầu tiên bạn cần nắm được kiến thức số chính phương là gì?

Số chính phương là số có căn bậc hai là 1 số tự nhiên, hay nói cách khác bình phương của 1 số tự nhiên là 1 số chính phương. Nó còn được gọi là số hình vuông vì chính bằng số đo diện tích 1 hình vuông có cạnh là 1 số nguyên kia.

Cách 1:

Cho biến đếm bắt đầu bằng 0, chạy 1 vòng lặp không xác định số lần lặp, cộng thêm 1 vào biến đếm trong mỗi chu trình. In ra giá trị bình phương của số nguyên đó, kiểm tra điều kiện số chính phương đó > 1000 thì thoát khỏi vòng lặp. Chương trình kết thúc.

Ở đây ra sẽ dùng vòng lặp while [điều kiện kiểm tra] do [câu lệnh] thay vì vòng repeat [câu lệnh] until [điều kiện], vì vòng while sẽ check điều kiện trước khi thực hiện 1 công việc nào đó.

Lưu ý: sau do của câu lệnh while sẽ là câu lệnh đơn, nên nếu có nhiều lệnh cần thực hiện bạn cần phải bỏ chúng vào cặp từ khoá begin ... end để biến chúng thành 1 câu lệnh ghép. (khác với repeat until ở điểm này).

Cách 2:

Xác định số chính phương max mà vẫn <1000, rồi dùng vòng lặp biết trước số lần lặp for [giá trị đầu] to [giá trị cuối] do [câu lệnh]

Căn bậc hai của 1000 xấp xỉ 31.623 => số chính phương lớn nhất mà vẫn < 1000 bằng 31^2

Lời giải:

Lời giải 1:

Mã:

Program InRaManHinhCacSoChinhPhuongNhoHon1000_Cach1;

Var i: integer;

BEGIN

writeln('Chuong trinh in ra cac so chinh phuong nho hon 1000');

readln;

i: = 0;

while i*i<1000 do

begin

writeln('So chinh phuong thu ',i+1,'bang: ',i*i:4);

i:= i+1;

end;

readln;

END.

Lời giải 2:

Mã:

Program InRaManHinhCacSoChinhPhuongNhoHon1000_Cach2;

Var i: integer;

BEGIN

writeln('Chuong trinh in ra cac so chinh phuong nho hon 1000');

readln;

for i:= 1 to 31 do

writeln('So chinh phuong thu ',i+1,'bang: ',i*i:4);

readln;

END.