Xem Nhiều 3/2023 #️ Giải Bài Tập Tin Học 8 # Top 7 Trend | Caffebenevietnam.com

Xem Nhiều 3/2023 # Giải Bài Tập Tin Học 8 # Top 7 Trend

Cập nhật thông tin chi tiết về Giải Bài Tập Tin Học 8 mới nhất trên website Caffebenevietnam.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất.

Giải Bài Tập Tin Học 8 – Bài 4: Sử dụng biến và hằng trong chương trình giúp HS giải bài tập, giúp cho các em hình thành và phát triển năng lực sử dụng công nghệ thông tin và truyền thông:

a) A:=4;

b) X:=3242;

c) X:= ‘3242’;

d)A:=’Ha Noi’.

Trả lời:

a) Hợp lệ bởi 4 là số nguyên, mà số nguyên là tập con của số thực.

b) 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) Hợp lệ.

d) 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 sgk Tin học lớp 8): Nêu sự khác nhau giữa biến và hằng và cho một vài ví dụ cụ thể về khai báo biến và hằng.

Trả lời:

– 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ụ khai báo về hằng và biến:

Hằng: const pi=3.14; Bankinh = 2; Biến: var m,n: integer; S, dientich: real; thong_bao: string;

Bài 3 (trang 32 sgk Tin học lớp 8): Giả sử ta đã khai báo một hằng Pi với giá trị 3.14. Có thể gán lại giá trị 3.1415 cho Pi trong phần thân chương trình được không? Tại sao?

Trả lời:

Ta không thể gán lại giá trị của Pi bởi 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 sgk Tin học lớp 8): 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;

Trả lời:

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ị.

var a,b:= integer; const c:=3; begin a:= 200; b:= a/c; write(b); readln end.

Trả lời:

– Các lỗi của chương trình:

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 với độ dài một cạnh a và chiều cao tương ứng 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.

Trả lời:

a) Ta sẽ có 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) Ta sẽ có 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.

Trả lờ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 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.

Giải Các Bài Tập Tin Học 8

1. Sao chép cụm từ cần tìm vào bộ nhớ (ta gọi đây là cụm từ 1).

2. Sao chép cụm từ sẽ thay thế cụm từ tìm được vào bộ nhớ (cụm từ 2).

3. Tìm cụm từ 1 trong văn bản.

4. Xóa cụm từ 1 tìm được trong văn bản.

5. Sao chép cụm từ 2 vào vị trí con trỏ trong văn bản.

1. Sao chép dãy kí tự cần tìm vào bộ nhớ (dãy 1).

2. Sao chép dãy kí tự sẽ thay thế dãy kí tự tìm được vào bộ nhớ (dãy 2).

3. Đặt con trỏ trước kí tự đầu tiên trong văn bản.

4. Sao chép dãy kí tự (tính từ vị trí con trỏ sang phải) có độ dài bằng dãy kí tự cần tìm vào bộ nhớ (dãy 3).

5. So sánh dãy 1 và dãy 3. Nếu dãy 3 không trùng với dãy 1, chuyển đến lệnh 8.

