Tin Học

Viết chương trình kiểm tra số chính phương pascal

You are viewing this post: Viết chương trình kiểm tra số chính phương pascal

Trong bài viết này mình sẽ hướng dẫn các bạn viết chương trình kiểm tra số chính phương pascal và scratch và một số bài tập có liên quan.

Các bạn đã biết số chính phương pascal là số viết được dưới dạng bình phương của một số tự nhiên chẳng hạn 0, 1, 4, 9, 16, 25, … số chính phương được ứng dụng rất nhiều trong toán học, thuật toán kiểm tra số chính phương thì lại hết sức đơn giản bên dưới với An Vượng Villa nhé.

Viết chương trình kiểm tra số chính phương pascal
Viết chương trình kiểm tra số chính phương pascal

I. Hướng dẫn về số chính phương pascal


Số chính phương Tiếng Anh là “Square numbers”. Đây là loại số có căn bậc hai bằng đúng của một số nguyên. Hay các bạn cũng có thể hiểu đơn giản là: số chính phương là một số tự nhiên có căn bậc hai cũng sẽ phải là một số tự nhiên. Về bản chất, số chính phương là bình phương của một số tự nhiên nào đó. Hay số chính phương chính bằng diện tích của một hình vuông với cạnh là số nguyên kia. Với số nguyên bao sẽ gồm các số nguyên dương, nguyên âm cùng số 0.

II. Hàm kiểm tra số chính phương pascal


Dưới đây là hàm kiểm tra số chính phương :  readln(n); x:=trunc(sqrt(n); IF sqr(x)=n then write(n,’la so chinh phuong); ELSE write(n,’ khong phai la mot so chinh phuong

III. Thuật toán kiểm tra số chính phương


Vì căn bậc hai và bình phương là hai phép toán ngược nhau nên mình lợi dụng điều này để xây dựng thuật toán kiểm tra số chính phương.

Bài 4: Bài toán và thuật toán - Hoc24

Nôm na như thế này nhé, mình muốn kiểm tra xem số 5 có phải là số chính phương không thì mình tính căn bậc hai của 5, sau đó chỉ lấy phần nguyên thôi kết quả là 2, lại lấy 2 bình phương lại ta được 4, 4 không bằng 5 nên 5 không phải là số chính phương.

Thuật toán có thể ghi ngắn gọn lại như sau :

” Nếu bình phương của phần nguyên của căn bậc hai của n đúng bằng n thì n là số chính phương còn không thì n không phải là số chính phương”

Câu chữ hơi nhiều “ngoặc” vì vậy bạn hãy ngẫm nghĩ cho kĩ để hiểu thuật toán.

IV. Viết chương trình kiểm tra số chính phương pascal



Trong chương trình có lệnh sqr(trunc(sqrt(n))) ý nghĩa như sau;

  • sqr(n): Hàm tính bình phương của n
  • trunc(x): Cho phần nguyên của x
  • sqrt(n): Tính căn bậc hai của n

Như vậy sqr(trunc(sqrt(n))) tính bình phương của phần nguyên của căn bậc hai của n

Viết chương trình kiểm tra số chính phương trong pascal nâng cao


Program KT_Sochinhphuong;
Uses crt;
Type ArrInt = array[1..250] of integer;
Var N,i,x : integer;
A: ArrInt;
Procedure Nhap_Mang(Var A:ArrInt;Var N:integer);
Var i:integer;
Begin
Write(‘Nhap chieu dai cua mang: ‘);
Readln(N);
For i:=1 to N do
Begin
Write(‘Nhap gt phan tu thu a[‘,i,’]=’);
Readln(A[i]);
End;

End;
Procedure KT_So_Chinh_Phuong(Var A:ArrInt;Var N:integer);
Var i:integer;
Begin
Writeln(‘Cac so chinh phuong co trong mang A: ‘);
For i:=1 to N do
Begin
x:=trunc(sqrt(A[i]));
if sqr(x)=a[i] then
Write(A[i]:4);
End;
End;

Begin
Nhap_Mang(A,N);
KT_So_Chinh_Phuong(A,N);
Readln;
End.

Ở đây lệnh trong Scratch hơi khác trong Pascal một chút nhưng thuật toán thì không có gì thay đổi, hàm “làm tròn xuống” trong Scratch giống như hàm trunc() trong Pascal.

V. Bài tập luyện tập liên quan đến số chính phương

Các bạn hãy luyện tập chương trình sau để ôn lại cách sử dụng chương trình con, thuật toán cộng dồn và thuật toán kiểm tra số chính phương:

Bài 1 – In ra các số chính phương nhỏ hơn n pascal


Đề bài: Viết chương trình nhập vào một số n (n <2 tỉ), xuất ra những số chính phương nhỏ hơn hoặc bằng n và tổng của chúng

Dữ liệu vào file: Tim_cp.inp Dữ liệu ra file: Tim_cp.out
Chứa số n (n <2 tỉ) Dòng 1: Dãy các số chính phương

Dòng 2: Tổng của chúng

Xin chào và hẹn gặp lại các bạn trong bài viết về số hoàn hảo

Bài 2 – In ra màn hình các số chính phương pascal

Đề bài: Viết chương trình pascal nhập N từ bàn phím. Đếm xem có bao nhiêu số chính phương từ 1 tới n (sử dụng câu lệnh lặp và câu lệnh điều kiện) đơn giản thôi nha. Dưới đây là viết chương trình kiểm tra số chính phương pascal.

program btsydn;
uses crt;
var i, n, d, a: integer;
begin
clrscr;
write(‘Nhap n = ‘); readln(n);
d:=0;
for i:=1 to n do if n>0 then
begin
a:=trunc(sqrt(i));
if sqr(a)=i then d:=d+1;
end;
writeln(‘Co ‘, d, ‘ so chinh phuong tu 1 -> n ‘);
readln
end.

VI. Câu hỏi liên quan: File Word hướng dẫn viết chương trình kiểm tra số chính phương bằng Scratch

VII. Video hướng dẫn kiểm tra số chính phương pascal


The article is compiled and aggregated from many sources by An Vượng Villa.

See more articles in the same category here: Tin Học

Review Queen

"Xin chào mọi người, tôi là Review Queen - một blogger chuyên viết đánh giá sản phẩm trong nhiều lĩnh vực khác nhau như thời trang, làm đẹp, công nghệ, gia dụng và nhiều hơn thế nữa. Với hơn 10 năm kinh nghiệm viết blog, tôi tự hào là một chuyên gia trong việc đánh giá và đưa ra những nhận xét chính xác về các sản phẩm, giúp độc giả có được những thông tin cần thiết trước khi quyết định mua hàng. Với tôi, việc đánh giá sản phẩm không chỉ là nghề nghiệp mà còn là niềm đam mê. Tôi luôn tìm kiếm những sản phẩm mới nhất và chất lượng nhất để có thể chia sẻ với độc giả của mình. Tôi tin rằng thông tin chính xác và trung thực sẽ giúp người đọc đưa ra được quyết định mua sắm thông minh hơn. Ngoài việc viết đánh giá sản phẩm, tôi cũng rất đam mê viết về các chủ đề khác như du lịch, ẩm thực, thủ thuật hay những kiến thức giáo dục. Tôi hy vọng các bài viết của mình sẽ giúp ích cho các bạn đọc trong cuộc sống hàng ngày. Cảm ơn các bạn đã quan tâm và ghé thăm blog của tôi. Hãy đón đọc các bài viết mới nhất từ Review Queen nhé!"

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button