Professional Documents
Culture Documents
info
LẬP TRÌNH WEB CƠ BẢN BẰNG HTML & JAVASCRIPT
I. Khái niệm:
- Javascript (JS) là một ngôn ngữ kịch bản, được thiết kế để tăng tính tương
tác cho các trang Web.
- Đơn giản & nhẹ hơn bất kỳ ngôn ngữ lập trình nào. Thực thi trực tiếp trên
máy client, tương thích với hầu hết trình duyệt web.
- Nhúng trực tiếp vào trang Web. Thường dùng để kiểm tra dữ liệu do người
dùng nhập vào các form tương tác, tạo ra các hiệu ứng chuột hay hiệu ứng
text, ...
II. Vị trí đặt mã JS trong trang Web.
Mã lệnh JS được đặt trong cặp thẻ <script> và </script> khi đặt trong trang
web.
<script language=”javascript”>
//viết chương trình ở đây
// nhớ sử dụng chữ thường
</script>
1. Bên trong: Có thể đặt nhiều đoạn mã JS vào cùng một trang HTML ở nhiều
vị trí khác nhau:
<html>
<head>
... phần đầu
</head>
<body>
... phần thân
</body>
</html>
- Trong phần head: sẽ được phiên dịch trước phần body. Chỉ được thực thi
khi được gọi hoặc có sự kiện (event) xảy ra.
- Trong body: được phiên dịch ngay và thực thi khi trang đã nạp vào trình
duyệt.
2. Đặt bên ngoài:
Nhận xét:
Nếu nhấn CANCEL: biến ten sẽ mang giá trị rổng (null)
Nếu nhấn OK: không nhập gì, biến ten sẽ nhận giá trị gợi ý. Nếu có
nhập biến ten sẽ nhận giá trị bạn mới nhập vào.
Giá trị nhận được là một chuỗi văn bản (cho dù có nhập số).
4. Biến & cách khai báo biến:
a. Khái niệm:
Biến là một vùng nhớ dùng để lưu trữ các giá trị khi chạy chương trình. Sử
dụng vùng nhớ này qua một cái tên gọi là tên biến. Khi kết thúc chương trình,
biến này sẽ mất đi.
Tên biến phải bắt đầu bằng chữ cái, không được có khoảng trống, dấu tiếng
việt. Tên biến có phân biệt chữ hoa, chữ thường.
b. Khai báo:
var n; //khai báo biến n
var n=100; //khai báo biến m và gán giá trị =100
truong=”Ngo Quyen”; //Khai báo biến truong và gán giá trị là chuỗi Ngo
Quyen
5. Lệnh xác nhận:
var <tên biến>=window.confirm(“Nội dung muốn khẳng định ?”);
VD4:
<script language="javascript">
var ok=confirm("Bạn có muốn đi shopping không ?");
document.write("Bạn vừa trả lời "+ok);
Giáo viên: Thiên Đăng Trang 4
THPT NGÔ QUYỀN, Q.7 Diễn đàn HS: http://ngoquyen-edu.info
LẬP TRÌNH WEB CƠ BẢN BẰNG HTML & JAVASCRIPT
</script>
Nhận xét:
Khi thi hành chương trình sẽ đưa ra câu hỏi có giao diện như sau:
Nếu bạn nhấn OK thì hiển thị dòng văn bản: Bạn vừa trả lời true
Nếu bạn nhấn CANCEL thì hiển thị dòng văn bản: Bạn vừa trả lời false
Kết luận: confirm() chỉ trả về giá trị true hay false (kiểu boolean) tùy theo
người dùng click chuột.
Bài tập 1:
Trong chương này chúng ta chỉ viết mã lệnh đơn giản. Đặt các lệnh JavaScript
trong cặp thẻ: <script language=”javascript”> và </script>, sau đó lưu tập tin vào
đĩa có phần mở rộng là .html, chạy thử bằng trình duyệt web (IE, Opera, Firefox).
Trong chương 3 chúng ta mới tiến hành đặt vào trang web & kết hợp với form.
1.1 Viết chương trình nhập vào họ tên, năm sinh, sau đó in ra màn hình
theo kiểu trình bày như sau:
Hướng dẫn:
<script language="javascript">
document.write("<h2>Chương trình tính tuổi</h2>");
var ten, ns;
1.2 Viết chương trình nhập vào: tên bạn, sĩ số học sinh trong lớp bạn. In ra
màn hình thông báo:
Chào bạn <tên bạn> !
Bạn có <sĩ số hs -1 > người bạn dễ thương trong lớp.
1.3 Viết chương trình nhập vào chiều dài & chiều rộng hình chữ nhật. In ra
màn hình chu vi & diện tích hình chữ nhật đó. Giả định rằng đơn vị tính
là bất kỳ.
1.4 Viết chương trình nhập vào bán kính R của đường tròn. In ra màn hình
chu vi và diện tích hình tròn. Biết rằng:
hằng số PI được định nghĩa sẵn
chu vi đường tròn C= 2*PI*R
Diện tích S=PI*R2
1.5 Viết chương trình nhập vào chiều dài 3 cạnh tam giác ABC (dùng biến a,
b, c là độ dài 3 cạnh). In ra màn hình:
- Chu vi & diện tích của tam giác.
abc
- Bán kính đường tròn ngoại tiếp tam giác theo công thức: R
4S
Biết rằng:
a bc
Diện tích S p ( p a )( p b)( p c ) trong đó: p
2
Và a Math.sqrt (a )
1.6 Viết chương trình nhập vào 2 số hạng. In ra màn hình tổng, hiệu, tích,
thương của chúng.
HD: Chuyển chuỗi sang số nguyên parseInt();
Chuyển chuỗi sang số thực parseFloat();
1.7 Viết chương trình nhập vào tọa độ thực của 2 điểm A(xA, yA) và B(xB,
yB). In ra màn hình độ dài của đoạn thẳng AB theo công thức
AB ( xB x A )2 ( yB y A )2
1.8 Giải bài toán cổ sau: Vừa gà và chó, bó lại cho tròn. Ba mươi sáu con,
một trăm chân chẵn. Hỏi có bao nhiêu con mỗi loại (trình bày đẹp).
Có 4 kiểu cơ bản:
Kiểu số number
Chuổi string
Đúng/sai boolean
Không xác định null (khác với 0 của number & khác với rỗng “” của string)
I. Number: kiểu số
a. Số nguyên (integer): là kiểu số không có phần thập phân
VD: 1, 2, 3, -5, 0 ... là các số nguyên
b. Số thực (Float): là số có phần nguyên & phần thập phân (kiểu thập phân).
Phần nguyên & phần thập phân ngăn cách nhau bằng dấu chấm.
VD: 2.5, 3.14, ... là các số thực
Nếu số thực quá lớn hay quá nhỏ, sẽ được biểu diễn bằng dạng E (10 mũ)
VD: 2000000 (2 triệu) = 2*106 = 2E6
-0.000002 = 2*10-6 = 2E-6
II. String: kiểu chuỗi
Là 1 ký tự hay 1 dãy các ký tự đặt trong cặp dấu ngoặc kép “”
VD: “Ngo Quyen” //Chuỗi văn bản
“37851788” //Chuỗi số
“” //Chuỗi rỗng (empty string)
III. Boolean: kiểu đúng sai
Thường dùng cho những trường hợp có 2 trạng thái: đúng/sai, nam/nữ,
đậu/hỏng, ...
Gồm 2 giá trị: true & false
Cũng là kết quả của một biểu thức so sánh:
VD: 5>3 //true
“heo”==”gà” //false
IV. Null:
Là kiểu dữ liệu đặc biệt, không xác định
Ví dụ như khi ta sử dụng một biến chưa khai báo thì sẽ trả về null.
V. Chú ý:
Bài tập 2: Thực hành các ví dụ & hoàn chỉnh các bài tập của Bài 1.
2.1 Chương trình định dạng ký tự. Yêu cầu người dùng nhập vào một đoạn
văn bản (ít hơn 20 từ).
In văn bản theo các dạng: đậm, nghiêng, gạch chân.
2.2 Viết chương trình in ra dòng chữ: HAPPY NEW YEAR 2009 với màu
sắc do người dùng gõ vào (tất nhiên chỉ một số màu thông dụng như:
red, green, blue, yellow, ...)
2.3 Viết chương trình nhập vào tọa độ 3 đỉnh của tam giác ABC. Tính độ
dài đường trung tuyến AM.
HD: Tính tọa độ trung điểm M của đoạn thẳng BC theo công thức
xB x C y yC
xM ; yM B Sau đó tính độ dài AM như các bài tập 1.
2 2
I. Phép gán:
VD: var x=5;
var y=x+100;
Toán tử gán = dùng để gán một giá trị hay một biểu thức khác cho biến (bên
trái).
Các toán tử gán khác:
/ chia 15/5 3
3/2 1.5
(1) a=b++: nhận thấy phép gán = được (2) x=++y: Phép toán ++y thực
thực hiện trước, sau đó mới đến b++ hiện trước sau đó mới đến =
=== Bằng nhau & phải cùng kiểu X=5; X==y true
y=”5”; X===y false
< Bé hơn
Cánh nhớ:
&& chỉ đúng (true) khi tất cả các biểu thức đều true
|| chỉ sai (false) khi tất cả các biểu thức đều false
! true thành false, false thành true
IV. Toán tử điều kiện ?:
Cú pháp:
(<điều kiện>)?<giá trị cho đk true>:<giá trị cho đk false>;
Ý nghĩa:
Nếu điều kiện đúng (true) thì trả về giá trị cho đk true, ngược lại trả về
giá trị cho điều kiện false.
Bài tập 3:
3.1 Viết chương trình yêu cầu nhập vào năm sinh của người dùng. Nếu
tuổi từ 18 trở lên in ra thông báo: “Bạn đã trưởng thành”, ngược lại in
ra câu: “Bạn còn ở tuổi vị thành niên”. Biết rằng năm hiện tại là
2009.
3.2 Viết chương trình nhập vào 2 số a & b, đưa ra màn hình số lớn nhất.
3.3 Đưa ra một biểu thức tính toán, yêu cần người dùng nhập vào kết quả
bt đó. Nếu đáp đúng hiển thị ảnh VUI.JPG, ngược lại hiển thị ảnh
BUON.JPG.
HD: Dùng lệnh document.write(“<img src=’vui.jpg’>”); nếu đáp
đúng, ... các ảnh có thể lấy trên Internet. Ví dụ 2 ảnh sau:
Vui.jpg Buon.jpg
...
3.4 Viết chương trình nhập vào 1 số nguyên từ 2 đến 9. In ra bảng cửu
chương của số nguyên đó. Bảng cửu chương phải đặt trong table.
VD:
5 x 1 =5
5 x 2 = 10
....
5 x 10 = 50
I. Lệnh IF
1. Dạng thiếu:
Cú pháp: if (<điều kiện>) <lệnh; {hoặc khối lệnh;}>
Nếu điều kiện đúng thì thực hiện lệnh hoặc khối lệnh.
VD8:
Yêu cầu người dùng nhập chuỗi (không nhập số) – dùng hàm isNaN() để kiểm
tra, nếu đúng hiển thị ra thông báo: Cảm ơn & kèm theo chuỗi vừa nhập vào.
Nếu người dùng nhập số, chương trình không thông báo gì hết.
<script language="javascript">
var chuoiabc=window.prompt("Nhập vào các chữ cái","abc...");
if (isNaN(chuoiabc)==true)
window.alert("Cảm ơn bạn !\n Bạn vừa nhập: "+chuoiabc);
</script>
2. Dạng đủ:
Cú pháp: if (<điều kiện>) {
khối lệnh 1;
}
else {
khối lệnh 2;
}
Nếu điều kiện đúng, thực hiện khối lệnh 1, ngược lại thực hiện khối lệnh 2. Nếu
chỉ có 1 lệnh thì ta không cần dùng cặp dấu {}.
VD9:
Viết chương trình nhập vào cạnh hình vuông, in ra màn hình chu vi & diện tích
hình vuông đó. Có kiểm tra giá trị người nhập, nếu nhập vào không phải số thì
hiển thị thông báo: Nhập không đúng yêu cầu.
<script language="javascript">
var canhhv=window.prompt("Nhập vào cạnh hình vuông","5");
if (!isNaN(canhhv)==true){
var chuvi=parseFloat(canhhv)*4;
var dientich=parseFloat(canhhv)*2;
document.write("Hình vuông cạnh " + canhhv + "<p>");
document.write("Chu vi = " + chuvi + "<br>");
Bài tập 4:
4.1 Viết chương trình nhập vào điểm 3 môn: Toán, văn, anh văn. Tính
trung bình cộng 3 môn (toán hệ số 2, văn & anh văn hệ số 1). Dựa
vào điểm trung bình để xét lên lớp (dtb>=5) hay ở lại. Xếp loại học
lực theo tiêu chuẩn: dtb>=9: xuất sắc; dtb>=8: giỏi; dtb>=6.5:
khá; dtb>=5: trung bình; còn lại là yếu kém (sử dụng if dạng 3).
4.2 Viết chương trình nhập vào một số nguyên từ: 0 9. In ra màn hình
tên tiếng Anh của số đó. VD: 1 one, ... Nếu nhập số khác với yêu
cầu thì thông báo lỗi.
4.3 Viết chương trình biện luận & giải phương trình bậc 2 dạng: Ax2 + Bx
+ C = 0. A, B, C do người dùng nhập vào, A phải khác 0.
4.4 Nhập độ dài 3 cạnh tam giác a, b, c là các số thực. Kiểm tra & in ra
màn hình đây có phải là 3 canh của tam giác hay không ? Biết rằng
nếu a, b, c là 3 cạnh của tam giác thì: a+b>c và b+c>a và a+c>b.
4.5 Nhập vào 2 số x, y. Kiểm tra và in ra màn hình x,y cùng âm, cùng
dương, hay không cùng âm dương.
4.6 Nhập vào tháng và năm. Hãy cho biết tháng đó có bao nhiêu ngày.
Biết rằng:
Tháng 1, 3, 5, 7, 8, 10, 12: có 31 ngày
Tháng 4, 6, 9, 11: có 30 ngày
Tháng 2: Nếu năm nhuần 29, năm không nhuần 28 ngày.
Cách nhận biết năm nhuần: là năm chia hết cho 400 hoặc chia hết
cho 4 nhưng không chia hết cho 100. Chi tiết là:
(nam % 400 == 0) || ((nam % 4 == 0) && (nam % 100 !=0))
Khi muốn lặp đi lặp tại một hay khối lệnh nào đó, ta chỉ cần đặt chúng vào
vòng lặp. Có 2 loại vòng lặp: lặp với số lần biết trước (for) và lặp với số lần
không biết trước (while, do ... while).
I. Vòng lặp xác định for:
Cú pháp:
for (biến đếm=giá trị đầu;điều kiện lặp;cập nhật biến đếm)
{
Khối lệnh cần xử lý;
[break;]
}
Ý nghĩa:
Bước 1: kiểm tra điều kiện lặp, nếu đúng (=true) thì chuyển sang bước 2,
nếu sai (=false) dừng vòng lặp.
Bước 2: Thực hiện khối lệnh trong {}, cập nhật biến đếm (thường là tăng hay
giãm). Quay lại bước 1.
Chú ý:
Nếu điều kiện lặp luôn đúng thì vòng lặp không bao giờ dừng lại (lặp vô
tận).
Lệnh break dùng để dừng vòng lặp vô điều kiện.
VD:
In ra màn hình các số từ 1 đến 100 trên cùng 1 dòng
for (var i=1;i<=100;i++) document.write(i + “ “);
In cửu chương 2
for (var j=1;j<=10;i++)
{
document.write(“2 x “ + i + “ = “ + 2*i);
document.write(“<br>”);
}
VD11:
Viết chương trình yêu cầu người dùng nhập tên, sau đó nhập tiếp 5 món ăn mà
họ thích. In kết quả ra màn hình như hình minh họa
<script language="javascript">
var ten=window.prompt("Bạn tên gì ?","Tèo");
Hỏi tên
đến khi nhập số nó mới dừng lại. Chúng ta nhập vào cái gì nó sẽ in ra màn
hình cái đó.
2. do ... while:
Cú pháp: do
{
Khối lệnh cần xử lý;
[break;]
} while (<điều kiện>);
Ý nghĩa:
Tương tự như while, nhưng vòng lặp này thực hiện lệnh trước sau đó mới kiểm
tra điều kiện.
VD14:
Giáo viên: Thiên Đăng Trang 21
THPT NGÔ QUYỀN, Q.7 Diễn đàn HS: http://ngoquyen-edu.info
LẬP TRÌNH WEB CƠ BẢN BẰNG HTML & JAVASCRIPT
Viết chương trình yêu cầu nhập vào các số nguyên đến khi nhập vào 0 (số
không) chương trình sẽ ngưng lại và in ra màn hình tổng các số vừa nhập vào.
<script language="javascript">
var n=1;
var tong=0;
do
{
n=parseInt(window.prompt("Nhập vào một số = ","1"));
tong=tong+n;
} while (n!=0);
document.write("Tổng các số vừa nhập = " + tong);
</script>
Nhận xét:
- B1: Chương trình yêu cầu nhập số
Bài tập 5:
5.1 Viết chương trình nhập vào số nguyên n<=500. In ra màn hình tổng
các số từ 1 đến n.
5.2 Viết chương trình nhập vào số nguyên n<=500. In ra màn hình tổng
các số chẳn trong khoảng từ 1 đến n
5.4 Viết chương trình nhập vào 2 số nguyên N & M với N<M. Tính và
đưa và đưa ra màn hình tích các số chia hết cho 3 hoặc 5 trong
phạm vi từ N đến M.
5.6 Cho số vốn ban đầu là A đồng. Người ta đem gửi tiết kiệm với lãi
xuất như nhau mỗi tháng là 0.3%. Hỏi muốn đạt được B đồng.
Người này phải gửi bao nhiêu tháng. Giả sử, việc gửi tiết kiệm này là
không kỳ hạn và lãi suất hàng tháng không được cộng dồn vào A.
A, B do người dùng nhập vào, và A<B.
5.7 Viết chương trình nhập vào số nguyên n. Tính n! (giai thừa).
5.8 Viết chương trình chuyển số nguyên n>0 thành dãy số nhị phân.