Bài 1. Máy tính và chương trình máy tính Câu hỏi và bài tập Khi soạn thảo văn bản trên máy tính và yêu cầu chương trình tìm kiếm một cụm từ trong văn bản và thay thế bằng một cụm từ khác, thực chất ta đã yêu cầu máy tính thực hiện những lệnh gì? Có thể thay đổi thứ tự những lệnh đó mà vẫn không thay đổi kết quả được không? Trong ví dụ về rô-bốt, nếu thay đổi thứ tự của hai lệnh trong chương trình, rô-bốt có thực hiện được công việc nhặt rác không? Hãy xác định vị trí mới của rô-bốt sau khi thực hiện xong lệnh "Hãy quét nhà" và đưa ra các lệnh để rô-bốt trở lại vị trí ban đầu của mình. Hãy cho biết lí do cần phải viết chương trình để điều khiển máy tính. Tại sao người ta phải tạo ra các ngôn ngữ lập trình trong khi có thể điều khiển máy tính bằng ngôn ngữ máy? Chương trình dịch làm gì? Hãy cho biết các bước cần thực hiện để tạo ra các chương trình máy tính. Hướng dẫn trả lời Sao chép cụm từ cần tìm vào bộ nhớ (ta gọi đây là cụm từ 1). Sao chép cụm từ sẽ thay thế cụm từ tìm được vào bộ nhớ (cụm từ 2). Tìm cụm từ 1 trong văn bản. Xóa cụm từ 1 tìm được trong văn bản. Sao chép cụm từ 2 vào vị trí con trỏ trong văn bản. Sao chép dãy kí tự cần tìm vào bộ nhớ (dãy 1). Sao chép dãy kí tự sẽ thay thế dãy kí tự tìm được vào bộ nhớ (dãy 2). Đặt con trỏ trước kí tự đầu tiên trong văn bản. Sao chép dãy kí tự (tính từ vị trí con trỏ sang phải) có độ dài bằng dãy kí tự cần tìm vào bộ nhớ (dãy 3). So sánh dãy 1 và dãy 3. Nếu dãy 3 không trùng với dãy 1, chuyển đến lệnh 8. Xóa dãy 3 trong văn bản. Sao chép dãy 2 vào vị trí con trỏ soạn thảo trong văn bản. Di chuyển con trỏ sang phải một kí tự và quay lại lệnh 4. Qua các lệnh liệt kê theo thứ tự nói trên, dễ thấy rằng có thể thay đổi thứ tự thực hiện của một vài lệnh (1 và 2), nhưng nói chung việc thay đổi thứ tự các lệnh sẽ không cho kết quả mong muốn. Nếu thay đổi thứ tự của hai lệnh trong chương trình điều khiển rô-bốt, rô-bốt sẽ không thực hiện được công việc nhặt rác vì rô-bốt sẽ không đi đúng hướng và có thể không đi tới vị trí có rác, hoặc thực hiện việc nhặt rác tại vị trí không có rác,.... Ví dụ, nếu thay đổi thứ tự của lệnh 1 "Tiến 2 bước" và lệnh 2 "Quay trái, tiến 1 bước", tác dụng của cả hai lệnh này sẽ là "Quay trái và tiến 3 bước". Khi đó rô-bốt sẽ nhặt rác tại vị trí không có rác. Nói chung, các lệnh điều khiển rô-bốt hay chương trình cần được đưa ra theo một thứ tự xác định sao cho ta đạt kết quả mong muốn. Trong một số ít trường hợp, ta có thể đưa ra các lệnh khác nhau, nhưng vẫn đạt kết quả. Chẳng hạn, trong ví dụ về rô-bốt, thay cho hai câu lệnh đầu tiên, ta có thể điều khiển rô-bốt đến đúng vị trí có rác bằng các lệnh sau: "Quay trái, tiến 1 bước" và "Quay phải, tiến 2 bước" hoặc "Quay phải, tiến 2 bước", "Quay trái, tiến 2 bước" và "Quay trái, tiến 4 bước". Trong một số ít các trường hợp khác, việc thay đổi thứ tự của một vài câu lệnh vẫn cho kết quả đúng như yêu cầu. Tuy nhiên, như là một nguyên tắc chung, việc thay đổi thứ tự các câu lệnh sẽ không cho kết quả đúng. Có thể liên hệ với thứ tự các bước của thuật toán trong Bài 5. Vị trí mới của rô-bốt sau khi thực hiện xong lệnh "Hãy quét nhà" là vị trí có thùng rác (ở góc đối diện). Ta có nhiều cách khác nhau để đưa ra hai lệnh để rô-bốt trở lại vị trí ban đầu của mình, một trong các cách đó là hai lệnh "Quay trái, tiến 5 bước" và "Quay trái, tiến 3 bước". Lí do: Điều khiển máy tính tự động thực hiện các công việc đa dạng và phức tạp mà một lệnh đơn giản không đủ để chỉ dẫn. Tuy ngôn ngữ máy cũng là một loại ngôn ngữ lập trình, nhưng ở đây chúng ta hiểu ngôn ngữ lập trình là ngôn ngữ lập trình bậc cao. Trong ngôn ngữ máy mọi chỉ thị đều được biểu diễn bằng các con số nhị phân 0 và 1. Ngôn ngữ máy khó đọc và khó sử dụng, tuy vậy ngôn ngữ máy là ngôn ngữ duy nhất mà bộ vi xử lí có thể nhận biết và thực hiện một cách trực tiếp. Ngoài ra yếu điểm chính của các chương trình viết bằng ngôn ngữ máy là phụ thuộc vào phần cứng máy tính. Các ngôn ngữ lập trình bậc cao được phát triển để khắc phục các yếu điểm trân của ngôn ngữ máy. Ngôn ngữ lập trình sử dụng các cụm từ tự nhiên nên dễ nhớ, dễ học và không phụ thuộc vào phần cứng máy tính. Chương trình dịch là chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình thành chương trình thực hiện được trên máy tính. Như vậy, chương trình dịch chuyển đổi tệp gồm các dòng lệnh được soạn thảo thành tệp có thể chạy trên máy tính. Hai bước cơ bản để tạo ra các chương trình máy tính là (1) viết chương trình theo ngôn ngữ lập trình và (2) dịch chương trình thành ngôn ngữ máy để máy tính hiểu được và kết quả là tệp tin có thể thực hiện được trên máy tính. Lưu ý rằng, đây chỉ là hai bước cơ bản trong lập trình và chỉ là một phần của công việc giải quyết bài toán bằng máy tính. Bài 2. Làm quen với Ngôn ngữ lập trình Câu hỏi và bài tập Hãy cho biết các thành phần cơ bản của một ngôn ngữ lập trình . Ta có thể viết các chương trình bằng các câu lệnh có các chữ cái của tiếng Việt, chẳng hạn "rẽ trái", được không? Tại sao? Tên trong chương trình là gì? Cho biết sự khác biệt từ khóa và tên, cách đặt tên trong chương trình. Trong số các tên sau đây do người viết chương trình đặt trong một chương trình Pascal, tên nào là hợp lệ và tên nào không hợp lệ: a, Tamgiac, 8a, Tam giac, beginprogram, end, b1, abc? Hãy cho biết các phần chính trong cấu trúc của mọi chương trình và vai trò của chúng. Trong các phần đó, phần nào là quan trọng nhất? Hãy cho biết chương trình Pascal sau đây có hợp lệ không, tại sao? a) Chương trình 1. begin end. b) Chương trình 2. begin program CT_thu; writeln('Chao cac ban'); end. Hướng dẫn trả lời Các thành phần cơ bản ngôn ngữ lập trình gồm bảng chữ cái và các quy tắc để viết các câu lệnh (cú pháp) có ý nghĩa xác định, cách bố trí các câu lệnh,... sao cho có thể tạo thành một chương trình hoàn chỉnh và chạy được trên máy tính. Lưu ý rằng các quy tắc nhắc đến ở đây bao gồm các thuật ngữ chuyên môn là cú pháp và ngữ nghĩa. Xem SGK, Mục 2, Bài 2. Không. Các cụm từ sử dụng trong chương trình (từ khóa, tên) phải được viết bằng các chữ cái trong bảng chữ cái của ngôn ngữ lập trình. Các ngôn ngữ lập trình phổ biến hiện nay đều có bảng chữ cái là bảng chữ cái tiếng Anh và các kí hiệu khác, trong đó không có các chữ cái có dấu của tiếng Việt. Lưu ý rằng câu hỏi trong bài là "viết chương trình bằng các câu lệnh...". Điều này không có nghĩa là trong chương trình không thể có các chữ cái có dấu của tiếng Việt (hay của một ngôn ngữ khác) như là dữ liệu dạng văn bản cần xử lí. Các chữ có dấu đó sẽ được ngôn ngữ lập trình xử lý mã kí tự tương ứng trong các bảng mã ASCII mở rộng. Ví dụ chương trình Pascal sau đây hoàn toàn hợp lệ: begin program CT_thu; writeln(' Chào các bạn'); end. Tên trong chương trình là dãy các chữ cái hợp lệ được lấy từ bảng chữ cái của ngôn ngữ lập trình. Từ khoá của một ngôn ngữ lập trình (hay còn được gọi là từ dành riêng) là tên chỉ được dùng cho các mục đích sử dụng do ngôn ngữ lập trình quy định, không được dùng cho bất kì mục đích nào khác. Người lập trình có thể đặt tên một cách tùy ý nhưng phải tuân thủ các quy tắc của ngôn ngữ lập trình cũng như của chương trình dịch, trong đó (1) Hai đại lượng khác nhau phải có tên khác nhau; (2) Tên không được trùng với các từ khoá. Các tên hợp lệ: a, Tamgiac, beginprogram, b1, abc, tên không hợp lệ: 8a (bắt đầu bằng số), Tam giac (có dấu cách), end (trùng với từ khóa). Xem SGK, Mục 4, Bài 2. a) Chương trình 1 là chương trình Pascal đầy đủ và hoàn toàn hợp lệ, mặc dù chương trình này chẳng thực hiện điều gì cả. Phần nhất thiết phải có trong chương trình là phần thân chương trình được đảm bảo bằng hai từ begin và end. (có dấu chấm). b) Chương trình 2 là chương trình Pascal không hợp lệ vì câu lệnh khai báo tên chương trình program CT_thu; nằm ở phần thân chương trình. Bài 3. Chương trình máy tính Và Dữ LIệU Câu hỏi và bài tập Hãy nêu ít nhất một lí do cho thấy sự cần thiết phải phân chia dữ liệu thành các kiểu! Hãy nêu ít nhất hai kiểu dữ liệu và một phép toán có thể thực hiện được trên một kiểu dữ liệu, nhưng phép toán đó không có nghĩa trên kiểu dữ liệu kia. Cho dãy chữ số 2010. Dãy chữ số đó có thể thuộc kiểu dữ liệu nào? Cho hai xâu kí tự "Lớp" và "8A". Hãy thử định nghĩa một "phép toán" có thể thực hiện được trên hai xâu kí tự đó. Hãy phân biệt ý nghĩa của các câu lệnh Pascal sau đây: Writeln('5+20=','20+5'); và Writeln('5+20=',20+5); Hai lệnh sau có tương đương với nhau không? Tại sao? Writeln('100'); và Writeln(100); Chuyển các biểu thức được viết trong Pascal sau đây thành các biểu thức toán: (a+b)*(a+b)-x/y b/(a*a+c) a*a/(2*b+c)*(2*b+c) 1+1/2+1/2*3+1/3*4+1/4*5 Hãy xác định kết quả của các phép so sánh sau đây: 15 - 8 ≥ 3 (20 - 15)2 ≠ 25 112 = 121 Viết các phép so sánh trong Bài tập 8 với các kí hiệu trong Pascal. Nêu một số ví dụ về tương tác giữa người và máy tính khi chương trình hoạt động. Hướng dẫn trả lời Vì dữ liệu và các thao tác xử lí dữ liệu rất đa dạng, lí do dễ nhận thấy nhất là việc phân chia dữ liệu thành các kiểu giúp xác định các phép xử lí (phép toán) có thể thực hiện trên mỗi kiểu dữ liệu. Ngoài ra việc phân chia kiểu dữ liệu còn cho biết các giá trị có thể (phạm vi) của dữ liệu, giúp cho việc quản lý tài nguyên của máy tính (đặc biệt là bộ nhớ trong) một cách hiệu quả. Có thể nêu các ví dụ sau đây: Dữ liệu kiểu số và dữ liệu kiểu xâu kí tự. Phép cộng được định nghĩa trên dữ liệu số, nhưng không có nghĩa trên dữ liệu kiểu xâu. Dữ liệu kiểu số nguyên và dữ liệu kiểu số thực. Phép chia lấy phần nguyên và phép chia lấy phần dư có nghĩa trên dữ liệu kiểu số nguyên, nhưng không có nghĩa trên dữ liệu kiểu số thực. Dãy chữ số 2010 có thể thuộc kiểu dữ liệu số nguyên, số thực hoặc kiểu xâu kí tự. Tuy nhiên, để chương trình dịch Turbo Pascal hiểu 2010 là dữ liệu kiểu xâu, chúng ta phải viết dãy số này trong cặp dấu nháy đơn ('). var a: real; b: integer; begin writeln('123'); writeln(123); a:=2010; b:=2010; end. Cho hai xâu kí tự "Lớp" và "8A". Có thể định nghĩa nhiều "phép toán" trên tập hợp các dữ liệu kiểu xâu. Chẳng hạn phép ghép: Lớp + 8A = Lớp8A. Hướng dẫn trả lời Tìm một từ nhất định bị gõ sai chính tả trong văn bản và sửa lại cho đúng. Số từ cần phải sửa chưa được biết trước. Khi chuẩn bị tô phở để phục vụ cho khách, cô bán hàng thường thực hiện các công việc sau đây: Cho một lượng bánh phở vào nồi nước phở để làm nóng bánh phở, cho bánh phở đã làm nóng vào bát, làm chín một ít thịt và cho vào bát bánh phở đã được làm nóng, cho thêm gia vị, thêm nước phở đang được đun sôi và bát phở,... Các thao tác đó được thực hiện lặp lại mỗi khi có khách ăn phở. Trong suốt ca bán hàng số lần thực hiện các thao tác lặp đó là không thể biết trước. Trong xưởng may, mỗi cô công nhân may cùng một chi tiết của chiếc áo, hay chiếc quần với các đường may đã được thiết kế trước. May xong một sản phẩm, cô công nhân sẽ may sản phẩm tiếp theo cho đến khi hết giờ làm việc. Sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số lần lặp chưa biết trước là ở các điểm sau đây: Như tên gọi của nó, câu lệnh lặp với số lần lặp cho trước chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần đã được xác định từ trước, còn với câu lệnh lặp với số lần lặp chưa biết trước thì số lần lặp chưa được xác định trước. Trong câu lệnh lặp với số lần cho trước, điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị lớn nhất hay chưa, còn trong câu lệnh lặp với số lần lặp chưa biết trước, điều kiện tổng quát hơn nhiều, có thể là kiểm tra một giá trị của một số thực, cũng có thể là một điều kiện tổng quát khác, ví dụ như một số có chia hết cho 3 hay không,... Trong câu lệnh lặp với số lần cho trước, câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Trong câu lệnh lặp với số lần chưa xác định trước, trước hết điều kiện được kiểm tra. Nếu điều kiện được thỏa mãn, câu lệnh mới được thực hiện. Do đó có thể có trường hợp câu lệnh hoàn toàn không được thực hiện. Mô tả thuật toán: Bước 1. Đặt S ơ R (S là bán kính đường tròn sẽ vẽ), n ơ 0, x ơ 0.5. Bước 2. Nếu S < 1.2, chuyển tới bước 4. Bước 3. Vẽ đường tròn bán kính S, S ơ S - x và quay lại bước 2. Bước 4. Kết thúc thuật toán. a) Thuật toán 1: 10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng: S:=10; x:=0.5; writeln(S); b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng: S:=10; n:=0; while S<10 do begin n:=n+3; S:=S-n end; writeln(S); Nhận xét: Trong các thuật toán và chương trình trên, điều kiện được kiểm tra trước khi các bước lặp được thực hiện. Do đó nếu điều kiện không được thỏa mãn ngay từ đầu, các bước lặp sẽ bị bỏ qua. Điều này đặc biệt đúng đối với câu lệnh lặp while..do. a) Chương trình thực hiện 5 vòng lặp. b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn. Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải được thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn. Khi đó vòng lặp mới được kết thúc sau hữu hạn bước. Để làm được điều này, câu lệnh trong câu lệnh lặp chúng tôi thường là câu lệnh ghép. a) Thừa dấu hai chấm trong điều kiện; b) Thiếu dấu hai chấm trong câu lệnh gán; c) Thiếu các từ khóa begin và end trước và sau các lệnh n:=n+1; S:=S+n, do đó vòng lặp trở thành vô tận. Viết thuật toán và chương trình Pascal có câu lệnh lặp với số lần không xác định để tính lũy thừa bậc n của x (tức xn), với n là số tự nhiên và x là số thực được nhập vào từ bàn phím. Hãy so sánh với thuật toán trong Bài tập 8, Bài 7. Thuật toán: Bước 1. Đọc các giá trị x và n. Bước 2. A ơ 1, k ơ 1. Bước 4. A = A.x, k ơ k + 1 và quay lại bước 3. Bước 5. Thông báo kết quả là A và kết thúc thuật toán. Chương trình Pascal: var n,k: integer; A, LT: real; begin write('Nhap so A= '); readln(A); write('Nhap so n= '); readln(n); LT:=1; k:=1; while k<=n do begin LT:=LT*A, k:=k+1 end end. Tính tích của N số tự nhiên đầu tiên với số lần lặp không xác định (với N là số tự nhiên được nhập vào từ bàn phím). Bước 1. Đọc giá trị N. Bước 2. T ơ 1, k ơ 1. Bước 3. Nếu k ≤ N, T = T.k; ngược lại, chuyển xuống bước 5. Bước 4. k ơ k + 1 và quay lại bước 3. Bước 5. Kết thúc thuật toán. Thuật toán: Bước 1. Đọc giá trị n. Bước 2. S ơ 0, i ơ 2. Bước 4. Nếu n chia hết cho i, S ơ S + i, i ơ i + 1 và quay lại bước 3. Bước 5. Ghi giá trị S và kết thúc thuật toán. Chương trình có thể như sau: var n,i,S: integer; begin write('Cho so tu nhien n= '); readln(n); i:=2; S:=0; while i<=n-1 do begin if (n mod i)=0 then S:=S+i; i:=i+1; end; write('Tong cac uoc so thuc su cua ',n,' la: ',S); readln; end. Chương trình có thể như sau: Uses CRT; Var A, sum: real; i: integer; Begin Write('cho so A: '); readln(A); i:=1; sum:= 0; While (sum<=A) do Begin sum:= sum+1/i; i:= i+1; end; Write('Gia tri N bang ', i:6); Readln; End. Bài 9. Làm việc với dãy số Câu hỏi và bài tập "Có thể xem biến mảng là một biến được tạo từ nhiều biến có cùng kiểu, nhưng chỉ dưới một tên duy nhất." Phát biểu đó đúng hay sai? Hãy nêu các lợi ích của việc sử dụng biến mảng trong chương trình. Các khai báo biến mảng sau đây trong Pascal đúng hay sai: var X: Array[10,13] Of Integer; var X: Array[5..10.5] Of Real; var X: Array[3.4..4.8] Of Integer; var X: Array[10..1] Of Integer; var X: Array[4..10] Of Real; Câu lệnh khai báo mảng sau đây có được máy tính thực hiện không? var N: integer; A: array[1..N] of real; Viết chương trình Pascal sử dụng mảng để nhập từ bàn phím các phần tử của một dãy số. Độ dài của dãy cũng được nhập từ bàn phím. Đoạn chương trình sau dùng để sắp xếp lại dãy số được ghi trong mảng A[i], i = 1,2,..., N, theo thứ tự tăng dần: For i:=1 to N do For j:=i to N do Begin Tg:=A[i]; A[i]:=A[j]; A[j]:=Tg; End; Hãy kiểm tra tính đúng đắn của đoạn chương trình trên. Hãy viết chương trình nhập 5 số ngyên từ bàn phím và ghi ra màn hình số lớn nhất trong 5 số đó theo hai cách: không sử dụng biến mảng và sử dụng biến mảng. Viết chương trình sử dụng biến mảng để tính giá trị trung bình của tổng N số nguyên được nhập vào từ bàn phím. Viết chương trình sử dụng biến mảng để nhập n số nguyên từ bàn phím và tính tổng các số dương trong số các số đó (xem lại Bài tập 7b, Bài 5). Trong Bài tập 9, em đã viết chương trình để tính tổng các ước số thực sự của một số nguyên, nhưng chưa liệt kê được các ước số đó. Hãy viết chương trình sử dụng biến mảng để in các ước số của số nguyên n (được nhập vào từ bàn phím). Hướng dẫn trả lời Đúng. Đáp án a) Sai. Phải thay dấu phảy bằng hai dấu chấm; b) và c) Sai, vì giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải là số nguyên; d) Sai, vì giá trị đâu của chỉ số mảng phải nhỏ hơn hoặc bằng chỉ số cuối; e) Đúng. Không. Giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải được xác định trong phần khai báo chương trình. Chương trình có thể như sau: uses crt; var N, i: integer; A: array[1..100] of real; begin clrscr; write('Nhap so phan tu cua mang, n= '); readln(n); for i:=1 to n do begin write('Nhap gia tri ',i,'cua mang, a[',i,']= '); read(a[i]) end; end. Đúng. a) Nếu không sử dụng biến mảng, chương trình có thể dài như sau: uses crt; var So_1, So_2, So_3, So_4, So_5, Max: integer; begin clrscr; write('Nhap so thu nhat: '); readln(So_1); write('Nhap so thu hai: '); readln(So_2); write('Nhap so thu ba: '); readln(So_3); write('Nhap so thu tu: '); readln(So_4); write('Nhap so thu nam: '); readln(So_5); Max:=So_1; If Max<So_2 then Max:=So_2; If Max<So_3 then Max:=So_3; If Max<So_4 then Max:=So_4; If Max<So_5 then Max:=So_5; writeln('So lon nhat: ',Max); end. b) Nếu sử dụng biến mảng, chương trình chỉ ngắn gọn như sau: uses crt; var i, Max: integer; A: array[1..5] of integer; begin clrscr; for i:=1 to 5 do begin write('Nhap so thu ',i,':'); readln(A[i]) end; Max:=a[1]; for i:=2 to 5 do If Max<a[i] then Max:=a[i]; writeln('So lon nhat: ',Max); end. Lưu ý. Xem cách viết chương trình ngắn gọn hơn và không sử dụng biến mảng trong Bài tập 9, Bài 7. Tuy nhiên, cách viết đó sẽ không cho kết quả mong muốn nếu sau khi nhập giá trị của các biến còn cần thực hiện các thao tác dữ liệu khác. Viết chương trình sử dụng biến mảng để tính giá trị trung bình của tổng N số nguyên được nhập vào từ bàn phím. uses crt; var N, i: integer; TB: real; A: array[1..100] of real; begin clrscr; write('Nhap so phan tu cua mang, n= '); read(n); for i:=1 to n do begin write('Nhap gia tri ',i,'cua mang, a[',i,']= '); readln(a[i]) end; TB:=0; for i:=1 to n do TB:=TB+a[i]; TB:=TB/n; write('Trung binh bang ',TB); end. Chương trình nhập n số nguyên từ bàn phím và tính tổng các số dương: uses crt; var n,k,S: integer; X: array[1..1000] of integer; begin clrscr; write('Nhap so tu nhien n: '); readln(n); for k:=1 to n do begin write('Nhap X[',k,']='); readln(X[k]) end; S:=0; for k:=1 to n do writeln('Tong cac duong S=',S); readln; end. Nội dung Bài 2 của Bài thực hành 6 là viết chương trình nhận biết một số tự nhiên có phải là số nguyên tố hay không. Nội dung của Bài tập 9, Bài 8, là viết chương trình tính tổng các ước số thực sự của một số nguyên, nhưng chưa liệt kê được các ước số đó. Để có thể liệt kê, chương trình cần phải ghi lại chúng. ý tưởng chính là sử dụng một biến mảng phục vụ cho điều này. Chương trình tương tự như trong Bài tập 9, Bài 8: uses crt; var n,i,k,S: integer; X: array[1..10000] of integer; begin clrscr; i:=2; S:=0; for k:=1 to (n-1) do X[k]:=0; {Dat lai = 0} while i<=(n-1) do {Ghi lai uoc so vao X[i]} begin if (n mod i)=0 then begin X[i]:= i; S:=S+X[i] end; i:=i+1; end; writeln('Tong cac uoc so thuc su cua ',n,' la: ',S); if S0 then begin write('Cac uoc so cua ',n,' la: '); for i:=1 to (n-1) do if X[i]0 then write(X[i],' ') end else writeln(n,' la so nguyen to.'); readln; end.

Giải Bt Tin Học 8

Giới thiệu về Giải BT Tin học 8

Bài 1: Máy tính và chương trình máy tính Bài 2: Làm quen với chương trình và ngôn ngữ lập trình Bài bài thực hành 1: Làm quen với Free Pascal Bài 3: Chương trình máy tính và dữ liệu Bài thực hành 2: Viết chương trình để tính toán Bài 4: Sử dụng biến và hằng trong chương trình Bài thực hành 3: Khai báo và sử dụng biến Bài 5: Từ bài toán đến chương trình Bài 6: Câu lệnh điều kiện Bài thực hành 4: Sử dụng câu lệnh điều kiện Bài 7: Câu lệnh lặp Bài thực hành 5: Sử dụng lệnh lặp For…do Bài 8: Lặp với số lần chưa biết trước Bài thực hành 6: Sử dụng lệnh lặp While…do Bài 9: Làm việc với dãy số Bài thực hành 7: Xử lí dãy số trong chương trình

Chương 2: Phần mềm học tập

Bài 10: Làm quen với giải phẫu cơ thể người bằng phần mềm Anatomy Bài 11: Giải toán và vẽ hình phẳng với GeoGebra Bài 12: Vẽ hình không gian với GeoGebra Chương 1: Lập trình đơn giản Chương 2: Phần mềm học tập

Bài 1: Máy tính và chương trình máy tínhBài 2: Làm quen với chương trình và ngôn ngữ lập trìnhBài bài thực hành 1: Làm quen với Free PascalBài 3: Chương trình máy tính và dữ liệuBài thực hành 2: Viết chương trình để tính toánBài 4: Sử dụng biến và hằng trong chương trìnhBài thực hành 3: Khai báo và sử dụng biếnBài 5: Từ bài toán đến chương trìnhBài 6: Câu lệnh điều kiệnBài thực hành 4: Sử dụng câu lệnh điều kiệnBài 7: Câu lệnh lặpBài thực hành 5: Sử dụng lệnh lặp For…doBài 8: Lặp với số lần chưa biết trướcBài thực hành 6: Sử dụng lệnh lặp While…doBài 9: Làm việc với dãy sốBài thực hành 7: Xử lí dãy số trong chương trìnhBài 10: Làm quen với giải phẫu cơ thể người bằng phần mềm AnatomyBài 11: Giải toán và vẽ hình phẳng với GeoGebraBài 12: Vẽ hình không gian với GeoGebraChương 1: Lập trình đơn giảnChương 2: Phần mềm học tập

Gợi Ý Bài Tập Sgk Bài 6 Tin Học 8

Một vài ví dụ về các hoạt động hằng ngày phụ thuộc vào điều kiện:

Nếu đạt điểm tổng kết cả năm cao hơn 8.5, em sẽ đạt danh hiệu “Học sinh giỏi”

Nếu không được cắm điện, máy tính để bàn của em sẽ không hoạt động được

Nếu bị bệnh, em (cần phải) đi đến phòng khám để bác sĩ khám bệnh

Nếu không được tưới đủ nước đúng thời kì phát triển, lúa sẽ không cho thu hoạch cao

Bài tập 2 trang 50 SGK Tin học 8

Hãy cho biết các điều kiện hoặc phép so sánh sau đây cho kết quả đúng hay sai:

a) 123 là số chia hết cho 3.

