Trang chủ Tin Học Lớp 8 II. BÀI TẬP – VẬN DỤNG Bài tập: B1. Hãy...

II. BÀI TẬP – VẬN DỤNG Bài tập: B1. Hãy liệt kê các lỗi có trong chƣơng trình dƣới đây và sửa lại cho đúng: Var a,b:= integer; Const c:=300; Begin a:=100; b:=c

Câu hỏi :

II. BÀI TẬP – VẬN DỤNG Bài tập: B1. Hãy liệt kê các lỗi có trong chƣơng trình dƣới đây và sửa lại cho đúng: Var a,b:= integer; Const c:=300; Begin a:=100; b:=c/a; Writeln(b) End. B2. Hãy chỉ ra INPUT và OUTPUT của các bài toán sau: a) Tính tổng của các phần tử lớn hơn 0 trong dãy n số cho trước. b) Tìm số các số có giá trị nhỏ nhất trong n số đã cho. B3. Mỗi điều kiện hoặc biểu thức cho kết quả đúng hay sai? a) 120 là số chia hết cho 5. b) Nếu ba cạnh a, b và c của một tam giác thỏa mãn c2 > a2 + b2 thì tam giác đó có một góc vuông. c) 152 > 200. d) x2 < 1. B4. Các câu lệnh Pascal sau đây đƣợc viết đúng hay sai? Nếu câu lệnh nào sai hãy sửa lại cho đúng a) if x:=7 then a:=b; b) if x > 5; then a:=b; c) if x > 5 then; a:=b; d) if x > 5 then a:=b; m:=n; e) if x > 5 then a:=b; else m:=n; f) if n > 0 then begin a:=0; m:=-1 end else c:=a; B5. Với mỗi câu lệnh sau đây giá trị của biến X sẽ là bao nhiêu, nếu trƣớc đó giá trị của X bằng 10?a) if (45 mod 3) = 0 then X:= X+1; b) if X > 10 then X:= X+1; B6. Câu lệnh sau là đúng hay sai? If a>b then writeln(‘a>b’) else If a<b then writeln(‘a<b’) else writeln(‘a=b’); B7. Các câu lệnh sau đây, sai ở điểm nào? a) For i:=1 to 10,1 do writeln(‘a’); b) For i:=3 to 3 do writeln(‘a’); c) For i:=3,4 to 5,7 do writeln(s+i); d) For i:=1000 to 10 do writeln(i); B8. Chƣơng trình Pascal sau đây thực hiện hoạt động nào? Var i: integer; Begin For i:=1 to 1000 do; End. B9. Mỗi chƣơng trình sau đây sẽ thực hiện bao nhiêu vòng lặp? Chương trình 1 S:=0; n:=0; While s<=10 do Begin n:=n+1; s:=s+n; end; Chương trình 2 S:=0; n:=0; While s<=10 do n:=n+1; S:=s+n; B10. Các câu lệnh sau, câu lệnh nào sai và hãy chỉ ra điểm sai. Câu lệnh nào đúng? a) X:=10; while x:=0 do begin a:=a+x; x:=x-1; end; b) S:=0; n:=0; while s<=10 do n:=n+1; s:=s+n; c) A:=5; while A<6 do writeln(‘A’); d) X:=0; s:=0; while x+s=0 do n:=x+s; e) N:=10; M:=0 while N>M then M:=M+N; N:=N-1; B11. Hãy khai báo một mảng gồm 50 phần tử, dữ liệu kiểu mảng là integer. B12. Các khai báo biến mảng sau đây trong Pascal đúng hay sai? a) Var A: Array[1,,100] of integer; b) Var X: Array[5.....10] of real; c) Var A: Array[1..10,51] of integer; d) Var A: Array[3,4..5,8] of real; e) Var N: Array[100..10] of real;

Lời giải 1 :

B1:
Var a : integer; b:real; 

Const c=300;

Begin

a:=100;
b:=c/a

Writeln('Gtri B luc nay= ', b
End.
B2:
a) Input: Dãy N cho trước
    Output: Tính tổng của các phần tử lớn hơn 0 trong dãy N
b)  Input: Dãy N cho trước
     Output: Số các số có giá trị nhỏ nhất trong dãy N
B3:
a) Đúng vì 120 chia 5 bằng 24
b) Sai vì nếu $c^{2}=a^{2}+b^{2}$ thì đó mới là một Δvuông
c) Sai do 152<200. Hoặc nếu là $15^{2}$ thì $15^{2}>200$ vì kết quả của $15^{2}$ = 225>200 nên đây là phép so sánh đúng.
d) Hoặc đúng nếu -1 < x < 1;

    Hoặc sai nếu x ≤ 1 hoặc ≥ 1.
B4:
Sai: Ý a,b,e
Đúng: Số còn lại
*Nếu cần giải thích thì hãy comment bên dưới!
B5
a) Vì 45 chia hết cho 3 nên giá trị x lúc này được tăng thêm 1 đơn vị tức x=11.
b) Vì x=10. Mà điều kiện cho là  x>10 nên x vẫn được giữ nguyên.
B6:
Trong các câu lệnh writeln không có dấu " ‘ " mà chỉ có " ' " nên sai. Mặt khác, phải đổi điều kiện "a<b và writeln('a<b')" sang "write('a=b'); Nếu không có các cách khắc phục trên, câu lệnh ghép này sẽ sai.
B7:
a) Sai ở chỗ giá trị cuối không được cho là kiểu thập phân, mà chỉ có kiểu nguyên dương. Dấu nháy trong () sai.
b) Đúng
c) Sai do Gtri đầu và Gtri cuối phải ∈ kiểu nguyên dương. Mặt khác, nếu trong writeln() mà thuộc kiểu dòng chữ thì phải có 2 dấu nháy để máy hiểu đây là dòng câu lệnh chữ.Còn  nếu đây là phép gán tổng thì phải là: "s:=s+i" rồi sau đó mới thêm writeln(s) để in kết quả s
d) Sai do nếu đây là một phép lặp chạy ngược từ 1000-> 10 thì phải là: "For i:=1000 downto 10 do writeln(i);". Hoặc không thì máy sẽ hiểu là sai do for..do chạy phải có gtri đầu nhỏ hơn hoặc bằng gtri cuối.
B8:
Chương trình pascal này sai. Do sau For..do không có câu lệnh mà lại có " ; "
B9: Tự làm
B10:

a) Sau while..do là một phép so sánh, chứ không phải lệnh gán.
b) Sai do đây là một câu lệnh lặp với số lần chưa biết trước, phải có "begin" và "end;" sau while...do
c) Sai do sẽ rơi vào vòng lặp vô hạn. Vì điều kiện luôn đúng, không sai.
d) Sau "M:=0" không có ";" . Mặt khác, chỉ có while..do chứ không có while..then.
B11:
Uses Crt;
Var a:array[1..1000] of integer;
i,n:integer;
Begin
Clrscr;
Write('Nhap do dai N='); Readln(n);
For i:= 1 to n do 
Begin
Write('Nhap a[',i,']='); Readln(a[i]);
End;
Readln
End.
B12:
a) Sai do Trong array[] không có " ,, ".
b) Sai do thừa 3 dấu "." trong ngoặc [].
c) Các chỉ số phần tử không thuộc kiểu thập phân mà chỉ thuộc kiểu nguyên dương.
d) Như ý trên.
e) Chỉ số đầu phải nhỏ hơn chỉ số cuối trong [] khi khai báo mảng.

Thảo luận

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK