Top 5 # Giải Bài Tập Tin Học Lớp 8 Bài 4 Xem Nhiều Nhất, Mới Nhất 1/2023 # Top Trend | Caffebenevietnam.com

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

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 Bài Tập Sgk Tin Học 8 Bài 5

Từ bài toán đến chương trình

Giải bài tập SGK Tin học 8 bài 5: Từ bài toán đến chương trình

Giải bài tập SGK Tin học 8 bài 5: Từ bài toán đến chương trình được VnDoc sưu tầm và đăng tải, tổng hợp các câu hỏi trong sách giáo khoa nằm trong chương trình giảng dạy môn Tin học lớp 8. Hi vọng rằng đây sẽ là những tài liệu hữu ích trong công tác giảng dạy và học tập của quý thầy cô và các bạn học sinh. Mời các quý thầy cô và các bạn cùng tham khảo

Bài 1 (trang 44 sgk Tin học lớp 8): Hãy chỉ ra INPUT và OUTPUT của các bài toán sau:

a) Xác định số học sinh trong lớp cùng mang họ Trần.

b) Tính tổng của các phần tử lớn hơn 0 trong dãy n số cho trước.

c) Tìm số các số có giá trị nhỏ nhất trong n số đã cho.

Trả lời:

a) INPUT: Danh sách số học sinh trong lớp.

OUTPUT: Số học sinh trong lớp mang họ Trần.

b) INPUT: Dãy gồm n số.

OUTPUT: Tổng các phần tử lớn hơn 0.

c) INPUT: Cho n số.

OUTPUT: Số các số có giá trị nhỏ nhất trong n số.

Bài 2 (trang 44 sgk Tin học lớp 8): Giả sử x và y là các biến số. Hãy cho biết kết quả của việc thực hiện thuật toán sau:

Bước 1. x ← x + y

Bước 2. y ← x – y

Bước 3. x ← x – y

Trả lời:

– Bước 1: Ở bước này giá trị của x sẽ bằng x cộng với y: x= x+y.

– Bước 2: Tiếp đến giá trị của y bằng giá trị của x – y: y= x (bước 1)-y= x+y-y= x.

– Bước 3: Cuối cùng giá trị của x bằng x-y: x=x(bước1)-y(bước 2)= x+y-x=y.

Vậy kết quả của thuật toán là x=y và y=x;

Bài 3 (trang 44 sgk Tin học lớp 8): Cho trước ba số dương a, b và c. Hãy mô tả thuật toán cho biết ba số đó có thể là độ dài ba cạnh của một tam giác hay không.

Trả lời:

– Thuật toán ba số có là một cạnh của tam giác:

Bước 1: Nếu a – b < c và c < a – b thì ba số a,b và c là độ dài ba cạnh của một tam giác. Nếu không thỏa mãn 1 trong 2 điều kiện thì ngược lại.

Bước 2: Kết thúc thuật toán.

Bài 4 (trang 45 sgk Tin học lớp 8): Cho hai biến x và y. Hãy mô tả thuật toán đổi giá trị của các biến nói trên (nếu cần) để x và y theo thứ tự có giá trị không giảm.

Trả lời:

– Thuật toán đổi giá trị theo thứ tự có giá trị không giảm:

Bước 1: Nhập giá trị của x, y.

Bước 3: Tráo đổi giá trị của x và y.

Thuật toán tráo đổi giá trị:

Bước 1: Khai báo một biến cùng kiểu dữ liệu với x,y là tg.

Bước 2: Gán giá trị tg:=a;

Bước 3: Gán giá trị a:=b;

Bước 4: Gán giá trị b:=tg;

Bước 4: Kết thúc thuật toán.

Bài 5 (trang 45 sgk Tin học lớp 8): Hãy cho biết kết quả của thuật toán sau:

Bước 1. SUM ← 0;i ← 0.

Bước 3. i ← i + 1; SUM ← SUM + i. Quay lại bước 2.

Bước 4. Thông báo giá trị SUM và kết thúc thuật toán.

Trả lời:

– Bước 1: Gán giá trị cho 2 biến SUM = 0 và i = 0.

– Bước 3: Tăng giá trị i thêm 1. Giá trị của SUM bằng SUM + i.

– Bước 4: Thông báo giá trị SUM. Thuật toán kết thúc.

Kết quả thực hiện thuật toán SUM = 5050.

Bài 6 (trang 45 sgk Tin học lớp 8): Hãy mô tả thuật toán tính tổng các số dương trong dãy số A = {a 1, a 2…, a n) cho trước.

Trả lời:

Bước 2: SUM ← 0; i ← 0.

Bước 4: i ← i + 1;

Bước 5: Nếu i <= n thì quay lại bước 3.

Bước 6: Thông báo giá trị SUM. Kết thúc thuật toán.

Tìm hiểu mở rộng (trang 45 sgk Tin học lớp 8): 1. Một trong những yêu cầu quan trọng của thuật toán và mô tả thuật toán là tính dừng, tức thuật toán phải được kết thúc sau một số hữu hạn bước¬. Việc mô tả thuật toán có bước nhảy (ví dụ, chuyển đến bước 5, trở lại bước 2) có thể gây khó khăn nhất định cho việc theo dõi tính dừng của thuật toán. Hãy tìm hiểu và cho ít nhất một ví dụ về thuất toán không dừng.

