1. Trang chủ
  2. » Địa lý

Cau hoi Bt SGK tin 8 moi

40 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ThuËt to¸n 1. Sö dông biÕn phô z.. Mét ngêi nghÜ trong ®Çu mét sè tù nhiªn nhá h¬n 10. Lu©n phiªn nhau nghÜ vµ ®o¸n. 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.[r]

(1)

Bài Máy tính

và chơng trình máy tính

Câu hỏi tập

1. Khi soạn thảo văn máy tính yêu cầu chơng trình tìm kiếm cụm từ văn thay cụm từ khác, thực chất ta yêu cầu máy tính thực lệnh gì? Có thể thay đổi thứ tự lệnh mà khơng thay đổi kết đợc khơng?

2. Trong ví dụ rơ-bốt, thay đổi thứ tự hai lệnh chơng trình, rơ-bốt có thực đợc cơng việc nhặt rác khơng? Hãy xác định vị trí rơ-bốt sau thực xong lệnh “Hãy quét nhà” đa lệnh để rơ-bốt trở lại vị trí ban đầu

3. Hãy cho biết lí cần phải viết chơng trình để điều khiển máy tính

4. Tại ngời ta phải tạo ngôn ngữ lập trình điều khiển máy tính ngôn ngữ máy?

5. Chơng trình dịch làm gì?

6. Hóy cho bit cỏc bc cn thực để tạo chơng trình máy tính

Híng dÉn tr¶ lêi

1. Khi soạn thảo văn máy tính u cầu chơng trình tìm kiếm cụm từ văn thay cụm từ khác, thực chất ta u cầu máy tính thực nhiều lệnh Có thể mô tả lệnh với mức độ chi tiết khác Dới mô tả lệnh theo trật tự thực việc thay cụm từ tìm đợc:

1 Sao chép cụm từ cần tìm vào nhớ (ta gọi cụm từ 1) Sao chép cụm từ thay cụm từ tìm đợc vào nhớ (cụm từ 2) Tìm cụm từ văn

4 Xóa cụm từ tìm đợc văn bn

5 Sao chép cụm từ vào vị trí trỏ văn Dới mô tả cách chi tiết hơn:

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

2 Sao chép dãy kí tự thay dãy kí tự tìm đợc vào nhớ (dãy 2) Đặt trỏ trớc kí tự văn

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

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

(2)

7 Sao chÐp d·y vào vị trí trỏ soạn thảo văn Di chun trá sang ph¶i mét kÝ tù quay lại lệnh

Qua cỏc lnh lit kê theo thứ tự nói trên, dễ thấy thay đổi thứ tự thực vài lệnh (1 2), nhng nói chung việc thay đổi thứ tự lệnh không cho kết mong muốn

2. Nếu thay đổi thứ tự hai lệnh chơng trình điều khiển rơ-bốt, rơ-bốt khơng thực đợc cơng việc nhặt rác rơ-bốt khơng hớng khơng tới vị trí có rác, thực việc nhặt rác vị trí khơng có rác, Ví dụ, thay đổi thứ tự lệnh “Tiến bớc” lệnh “Quay trái, tiến bớc”, tác dụng hai lệnh “Quay trái tiến bớc” Khi rơ-bốt nhặt rác vị trí khơng có rác Nói chung, lệnh điều khiển rơ-bốt hay chơng trình cần đợc đa theo thứ tự xác định cho ta đạt kết mong muốn Trong số trờng hợp, ta đa lệnh khác nhau, nhng đạt kết Chẳng hạn, ví dụ rơ-bốt, thay cho hai câu lệnh đầu tiên, ta điều khiển rơ-bốt đến vị trí có rác lệnh sau: “Quay trái, tiến bớc” “Quay phải, tiến bớc” “Quay phải, tiến bớc”, “Quay trái, tiến bớc” “Quay trái, tiến bớc” Trong số trờng hợp khác, việc thay đổi thứ tự vài câu lệnh cho kết nh yêu cầu

Tuy nhiên, nh nguyên tắc chung, việc thay đổi thứ tự câu lệnh khơng cho kết Có thể liên hệ với thứ tự bớc thuật tốn Bài

Vị trí rơ-bốt sau thực xong lệnh “Hãy quét nhà” vị trí có thùng rác (ở góc đối diện) Ta có nhiều cách khác để đa hai lệnh để rơ-bốt trở lại vị trí ban đầu mình, cách hai lệnh “Quay trái, tiến bớc” “Quay trái, tiến bớc”

3. Lí do: Điều khiển máy tính tự động thực công việc đa dạng phức tạp mà lệnh đơn giản không đủ để dẫn

4. Tuy ngôn ngữ máy loại ngôn ngữ lập trình, nhng hiểu ngơn ngữ lập trình ngơn ngữ lập trình bậc cao Trong ngôn ngữ máy thị đợc biểu diễn số nhị phân Ngơn ngữ máy khó đọc khó sử dụng, ngôn ngữ máy ngôn ngữ mà vi xử lí nhận biết thực cách trực tiếp Ngồi yếu điểm chơng trình viết ngơn ngữ máy 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 yếu điểm trân ngôn ngữ máy Ngôn ngữ lập trình sử dụng cụm từ tự nhiên nên dễ nhớ, dễ học không phụ thuộc vào phần cứng máy tính

5. Chơng trình dịch chơng trình có chức chuyển đổi chơng trình đợc viết ngơn ngữ lập trình thành chơng trình thực đợc máy tính Nh vậy, chơng trình dịch chuyển đổi tệp gồm dòng lệnh đợc soạn thảo thành tệp chạy máy tính

(3)(4)

Bµi Lµm quen víi Ngôn ngữ lập trình

Câu hỏi tập

1. HÃy cho biết thành phần ngôn ngữ lập trình

2. Ta viết chơng trình câu lệnh có chữ tiếng Việt, chẳng hạn “rẽ trái”, đợc không? Tại sao?

3. Tên chơng trình gì? Cho biết khác biệt từ khóa tên, cách đặt tên chơng trình

4. Trong số tên sau ngời viết chơng trình đặt chơng trình Pascal, tên hợp lệ tên không hợp lệ: a, Tamgiac, 8a, Tam giac, beginprogram, end, b1, abc?

5. Hãy cho biết phần cấu trúc chơng trình vai trị chúng Trong phần đó, phần quan trọng nhất?

