Code Giải phương trình bậc 2 javascript

Chúng ta đã học được 8 bài rồi nên trong bài này mình sẽ làm một số ví dụ dùng javascript để viết một số chương trình căn bản để các bạn nắm rõ hơn và ôn lại kiến thức cũ. Nội dung của bài chủ yếu sử dụng kiến thức ở các bài trước nên nếu bạn chư xem thì quay lại và đọc qua 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.

Ta sẽ viết một chương trình cho người dùng nhập các con số vào cho tới khi không nhập nữa, sau đó sẽ xuất thông tin ra số nào lớn nhất và số nào nhỏ nhất.

Để giải quyết bài này chúng ta sẽ có ý tưởng như sau:

  • Khai báo hai biến min và max để lưu giá trị nhỏ nhất và lớn nhất
  • Sử dụng hàm prompt() để lấy thông tin. Hàm này nếu ta nhấn hủy thì sẽ trả về NULL
  • Sử dụng vòng lặp while để yêu cầu người dùng nhập vào cho tới khi họ hủy. Vì khi click hủy sẽ có giá trị null nên điều kiện dừng của vòng lặp while là NULL
  • Cuối cùng dùng lệnh document.write để in ra màn hình.

Các bạn xem code sau: XEM DEMO

Bài viết này được đăng tại [free tuts .net]

// Hai biến lưu min và max var min = null; var max = null; // Biến lưu giá trị người dùng nhập vào var value = ''; // trong khi người dùng chưa nhấn Hủy // vì người dùng nhấn hủy tức là value = null, // thì sẽ dừng vòng lặp while (value != null) { // Lấy giá trị value = prompt("Nhập số, nếu muốn dừng thì không nhập gì"); // Nếu người dùng nhấn hủy thì không thực thi những đoạn code bên trong if (value != null) { // Nếu nhập lần đầu thì gán cả hai min và max bằng value if (min == null){ min = value; max = value; } else { // ngược lại sẽ kiểm tra gán min và max if (min > value){ min = value; } if (max < value){ max = value; } } } } // In ra trình duyệt document.write("Min là " + min +", Max là " + max);

2. Bài tập giải phương trình bậc nhất với javascript

Phương trình bậc nhất có dạng ax + b = 0. Như vậy ta có các trường hợp nghiệm như sau:

  • Nếu a = 0 và b = 0 thì phương trình vô số nghiệm
  • Nếu a # 0 và b = 0 thì nghiệm là x = 0
  • Nếu a = 0 và b # 0 thì phương trình vô nghiệm
  • Nếu a # 0 và b # 0 thì nghiệm là x = -b/a

Vì ta có hai số a, b là người dùng nhập vào, còn x là nghiệm nên ta sẽ viết chương trình cho người dùng nhập vào a, b rồi tính toán trên hai biến này. Các bạn xem code như sau:

XEM DEMO

function giai_pt_bac_nhat(a, b) { if (a == 0 && b == 0){ alert('Phương trình vô số nghiệm'); } else if (a != 0 && b == 0){ alert('Phương trình có nghiệm x = 0'); } else if (a == 0 && b != 0){ alert("Phương trình vô nghiệm"); } else { alert('Phương trình có nghiệm x = ' + (-b/a)); } } giai_pt_bac_nhat(1,0);

3. Bài tập kiểm tra số chính phương với javascript

Định nghĩa: Số chính phương là số có căn bậc hai là một số tự nhiên không có dấu chấm động. Ví dụ 4 là số chính phương vì căn bậc hai của 4 bằng 2. Còn 5 không phải là số chính phương vì căn bậc hai của nó là số có dư  phần dấu chấm động.

Như vậy để giải bài này ta chỉ cần kiểm tra căn bậc hai của nó có tròn hay không, nếu số tròn không dư phần số phẩy ở sau thì là số chính phương. Và để kiểm tra một số có dư hay không thì ta chia nó cho 1 là được, ví dụ 1.2 % 1 = 0.2