2. Để biểu diễn thuật toán cho sơ đồ khối, người ta thường phân biệt hai loại thao tác chính trong thuật toán: 1) Thao tác chọn lựa theo một điều kiện nào đó (được biểu diễn bằng khối hình thoi); 2) Các thao tác không thuộc loại chọn lựa được xếp vào loại hành động (được biểu diễn bằng khối hình chữ nhật). Ngoài ra, người ta còn thường dùng các khối hình bình hành để biểu diễn thao tác nhập/ xuất dữ liệu và khối elip để biểu diễn khối bắt đầu và kết thúc thuật toán (h.1.32).

Em có thể vẽ sơ đồ khối biểu diễn các thuật toán nêu trong bài học không?

Trả lời:

Giải Bài Tập Hình Học Lớp 8 Chương 4 Bài 3

Giải bài tập Hình Học lớp 8 Chương 4 Bài 3: Thể tích của hình hộp chữ nhật

Giải bài tập Hình Học lớp 8 Chương 4 Bài 3: Thể tích của hình hộp chữ nhật – chúng tôi xin giới thiệu tới các em học sinh cùng quý phụ huynh Giải bài tập Hình Học lớp 8 Chương 4 Bài 3: Thể tích của hình hộp chữ nhật để tham khảo chuẩn bị tốt cho bài giảng học kì mới sắp tới đây của mình. Mời các em tham khảo.

Giải bài tập Hình Học lớp 8 Chương 4 Bài 3: Thể tích của hình hộp chữ nhật

Hướng dẫn giải KIẾN THỨC CƠ BẢN bài tập lớp 8 Bài 3: Thể tích của hình hộp chữ nhật

Hai mặt phẳng vuông góc

a) Đường thẳng vuông góc với mặt phẳng

Nếu một đường thẳng vuông góc với một mặt phẳng tại điểm A thì nó vuông góc với mọi đường thẳng của mặt phẳng đi qua A.

V = a.b.c

b) Hai mặt phẳng vuông góc

Khi một tròn hai mặt phẳng (ABCD) và (A’B’C’D’) chứa một đường thẳng vuông góc với mặt phẳng còn lại thì người ta nói hai mặt phẳng đó vuông góc với nhau.

V = a3 HƯỚNG DẪN LÀM BÀI 10. 1.Gấp hình 33a theo các nét đã chỉ ra thì có được một hình hộp chữ nhật hay không?

Kí hiệu : mp (ABCD)⊥ mp ( (A’B’C’D’)

a, b, c là ba kích thước của hình hộp

Thể tích hình lập phương cạnh a là

Kí hiệu các đỉnh hình hộp gấp được như hình 33b

a) Đường thẳng BF vuông góc với những mặt phẳng nào?

b) Hai mặt phẳng (AEHD) và (CGHD) vuông góc với nhau, vì sao?

Hướng dẫn:

Gấp hình 33a theo các nét đã chỉ ra thì có được một hình hộp chữ nhật

a) Trong hình hộp chúng tôi thì:

BF song song với mp (DHGC) và mp (DHEA).

b) Hai mặt phẳng (AEHD) và (CGHD) vuông góc với nhau vì mặt phẳng (AEHD) chứa đường thẳng EH vuông góc với mặt phẳng (CGHD) tại H.

a) Tính các kích thước của một hình hộp chữ nhật, biết rằng chúng tỉ lệ với 3, 4, 5 và thể tích của hình hộp này là 480cm3

b) Diện tích toàn phần của một hình lập phương là 486cm2. Thể tích của nó bằng bao nhiêu?

Hướng dẫn:

Gọi a, b, c là ba kích thước của hình hộp chứ nhật.

Vì a, b, c tỉ lệ với 3; 4; 5 nên

Mà thể tích hình hộp là 480cm 3 nên a.b.c = 480 (2)

Từ (1) và (2) suy ra 3t.4t.5t = 480

Do đó: a = 6(cm); b = 8(cm); c = 10 (cm)

Vậy các kích thước của hình hộp là 6cm; 8cm; 10cm.

A, B, C và D là những đỉnh của hình hộp chữ nhật cho ở hình 34. Hãy điền số thích hợp vào các ô trống ở bảng sau:

Kết quả bài 12 minh họa công thức quan trọng sau:

DA =

Hướng dẫn:

13.

Trước hết ta chứng minh hệ thức sau: DA 2 = AB 2 + BC 2 + CD 2

Áp dụng hệ thức này ta sẽ tính được độ dài một cạnh khi biết ba độ dài kia

do đó ta có:

a) Viết công thức tính thể tích của hình hộp chữ nhật chúng tôi (h35)

b) Điền số thích hợp vào các ô trống ở bảng sau:

Hướng dẫn:

V ABCD.MNPQ = MN. NP. NB

1) 2) 3) 4)

1) Diện tích 1 đáy: 22 x 14 = 308

Thể tích: 22x 14 x 5 = 1540

2) Chiều rộng: 90 : 18 = 5

Thể tích: 18 x 5 x 6 = 90 x 6 = 540

3) Chiều rộng: 1320 : (15 x 8) = 11

Diện tích 1 đáy: 15 x 11 = 165

4) Chiều rộng: 260 : 20 = 13

Chiều cao: 2080 : 260 = 18

Giải bài tập Hình Học lớp 8 Chương 4 Bài 3: Thể tích của hình hộp chữ nhật

Để có đầy đủ, chi tiết và đúng định dạng, bạn vui lòng tải về để xem. Đừng quên theo dõi Đề Thi Thử Việt Nam trên Facebook để nhanh chóng nhận được thông tin mới nhất hàng ngày.