6. H·y cho biết chơng trình Pascal sau có hợp lệ không, 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

1. Các thành phần ngơn ngữ lập trình gồm bảng chữ cái các quy tắc để viết câu lệnh (cú pháp) có ý nghĩa xác định, cách bố trí câu lệnh, cho tạo thành chơng trình hồn chỉnh chạy đợc máy tính Lu ý quy tắc nhắc đến bao gồm thuật ngữ chuyên môn cú pháp ngữ nghĩa Xem SGK, Mục 2, Bài

(5)

begin

program CT_thu;

writeln(' Chào bạn'); end.

3. Tờn chơng trình dãy chữ hợp lệ đợc lấy từ bảng chữ ngôn ngữ lập trình Từ khố ngơn ngữ lập trình (hay đợc gọi từ dành riêng) tên đợc dùng cho mục đích sử dụng ngơn ngữ lập trình quy định, khơng đợc dùng cho mục đích khác

Ngời lập trình đặt tên cách tùy ý nhng phải tn thủ quy tắc ngơn ngữ lập trình nh chơng trình dịch, (1) Hai đại lợng khác phải có tên khác nhau; (2) Tên khơng đợc trùng với từ khố

4. Các tên hợp lệ: a, Tamgiac, beginprogram, b1, abc, tên không hợp lệ: 8a (bắt đầu số), Tam giac (cã dÊu c¸ch), end (trïng víi tõ khãa) 5. Xem SGK, Mơc 4, Bµi

6. a) Chơng trình chơng trình Pascal đầy đủ hồn tồn hợp lệ, chơng trình chẳng thực điều Phần thiết phải có chơng trình phần thân chơng trình đợc đảm bảo hai từ begin end. (có dấu chấm)

(6)

Bài Chơng trình máy tính

Và Dữ LIệU

Câu hỏi tập

1. HÃy nêu lí cho thấy cần thiết phải phân chia liệu thành kiểu!

2. Hãy nêu hai kiểu liệu phép tốn thực đợc kiểu liệu, nhng phép tốn khơng có nghĩa kiểu liệu 3. Cho dãy chữ số 2010 Dãy chữ số thuộc kiểu liệu nào?

4. Cho hai xâu kí tự “Lớp” “8A” Hãy thử định nghĩa “phép tốn” thực đợc hai xâu kí tự

5. HÃy phân biệt ý nghĩa câu lệnh Pascal sau đây:

Writeln('5+20=','20+5'); v Writeln('5+20=',20+5); Hai lnh sau có tơng đơng với khơng? Tại sao?

Writeln('100'); Writeln(100);

6. Viết biểu thức toán dới với kí hiệu Pascal:

a.

a c

b d

b. ax2bx c

c.

1

( 2) a

b

x 

d.

2

(ab)(1c)

7. Chuyển biểu thức đợc viết Pascal sau thành biểu thức toán:

a. (a+b)*(a+b)-x/y b. b/(a*a+c)

c. a*a/(2*b+c)*(2*b+c) d. 1+1/2+1/2*3+1/3*4+1/4*5

8. Hãy xác định kết phép so sánh sau đây: a. 15  ≥

b. (20  15)2 25

(7)

d x > 10  3x

9. ViÕt c¸c phép so sánh Bài tập với kí hiƯu Pascal

10.Nêu số ví dụ tơng tác ngời máy tính chơng trình hoạt động

Híng dÉn tr¶ lêi

1. Vì liệu thao tác xử lí liệu đa dạng, lí dễ nhận thấy việc phân chia liệu thành kiểu giúp xác định phép xử lí (phép tốn) thực kiểu liệu Ngoài việc phân chia kiểu liệu cho biết giá trị (phạm vi) liệu, giúp cho việc quản lý tài nguyên máy tính (đặc biệt nhớ trong) cách hiệu

2. Cã thể nêu ví dụ sau đây:

a. D liệu kiểu số liệu kiểu xâu kí tự Phép cộng đợc định nghĩa liệu số, nhng khơng có nghĩa liệu kiểu xâu

b. Dữ liệu kiểu số nguyên liệu kiểu số thực Phép chia lấy phần nguyên phép chia lấy phần d có nghĩa liệu kiểu số nguyên, nhng nghĩa liệu kiểu số thực

3. Dãy chữ số 2010 thuộc kiểu liệu số nguyên, số thực kiểu xâu kí tự Tuy nhiên, để chơng trình dịch Turbo Pascal hiểu 2010 liệu kiểu xâu, phải viết dãy số cặp dấu nháy đơn (’)

var a: real; b: integer; begin

writeln('123'); writeln(123); a:=2010; b:=2010; end.

4. Cho hai xâu kí tự “Lớp” “8A” Có thể định nghĩa nhiều “phép toán” tập hợp liệu kiểu xâu Chẳng hạn phép ghép: Lớp + 8A = Lớp8A 5. Lệnh Writeln('5+20=','20+5'); in hình hai xâu ký tự '5+20'

vµ '20+5' liỊn nhau: 5+20 = 20+5, lệnh Writeln('5+20=',20+5); in hình xâu ký tự '5+20' tổng 20+5 nh sau: 5+20=25

Hai lệnh Writeln('100'); Writeln(100); không tơng đơng với lệnh in hình xâu ký tự biểu diễn số 100 lệnh in hình số 100

6. C¸c biĨu thøc Pascal: a. a/b+c/d

(8)

c. 1/x-a/5*(b+2)

d. (a*a+b)*(1+c)*(1+c)*(1+c) 7. Các biểu thức toán tơng ứng:

a.

2 (a b) x

y

 

b. b ac

c.

2 (2 )

a b c

d.

1 1

1

2 2.3 3.4 4.5

   

8. Kết phép so sánh: a. Đúng

b. Sai c. §óng

d. §óng x > 2.5; ngợc lại, phép so sánh có kết sai

9. a) 15-8>=3; b) (20-15)*(20-15)<>25; c) 11*11=121; d) x>10-3*x 10.Một số ví dụ tơng tác ngời máy tính chơng trình hoạt động:

(9)

Bài Sử DụNG biến TRONG CHƯƠNG

TRìNH

Câu hỏi tập

1. Biến gì? HÃy cho biết phép gán giá trị cho biến gì, cho ví dụ giải thích

2. Khai báo biến gồm gì? Hãy thử mơ tả hoạt động máy tính thực lệnh khai báo biến chơng trình

