Bài 4: Sử dụng biến và hằng trong chương trình - Giải BT Tin học 8
Bài 1 (trang 32 sgk Tin học lớp 8): Giả sử A được khai báo là biến với kiểu dữ liệu số thực, X là biến với kiểu dữ liệu xâu. Cho biết các phép gán sau đây có hợp lệ không?
a) A: =4;
b) X: =3242;
c) X: = '3242';
d)A: ='Ha Noi'.
Bài giải:
a) A: =4 => Hợp lệ bởi 4 là số nguyên, mà số nguyên là tập con của số thực.
b) X: =3242 => Không hợp lệ bởi X là kiểu dữ liệu xâu, không thể gán giá trị thuộc kiểu dữ liệu số nguyên.
c) X: = '3242' => Hợp lệ.
d) A: ='Ha Noi' => Không hợp lệ bởi A được khai báo với kiểu dữ liệu số thực, còn 'Ha Noi' lại thuộc xâu kí tự.
Bài 2 (trang 32): Em hãy nêu sự khác nhau giữa biến và hằng. Cho một vài ví dụ cụ thể về khai báo biến và hằng.Bài giải:
* Sự khác nhau giữa biến và hằng:
- Biến dùng để lưu trữ dữ liệu và dữ liệu được biến lưu trữ có thể thay đổi trong khi thực hiện chương trình. Để mở đầu khai báo ta dùng cú pháp “const”.
- Hằng cũng dùng để lưu trữ dữ liệu nhưng dữ liệu được hằng lưu trữ không thể thay đổi trong suốt quá trình thực hiện chương trình. Để mở đầu khai báo ta dùng cú pháp “var”.
- Ví dụ về khai báo biến và hằng như sau:
+) Hằng: const pi=3.14; Bankinh = 2;Bài giải:
- Ta không thể gán lại giá trị của Pi, vì: tính chất của hằng là “Có giá trị không đổi trong suốt quá trình thực hiện chương trình”.
Bài 4 (trang 32): Trong Pascal khai báo nào sau đây là đúng?a) var tb: real;
b) var 4hs: integer;
c) const x: real;
d) var R=30;
Bài giải:
Trong Pascal khai báo:
a) Đúng;
b) Sai: Bởi tên biến không tuân theo quy tắc ngôn ngữ lập trình: có chữ số ở đầu.
c) Sai: Bởi khai báo hằng cần một giá trị ngay sau khi khai báo, còn “real” là tên kiểu dữ liệu của biến được khai báo.
d) Sai: Bởi khai báo tên biến thì phía sau phải có kiểu dữ liệu chứ không phải giá trị.
Bài 5 (trang 32): Hãy liệt kê các lỗi có thể có trong chương trình dưới đây và sửa lại cho đúng:var a, b: = integer; // Dòng số 1. const c: =3; // Dòng số 2. begin // Dòng số 3. a: = 200; // Dòng số 4. b: = a/c; // Dòng số 5. write (b); // Dòng số 6. readln // Dòng số 7. end. // Dòng số 8.
Bài giải:
- Các lỗi có trong chương trình trên như sau:
+ Dòng số 1: Thừa dấu = và khai báo kiểu dữ liệu của b phải là số thực.
+ Dòng số 2: Thừa dấu:
+ Dòng số 3: Đúng.
+ Dòng số 4: Đúng.
+ Dòng số 5: Đúng.
+ Dòng số 6: Đúng.
+ Dòng số 7: Thiếu;
+ Dòng số 8: Đúng.
- Chương trình sau khi sửa lại:
a) Tính diện tích S của hình tam giác, độ dài một cạnh a và chiều cao tương ứng là h (a và h là các số tự nhiên được nhập vào từ bàn phím).
b) Tính kết quả c của phép chia lấy phần nguyên và kết quả d của phép chia lấy phần dư của hai số nguyên a và b.
Bài giải:
a) Các biến cần khai báo: S là diện tích tam giác, a là độ dài cạnh, h là chiều cao tương ứng.
Do a, h là các số tự nhiên nên S cũng là số tự nhiên, kiểu dữ liệu chung đều là Integer;
var S, a, h: integer;
b) Các biến cần khai báo: c là kết quả chia lấy phần nguyên, d là kết quả chia lấy phần dư; a, b đều là hai số nguyên.
Do đó cả a, b, c, d đều là kiểu dữ liệu số nguyên.
var c, a, b, d: integer;var A: integer; B: integer; C: integer; D: integer; begin writeln (A); writeln (B); writeln (C); writeln (D); readln; end.
Bài giải:
- Kết quả chạy chương trình:
- Ta có thể thấy nếu không khai báo giá trị của biến thì chương trình sẽ tự động đặt giá trị của biến bằng 0. Ở một số ngôn ngữ lập trình khác thì nếu không khai báo biến thì biến sẽ tự động nhận một giá trị ngẫu nhiên.