2-2 Biến số và các phép tính
Trong phần trước chúng ta đã học về phương pháp biểu thị dãy chữ và giá trị số. Tại phần này chúng ta sẽ học về căn bản của lập trình, giải thích về biến số và các phép tính ==[+-×÷]== Biến số Trong lập trình tồn tại một khái niệm là biến số. Khi sử dụng biến số, chúng ta có thể ...
Trong phần trước chúng ta đã học về phương pháp biểu thị dãy chữ và giá trị số. Tại phần này chúng ta sẽ học về căn bản của lập trình, giải thích về biến số và các phép tính ==[+-×÷]==
Biến số
Trong lập trình tồn tại một khái niệm là biến số. Khi sử dụng biến số, chúng ta có thể đặt tên tùy thích cho một giá trị số hay một dãy chữ. Biến số được sử dụng như sau.
a = 1
Như vậy, a ở đây là biến số. Lệnh này ở đây có nghĩa là [Đặt tên cho giá trị số 1 là a]. Trong thế giới lập trình thì người ta cũng có thể nói a thay thế cho giá trị 1. Thuật ngữ thay thế là thuật ngữ rất hay dùng nên mọi người cũng nên nhớ luôn tại đây. Dấu cách sau dấu = có hay không cũng không sao.
Chúng ta cũng có thể dùng biến số để thay thế cho dãy chữ.
Như vậy chúng ta dùng a để đặt tên cho dãy chữ "Hello". Khi đặt tên cho một dãy chữ hay giá trị số sử dụng biến số thì chúng ta có thể sử dụng tên đó để gọi biểu thị dãy chữ hoặc số nó biểu thị.
a = 1 puts a
[Kết quả hiển thị]
1
Chúng ta cũng có thể gọi liên tiếp bằng thao tác như dưới đây.
a = "Hello world" puts a puts a puts a
[Kết quả hiển thị]
Hello World Hello World Hello World
Nếu chúng ta thay thế giá trị bằng biến số thì sự tồn tại của giá trị đó được ghi nhớ vào biến số và ta có thể sử dụng bất cứ nơi đâu. Nói một cách khác đó chính là Công cụ ghi nhớ giá trị.
Mặt khác, biến số thay thế một giá trị rồi thì chúng ta vẫn có thể sử dụng nó để biểu diễn giá trị khác.
a = "Hello World" puts a a = "Bye!!" puts a
[Kết quả hiển thị]
Hello World Bye!!
Nếu chúng ta thay đổi giá trị đang thay thế của a thành một giá trị khác để a thay thế thì nội dung đó sẽ được viết đè lên và không liên quan gì đến giá trị cũ mà a đang thay thế trước.
Như vậy chúng ta có thể tùy thích tạo biến số bao nhiêu cũng được.
a=1 b=2 c="ABC"
Mặt khác chúng ta có thể đặt biến số cho biến số.
b=a
Nếu chúng ta để cho [b=a]có nghĩa là thay thế giá trị mà a đang biểu thị là b. Chứng tỏ [b] đang thay thế cho giá trị [1]
Tên của biến số
Cho đến đây thì chúng ta đang sử dụng các chữ cái đặt tên cho biến số là a,b,c, nhưng chúng ta có thể tự do đặt tên cho biến số. Độ dài của tên cũng là tự do. Chữ cái có theerr dùng đặt tên cho biến số là chữ Alphabet và dấu gạch dưới [_]. Tuy nhiên, khi đặt tên cho biến số thì trong tên, vị trí đầu tiên không thể là chữ số
[Những chữ cái, chữ số được dùng để đặt tên cho biến số]
abcdefghiklmnopqrstuvxwyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789_
Dưới đây chính là ví dụ cho tên biến số.
a =0 abc ="A" a123 = 100 abcXYZ ="AAA" hello = "Hello" hello_world = "Hello World" 1abc = 1 #như thế này vì vị trí đầu tiên là số nên không thể biểu thị
Mặt khác, một số từ được quy định (Reserved word), là một bộ phận trên bàn phím cũng khồng thể dùng để đặt tên cho biến số.
Từ được quy định (Reserved word)
Reserved word là những từ keyword mang ý nghĩa đặc biệt được ấn định trong chương trình Nếu chúng xuất hiện trong file nguồn thì hệ thống sẽ chạy đặc biệt theo ý nghĩa nó biểu thị nên không thể sử dụng nó để đặt tên cho biến số. Những Reserved word có trong Ruby ví dụ như
| END | def | false | not | super | while | |--------|--------|--------|--------|--------|--------| | BEGIN | class | ensure | nil | self | when | |--------|--------|--------|--------|--------|--------| | alias |defined?| for | or | then | yield | |--------|--------|--------|--------|--------|--------| | and | do | if | redo | true | |--------|--------|--------|--------|--------|--------| | begin | else | in | rescue| ndef | |--------|--------|--------|--------|--------|--------| | break | elsif | module | retry | unless | |--------|--------|--------|--------|--------|--------| | case | end | next | return | until |
Ví dụ như if là Reserved word nên nếu dùng if để đặt tên cho biến số thì chương trình sẽ bị chạy lỗi.
Tính toán
Chúng ta có thể biệu thị một cách dễ dàng phép cộng hya phép nhân. Nếu như chúng ta viết như dưới đây trong chương trình thì kết quả sẽ được hiện ra.
puts 1+1
[Kết quả hiển thị]
2
Đầu tiên, phép tính [1+1] được tính toán, sau đó vì có lệnh puts được đưa ra nên kết quả được hiển thị. Tức là giống như chúng ta vừa thực hiện lệnh sau
puts 2
Chúng ta cũng có thể thực hiện cách viết sau
puts 1+1+1
[Kết quả hiển thị]
3
Trong lúc thực hiện thao tác trong chương trình, thì khi chúng có thể tự động viết lại như dưới đây
puts 1+1+1 -> puts 3
Bốn phép tính cơ bản được thực hiện bằng những lệnh dưới đây
puts 10+5 puts 10-5 puts 10*5 puts 10/5
[Kết quả hiển thị]
15 5 50 2
Kết quả sau khi thực hiện thao tác dưới đây sẽ trở thành thế nào?
puts 1+2*4
[Kết quả hiển thị]
9
Phép tính nhân chia được thực hiện trước phép tính cộng trừ chính là một trong những tính chất cơ bản trong toán học. Nên lệnh sau được thực hiện tự động dưới các bước tiếp theo đây.
puts 1+2*4 ->puts 1+(2*4) ->puts 1+8 ->puts 9
Có nghĩa là lệnh puts được dùng để đưa kết quả 7 hiển thị lên màn hình. Trong trường hợp muốn thực hiện phép cộng trước thì ta sẽ sử dụng dấu ngoặc đơn.
puts (1+2)*3
[Kết quả hiển thị]
9
Comment
Dòng được hiển thị đằng sau dấu # sẽ được coi là comment. Phần lập trình được viết sau dấu # trong quá trình code sẽ không được thực hiện và bị bỏ qua.
# puts "hello" puts "hi" # puts "bye!!"
[Kết quả hiển thị] ``ruby hi
Phần comment không gây ảnh hưởng đến chương trình lập trình nên ta có thể đặt ở bất cứ đâu. ```ruby # Hiển thị Hello puts "Hello" # Chờ 1 giây sleep 1
Chúng ta cũng có thể viết phần comment ngay giữa dòng như dưới đây cũng hoàn toàn được.
puts "Hello" # Hiển thị Hello sleep 1 # Chờ 1 giây
[Kết quả hiển thị]
Hello
##Phép tính và biến số
Chúng ta có thể thay thế kết quả của phép tinh bằng biến số.
a = 1+1
Như vậy, kết quả 2 của phép tính 1+1 được thay thế bằng biến số a. Trong quá trình làm phép tính thì chúng ta có thể sử dụng biến số để thực hiện phép tính.
a = 2 b = a+1 c = a*b
[b]sẽ là biến thay thế cho kết quả 3 và c sẽ thay thế cho kết quả 6
Chúng ta cũng có thể thực hiện phép tính bằng chính a như dưới đây.
a = 2 a = a+1
Tại dòng thứ 2, kết quả của phép tính a+1 được thay thế bằng a nên a sẽ thay thế cho giá trị 3. Khi sử dụng dấu = trong quá trình thay thế thì nhất định phép tính đằng sau dấu = sẽ được tính toán trước và sau đó kết quả sẽ được thay thế bằng biến số bên trái dấu =
###Kết quả nguyên trong phép chia
Khi sử dụng số nguyên trong phép chia thì chúng ta cần chú ý một vài điều dưới đây. Chúng ta hãy thử chạy kết quả của chương trình dưới đây.
puts 3/2 puts 10/3
[Kết quả hiển thị]
1 3
Kết quả [3/2] được biểu thị là 1, kết quả của [10/3] được biểu thị là 3. Nếu thực phép tính chia bình thường thì chắc chắn kết quả sẽ trở thành như dưới đây
3 ÷ 2 = 1.5 10 ÷ 3 = 3.33333....
Nhưng trong ruby thì kết quả lại hiển thị chỉ có phần nguyên của thương số. Trong ruby, nếu chúng ta sử dụng số nguyên để thực hiện phép chia thì thương số sẽ chỉ hiển thị số nguyên. Phần thập phân đằng sau sẽ bị vứt đi. Nếu chúng ta mong muốn có thêm phần thập phân đằng sau thì cần phải thêm phần [.0] như dưới đây.
puts 3.0/2.0 puts 10.0/3.0
[Kết quả hiển thị]
1.5 3.333333333
Trong phép tính số nguyên chia số thập phân hay số thập phân chia số nguyên thì kết quả sẽ hiện số thập phân.
puts 10.0/2 puts 10/2.0
[Kết quả hiển thị]
5.0
Mặt khác chúng ta nên chú ý nếu số chia là 0 thì chương trình sẽ xảy ra lỗi và không chạy được.
puts 1/0
Hãy chú ý để số chia khác 0!!