3. Giả sử A đợc khai báo biến với kiểu liệu số thực, X biến với kiểu liệu xâu Các phép gán sau có hợp lệ khơng?

a) Gán số nguyên cho biến A b) Gán số 3242 cho biến X c) Gán xâu 3242 cho biến X d) Gán xâu Ha Noi cho biến A

4. Nêu khác biến và cho vài ví dụ biến 5. Giả sử ta khai báo hằng Pi với giá trị 3.14 Có thể gán lại giá trị

3.1415 cho Pi phần thân chơng trình đợc không? Tại sao? 6. Trong Pascal, khai báo sau đúng?

a) var tb: real; b) var 4hs: integer; c) const x: real; d) var R = 30;

7. Hãy liệt kê lỗi chơng trình dới sửa lại cho đúng: var a,b:= integer;

const c:= 3; begin

a:= 200 b:= a/c; write(b); readln end

8. Hãy cho biết kiểu liệu biến cần khai báo dùng để viết chơng trình để giải toán dới đây:

(10)

b) TÝnh kÕt qu¶ c cđa phÐp chia lÊy phần nguyên kết d của phép chia lấy phần d hai số nguyên a b

9. Giả sử cần lập danh sách bạn lớp ghi lại điểm thi môn Tin học bạn (điểm số nguyên) tính điểm trung bình môn Tin học toàn lớp Nếu cần viết chơng trình, em cần sử dụng biến cho bạn?

10.Vit chng trỡnh tớnh din tích chu vi đờng trịn có bán kính r, r số nguyên dơng đợc nhập từ bàn phím

Híng dÉn tr¶ lêi

1. Xét mặt lập trình, biếnđại lợng đợc dùng để lu trữ liệu liệu đợc biến lu trữ thay đổi thực chơng trình Xét mặt lu trữ liệu, xem biến “tên” vùng nhớ đợc dành sẵn để lu liệu suốt trình thực chơng trình

Gán giá trị cho biến thực chất lu liệu tơng ứng vào vùng nhớ đợc đặt tên dành riêng cho biến Việc thực tính tốn xử lí với biến có nghĩa thực tính tốn xử lí với liệu đợc gán Giả sử X đợc khai báo biến với kiểu liệu số nguyên X đợc gán liệu số Sau khai báo, chơng trình dành riêng vùng nhớ cho biến X, gán cho X vùng nhớ lu liệu Lệnh ghi X hình có nghĩa ghi số hình

Lu ý Khi vùng nhớ đợc khai báo để lu liệu làm giá trị biến, vùng nhớ khơng đợc phép sử dụng vào mục đích khác Do vậy, kĩ lập trình sử dụng biến tốt, trờng hợp việc sử dụng nhớ bị hạn chế Nhng với cơng nghệ nay, nhớ máy tính có dung lợng lớn nên vấn đề hạn chế sử dụng biến chơng trình khơng cịn vấn đề cấp thiết

2. ViƯc khai b¸o biến gồm: Khai báo tên biến khai báo kiểu d÷ liƯu cđa biÕn

Khi khai báo biến, ngồi việc tên biến đợc đa vào danh sách đối tợng quản lí, máy tính (thơng qua chơng trình dịch) xác định kiểu biến dành vùng nhớ có độ lớn thích hợp với phạm vi kiểu biến để lu giá trị biến Ví dụ, để lu giá trị số nguyên, khai báo biến kiểu byte, máy tính dành vùng nhớ có độ lớn byte, nhng khai báo biến kiểu ngun, máy tính dành vùng nhớ có độ lớn byte, vùng nhớ byte đợc dành cho biến đợc khai báo với kiểu số thực, Nhờ việc sử dụng nhớ hiệu Ngồi máy tính biết áp dụng phép tốn thích hợp giá trị bin

3. Đáp án: a) Hợp lệ; b) Không hợp lệ; c) Hợp lệ; d) Không hợp lệ

4. Mặc dù phải khai báo trớc sử dụng chơng trình, khác biến chỗ giá trị khơng thay đổi suốt q trình thực chơng trình, cịn giá trị biến thay đổi đợc thời điểm thực chơng trình

(11)

6. a) Hợp lệ; b) Khơng hợp lệ tên biến khơng hợp lệ; c) Khơng hợp lệ phải đợc cho giá trị khai báo; d) c) Khơng hợp lệ biến không đ-ợc gán giá trị khai báo, cách gán giá trị không cú pháp 7. Các lỗi chơng trình: (1) Thừa dấu dịng (chỉ cần dấu hai

chấm); (2) Thừa dấu hai chấm dòng (với cần dấu bằng); (3) Thiếu dấu chấm phẩy dòng 4; (4) Khai báo kiểu liệu biến b không phù hợp: Khi chia hai số nguyên, kết luôn số thực, cho dù có chia hết hay khơng Do cần phải khai báo biến b là biến có kiểu liệu số thực

8. C¸ch khai b¸o hợp lý:

a) Các biến a h kiểu số nguyên; biến S: kiểu số thực b) Cả bốn biến a, b, c d kiểu số nguyên

9. Cần sử dụng biến sau với học sinh lớp: Ten là biến kiểu xâu, Diem là biến kiểu số nguyên Trungbinh là biến kiểu số thực

10.Chơng trình Pascal nh sau đây: uses crt;

var r: integer; C,S: real; begin

clrscr;

write('Nhap ban kinh r = '); readln(r); C:=2*Pi*r;

S:=Pi*r*r;

(12)

Bài Từ BàI TOáN ĐếN CHƯƠNG TRìNH

Câu hỏi tập

1. Hóy ch INPUT OUTPUT toán sau: a) Xác định số học sinh lớp mang họ Trần

b) Tính tổng phần tử lớn dãy n số cho trớc c) Tìm số số có giá trị nhỏ n số ó cho

2. Giả sử x y biến số HÃy cho biết kết việc thùc hiƯn tht to¸n sau:

 Bíc xx + y

 Bíc yx - y  Bíc xx - y

3. Cho trớc ba số dơng a, b c Hãy mô tả thuật tốn giải ghi kết ba số ba cạnh tam giác hay không

4. Cho hai biến x y Hãy mô tả thuật tốn đổi giá trị biến nói để x y có giá trị tăng dần

5. Cho ba biến x, y z Hãy mô tả thuật tốn đổi giá trị biến nói để x, y z có giá trị tăng dần Hãy xem lại Ví dụ để tham khảo

