(9) Barnes J. G. P.: Programming in Ada 95, 2nd ed. Addison-Wesley. 1998. (10) Burns A., Weillings A.: Concurency in Ada, 2nd ed. Cambridge University Press. 1998. NQL05(HVA) Đặt mật khẩu cho trang Web ( htm ) Bạn có thể hạn chế số người truy cập trang web của bạn bằng cách tạo thêm trang web có chứa đoạn Script dưới đây làm trang đòi hỏi mật khẩu. Khi người xem nhập đúng mật khẩu, họ sẽ được chuyển qua trang cần xem. PHP Code: <SCRIPT> function passWord() { var testV = 1; var pass1 = prompt('Ban nhap mat khau roi bam nut OK hay bam Cancel de h uy bo',' '); while (testV < 3) { if (!pass1) history.go(-1); if (pass1.toLowerCase() == "echip") { alert('Mat khau duoc chap nhan'); window.open('index.html'); break; } testV+=1; var pass1 = prompt('Khong truy cap duoc vi mat khau sai. Hay thu lai lan nua.','Mat khau' ); } if (pass1.toLowerCase()!="password" & testV ==3) history.go(-1); return " "; } </SCRIPT> <CENTER> <FORM> <input type="button" value="Bam vao day de nhap mat khau truy cap" onCli ck="passWord()"> </FORM> </CENTER> Bạn đặt đoạn mã trên vào giửa thẻ <body> </body>. Thay đổi mật khẩu ở dòng if (pass1.toLowerCase() == "matkhau") và chỉ định trang web được mở nếu nhập đúng mật khẩu ở dòng window.open('index.html'); Chú ý: Cách đặt mật khẩu như bài này chỉ nhằm giảm bớt lượng truy cập của người “lướt web” bình thường chứ không nhằm mục đích bảo mật vì người có kinh nghiệm sẽ xem mã nguồn (viewsource) để biết mập khẩu. Các bạn có thể “chế biến” thêm các đoạn Script để ngăn không cho người xem mở menu phím phải chuột, không cho save và không cho hiển thị Toolbar của trình duyệt để hạn chế chặt chẻ hơn. Việc này xin nhường cho các bạn đọc khác đóng góp Kent(HCE) Tạo “mưa tuyết” bằng JavaScript Bạn muốn thấy cảnh mưa tuyết rơi rơi trên trang Web của mình? Xin mời bạn “xắn tay áo” và gõ vào máy đoạn mã JavaScript sau đây (bạn nhớ lưu thành dạng văn bản có phần mở rộng là .html). Các bông tuyết được vẽ bằng công cụ Airbrush trong Microsoft Paint, kích thước 10x10 pixel, lưu thành tập tin blue_snow.gif. Chương trình có thể chạy được trên cả Internet Explorer 4.0 và Netscape Navigator 4.0 trở lên. PHP Code: <html> <head> <title> Mua tuyet </title> </head> <body> <center> <SCRIPT LANGUAGE="JavaScript1.2"> <! Begin var no = 25; var speed = 10; var snowflake = "blue_snow.gif"; var ns4up = (document.layers) ? 1 : 0; var ie4up = (document.all) ? 1 : 0; var dx, xp, yp; var am, stx, sty; var i, doc_width = 800, doc_height = 600; if (ns4up) { doc_width = self.innerWidth; doc_height = self.innerHeight; } else if (ie4up) { doc_width = document.body.clientWidth; doc_height = document.body.clientHeight; } dx = new Array(); xp = new Array(); yp = new Array(); am = new Array(); stx = new Array(); sty = new Array(); for (i = 0; i < no; ++ i) { dx[i] = 0; xp[i] = Math.random()*(doc_width-50); yp[i] = Math.random()*doc_height; am[i] = Math.random()*20; stx[i] = 0.02 + Math.random()/10; sty[i] = 0.7 + Math.random(); if (ns4up) { if (i == 0) { document.write("<layer name=\"dot"+ i +"\" left=\"15\" "); document.write("top=\"15\" visibility=\"show\"><img src=\""); document.write(snowflake + "\" border=\"0\"></layer>"); } else { document.write("<layer name=\"dot"+ i +"\" left=\"15\" "); document.write("top=\"15\" visibility=\"show\"><img src=\""); document.write(snowflake + "\" border=\"0\"></layer>"); } } else if (ie4up) { if (i == 0) { document.write("<div id=\"dot"+ i +"\" style=\"POSITION: "); document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: "); document.write("visible; TOP: 15px; LEFT: 15px;\"><img \""); document.write(snowflake + "\" border=\"0\"></div>"); } else { document.write("<div id=\"dot"+ i +"\" style=\"POSITION: "); document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: "); document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\""); document.write(snowflake + "\" border=\"0\"></div>"); } } } function snowNS() { for (i = 0; i < no; ++ i) { yp[i] += sty[i]; if (yp[i] > doc_height-50) { xp[i] = Math.random()*(doc_width-am[i]-30); yp[i] = 0; stx[i] = 0.02 + Math.random()/10; sty[i] = 0.7 + Math.random(); doc_width = self.innerWidth; doc_height = self.innerHeight; } dx[i] += stx[i]; document.layers["dot"+i].top = yp[i]; document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]); } setTimeout("snowNS()", speed); } function snowIE() { for (i = 0; i < no; ++ i) { yp[i] += sty[i]; if (yp[i] > doc_height-50) { xp[i] = Math.random()*(doc_width-am[i]-30); yp[i] = 0; stx[i] = 0.02 + Math.random()/10; sty[i] = 0.7 + Math.random(); doc_width = document.body.clientWidth; doc_height = document.body.clientHeight; } dx[i] += stx[i]; document.all["dot"+i].style.pixelTop = yp[i]; document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]); } setTimeout("snowIE()", speed); } if (ns4up) { snowNS(); } else if (ie4up) { snowIE(); } // End > </script> </body> </html> kent(HCE) CHƯƠNG 1 : THUẬT TOÁN – THUẬT GIẢI I. KHÁI NIỆM THUẬT TOÁN – THUẬT GIẢI II. THUẬT GIẢI HEURISTIC III. CÁC PHƯƠNG PHÁP TÌM KIẾM HEURISTIC III.1. Cấu trúc chung của bài toán tìm kiếm III.2. Tìm kiếm chiều sâu và tìm kiếm chiều rộng III.3. Tìm kiếm leo đồi III.4. Tìm kiếm ưu tiên tối ưu (best-first search) III.5. Thuật giải AT III.6. Thuật giải AKT III.7. Thuật giải A* III.8. Ví dụ minh họa hoạt động của thuật giải A* III.9. Bàn luận về A* III.10. Ứng dụng A* để giải bài toán Ta-canh III.11. Các chiến lược tìm kiếm lai I. TỔNG QUAN THUẬT TOÁN – THUẬT GIẢI . (9) Barnes J. G. P.: Programming in Ada 95, 2nd ed. Addison-Wesley. 1998. (10) Burns A., Weillings A.: Concurency