b) Nếu ba cạnh a, b và c của một tam giác thỏa mãn c 2 = a 2 + b 2 thì tam giác đó có một góc vuông.

a) Đúng;

b) Đúng;

c) Đúng;

d) Sai

Bài tập 3 trang 51 SGK Tin học 8

Hai người bạn cùng chơi trò đoán số. Một người nghĩ trong đầu một số tự nhiên nhỏ hơn 10. Người kia đoán xem bạn đã nghĩ số gì. Nếu đoán đúng, người đoán sẽ được cộng thêm 1 điểm, nếu sai sẽ không được cộng điểm. Luân phiên nhau nghĩ và đoán. Sau 10 lần, ai được nhiều điểm hơn, người đó sẽ thắng.

Hãy phát biểu quy tắc thực hiện các điều kiện ở trò chơi. Hoạt động nào sẽ được thực hiện, nếu điều kiện của quy tắc đó thoả mãn? Hoạt động nào sẽ được thực hiện, nếu điều kiện của quy tắc đó không thoả mãn?

Giả sử Điểm_1 là số điểm của người thứ nhất và Điểm_2 là số điểm của người thứ hai, ngoài ra một người thứ nhất nghĩ trong đầu một số tự nhiên n < 10.

Điều kiện ở trò chơi là người thứ hai đoán đúng số n. Khi đó Điểm_2 được cộng thêm 1; ngược lại, Điểm_2 được giữ nguyên. Tương tự, nếu người thứ hai nghĩ số tự nhiên m, và điều kiện thứ hai là người thứ nhất đoán đúng số m đó. Khi đó Điểm_1 được cộng thêm 1; ngược lại, Điểm_1 được giữ nguyên.