6. HÃy mô tả thuật toán tính tổng phÇn tư cđa d·y sè a1, a2, , an chotríc

7. Hãy mơ tả thuật tốn nhập n số a1, a2, , an từ bàn phím ghi hình số nhỏ số Số n cũng đợc nhập từ bàn phím

8. H·y m« tả thuật toán giải toán sau:

a) Đếm số số dơng dÃy số A = {a1, a2, , an} cho tríc b) H·y m« tả thuật toán tính tổng số dơng dÃy sè A = {a1,

a2, , an} chotríc

Hớng dẫn trả lời

1. Đáp án:

(13)

b) INPUT: D·y n

OUTPUT: Tæng phần tử lớn c) INPUT: DÃy n số

OUTPUT: Số số có giá trị nhá nhÊt

2. Sau ba bớc, x có giá trị ban đầu y y có giá trị ban đầu x, tức giá trị hai biến x y đợc hoán đổi cho

3. Mô tả thuật toán:

INPUT: Ba số dơng a >0, b >0 c >0

OUTPUT: Thông báo a, b c ba cạnh tam giác thông báo a, b c ba cạnh tam giác

Bíc 1: TÝnh a + b NÕu a + bc, chun tíi bíc Bíc 2: TÝnh b + c NÕu b + cc, chun tíi bíc Bíc 3: TÝnh a + c NÕu a + cb, chun tíi bớc

Bớc 4: Thông báo a, b c ba cạnh tam giác kết thúc thuật toán

Bớc 5: Thông báo a, b c ba cạnh tam giác kết thúc thuật toán

4. Có thể giải toán cách sử dụng biến phụ không dùng biến phụ

Thuật to¸n Sư dơng biÕn phơ z INPUT: Hai biÕn x y

OUTPUT: Hai biÕn x y có giá trị tăng dần Bớc 1: Nếu xy, chuyển tíi bíc

Bíc 2: z x Bíc 3: x y Bíc 4: y z

Bíc 5: KÕt thúc thuật toán

Thuật toán Không sử dụng biến phụ (Xem Bài tập trên) INPUT: Hai biÕn x y

OUTPUT: Hai biÕn x y có giá trị tăng dần Bớc 1: Nếu xy, chun tíi bíc

(14)

Bíc 4: xxy

Bíc 5: KÕt thóc tht to¸n

5. Trớc hết, cần, ta hoán đổi giá trị hai biến x y để chúng có giá trị tăng dần Sau lần lợt so sánh z với x z với y,sau đóthực bớc hốn đổi giá trị cần thiết (xem lại Ví dụ Bài 5, SGK)

INPUT: Ba biÕn x, y z

OUTPUT: Ba biÕn x, y z cã giá trị tăng dần Bớc 1: Nếu xy, chuyển tới bíc

Bíc 2: zx, xy, yz (Sau bíc x y có giá trị tăng dần.) Bớc 3: NÕu yz , chun tíi bíc

Bớc 4: Nếu z < x, tx , xz zt, (với t là biến trung gian) chuyển đến bớc

Bíc 5: ty , yz zt Bíc 6: KÕt thóc tht toán

6. Thuật toán tính tổng phần tử cđa d·y sè A = {a1, a2, , an} chotríc INPUT: n vµ d·y n a1, a2, , an

OUTPUT: Tæng S = a1 + a2 + + an

Bíc 1: S 0; iBíc 2: ii +

Bíc 3: NÕu in, SS + ai quay lại bớc

Bớc 4: Thông báo S kết thúc thuật toán

7. Thuật tốn tìm số nhỏ dãy n số a1, a2, , an cho trớc Thuật toán tơng tự nh thuật tốn tìm giá trị lớn dãy n số cho (xem Ví dụ 6, Bài 5) Điều khác biệt thêm bớc nhập số n dãy n số a1,

a2, , an

INPUT: n vµ d·y n a1, a2, , an OUTPUT: Min = Min{ a1, a2, , an}

Bíc 1: NhËp n vµ d·y n a1, a2, , an

Bíc 2: G¸n Mina1; i

Bíc 3: ii +

Bớc 4: Nếu i > n, chuyển đến bớc

Bíc 5: NÕu ai < Min, gán Minai quay lại bớc Trong trờng hợp ng-ợc lại, quay lại bớc

(15)

INPUT: n vµ d·y n a1, a2, , an OUTPUT: Soduong = Sè c¸c sè ai >

Bíc 1: G¸n SoduongBíc 2: ii +

Bớc 3: Nếu i > n, chuyển đến bớc

Bíc 4: NÕu ai > 0, gán Soduong Soduong +1 quay lại bớc Trong tr-ờng hợp ngợc lại, quay lại bớc

Bớc 5: Thông báo giá trị Soduong kết thúc thuật toán

b) Tính tổng số dơng d·y sè A = {a1, a2, , an} chotríc INPUT: n vµ d·y n a1, a2, , an

OUTPUT: S = Tỉng c¸c sè ai > d·y a1, a2, , an

Bíc 1: S 0; iBíc 2: ii +

Bíc 3: Nếu ai > 0, SS + ai; ngợc lại, giữ nguyên S

(16)

Bài CÂU LệNH ĐIềU KIệN

Câu hỏi tập

1. Em nêu vài ví dụ hoạt động ngày phụ thuộc vào điều kiện

2. Hãy cho biết điều kiện phép so sánh sau cho kết hay sai:

a) 123 lµ sè chia hÕt cho

b) NÕu ba cạnh a, b c của tam giác tháa m·n c2 > a2 + b2 th×

tam giác có góc tù (> 90o).

c) 152 > 200.

d) n! ≤n2 víi mäi sè tù nhiªn n.

e) x2 < 1.

3. Hai ngời bạn chơi trị đốn số Một ngời nghĩ đầu số tự nhiên nhỏ 10 Ngời đốn xem bạn nghĩ số Nếu đoán đúng, ngời đoán đợc cộng thêm điểm, sai không đợc cộng điểm Luân phiên nghĩ đoán Sau 10 lần, đợc nhiều điểm hơn, ngời thắng

Hãy phát biểu điều kiện trị chơi gì? Hoạt động đợc thực hiện, điều kiện thoả mãn? Hoạt động đợc thực hiện, điều kiện khơng thoả mãn?