Các bạn xem bài giải sau: XEM DEMO

function so_chinh_phuong(a) { // Ta dùng hàm Math.sqrt để lấy căn bậc 2 // sau đó chia lấy dư với 1, nếu bằng 0 thì là số chính phương, // ngược lại thì không phải là số chính phương if (Math.sqrt(a) % 1 == 0){ alert(a + " là số chính phương"); } else { alert(a + " không phải là số chính phương"); } } so_chinh_phuong(4); so_chinh_phuong(12); so_chinh_phuong(13);

Lời kết:

Đêm khuya muộn rồi nên mình sẽ dừng ở đây, hy vọng qua ba bài tập javascript căn bản này sẽ giúp bạn ôn lại kiến thức javascript căn bản mà 8 bài trước chúng ta đã được học.

TẠO CHƯƠNG TRÌNH NGHE NHẠC BẰNG JAVA SCRIP
Nếu bạn có nhiều tệp âm thanh như MIDI, wave hoặc cả MP3 và muốn đưa chúng lên trang Web riêng của mình cho mọi người cùng thưởng thức, hoặc cũng có thể bạn không muốn sử dụng chương trình JetAudio cồng kềnh, chỉ với một đoạn trình JavaScript ngắn bạn có thể tạo ngay được một dàn âm thanh của mình.Nhiều bài báo trước đây đã giới thiệu về cách viết chương trình bằng JavaScript - ngôn ngữ được viết trực tiếp trong tệp HTML và có thể thực hiện ngay với các trình duyệt Web hỗ trợ JavaScript. Cũng xin nói qua, JavaScript do hãng Netscape phát triển, do đó nó gắn liền với trình duyệt Netscape avigator/Communicator, còn Microsoft đưa ra JScript cho Internet Explorer (IE) - phần lớn hai ngôn ngữ này tương đương nhau, tuy vậy cũng có nhiều điểm không tương thích. Ðể có thể chạy được trên cả hai trình duyệt, ta phải viết chương trình tương thích với mỗi loại.Netscape sử dụng plug-in là LiveAudio để chạy các đối tượng âm thanh, còn IE sử dụng ActiveMovie để chạy các đối tượng âm thanh và hoạt hình. Dưới đây là một số phương thức mà ta sẽ sử dụng trong chương trình.Khai báo đối tượng âm thanh và tạo danh sách bài hátKhi tạo trang Web bằng ngôn ngữ HTML, sử dụng <EMBED> để khai báo một tệp đối tượng âm thanh. Dưới đây ta khai báo tệp âm thanh "nhacrung.mid" với tên NAME="mySound". Tên này sẽ được sử dụng trong suốt chương trình của ta.Sử dụng một mảng "mySong" để lưu trữ danh sách bài hát. Mỗi phần tử của mySong là một đối tượng Song (tên bài, tên tệp). Tên bài này sẽ được thể hiện trên trang Web, tên tệp là file âm thanh trên đĩa, có thể là ".mid" hoặc ".wav" (với ActiveMovie đi kèm IE4/5.0, bạn có thể chơi được cả ".mp3").Biến item chứa số lượng bài hát trong danh sách. Mỗi khi gọi setSong (), một bài hát được thêm vào danh sách. Dưới đây là đoạn mã chương trình:<HTML><HEAD> <TITLE> Hifi Audio Player </TITLE></HEAD><BODY><EMBED SRC="nhacrung.mid" HIDDEN="TRUE" AUTOSTART="FALSE" NAME="mySound" MASTERSOUND"><SCRIPT LANGUAGE="JavaScript"><!-var BrowserID=DetectBrowser();//detect Netscape or Internet Explorer?var mySong = new Array();var item = 0;var songPlaying = 0var timeoutID = 0;function Song (songName, fileName){this.songName = songName; this.fileName = fileName;}function setSong (songName, {mySong[item++] = new Song(songName, fileName);}setSong ("Nhac rung - Hoang Viet", "nhacrung.mid"); setSong ("Bien nho - Trinh Cong Son", "biennho.mid"); setSong ("Con kenh xanh xanh - Ngo Huynh", "conkenh.mid"); setSong ("Mat troi be tho - Tran Tien", "mattroi.mid"); setSong ("Xe dap oi - Ngoc Le", "xedap.mid");Ðiều khiểnHàm hifiPlay () sẽ gọi hifiState () để xác định chương trình có đang bận chơi hay tạm dừng không, khi đang tạm dừng bấm "Play" sẽ tiếp tục chơi. Nếu đang ở trạng thái không chơi, hifiPlay () sẽ chơi bài hát có thứ tự là tham số "num", biến toàn cục songPlaying lưu số thứ tự bài hát đang chơi. Nếu biến này lớn hơn tổng số bài hát, nó sẽ được đặt về 0 là bài đầu tiên trong danh sách. Với Netscape, gọi phương thức mySound.play () với tham số là tên tệp bài hát cần chơi - lấy từ danh sách mySong. Với IE, gán tên tệp cần chơi cho mySound.Run (). Tuy nhiên do IE cần khoảng thời gian để tải tệp về nên ta sử dụng setTimeout (): sau 1000 mili giây mới gọi mySound.Run ().Ðối với các hàm hifiPause () và hifiStop (), các phương thức mySound.pause () và mySound.stop () tương ứng được sử dụng. Hàm hifiState () sử dụng các phương thức kiểm tra trạng thái nêu ở bảng trên để xác định chương trình đang bận chơi hay khôngfunction hifiPlay (num) {if (hifiState ()>) {// is paused or playing? if (BrowserID==1) document.mySound.play (); else if (BrowserID==2) document.mySound.Run ();} else {// is stop? songPlaying = num; if (songPlaying >= item) songPlaying = 0; if (BrowserID==1) //Netscape?document.mySound.play (false, mySong[songPlaying]. fileName); else {//Internet Explorer? document.mySound.FileName = mySong[songPlaying]. fileName; setTimeout ("document.mySound.Run()" 1000); //loading in 1 second } document. myForm.myList.options [songPlaying].selected = true; timeoutID = setTimeout ('keepWatching()', 1000); //Set timer}}.function hifiStop () {if(BrowserID==1)//Netscape? document.mySound.stop(); else//Internet Explorer? document.mySound.Stop(); clearTimeout (timeoutID);//clear timerfunction hifiPause () {if (BrowserID==1)//Netscape?document.mySound.pause(); else//Internet Explorer?document.mySound.Pause();}function hifiState() {if(BrowserID==1) // Netscape? return document.mySound.IsPlaying (); else//Internet Explorer? return document.mySound.CurrentState;}Ðể chơi nhạc được liên tụcNhư vậy chúng ta đã có các chức năng cơ bản của một trình chơi nhạc. Tuy nhiên mỗi khi nhấn Play chỉ chơi một bài rồi dừng. Muốn tự động chơi tiếp các bài tiếp theo, ta phải đặt đồng hồ theo dõi khi nào kết thúc một bản nhạc để chơi tiếp bản sau. Sử dụng setTimeout () với tham số (tên hàm theo dõi, khoảngthời gian hiệu lực), tính theo mili giây. Khi hifiPlay () thực hiện, nó sẽ gọi setTimeout ().Sau khoảng thời gian hiệu lực là 1000 mili giây = 1 giây, hàm keepWatching () sẽ tự động được thực hiện. Nếu đang ở trạng thái nghỉ, hàm này sẽ không làm gì cả, còn không sẽ gọi hifiState () để kiểm tra chương trình có đang bận chơi hay không, nếu đang chơi nó sẽ đặt tiếp thời gian theo dõi để lặp lại kiểm tra này. Còn nếu vừa kết thúc chơi một bài, hifiPlay () sẽ được gọi để chơi bài tiếp theo.Khi người dùng nhấn "Stop", hifiStop () sẽ gọi clearTimeout () để xoá thiết lập theo dõi thời gian đặt bởi setTimeout ().function keepWatching () {if (hifiState ()==0) hifiPlay (++songPlaying);elsetimeoutID=setTimeout ('keepWatching ()', 1000);}Xác định tên trình duyệtSử dụng phương thức window.navigator.appName để lấy tên trình duyệt đang dùng. Hàm detectBrowser () sẽ cho giá trị 1 nếu trình duyệt là Netscape; 2 nếu là Internet Explorer; () là các trình duyệt khác.function detectBrowser () {var app=navigator.appName; if(app.index0f ("Netscape") >=0) return 1; if (app.index0f("Explorer")>=0) return 2; return 0;}//-> </SCRIPT>Giao diệnÐoạn chương trình dưới đây sẽ tạo giao diện sử dụng các thể HTML, tên các bài hát được lấy từ array mySong và đưa vào danh sách combo-list. Phần sau là đoạn HTML thể hiện các nút nhấn như Play, Pause, Stop giống như một dàn âm thanh thường có.< SCRIPT LANGUAGE="JavaScript"><!-document.write lt;CENTER><TABLE><FORM NAME="myForm" onSubmit="return false;">'); document.write ('<TR><TD ALIGN=CENTER><BIG>Web-style Audio Player</BIG></TD></TR>'); document.write ('<TR><TD ALIGN=CENTER><SELECT NAME="myList">'); document.write ('OPTION SELECTED> 1> ' +mySong [0] .songName);for (i=1, i<item; i++) document.write ('<OPTION >' + (i+1) +'> '+ mySong .songName); document.wirte ('<SELECT></TD></TR>'); //-><SCRIPT> <TR><TD ALIGN=CENTER><INPUT TYPE="BUTTON" VALUE=" // " onClick="hifiPause ()"> <INPUT TYPE="BUTTON" VALUE=" > " onClick="hifiPlay (document.myForm.myList. selectedIndex)"> <INPUT TYPE="BUTTON" VALUE= " # " onClick="hifiStop()"></TD></TR><TR><TDALIGN=CENTER></TD></TR></FORM></TABLE></CENTER></BODY></HTML>Khi Play (">") được nhấn, sự kiện onClick sẽ gọi hàm hifiPlay () với tham số là số thứ tự bài hát trong danh sách được lựa chọn. Tương tự, các phím Stop ("#"), Pause ("//")khi nhấn sẽ thực hiện các hàm hifiStop () và hifiPause ().Các bước thực hiện chương trìnhNgôn ngữ C/C++ và Java, JavaScript có phân biệt chữ hoa/chữ thường, do đó khi gõ chương trình các bạn cần lưu ý.1. Dùng trình soạn thảo text NotePad, nhập vào lần lượt các đoạn chương trình trên.2. Chọn File/SaveAs, ở mục Save As Type chọn All Files (*.*), mục File name nhập với tên "hifiPlayer.html". Bấm Save.3. Sử dụng Netscape Navigator/Communicator 2.0 trở lên, Microsoft Internet Explorer 4.0 trở lên để mở tệp trên.Chú ý: Tệp âm nhạc trong <EMBED SRC="..."> buộc phải tồn tại trên đĩa. Các tệp âm nhạc khác nếu ở khác thư mục cần chỉ ra đường dẫn tương đối so với nơi đặt tệp html. Cũng có thể sử dụng các URL với các tệp được tải về từ Internet.

Bạn có thể thêm các tính năng khác như chế độ chơi ngẫu nhiên, chơi một số bài yêu thích hoặc theo dõi thời gian chơi của từng bài... Nếu bạn chưa có các tệp âm thanh .mid/.wav/.mp3, có thể lên Internet để lấy về. Các bạn có thể liên lạc qua email: để nhận được bản chương trình trên.

Video liên quan

Chủ đề