Bài tập 4 trang 51 SGK Tin học 8

Một trò chơi máy tính rất hứng thú đối với các em nhỏ là hứng trứng. Một quả trứng rơi từ một vị trí ngẫu nhiên trên cao. Người chơi dùng các phím mũi tên (rightarrow) hoặc (leftarrow) để điều khiển một biểu tượng chiếc khay di chuyển theo chiều ngang để hứng quả trứng. Nếu hứng trượt, quả trứng bị rơi, vỡ và người chơi tiếp tục di chuyển khay để hứng quả trứng khác.

Điều kiện để điều khiển chiếc khay trong trò chơi người chơi nhấn phím mũi tên (rightarrow) hoặc (leftarrow). Nếu người chơi nhấn phím (rightarrow), biểu tượng chiếc khay sẽ di chuyển sang phải một đơn vị khoảng cách; nếu phím (leftarrow) được nhấn, biểu tượng chiếc khay sẽ di chuyển sang trái. Nếu một phím khác ngoài hai phím mũi tên trên được nhấn, chiếc khay vẫn giữ nguyên vị trí.

Bài tập 5 trang 51 SGK Tin học 8

Các câu lệnh Pascal sau đây được viết đúng hay sai?

a) if x:=7 then a=b;

a) Sai (thừa dấu hai chấm);

b) Sai (thừa dấu chấm phảy thứ nhất);

c) Sai (thừa dấu chấm phảy sau từ then);

e) Sai (thừa dấu chấm phảy thứ nhất);

f) Đúng.

Bài tập 6 trang 51 SGK Tin học 8

Sau mỗi câu lệnh sau đây:

a) if (45 mod 3)=0 then X:=X+1;

giá trị của biến X sẽ là bao nhiêu, nếu trước đó giá trị của X bằng 5?

a) Vì 45 chia hết cho 3, điều kiện được thỏa mãn nên giá trị của X được tăng lên 1, tức bằng 6;

b) Điều kiện không được thỏa mãn nên câu lệnh không được thực hiện, tức X giữ nguyên giá trị 5.

Bạn đang xem bài viết Giải Bài Tập Tin Học 8 trên website Caffebenevietnam.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!