4. Một trị chơi máy tính hứng thú em nhỏ hứng trứng Một trứng rơi từ vị trí ngẫu nhiên cao Ngời chơi dùng phím mũi tên   để điều khiển biểu tợng khay di chuyển theo chiều ngang để hứng trứng Nếu hứng trợt, trứng bị rơi, vỡ ngời chơi tiếp tục di chuyển khay để hứng trứng khác

Điều kiện để điều khiển khay trị chơi gì? Hoạt động đợc thực hiện, điều kiện thoả mãn? Hoạt động đ-ợc thực hiện, điều kiện khơng thoả mãn?

(17)

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; 6. Sau câu lệnh sau

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

giá trị biến X sẽ bao nhiêu, trớc giá trị X bằng 5? 7. Giả sử cần viết chơng trình nhập số tự nhiên vào máy tính ghi

ra hình kết số nhập số chẵn hay lẻ, chẳng hạn “5 số lẻ”, “8 số chẵn” Hãy mơ tả bớc thuật tốn để giải tốn viết chơng trình Pascal để thực thuật tốn

8. Viết chơng trình nhập sử dụng hai biến X Y để lu hai số nhập từ bàn phím, sau đổi giá trị biến để X Y có giá trị tăng dần (xem Bài tập 3, Bài 5)

9. Hãy mơ tả thuật tốn viết chơng trình nhập ba số thực a, b c từ bàn phím vào máy tính, sau xếp ghi số hình theo thứ tự tăng dần (xem Bài tập thuật tốn Ví dụ 5, Bài 5) 10. Hãy mơ tả thuật tốn viết chơng trình nhập ba số thực a, b c từ bàn phím vào máy tính, sau kiểm tra ba số cạnh tam giác đều, tam giác cân tam giác vng hay khơng ghi kết hình (xem Bài 3, Bài thực hành 4)

Híng dÉn tr¶ lêi

1. Có thể nêu nhiều vài ví dụ hoạt động ngày phụ thuộc vào điều kiện Dới số ví dụ:

a) Nếu đạt điểm tổng kết năm cao 8.5, em đạt danh hiệu “Học sinh giỏi

b) Nếu khơng đợc cắm điện, máy tính để bàn em không hoạt động đợc

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

d) Nếu không đợc tới đủ nớc thời kì phát triển, lúa khụng cho thu hoch cao

2. Đáp án: a) §óng; b) §óng; c) Sai; d) Sai; e) Sai, nÕu x ≥

(18)

Điều kiện trị chơi ngời thứ hai đốn 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ự, ngời thứ hai nghĩ số tự nhiên m, điều kiện thứ hai ngời thứ đốn số m Khi Điểm_1 đợc cộng thêm 1; ngợc lại, Điểm_1 đợc giữ nguyên Điều kiện trò chơi sau 10 lần, Điểm_1 > Điểm_2 ngời thứ đợc tuyên bố thắng cuộc; ngợc lại, ngời thứ hai thắng Trờng hợp Điểm_1 = Điểm_2 khơng có ngời thắng ngời thua

4. Điều kiện để điều khiển khay trị chơi ngời chơi nhấn phím mũi tên   Nếu ngời chơi nhấn phím , biểu tợng khay di chuyển sang phải đơn vị khoảng cách; phím  đợc nhấn, biểu tợng khay di chuyển sang trái Nếu phím khác ngồi hai phím mũi tên đợc nhấn, khay gi nguyờn v trớ

5. Đáp án: 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); d) Đúng, phép gán m:=n không phụ thuộc điều kiện x>5; ngợc lại, sai cần đa hai câu lệnh a:=b; m:=n; vào cặp từ khóa begin end; e) Sai (thừa dấu chấm phảy thø nhÊt); f) §óng

6. a) Vì 45 chia hết cho 3, điều kiện đợc thỏa mãn nên giá trị X đợc tăng lên 1, tức 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ị

7. Tht to¸n: Bíc 1 NhËp sè n

Bíc 2 NÕu n chia hÕt cho 2, ghi hình n là số chẵn; ngợc lại, ghi hình n là số lẻ

Bớc 3 Kết thúc thuật toán 8. Chơng trình Pascal:

uses crt;

var X,Y,Z: real; begin

clrscr;

write('Nhap so X = '); readln(Y); write('Nhap so Y = '); readln(Y); if X>Y then begin Z:=X; X:=Y; Y:=Z; writeln(X,’ ’,Y);

readln end. 9. Tht to¸n:

Bíc 1 NhËp ba sè A, B C

(19)

Bíc 4 NÕu C < B, X B, B C, C X

Bớc 5 Ghi giá trị biến theo thø tù A, B C vµ kÕt thóc thuật toán Chơng trình Pascal:

uses crt;

var A, B, C, X: integer; begin

clrscr;

write('Nhap so A: '); readln(A); write('Nhap so B: '); readln(B); write('Nhap so C: '); readln(C);

if A>B then begin X:=A; A:=B; B:=X end; if C<A then begin X:=A; A:=C; C:=X end; if C<B then begin X:=B; B:=C; C:=X end; writeln(A,' ',B,' ',C);

readln; end. 10.Tht to¸n:

Bíc 1 NhËp ba sè A, B C

Bíc 2 NÕu A + B < C hc B + C < A hoặc C + A < B, thông báo A, B C ba cạnh tam giác chuyển tới bớc

Bíc 3 NÕu A2+ B2= C hc B2+ C2= A2hc C2+ A2= B, thông báo A, B

C ba cạnh tam giác vuông chuyển tíi bíc

Bớc 4 Nếu A = B B = C, thông báo A, B C ba cạnh tam giác đều; ngợc lại, A = B hoặc B = C hoặc A = C, thông báo A, B C ba cạnh tam giác cân

Bíc 5 KÕt thúc thuật toán Chơng trình Pascal:

program Sap_xep; uses crt;

var A, B, C, X: integer; begin

clrscr;

(20)

then writeln('Day khong la ba canh cua mot tam giac') else if (A*A=B*B+C*C) or (B*B=A*A+C*C) or (C*C=A*A+B*B)

then writeln('Day la ba canh cua tam giac vuong') else if (A=B) and(B=C) and (A=C)

then writeln('Day la ba canh cua tam giac deu') else if (A=B) or (B=C) or (C=A)

then writeln('Day la ba canh cua tam giac can') else writeln('Day chi la ba canh cua tam giac thuong'); readln;

(21)

Bài CÂU LệNH lặp

