Hello World là một chương trình thế kỉ mà hầu như ngôn ngữ lập trình nào cũng sử dụng, mục đích giúp người học nắm bắt được cách code và biên dịch một chương trình. Người ta gọi đây là bài học bắt buộc khi nghiên cứu một ngôn ngữ lập trình.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
I. Cú pháp của một chương trình Pascal
Tạm thời mình sẽ không nói đến kiến thức chuyên sâu như hàm, thủ tục, vì nó quá khó so với kiến thức hiện tại của bạn. Thay vào đó bạn nên bắt đầu từ cái dễ nhất.
Trước tiên bạn hãy tạo mới một file pascal, sau đó nhập đoạn code dưới đây.
program HelloFreetuts; begin writeln ['Welcome to freetuts.net']; end.
Giao diện editor như sau:
Bài viết này được đăng tại [free tuts .net]
Đây là một chương trình chuẩn của Pascal. Trong đó bạn cần chú ý những vấn đề sau:
Đây là đoạn code khai báo tên của chương trình, mình đã đặt tên HelloFreetuts.
program HelloFreetuts;
Begin
và end
là phần khai báo mở đầu và kết thúc của chương trình, nghĩa là ta sẽ lập trình ở phía bên trong begin và end.
begin writeln ['Welcome to freetuts.net']; end.
Có một lưu ý quan trọng, đó là phía cuối từ khóa end
ta phải có thêm dấu chấm .
nhé.
writeln
là lệnh in ra chuỗi Welcom to freetuts.net ra màn hình.
Để chạy chương trình này thì bạn hãy thực hiện hai bước như sau: Nhấn Alt + F9
để xem chương trình có lỗi không, nếu không lỗi thì nhấn
program HelloFreetuts;0 để chạy.
Nếu bạn thực hiện đúng thì kết quả sẽ như hình sau:
II. Write và readln trong Pascal
Lệnh writeln dùng để in một dòng dữ liệu ra màn hình console. Lệnh này rất hữu ích và được sử dụng rất nhiều trong quá trình học pascal của các bạn.
Nếu bạn thấy khi chạy chương trình thì cửa sổ console chỉ hiển thị và tắt liền thì bạn bổ sung thêm lệnh
program HelloFreetuts;1 ở cuối chương trình.
program HelloFreetuts; begin writeln ['Welcome to freetuts.net']; readln; end.
III. Một vài quy tắc căn bản trong Pascal
Để hiểu rõ hơn về ngôn ngữ này thì bạn nên đọc qua những quy tắc dưới đây, điều này sẽ giúp bạn phát hiện ra những lỗi ngớ ngẩn và tránh mất quá nhiều thời gian.
Không phân biệt hoa thường: Trong Pascal không phân biệt chữ hoa và chữ thường, vì vậy các từ khóa như
program HelloFreetuts;2,
end
, program HelloFreetuts;4 bạn có thể viết tự do.
Kết thúc lệnh phải có dấu chấm phẩy: Bạn phải thêm dấu chấm phẩy [;] vào cuối mỗi lệnh để chương trình biết là lệnh đã kết thúc.
Chuỗi phải được đặt trong dấu nháy kép hoặc nháy đơn: Hầu như ngôn ngữ lập trình nào cũng có quy tắc này.
Cuối lệnh end của chương trình chính phải có dấu chấm: Hãy xem lại đoạn code ở phần trên để tìm dấu chấm mà mình đang đề cập nhé.
Không quan trọng khoảng trắng: Bạn có thể xuống hàng, hoặc không xuống hàng cũng được. Tuy nhiên khuyến khích mỗi dòng lệnh nên đặt trên một hàng để dễ dàng quan sát code hơn.
Trên là những chia sẻ về chương trình Hello World trong Pascal. Hy vọng những thông tin này sẽ hữu ích với bạn. Chúc bạn học tập tốt nhé.
Pascal là ngôn ngữ khá cũ, trong thực tế nó không còn được sử dụng phổ biến như trước nữa. So với các ngôn ngữ lập trình script hiện đại thì Pascal khá dài dòng, mức độ trừu tượng cao và cách code khá giống với ngôn ngữ lập trình C. Hầu hết các chương trình C đều có thể dịch được sang Pascal mà chỉ bị thay đổi về cú pháp chứ không làm thay đổi cấu trúc. Mà C thì là một trong những ngôn ngữ lập trình rất phổ biến, do đó nắm được Pascal bạn sẽ tiếp cận C tốt hơn. Nó cũng buộc bạn phải luôn nghĩ về kiểu dữ liệu, điều này sẽ giúp các lập trình viên mới học được một thói quen tuyệt vời khi code.
Và vì không có nhiều giá trị thương mại, Pascal được sử dụng chủ yếu để dạy nhập môn lập trình hoặc dành cho những người yêu thích Pascal tìm tòi. Nếu bạn thích lập trình, mới học nhưng không "hấp thụ" được Pascal có thể thử Python nhé.
- Trắc nghiệm Pascal 25 câu có đáp án
- Tổng hợp câu hỏi trắc nghiệm Pascal có đáp án
Dưới đây là tổng hợp một số bài tập Pascal từ cơ bản đến phức tạp mà Quantrimang.com đã tổng hợp lại, hy vọng việc học của bạn sẽ dễ dàng hơn đôi chút.
Bài tập Pascal có giải
- Bài 1: In số chẵn ra màn hình
- Bài 2: Tính, in tổng, hiệu, tích, thương của 2 số
- Bài 3: Kiểm tra xem tam giác có cân, vuông không
- Bài 4: Giải phương trình bậc 2
- Bài 5: Kiểm tra số chẵn lẻ, nguyên tố, hoàn hảo
- Bài 6: Tính ăn bậc n của một số
- Bài 7: Tỉnh tổng các chữ số của một số
- Bài 8: Hoán vị 2 số
- Bài 9: In các bội của 3 và 5
- Bài 10: In tổng các chữ số của một số
- Bài 11: Kiểm tra số nguyên tố
- Bài 12: Kiểm tra số hoàn hảo
- Bài 13: Kiểm tra số chính phương
- Bài 14: Đếm nguyên âm, số trong một chuỗi
- Bài 15: Kiểm tra 3 số có là độ dài cạnh tam giác không
- Bài 16: Đếm các số theo điều kiện và tính tổng
- Bài 17: Tìm giá trị lớn nhất của 4 số
- Bài 18: Xem ngày là thứ mấy trong tuần
- Bài 19: In phiếu báo điểm
- Bài 20: Nhập 2 số thực và tính phép tính theo yêu cầu
Bài 1: In số chẵn ra màn hình
Viết chương trình nhập vào 1 số N nguyên dương và in ra màn hình các số chẵn từ 0 đến N, sao cho mỗi số chiếm 4 vị trí và 1 dòng có 15 số.
Lời giải:
uses crt; {khai bao' thu vien crt}
var n,i,dem:integer;
BEGIN
clrscr;{ cau lenh xoa man hinh};
write['Nhap n: '];readln[n];
dem:=0;
for i:=1 to n do
begin
if i mod 2=0 then
begin
write[i:4];
dem:=dem+1;
end;
if dem=15 then
begin
dem:=0;
writeln;{in duoc 15 so thi xuong dong};
end;
end;
readln
END.
Bài 2: Tính, in tổng, hiệu, tích, thương của 2 số
Nhập 2 số nguyên dương a và b. Sau đó:
- Tính và in ra màn hình tổng, hiệu, tích thương và ước chung lớn nhất của 2 số đó.
- Tính tổng các ước số dương của |a+b|
Lời giải:
uses crt;
var a,b,tg,i,tong:integer;
function tinh[x,y:integer]:integer;
begin
tg:= x mod y;
if tg=0 then tinh:=y else tinh:=tinh[y,tg];
end;
BEGIN
clrscr;
write['Nhap a: '];readln[a];
write['Nhap b: '];readln[b];
tong:=1;
for i:=2 to abs[a+b] do
if [abs[a+b] mod i =0] then tong:=tong+i;
writeln['Tong 2 so la: ',a+b];
writeln['Hieu 2 so la: ',a-b];
writeln['Tich 2 so la: ',a*b];
writeln['Thuong 2 so la: ',a/b:0:4];
writeln['UCLN 2 so la: ',tinh[a,b]];
writeln['Tong cac uoc cua ',a+b,' la: ',tong];
readln
END.
Bài 3: Kiểm tra xem tam giác có cân, vuông không
Viết chương trình nhập vào độ dài các cạnh của tam giác rồi tính chu vi, diện tích, 3 đường cao của tam giác. Kiểm tra xem tam giác đó có phải là tam giác cân hay tam giác vuông không.
Lời giải:
uses crt;
var a,b,c,cv,dt,p:real;
BEGIN
clrscr;
write['Nhap do dai canh a: '];readln[a];
write['Nhap do dai canh b: '];readln[b];
write['Nhap do dai canh c: '];readln[c];
cv:=a+b+c;
p:=[a+b+c]/2;
dt:=sqrt[p*[p-a]*[p-b]*[p-c]];
writeln['Chu vi tam giac la: ',cv:0:4];
writeln['Dien tich tam giac la: ',dt:0:4];
writeln['Duong cao canh thu 1 la: ',dt*2/a:0:4];
writeln['Duong cao canh thu 2 la: ',dt*2/b:0:4];
writeln['Duong cao canh thu 3 la: ',dt*2/c:0:4];
if [a=b] or [a=c] or[b=c] then writeln['Tam giac can'];
if [a*a=b*b+c*c] or [b*b=a*a+c*c] or [c*c=b*b+a*a]then
writeln['Tam giac vuong'];
readln
END.
Bài 4: Giải phương trình bậc 2
Viết chương trình để giải phương trình bậc 2.
Lời giải:
uses crt;
var a,b,c,x1,x2,d:real;
BEGIN
clrscr;
write['Nhap a: '];readln[a];
write['Nhap b: '];readln[b];
write['Nhap c: '];readln[c];
d:=b*b-4*a*c;
if d>0 then
begin
x1:=[-b+sqrt[d]]/[2*a];
x2:=[-b-sqrt[d]]/[2*a];
writeln['2 nghiem PT la: ',x1:0:2,' va: ',x2:0:2];
end
else if d=0 then
begin
x1:=[-b]/[2*a];
writeln['PT co nghiem kep la: ',x1:0:2];
end
else writeln['PT vo nghiem'];
readln
END.
Bài 5: Kiểm tra số chẵn lẻ, nguyên tố, hoàn hảo
Nhập vào 1 số nguyên gồm 4 chữ số:
- Kiểm tra tình chẵn lẻ
- Kiểm tra xem có phải là số nguyên tố không
- Kiểm tra xem có phải là số hoàn hảo không
Lời giải:
uses crt;
var n,i:integer;ok:boolean;
BEGIN
clrscr;
write['Nhap n: '];readln[n];
if n mod 2=0 then writeln['So ',n,' la so chan']
else writeln['So ',n,' la so le'];
if n0];
if [n mod 2=0] and [a>=0] then
begin
s:=exp[1/n*ln[a]];
writeln['Ket qua la: ',s:0:4];
end
else if [n mod 20] then
begin
s:=exp[1/n*ln[abs[a]]];
writeln['Ket qua la: ',s:0:4];
end
else writeln['Khong xac dinh'];
readln
END.
Bài 7: Tỉnh tổng các chữ số của một số
Nhập số bất kỳ có 3 chữ số rồi tính tổng các chữ số của số đó.
Lời giải:
uses crt;
var a:integer;tong:byte;
BEGIN
clrscr;
write['Nhap 1 so co 3 chu so: '];readln[a];
tong:= a mod 10;
a:=a div 10;
tong:=tong+a mod 10;
a:=a div 10;
tong:=tong+a mod 10;
writeln['Tong cac chu so do la: ',tong];
readln
END.
Bài 8: Hoán vị 2 số
Nhập 2 số nguyên a, b, hoán vị 2 số khi a>b.
Lời giải:
uses crt;
var a,b,tg:integer;
BEGIN
clrscr;
write['Nhap a: '];readln[a];
write['Nhap b: '];readln[b];
if a>b then
begin
tg:=a;
a:=b;
b:=tg;
end;
writeln[a,' ',b];
readln
END.
Bài 9: In các bội của 3 và 5
Nhập số nguyên dương n, in ra tổng các số nguyên dương từ 1 đến n là bội của 3 hoặc 5.
Lời giải:
uses crt;
var n,tong,i:integer;
BEGIN
clrscr;
write['Nhap so nguyen duong n: '];readln[n];
tong:=0;
for i:=1 to n do
if [i mod 3=0] or [i mod 5=0] then
tong:=tong+i;
writeln['Tong cac so chia het cho 3 hoac 5 tu 0--> ',n,' la: ',tong];
readln
END.
Bài 10: In tổng các chữ số của một số
Nhập n bất kỳ sau đó in ra tổng các chữ số của n.
Lời giải:
uses crt;
var n,m:longint;tong:byte;
BEGIN
clrscr;
write['Nhap n: '];readln[n];
tong:=0;m:=n;
while m>0 do
begin
tong:=tong+m mod 10;
m:=m div 10;
end;
writeln['Tong cac chu so cua ',n,' la: ',tong];
readln
END
Bài 11: Kiểm tra số nguyên tố
Nhập vào một số n bất kỳ và kiểm tra xem n có phải là số nguyên tố không.
Code mẫu:
uses crt;
var a,b,tg,i,tong:integer;
function tinh[x,y:integer]:integer;
begin
tg:= x mod y;
if tg=0 then tinh:=y else tinh:=tinh[y,tg];
end;
BEGIN
clrscr;
write['Nhap a: '];readln[a];
write['Nhap b: '];readln[b];
tong:=1;
for i:=2 to abs[a+b] do
if [abs[a+b] mod i =0] then tong:=tong+i;
writeln['Tong 2 so la: ',a+b];
writeln['Hieu 2 so la: ',a-b];
writeln['Tich 2 so la: ',a*b];
writeln['Thuong 2 so la: ',a/b:0:4];
writeln['UCLN 2 so la: ',tinh[a,b]];
writeln['Tong cac uoc cua ',a+b,' la: ',tong];
readln
END.
0Bài 12: Kiểm tra số hoàn hảo
Nhập 1 số nguyên dương n và kiểm tra xem n có phải là số hoàn hảo không.
Lời giải:
Số hoàn hảo là số có tổng các ước [ngoại trừ nó] bằng chính nó. Ví dụ, số 6 có các ước là 1, 2, 3; số 28, 496 cũng là các số hoàn hảo.
Code mẫu:
uses crt;
var a,b,tg,i,tong:integer;
function tinh[x,y:integer]:integer;
begin
tg:= x mod y;
if tg=0 then tinh:=y else tinh:=tinh[y,tg];
end;
BEGIN
clrscr;
write['Nhap a: '];readln[a];
write['Nhap b: '];readln[b];
tong:=1;
for i:=2 to abs[a+b] do
if [abs[a+b] mod i =0] then tong:=tong+i;
writeln['Tong 2 so la: ',a+b];
writeln['Hieu 2 so la: ',a-b];
writeln['Tich 2 so la: ',a*b];
writeln['Thuong 2 so la: ',a/b:0:4];
writeln['UCLN 2 so la: ',tinh[a,b]];
writeln['Tong cac uoc cua ',a+b,' la: ',tong];
readln
END.
1Bài 13: Kiểm tra số chính phương
Nhập một số nguyên dương n bất kỳ và kiểm tra xem n có phải là số chính phương không.
Code mẫu:
uses crt;
var a,b,tg,i,tong:integer;
function tinh[x,y:integer]:integer;
begin
tg:= x mod y;
if tg=0 then tinh:=y else tinh:=tinh[y,tg];
end;
BEGIN
clrscr;
write['Nhap a: '];readln[a];
write['Nhap b: '];readln[b];
tong:=1;
for i:=2 to abs[a+b] do
if [abs[a+b] mod i =0] then tong:=tong+i;
writeln['Tong 2 so la: ',a+b];
writeln['Hieu 2 so la: ',a-b];
writeln['Tich 2 so la: ',a*b];
writeln['Thuong 2 so la: ',a/b:0:4];
writeln['UCLN 2 so la: ',tinh[a,b]];
writeln['Tong cac uoc cua ',a+b,' la: ',tong];
readln
END.
2Bài 14: Đếm nguyên âm, số trong một chuỗi
Nhập vào một chuỗi ký tự và kiểm tra xem chuỗi có bao nhiêu nguyên âm, bao nhiêu số?
Code mẫu:
uses crt;
var a,b,tg,i,tong:integer;
function tinh[x,y:integer]:integer;
begin
tg:= x mod y;
if tg=0 then tinh:=y else tinh:=tinh[y,tg];
end;
BEGIN
clrscr;
write['Nhap a: '];readln[a];
write['Nhap b: '];readln[b];
tong:=1;
for i:=2 to abs[a+b] do
if [abs[a+b] mod i =0] then tong:=tong+i;
writeln['Tong 2 so la: ',a+b];
writeln['Hieu 2 so la: ',a-b];
writeln['Tich 2 so la: ',a*b];
writeln['Thuong 2 so la: ',a/b:0:4];
writeln['UCLN 2 so la: ',tinh[a,b]];
writeln['Tong cac uoc cua ',a+b,' la: ',tong];
readln
END.
3Bài 15: Kiểm tra 3 số có là độ dài cạnh tam giác không
Nhập 3 số a, b, c bất kỳ. Kiểm tra xem 3 số có thể là độ dài 3 cạnh của một tam giác hay không và thông báo ra màn hình.
Code mẫu:
uses crt;
var a,b,tg,i,tong:integer;
function tinh[x,y:integer]:integer;
begin
tg:= x mod y;
if tg=0 then tinh:=y else tinh:=tinh[y,tg];
end;
BEGIN
clrscr;
write['Nhap a: '];readln[a];
write['Nhap b: '];readln[b];
tong:=1;
for i:=2 to abs[a+b] do
if [abs[a+b] mod i =0] then tong:=tong+i;
writeln['Tong 2 so la: ',a+b];
writeln['Hieu 2 so la: ',a-b];
writeln['Tich 2 so la: ',a*b];
writeln['Thuong 2 so la: ',a/b:0:4];
writeln['UCLN 2 so la: ',tinh[a,b]];
writeln['Tong cac uoc cua ',a+b,' la: ',tong];
readln
END.
4Bài 16: Đếm các số theo điều kiện và tính tổng
Nhập số N bất kỳ. Đếm các số lớn hơn 10 và nhỏ hơn 20 rồi tính tổng của chúng. Sau đó, đưa ra màn hình "So cac so >10 va