Câu hỏi bµi tËp

1. Cho vài ví dụ hoạt động đợc thực lặp lại sống hàng ngày!

2. Hãy mô tả bớc thuật tốn để vẽ hình a) b) sau đây:

H×nh a) H×nh b)

Thao tác lặp cần thực để có hình điều kiện để kết thúc thao tác gỡ

3. HÃy cho biết tác dụng câu lƯnh lỈp!

4. Chúng ta nói thực hoạt động lặp, chơng trình kiểm tra điều kiện Với lệnh lặp

for <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; Pascal, điều kiện cần phải kiểm tra gì?

5. Chơng trình Pascal sau thực hoạt động nào? var i: integer;

begin

for i:=1 to 1000 do; end.

6. Hãy mô tả thuật tốn để tính tổng sau (n là số tự nhiên đợc nhập vào từ bàn phím):

A =

1 3+ 4+

1

3 5+

n(n+1)

7. Các câu lệnh Pascal có hợp lệ không, v× sao? a) for i:=100 to writeln(’A’); b) for i:=1.5 to 10.5 writeln(’A’); c) for i=1 to 10 writeln(’A’); d) for i:=1 to 10 do; writeln(’A’);

(22)

8. Một số ngôn ngữ lập trình, ví dụ Pascal, khơng có sẵn hàm tính lũy thừa Hãy mơ tả thuật tốn sử dụng câu lệnh lặp với số lần xác định trớc để viết chơng trình Pascal tính lũy thừa bậc n số nguyên X

9. Viết chơng trình Pascal nhập n số ngun từ bàn phím ghi hình số lớn số Số n cũng đợc nhập vào từ bàn phím (Xem mơ tả thuật tốn Ví dụ 6, Bài 5.)

10.Viết chơng trình Pascal nhập n số ngun từ bàn phím ghi hình số số dơng số Số n cũng đợc nhập vào từ bàn phím (Xem Bài tập 5a, Bài 5.)

Híng dÉn tr¶ lêi

1. Có thể nêu nhiều vài ví dụ hoạt động lặp Dới số ví dụ:

a) Hàng ngày em đặt đồng hồ báo thức lúc để dậy sớm tập thể dục

b) Hàng ngày (hoặc hàng tuần) bác lái xe khách lái xe để chuyên chở hành khách xuất phát từ thời gian địa điểm định theo tuyến đờng đợc xác định trớc

c) Mỗi lần đợc khởi động, máy tính em thực hoạt động tự kiểm tra thành phần máy tính, sau khởi động hệ điều hành theo trình tự đợc quy định trớc

2. a) Có thể thấy, để vẽ đợc hình a), thao tác cần thực vẽ nửa đờng tròn theo hớng định Ta gọi thao tác vẽ nửa đờng tròn theo hớng A là vẽ nửa đờng trịn có bán kính đơn vị điểm xác định, đờng kính nối điểm đầu điểm cuối nửa đờng trịn vng góc với h-ớng A và nửa đờng trịn “cong hớng A” (hình ) Ta xét A là hớng lên trên, xuống dới, sang trái, sang phải

Với hớng, ta định nghĩa phép toán sau: lên trên + = sang trái, sang trái +1 = xuống dới, xuống dới +1 = sang phải, sang phải +1 = lên trên Khi mơ tả bớc thuật tốn để vẽ hình a) nh sau:

Hình Hình Có thể mơ tả bớc thuật tốn để vẽ hình a) nh sau: Bớc 1 Xác định điểm bắt đầu vẽ X

(23)

Bíc 4 i = i +

Bớc 5 Nếu i > 4, chuyển bớc 6; ngợc lại, đặt hớng = hớng + quay lại bớc

Bíc 6 KÕt thóc tht to¸n

Lu ý Khi trình bày thuật tốn lần cho học sinh khơng nên định nghĩa phép tốn với hớng mà nên liệt kê đủ bốn hớng thuật toán

b) Thuật toán tơng tự nh Thao tác cần lặp lại vẽ hình vng Tại bớc, giữ ngun tâm hình vng thay đổi hớng vẽ góc 30o.

3. Câu lệnh lặp có tác dụng làm đơn giản giảm nhẹ cơng sức ngời viết chơng trình!

4. Chúng ta nói thực hoạt động lặp, chơng trình kiểm tra điều kiện Với lệnh lặp

for <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; Pascal, điều kiện cần phải kiểm tra giá trị biến đếm lớn giá trị cuối Nếu điều kiện không đợc thỏa mãn, câu lệnh đợc tiếp tục thực hiện; ngợc lại, chuyển sang câu lệnh chơng trình 5. Tuy có vịng lặp 1000 lần, nhng chơng trình Pascal nói khơng thực

hiện hoạt động Tuy nhiên câu lệnh hợp lệ 6. Thuật tốn tính tổng

A =

1 3+ 4+

1

3 5+

n(n+1)

Bíc 1 G¸n A  0, i 

Bíc 2 A  ( 2) i i .

Bíc 3 i i +

Bíc 4 NÕu i ≤ n, quay l¹i bíc

Bớc 5 Ghi kết A và kết thúc thuật to¸n

7. Trừ d), tất câu lệnh không hợp lệ: a) Giá trị đầu phải nhỏ giá trị cuối; b) Các giá trị đầu giá trị cuối phải số nguyên; c) Thiếu dấu hai chấm gán giá trị đầu; d) Thừa dấu chấm phảy thứ nhất, nh ta muốn lặp lại câu lệnh writeln(’A’)mời lần, ngợc lại câu lệnh hợp lệ; e) Biến x đã đợc khai báo nh biến có liệu kiểu số thực dùng để xác định giá trị đầu giá trị cuối câu lệnh lặp 8. Thuật toán:

Bớc 1 Nhập số n x

(24)

Bíc 4 NÕu i <n, quay l¹i bớc

Bớc 5 Thông báo kết A lµ lịy thõa bËc n cđa x vµ kÕt thóc thuật toán Chơng trình Pascal nh sau:

var n,i,x: integer; a: longint; begin

write('Nhap x='); readln(x); write('Nhap n='); readln(n); A:=1;

for i:=1 to n A:=A*X;

writeln(x,' mu ',n,' bang ',A); end.

9. Tht to¸n: Bíc 1 NhËp sè n

Bíc 2 A 32768 (g¸n sè nhá nhÊt cã thĨ c¸c sè kiĨu nguyªn cho A), i1

Bớc 3 Nhập số thứ i và gán giá trị vào biến A Bớc 4 Nếu Max < A, Max A

Bíc 5 ii +

Bíc 6 NÕu i n, quay lại bớc

Bớc 7 Thông báo kết Max là số lớn kết thúc thuật toán Chơng trình Pascal nh sau:

uses crt;

var n,i,Max,A: integer; begin

clrscr;

write('Nhap N='); readln(n); Max:=-32768;

for i:=1 to n do

begin write('Nhap so thu ',i,':'); readln(A); if Max<A then Max:=A end;

writeln('So lon nhat: ',Max); end.

(25)

chỉ cần so sánh giá trị đợc nhập vào, cần biến để lu lần lợt giá trị nhập vào đủ Một cách giải khác sử dụng biến mảng (xem Bài tập 6, Bài 9)

10.Lời giải tơng tự nh lời giải Bài Xem thuật toán lời giải Bài tập 5a, Bài Chơng trình Pascal cã thÓ nh sau:

uses crt;

var n,i,SoDuong,A: integer; begin

clrscr;

write('Nhap N='); readln(n); if n>0 then

begin

SoDuong:=0; for i:=1 to n do

begin write('Nhap so thu ',i,':'); readln(A); if A>0 then SoDuong:=SoDuong+1 end;

writeln('So cac so duong = ',SoDuong) end

(26)

Bài Lặp với số lần

CHƯA BIếT TRƯớC

Câu hỏi vµ bµi tËp

1. Nêu vài ví dụ hoạt động lặp với số lần cha biết trớc!

2. HÃy phát biểu khác biệt câu lệnh lặp với số lần lặp cho trớc câu lệnh lặp với số lần lặp cha biết trớc

3. Một chơng trình máy tính vẽ hình đờng tròn tiếp xúc điểm nh hình dới đây:

H×nh

Đờng trịn lớn có bán kính R đợc vẽ Sau bớc, bán kính đờng trịn giảm 1/2 đơn vị đờng tròn cuối đờng tròn nhỏ có bán kính lớn 1.2 đơn vị

Hãy mơ tả thuật tốn để có chơng trình

4. Hãy tìm hiểu thuật tốn sau cho biết thực thuật toán, máy tính vịng lặp? Khi kết thúc, giá trị S bằng bao nhiêu? Viết chơng trình Pascal thể thuật tốn đó!

a) Tht to¸n

Bíc 1 S  10, x  0.5

Bíc 2 NÕu S  5.2, chun tíi bíc Bớc 3 S S x quay lại bớc

Bớc 4 Thông báo S và kết thúc tht to¸n b) Tht to¸n

Bíc 1 S  10, n 

Bíc 2 NÕu S ≥ 10, chun tíi bíc Bíc 3 n n + 3, S Sn quay l¹i bíc Bíc 4 Thông báo S và kết thúc thuật toán Cho nhận xÐt cña em!

(27)

a) S:=0; n:=0; while S<=10 do

begin n:=n+1; S:=S+n end;

b) S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n;

6. HÃy lỗi câu lệnh sau ®©y: a) X:=10; while X:=10 X:=X+5; b) X:=10; while X=10 X=X+5;

c) S:=0; n:=0; while S<=10 n:=n+1; S:=S+n;

7. Viết thuật tốn 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 A (tức An), với n số tự nhiên A số thực đợc nhập vào từ bàn phím Hãy so sánh với thuật toán Bài tập 8, Bài

8. Hãy liệt kê bớc thuật toán với số lần lặp khơng xác định để tính tích N số tự nhiên đầu tiên, với N số tự nhiên đợc nhập vào từ bàn phím

9. Số nguyên p đợc gọi ớc số thực số nguyên q, q chia hết cho p p khác1 khác số q Viết thuật tốn chơng trình để nhập số tự nhiên n tính tổng ớc số thực n

10. Ngời ta chứng minh tổng sau

1

1 1 1 1 1

, , , ,

2 3 n

T T T T

n

       

luôn tăng (có thể lớn số bất kì), cộng thêm số nhỏ bớc.Viết chơng trình nhập số thực A tìm số tự nhiên nhỏ nhÊt N cho + 1/2 + 1/3 + + 1/N >A

Híng dÉn tr¶ lêi

1. Có thể nêu nhiều vài ví dụ hoạt động lặp với số lần lặp cha biết trớc Dới số ví dụ:

a) Tìm từ định bị gõ sai tả văn sửa lại cho Số từ cần phải sửa cha đợc biết trớc

(28)

c) Trong xởng may, cô công nhân may chi tiết áo, hay quần với đờng may đợc thiết kế trớc May xong sản phẩm, cô công nhân may sản phẩm hết làm việc

2. Sự khác biệt câu lệnh lặp với số lần lặp cho trớc câu lệnh lặp với số lần lặp cha biết trớc điểm sau ®©y:

a) Nh tên gọi nó, câu lệnh lặp với số lần lặp cho trớc thị cho máy tính thực lệnh nhóm lệnh với số lần đợc xác định từ trớc, với câu lệnh lặp với số lần lặp cha biết trớc số lần lặp cha đợc xác định trớc

b) Trong câu lệnh lặp với số lần cho trớc, điều kiện giá trị biến đếm có giá trị nguyên đạt đợc giá trị lớn hay cha, câu lệnh lặp với số lần lặp cha biết trớc, điều kiện tổng quát nhiều, kiểm tra giá trị số thực, điều kiện tổng qt khác, ví dụ nh số có chia hết cho hay không,

c) Trong câu lệnh lặp với số lần cho trớc, câu lệnh đợc thực lần, sau kiểm tra điều kiện Trong câu lệnh lặp với số lần cha 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 Do có trờng hợp câu lệnh hồn tồn khơng đợc thực

3. M« tả thuật toán:

Bc 1 t S R (S là bán kính đờng trịn vẽ), n  0, x  0.5 Bớc 2 Nếu S < 1.2, chuyển tới bớc

Bớc 3 Vẽ đờng tròn bán kính S, S S x quay lại bớc Bớc 4 Kết thúc thuật toán

4. a) Thuật tốn 1: 10 vịng lặp đợc thực Khi kết thúc thuật tốn S = 5.0 Đoạn chơng trình Pascal tơng ứng:

S:=10; x:=0.5;

while S>5.2 S:=S-x; writeln(S);

b) Thuật tốn 2: Khơng vịng lặp đợc thực từ đầu điều kiện không đợc thỏa mãn nên bớc bị bỏ qua S = 10 kết thúc thuật tố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);

(29)

5. a) Chơng trình thực vịng lặp b) Vịng lặp chơng trình đợc thực vơ tận 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 đợ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 đợc kết thúc sau hữu hạn bớc Để làm đợc điều này, câu lệnh câu lệnh lặp while thờng câu lệnh ghép

6. a) Thừa dấu hai chấm điều kiện; b) Thiếu dấu hai chấm câu lệnh gán; c) Thiếu từ khóa begin end trớc sau lệnh n:=n+1; S:=S+n, vịng lặp trở thành vơ tận

7. Viết thuật tốn 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 số tự nhiên x số thực đợc nhập vào từ bàn phím Hãy so sánh với thuật toán Bài tập 8, Bài

Thuật toán:

Bớc 1 Đọc giá trị x n Bíc 2 A  1, k 

Bíc 3 NÕu k >n, chun xng bíc Bíc 4 A = A.x, k k + vµ quay lại bớc

Bớc 5 Thông báo kết 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 begin LT:=LT*A, k:=k+1 end end.

8. Tính tích N số tự nhiên với số lần lặp không xác định (với N số tự nhiên đợc nhập vào từ bn phớm)

Bớc 1 Đọc giá trị N. Bớc 2 T  1, k 

Bíc 3 Nếu k N, T = T.k; ngợc lại, chuyển xuống bíc Bíc 4 k k + vµ quay lại bớc

Bớc 5 Kết thúc thuật toán 9. Tht to¸n:

(30)

Bíc 2 S  0, i 

Bíc 3 NÕu i >n  1, chun xng bíc

Bíc 4 NÕu n chia hÕt cho i, S S + i, i i + quay lại bớc Bớc 5 Ghi giá trị S và kết thúc thuật toán

Chơng trình 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.

10.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;

(31)

Bµi Làm việc với dÃy số

Câu hỏi tËp

1. “Có thể xem biến mảng biến đợc tạo từ nhiều biến có kiểu, nh-ng dới tên nhất.” Phát biểu đúnh-ng hay sai?

2. Hãy nêu lợi ích việc sử dụng biến mảng chơng trình 3. Các khai báo biến mảng sau Pascal hay sai:

a) var X: Array[10,13] Of Integer; b) var X: Array[5 10.5] Of Real; c) var X: Array[3.4 4.8] Of Integer; d) var X: Array[10 1] Of Integer; e) var X: Array[4 10] Of Real;

4. Câu lệnh khai báo mảng sau có đợc máy tính thực khơng? var N: integer;

A: array[1 N] of real;

5. Viết chơng trình Pascal sử dụng mảng để nhập từ bàn phím phần tử dãy số Độ dài dãy đợc nhập từ bàn phím

6. Đoạn chơng trình sau dùng để xếp lại dãy số đợc ghi 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 If A[i] > A[j] then

Begin Tg:=A[i]; A[i]:=A[j]; A[j]:=Tg; End; Hãy kiểm tra tính đắn đoạn chơng trình

7. Hãy viết chơng trình nhập số ngn từ bàn phím ghi hình số lớn số theo hai cách: khơng sử dụng biến mảng sử dụng biến mảng

8. Viết chơng trình sử dụng biến mảng để tính giá trị trung bình tổng N số nguyên đợc nhập vào từ bàn phím

9. Viết chơng trình sử dụng biến mảng để nhập n số nguyên từ bàn phím tính tổng số dơng số số (xem lại Bài tập 7b, Bài 5)

10.Trong Bài tập 9, em viết chơng trình để tính tổng ớc số thực số nguyên, nhng cha liệt kê đợc ớc số Hãy viết chơng trình sử dụng biến mảng để in ớc số số nguyên n (đợc nhập vào từ bàn phím)

Híng dÉn tr¶ lêi

1. §óng

(32)

có thể lu trữ xử lí nhiều liệu có nội dung liên quan n mt cỏch hiu qu

3. Đáp ¸n a) Sai Ph¶i thay dÊu ph¶y b»ng hai dÊu chấm; b) c) Sai, giá trị nhỏ lớn số mảng phải số nguyên; d) Sai, giá trị đâu số mảng phải nhỏ số cuối; e) §óng

4. Khơng Giá trị nhỏ lớn số mảng phải đợc xác định phn khai bỏo chng trỡnh

5. 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. 6. §óng

7. a) NÕu không sửdụng biến mảng, chơng trình 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;

(33)

writeln('So lon nhat: ',Max); end.

b) NÕu sưdơng biến mảng, chơng trình ngắn gọn nh sau: uses crt;

var i, Max: integer;

A: array[1 5] of integer; begin

clrscr;

for i:=1 to do

begin write('Nhap so thu ',i,':'); readln(A[i]) end; Max:=a[1];

for i:=2 to If Max<a[i] then Max:=a[i]; writeln('So lon nhat: ',Max);

end.

Lu ý Xem cách viết chơng trình ngắn gọn không sử dụng biến mảng Bài tập 9, Bài Tuy nhiên, cách viết khơng cho kết mong muốn sau nhập giá trị biến cần thực thao tác liệu khác

8. Viết chơng trình sử dụng biến mảng để tính giá trị trung bình 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 TB:=TB+a[i]; TB:=TB/n;

(34)

end.

9. Chơng trình nhập n số nguyên từ bàn phím tính tổng 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

if X[k]>0 then S:=S+X[k]; writeln('Tong cac duong S=',S); readln;

end.

10.Nội dung Bài Bài thực hành viết chơng trình nhận biết số tự nhiên có phải số nguyên tố hay không Nội dung Bài tập 9, Bài 8, viết chơng trình tính tổng ớc số thực số nguyên, nhng cha liệt kê đợc ớc số Để liệt kê, chơng trình cần phải ghi lại chúng ý tởng sử dụng biến mảng phục vụ cho điều Ch-ơng trình tCh-ơng tự nh 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) X[k]:=0; {Dat lai = 0} write('Cho so tu nhien n>2: n= '); readln(n); while i<=(n-1) {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;

(35)

for i:=1 to (n-1) if X[i]<>0 then write(X[i],' ') end else writeln(n,' la so nguyen to.');

Ngày đăng: 05/03/2021, 22:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w