Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
748,5 KB
Nội dung
Thuật giải Mục tiêu bài học: - Xác định được tập dữ liệu vào, dữ liệu ra, biết phân chia công việc thành các bước. Sau mỗi bước bao giờ cũng cho 1 kết quả xác định không phụ thuộc vào người hay máy thực hiện mà chỉ phụ thuộc vào dữ liệu vào. - Chỉ ra tính khả thi của các bước thực hiện. Tính dừng sau một số hữu hạn bước. Nắm được 3 cách biểu diễn thuật toán. - Trong toán học, để giải quyết một bài toán ta luôn tìm cách áp dụng những định lý, tính chất, tiên đề, hệ quả . nhằm biến đổi dữ kiện đề bài để đưa về kết quả cuối cùng. Trong tin học việc giải các bài toán trước hết là đi tìm thuật giải của bài toán đó. 1. Khái niệm thuật giải Thuật giải giải một bài toán nào đó là một dãy các thao tác đơn giản được sắp xếp theo một trình tự xác định rõ ràng và kết thúc sau một số hữu hạn bước nhằm biến đổi dữ liệu vào (input) của một bài toán thành dữ liệu ra (output) mô tả lời giải bài toán đó. Ví dụ . Bài toán kiểm tra tính nguyên tố. Cho: số nguyên dương N; Cần biết: N có là số nguyên tố hay không? Thuật giải Ơclid giải bài toán trên - Input: a, b nguyên dương - Output: UCLN của a và b Bước 1: nhận vào số a và số b Bước 2: chia a cho b tìm số dư r Bước 3: Nếu r = 0 thì chuyển đến bước 5 Bước 4: gán giá trị b cho a, gán giá trị r cho b. Quay về bước 2 Bước 5: thông báo kết quả UCLN là b; Bước 6: Kết thúc. 2. Các tính chất của thuật giải 2.1. Có dữ liệu vào (input) Mỗi thuật giải có thể có một hoặc nhiều dữ liệu vào 2.2. Xác định dữ liệu ra (output) Sau khi thuật giải đã được thực hiện xong, tuỳ theo chức năng mà thuật giải đảm nhiệm ta có thể thu được một số dữ liệu ra xác định 2.3. Tính xác định Tính xác định của thuật giải đòi hỏi ở mỗi bước các thao tác phải hết sức rõ ràng, không thể gây nên sự nhập nhằng, lẫn lộn, tuỳ tiện. 2.4. Tính kết thúc (tính dừng) Thuật giải phải dừng sau một số hữu hạn bước thực hiện. 2.5. Tính hiệu quả Một yêu cầu quan trọng là với input đúng thuật giải phải cho output đúng. 2.6. Tính phổ dụng Một thuật giải được xem là có tính phổ dụng cao nếu nó có thể giải bất kỳ bài toán nào trong một lớp lớn các bài toán. Những cách viết thuật giải 1. Liệt kê từng bước Thuật giải Ơclid ở trên được diễn tả theo hình thức liệt kê từng bước. 2. Lưu đồ(sơ đồ khối) Lưu đồ là công cụ giúp ta diễn tả thuật giải một cách trực quan. Lưu đồ được tạo bởi 4 loại khối nối với nhau bằng các cung - Khối thao tác được biểu diễn bằng hình chữ nhật. Trong khối này ta viết một hoặc một dãy các thao tác như gán trị, tính toán biểu thức v.v . Khối thao tác có 1 cung đi đến và 1 cung đi ra. - Khối điều kiện được biểu diễn bằng hình thoi. Trong khối này ta viết một biểu thức logic. Tuỳ theo giá trị của biểu thức logic là đúng hay sai mà việc thực hiện tiếp theo sẽ được chỉ dẫn bởi một trong hai cung đi ra mang dấu + (cho trường hợp đúng) hoặc dấu - (cho trường hợp sai). Như vậy khối điều kiện có 1 cung đi đến và 2 cung đi ra. - Hai khối đặc biệt là khối bắt đầu và khối kết thúc được biểu diễn bằng hình ellip chỉ rõ điểm bắt đầu và điểm kết thúc (điểm dừng) của thuật giải. Khối bắt đầu không có cung đi đến và có 1 cung đi ra. Khối kết thúc có 1 cung đi đến và không có cung đi ra. Chúng ta dùng lưu đồ diễn tả thuật giải Ơclid tìm UCLN của hai số nguyên dương. Thuật giải Ơclid +Dữ liệu vào - Số nguyên a > 0; b > 0 +Dữ liệu ra - USCLN của a và b 3. Giả mã lệnh Khi thể hiện thuật giải bằng giả mã lệnh, ta sẽ vay mượn các cú pháp của một ngôn ngữ lập trình nào đó. Ở đây chúng ta vay mượn các khái niệm của ngôn ngữ lập trình pascal. 3.1. Lệnh gán Tên biến :=biểu thức; 3.2. Lệnh rẽ hai nhánh a. Lệnh rẽ hai nhánh dạng khuyết: Nếu điều kiện thì câu lệnh b. Lệnh rẽ hai nhánh dạng đầy đủ: Nếu điều kiện thì câu lệnh 1 còn câu lệnh 2; 3.3. Rẽ nhiều nhánh Chọn theo biểu thức thuộc vào nhãn 1 : câu lệnh 1; nhãn 2 : câu lệnh 2; . . . . . . . . . . . . . nhãn n : câu lệnh n còn câu lệnh n+1; 3.4. Lệnh lặp a. Lệnh lặp với điều kiện trước: Khi điều kiện làm câu lệnh. b. Lặp với điều kiện sau Lặp .câu lệnh . đến điều kiện; c. Lặp với số lần định trước: Với biến := biểu thức 1 đến biểu thức 2 làm câu lệnh 4. Ví dụ Người A nghĩ trong đầu một số nguyên X trong đoạn từ 1 đến 100. Người B hỏi, người A trả lời hoặc đúng hoặc sai. Sau không quá 7 lần hỏi đáp người B biết số X là số nào. Viết thuật giải cho bài toán này. 4.1. Dùng ngôn ngữ liệt kê từng bước Bước 1 Gán T := 1 ; P := 100; Bước 2 Lấy thương nguyên của tổng (T + P) chia cho 2 rồi gán cho G. Bước 3 Kiểm tra điều kiện X > G nếu đúng thì chuyển đến bước 4, còn sai thì chuyển đến bước 5; Bước 4 Lấy G + 1 gán cho T; chuyển đến bước 6; Bước 5 Lấy G gán cho P; Bước 6 Kiểm tra điều kiện T = P nếu sai thì chuyển về bước 2; Bước 7 Trả lời X = T ; Bước 8 Kết thúc; 4.2 Dùng sơ đồ khối 4.3 Dùng giả mã lệnh Biến nguyên không âm T, P, G, X; Bắt đầu T :=1; P :=100; Lặp G := (P+T) div 2; Nếu X > G thì T :=G+1 Ngược lại P :=G; đến T = P; Thông báo X = P; Kết thúc. Câu hỏi-Bài tập 1. Thuật giải là gì? Thuật giải có những tính chất cơ bản nào? 2. Có mấy cách biểu diễn thuật giải 3. Hãy viết thuật giải vẽ đồ thị của hàm số y = |ax| (với a khác 0) thông qua đồ thị của hàm số y = ax. 4. Trình bày tính chất xác định của thuật giải và nêu rõ ý nghĩa của tính chất này. 5. Hãy phát biểu thuật giải để giải bài toán sau: "Có một số quả táo. Dùng cân hai đĩa (không có quả cân) để xác định quả táo nặng nhất"(giả sử mỗi đĩa cân có thể đựng được nửa số quả táo). 6. Xác định dữ liệu vào và dữ liệu ra cho các thuật giải sau đây a) Rút gọn một phân số. b) Kiểm tra xem ba số cho trước a, b và c có thể là độ dài ba cạnh của một tam giác hay không? c) Tính trung bình cộng của hai số. d) Dùng một cốc phụ để tráo nuớc ở hai cốc cho trước. e) Tìm chu vi và diện tích của hình tròn có bán kính cho trước 7. Có hai bình A và B. Bình A có dung tích 8 lít, bình B có dung tích 5 lít. Trình bày các bước thực hiện để lấy được 2 lít nước. 8. Có 3 bình A, B, C. Bình A có dung tích 8 lít và đựng đầy 8 lít rượu, bình B có dung tích 5 lít, bình C có dung tích 3 lít. Trình bày các bước thực hiện để có được 4 lít rượu ở bình A và 4 lít rượu ở bình B. 9. Một người có 1 con gấu, 1 con dê và 1 cái bắp cải. Nếu không có người ở bên chúng thì con gấu sẽ ăn thịt con dê hoặc con dê sẽ ăn bắp cải. Thuyền chỉ có thể chở được người đó với con gấu hoặc con dê hoặc bắp cải. Người đó làm thế nào để mang chúng sang sông. 10.Có 4 người phải qua một cái cầu, trời tối họ chỉ có một chiếc đèn. Cầu chỉ đi được tối đa 2 người. Như vậy qua cầu phải có đèn và nhiều nhất là chỉ đi được 2 người cùng một lúc. Biết rằng người thứ nhất đi qua cầu hết 1 phút. Người thứ hai đi qua cầu hết 2 phút. Người thứ ba đi qua cầu hết 5 phút. Người thứ tư đi qua cầu hết 10 phút. Hãy tìm cách cho 4 người này qua cầu sao cho tổng số thời gian ít nhất Giao tiếp với Turbo Pascal Mục tiêu bài học: - Biết vào môi trường làm việc của Turbo Pascal. - Nắm được cấu trúc của 1 chương trìnhPascal đơn giản. - Biết viết 1 chương trìnhPascal đơn giản thông qua thủ tục vào ra và lệnh gán Sau khi đã có thuật giải cho bài toán, một câu hỏi đặt ra là làm thế nào để máy thực thi thuật giải đó để đưa ra output của bài toán? Chính là ta cần một công cụ lập trình. Turbo Pascal là một công cụ như thế. Phần này ta sẽ tìm hiểu Sử dụng TURBO PASCAL (kí hiệu là TP) bao gồm những phần việc sau: Trước hết là soạn thảo chương trình. Sau khi chương trình đã soạn thảo xong, ta dùng TP để kiểm tra xem trong chương trình đó có lỗi cú pháp (viết sai quy cách câu lệnh hoặc mô tả) hay không. Khi không còn các thông báo lỗi nữa, nghĩa là chương trình đã đúng đắn về mặt cú pháp, ta có thể chạy chương trình, nạp dữ liệu và thu nhận kết quả. 1. Chương trìnhPascal đơn giản Trước hết ta hãy xem một chương trình hết sức đơn giản, chẳng hạn: Program chao_khach ; BEGIN write(' Chao cac ban,'); write(' chung ta bat dau lam viec'); END. Dòng thứ nhất gọi là phần tiêu đề. Phần tiêu đề có thể có hoặc không, nhưng nếu có thì cần viết đúng dưới dạng sau: một từ bắt buộc Program tiếp theo ít nhất là một kí tự dấu cách sau đó là một tên do người lập trình tự chọn. Các dòng thứ hai và thứ năm là bắt buộc, thể hiện việc bắt đầu và kết thúc chương trình. Các dòng viết giữa cặp Begin và End là những câu lệnh. 2. Khởi động TURBO PASCAL Để sử dụng TURBO PASCAL ta cần tối thiểu là hai tệp: TURBO.EXE và TURBO.TPL. Khởi động TURBO PASCAL, giả sử ta đang ở thư mục có hai tệp nói trên ta gõ TURBO tiếp theo là phím ENTER (có nhiều cách khởi động TURBO PASCAL, nếu trên màn hình Windows chúng ta thấy biểu tượng của TURBO PASCAL thì ta chỉ cần kích chuột vào đó) 3. Soạn thảo trong TURBO PASCAL 3.1. Dịch chuyển con chạy - Các phím lên, xuống, phải, trái (có hình những mũi tên ở bên phải bàn phím): dịch con chạy từng kí tự theo chiều mũi tên. - Ctrl và phím mũi tên sang trái (phải) : dịch chuyển con chạy theo từng từ sang trái (phải) của dòng văn bản. - Home: đưa con chạy về đầu dòng. - End: đưa con chạy về cuối dòng. - PgUp (PgDn): dịch con chạy lên (xuống) theo từng trang màn hình. - Ctrl-PgUp hoặc Ctrl-PgDn: đưa con chạy về đầu tệp hoặc cuối tệp. 3.2. Sửa chữa văn bản - Phím Del để xoá một kí tự tại vị trí hiện thời của con chạy. - Phím lùi (Backspace) để xoá đi một kí tự nằm bên trái con chạy. - Phím INSERT để chọn chế độ chèn hoặc đè. - Ctrl-Y. Xoá cả dòng đang chứa con chạy. - Ctrl-Q Y. Xoá từ vị trí con chạy đến cuối dòng - Ctrl- Q A. Tìm kiếm một dãy kí tự và thay thế. 3.3. Làm việc với khối dòng Ctrl-K B. Đánh dấu đầu khối. Ctrl-K K. Đánh dấu cuối khối. Ctrl-K Y. Xoá khối dòng đã đánh dấu. Ctrl-K C. Sao chép khối dòng tới vị trí mới của con chạy. Ctrl-K V. Chuyển khối dòng tới vị trí mới của con chạy. Ctrl-K W. Ghi khối dòng vào một tệp. Ctrl-K R. Đọc một tệp từ đĩa vào và xen vào chỗ con chạy. 4. Môi trường của TURBO PASCAL Khởi động TURBO PASCAL là nạp tệp TURBO.EXE vào bộ nhớ trong của máy để ta làm việc với môi trường của hệ thống này. Môi trường này thể hiện trên màn hình như sau: Môi trường trên giúp ta làm việc với TURBO Pascal: gõ chương trình (Edit), thực hiện chương trình (Run), ghi chương trình vào đĩa, gọi chương trình từ đĩa (File) v.v . Ngoài việc dùng chuột chọn trên bảng, Turbo Pascal dùng một số phím nóng sau: • + Nhấn phím F10 để vào menu, di vệt sáng đến chức năng cần chọn rồi gõ ENTER. • + F3 để mở tệp • Alt-F3 để đóng tệp • F9 để dịch chương trình • Ctrl-F9 để thực hiện chương trình • F2 để ghi tệp lên đĩa với tên đã có • Alt-F a để ghi tệp lên đĩa với tên mới • Alt-X để kết thúc làm việc với TURBO PASCAL. Sử dụng Turbo Pascal 5. Ghi nhớ 5.1. Bảng chữ Bảng chữ gốc của TP là bảng ASCII (American Standard Codes for Information Interchanges). ASCII có 128 kí hiệu bao gồm bộ chữ cái la tinh, các chữ số, các dấu và một số kí hiệu đặc biệt. a. Bộ chữ cái La tinh Gồm 26 chữ cái tiếng Anh in hoa A-Z và in thường a-z. TP không phân biệt chữ thường và chữ hoa trong tên các đối tượng, ngoại trừ trường hợp trong các xâu văn bản. b. Bộ chữ số Gồm các chữ số thập phân: 0, 1, . , 9. Để tránh lẫn 0 (chữ số không) và O (chữ O) TP quy định gạch chéo trong chữ số không. c. Những dấu phép toán số học: + (cộng), - (trừ), * (nhân), / (chia) d. Các dấu so sánh : = (bằng) , > (lớn hơn) , < (nhỏ hơn), >= (lớn hơn hoặc bằng), <= (nhỏ hơn hoặc bằng), <> (khác) e. Những kí hiệu khác: . ,;: ' ":! @ # $ % \ ^ & () [ ] { } Trong bảng chữ có một kí hiệu gọi là dấu cách hay khoảng trống. Dấu cách được dùng để tạo một khoảng trắng ngăn cách các từ. 5.2. Từ khoá Trong từ vựng Pascal có một số từ dành riêng mà nghĩa đã được quy định sẵn, chẳng hạn program, begin, end, mà ta đã biết được gọi là từ khoá. chúng tôi giới thiệu dưới đây một số từ khoá sẽ dùng trong giáotrình này AND ARRAY BEGIN CASE CONST DIV DO DOWNTO ELSE END FOR FUNCTION GOTO IF IN LABEL MOD NOT OF OR PROCEDURE PROGRAM REPEAT STRING THEN TO TYPE UNTIL USES VAR WHILE 5.3. Tên chuẩn Những tên được đặt sẵn trong TP, chẳng hạn pi, byte, word, integer, longint, read, readln, write, writeln, char, boolean, . được gọi là tên chuẩn. 5.4. Cấu trúc một chương trìnhPascal đơn giản Program tênchươngtrình ; Var Khai báo biến ; BEGIN Những lệnh (ngăn cách nhau bởi dấu chấm phẩy ;) Readln END. Dòng trên cùng gọi là phần tiêu đề. Dòng thứ hai sau từ khoá Var là khai báo các biến để dùng trong chương trình (xem ở ví dụ áp dụng dưới đây). Thân chương trình là phần giới hạn bởi BEGIN, END và kết thúc bởi dấu chấm (.). Trong thân chương trình, các lệnh được cách nhau bởi dấu chấm phẩy (;). 5.5. Qui tắc đặt tên. Tên chương trình, tên biến và các tên sau này ta gặp phải bắt đầu bằng chữ cái, tiếp theo có thể có một số kí tự nữa nhưng chỉ lấy trong tập gồm chữ cái, chữ số, dấu gạch dưới. Tên có thể nhận đến 127 kí tự. 5.6. Hiển thị dữ liệu ra màn hình và nhận dữ liệu vào từ bàn phím a. write('dãy kí tự '); Dãy kí tự trong hai dấu nháy đưn được viết lên màn hình nguyên văn. Con chạy ở cùng dòng đó. b. writeln( 'dãy kí tự ' ) ; Tác dụng như lệnh write('dãy kí tự ') nhưng có thêm tác dụng sau khi hoàn thành nhiệm vụ thì đưa con trỏ màn hình xuống đầu dòng tiếp theo. c. write (biểu thức) Viết ra màn hình giá trị của biểu thức. Con chạy ở cùng dòng đó. d. Writeln (biểu thức) Viết ra màn hình giá trị của biểu thức. Viết xong giá trị của biểu thức con chạy xuống đầu dòng tiếp theo. Ví dụ lệnh writeln ( 25 + 37) ; khi thực hiện lệnh này trên màn hình xuất hiện số 62 và con trỏ ở đầu dòng phía dưới. e. writeln Thực hiện lệnh này máy bỏ trống một dòng. f. Readln(tên biến) ; Chờ nhận vào giá trị của biến đã được khai báo trong Var. g. readln; Chờ gõ phím ENTER. 6. Áp dụng. 6.1. Bài toán. Tính chu vi và diện tích hình vuông có độ dài cạnh là một số nguyên được nhận vào từ bàn phím 6.2. Xây dựng thuật giải Bước 1. Nhận vào a; Bước 2. Viết ra giá trị của biểu thức chu vi là 4 * a ; Bước 3. Viết ra giá trị của biểu thức diện tích là a *a ; Bước 4. Kết thúc 6.3 Soạn chương trình Program HinhVuong; Var a : Word ; Begin readln (a); writeln (4*a); write (a*a); Readln; End. Hãy gõ phím F2 để ghi chương trình trên vào đĩa. Như vậy ở trên đĩa tệp mang tên là VUONG.PAS. Trong chương trình trên, giữa phần tiêu đề và thân chương trình còn có một phần ở đây là var a : Word . Đó là phần khai báo biến. Từ Word là tên chuẩn có nghĩa là số nguyên không âm có tập giá trị từ 0 đến 65536. Nội dung thân chương trình trên có nghĩa là: Readln(a) ; nhập từ bàn phím một số và lưu giữ số đó ở biến a. Giá trị nạp vào phải gõ trên bàn phím và kết thúc bởi phím ENTER. Writeln(4* a) ; viết ra màn hình giá trị của biểu thức 4* a sau đó con chạy xuống đầu dòng tiếp theo. Write(a* a) ; viết ra màn hình giá trị của biểu thức a 2 , con chạy màn hình ở cùng dòng đó. Readln là chờ người dùng gõ phím Enter. 6.4. Thực hiện chương trình Gõ phím F9 để máy dịch chương trình ta vừa viết ở trên sang mã máy. Nếu có lỗi thì máy thông báo cho ta sửa. Sửa xong lại gõ phím F9 để máy báo lỗi tiếp theo (nếu còn). Bạn đọc có thể xem lỗi gì trong phần phụ lục thông báo lỗi ở cuối sách. Khi nào gõ phím F9 mà máy không báo có lỗi thì ta cho chạy chương trình bằng cách gõ tổ hợp hai phím Ctrl- F9 (giữ phím Ctrl và gõ phím F9) sau đó gõ giá trị của a từ bàn phím (thực hiện lệnh Readln(a)). Bài tập 1.Viết các biểu thức sau đây dưới dạng thông thường: a) a+b/c-d b) (a+b)/(c-d) c) a/b/c/d/e d) a*b/g*d e) 2*a+b*b/c 2.Những tên sau đây viết đúng hay sai: A, AA, BIC, 1B, St , A* , A-B , CHU VI, In, TO, READ, _10A, F(x), M[, $Q, P^ 3.Viết chương trình để máy in lên màn hình như sau: ******************************************* & TRƯỜNG THCS TRAN BICH SAN & & & & xin gui loi & & & & CHAO CAC BAN! & ******************************************* 4. Bằng cách gõ đồng thời Alt_219 (giữ phím Alt, gõ các số 2, 1, 9 ở các phím phía bên phải bàn phím) để viết khối hình chữ nhật, hãy lập chương trình vẽ chữ Tin học như sau: TIN HOC 5. Viết chương trình tính diện tích xung quanh, diện tích toàn phần, thể tích hình lập phương khi cho độ dài cạnh là một số nguyên. 6. Viết chương trình tính giá trị của biểu thức X 3 - 4X 2 + 3X-5 cho biết X là một số nguyên 1. Bài toán Tính chu vi và diện tích hình chữ nhật khi cho biết độ dài hai cạnh của nó là những số thực. 2. Xây dựng thuật giải Bước 1. Nhận vào k1, k2; Bước 2. Viết ra giá trị của biểu thức chu vi là 2 * (k1 + k2) ; Bước 3. Viết ra giá trị của biểu thức diện tích là k1 * k2 ; Bước 4. Kết thúc 3. Chương trình Hãy khởi động TURBO PASCAL, sau đó gõ phím F3 và đặt tên tệp có phần chính là cn1 (khi máy hỏi tên tệp thì gõ cn1 rồi gõ phím ENTER), sau đó soạn thảo chương trình như sau: Program chunhat1; Var k1, k2 : real; Begin Readln(k1 , k2); Writeln (2*(k1+k2)); write(k1*k2); Readln End. Hãy gõ phím F2 để ghi chương trình trên vào đĩa Trong chương trình trên, phần khai báo biến var k1, k2 : real. Dòng khai báo của chương trình này có nghĩa là khai báo các biến mang tên là k1, k2 các biến này nhận giá trị là số thực và chấp nhận các phép toán trên số thực. Máy sử dụng hai biến tương ứng với hai tên gọi là k1 và k2 để sẵn sàng lưu giữ hai số thực. 4. Thực hiện chương trình Gõ phím F9 để máy dịch chương trình ta vừa viết ở trên sang mã máy. Nếu có lỗi thì máy thông báo cho ta sửa. Sửa xong lại gõ tiếp phím F9. Khi nào gõ phím F9 mà máy thông báo không có lỗi thì ta nhớ lại gõ phím F2 một lần nữa để ghi chương trình không có lỗi cú pháp lên đĩa. Sau khi chương trình dịch được thông xuất, ta cho chạy chương trình bằng cách gõ đồng thời hai phím Ctrl-F9 (giữ phím Ctrl và gõ phím F9) sau đó gõ giá trị của k1 và k2 từ bàn phím Khi thực hiện chương trình, trên màn hình xuất hiện tín hiệu mời (con trỏ nhấp nháy) có nghĩa là máy hỏi ta hai giá trị k1, k2. Chương trình trên viết ra màn hình giá trị của chu vi và diện tích hình chữ nhật dưới một dạng ta chưa quen biết, đó là dạng dấu phẩy động. Muốn cho các số thực xuất hiện dưới dạng số thập phân thông thường, ta sửa chương trình như sau: Program chunhat2; Var k1, k2 : real; Begin readln(k1,k2); Writeln (2*(k1+k2) : 6 : 2); write(k1*k2 : 6 : 2); Readln; End. Dạng mới của lệnh Writeln hoặc Write ở đây là: Writeln (2*(k1+k2) : 6 : 2); Cho hiện trên màn hình giá trị của biểu thức 2*(k1+k2) chỉnh phải vào một vùng có 6 kí tự lấy 2 chữ số đầu tiên ở phần thập phân, nếu chữ số thứ ba ở phần thập phân lớn hơn hoặc bằng 5 thì làm tròn lên 5. Ghi nhớ 5.1 . Khai báo biến Cách khai báo biến như sau: VAR tên biến 1, tên biến 2, tên biến 3 : kiểu của các biến này ; 5.2. Kiểu của biến a. Kiểu nguyên Ta đã biết kiểu chuẩn Word có giá trị từ 0 đến 65536. Ngoài ra nếu ta dùng kiểu BYTE thì tập giá trị là từ 0 đến 255. Nếu ta dùng kiểu INTEGER thì tập giá trị là từ - 32768 đến 32767. b. Kiểu thực Ta đã biết một tên chuẩn của kiểu thực là REAL. Tập gía trị của nó gồm những số thực có trị tuyệt đối nằm trong khoảng 10 –37 đến 10 37 . 5.3. Những hàm số học chuẩn Abs(x) :Lấy giá trị tuyệt đối của x. Giá trị của hàm cùng kiểu với kiểu của đối số x. Sqr(x) :Cho x bình phương. Giá trị của hàm cùng kiểu với kiểu của đối số x. Sqrt(x): Lấy căn bậc 2 của x. Giá trị của hàm thuộc kiểu thực. Int(x) : Cho phần nguyên của x. Giá trị của hàm thuộc kiểu thực. Trunc(x): Cho phần nguyên của x. Giá trị của hàm thuộc kiểu nguyên. Round(x): Làm tròn x đến số nguyên gần x nhất. Giá trị của hàm thuộc kiểu nguyên Sin(x): Cho giá trị của sinx, ở đây x tính bằng đơn vị là radian. Cos(x) :Cho giá trị của cosx, ở đây x tính bằng đơn vị là radian. Arctan (x): Cho góc tính bằng radian có tang bằng x. Exp(x) : Tính e x . Giá trị của hàm thuộc kiểu thực. Ln(x) : Tính lôgarit cơ số e của x. Giá trị của hàm thuộc kiểu thực. Frac (x): Cho phần thập phân của x. Giá trị của hàm thuộc kiểu thực Random(x) đối số x phải là nguyên. Hàm này cho ngẫu nhiên một số nguyên lớn hơn hoặc bằng 0 và nhỏ hơn x . 5.4. Những lệnh thường dùng a. Readln (danh sách biến); Nạp dữ liệu từ bàn phím để đưa vào các địa chỉ kí hiệu bởi danh sách tên biến (dãy tên biến trong danh sách cách nhau bởi dấu phẩy). Khi thực hiện, trên màn hình xuất hiện tín hiệu mời (con trỏ nhấp nháy). b. Write (danh sách những đối tượng viết ra màn hình) hoặc Writeln (danh sách những đối tượng viết ra màn hình); Những đối tượng trong danh sách phải cách nhau bởi dấu phảy. Nếu dùng writeln thì sau khi in xong, máy sẽ chuyển con chạy xuống đầu dòng tiếp theo. c. Writeln (biểu thức số thực : m : n) hoặc Write (biểu thức số thực : m : n); Cho hiện trên màn hình chỉnh phải giá trị của biểu thức số thực vào một vùng có m kí tự với n chữ số thập phân sau khi đã làm tròn. Writeln có thêm tác dụng xuống dòng. d. Writeln (biểu thức nguyên : m) ; hoặc Write (biểu thức nguyên : m); Cho hiện trên màn hình chỉnh phải giá trị của biểu thức nguyên (biến được coi biểu thức đặc biệt) vào một vùng có m kí tự . e. writeln (‘ Tập văn bản ‘ : m) ; hoặc write (‘ Tập văn bản ‘ : m) ; Cho hiện trên màn hình nguyên văn tập văn bản giữa hai dấu nháy cao, chỉnh phải vào một vùng có m kí tự . Writeln có thêm tác dụng xuống dòng. 5.5. Khai báo dùng đơn vị (Unit) USES tên đơn vị; Ví dụ Uses crt ; sau khi đã khai báo uses crt thì có thể dùng những lệnh dưới đây: CLRSCR : Xoá màn hình, đưa con chạy về góc trái trên của màn hình. CLREOL: Xoá từ vị trí con chạy đến cuối dòng. 5.6. Cách viết chú thích Viết văn bản (dãy kí tự) giữa cặp dấu { } hoặc (* *). Gặp văn bản này, chương trình bỏ qua. 5.7. Dịch chương trình sang tệp có phần mở rộng EXE Muốn dịch chương trìnhPascal ở bộ nhớ trong ra ngôn ngữ máy và ghi vào đĩa, ta lần lượt làm như sau: Gõ Alt - C để chọn COMPILE; - Chọn DESTINATION DISK, khi cần thiết thì gõ D để chuyển từ MEMORY sang DISK; Giữ phím Alt và gõ phím F9. Chương trình có phần mở rộng EXE chạy được ở hệ thống và một số phần mền ứng dụng khác 6. Áp dụng 6.1. Bài toán Viết chương trình cho máy tính khoảng cách từ một điểm I có toạ độ (X0, Y0 đến đường thẳng có phương trình Ax + By + C = 0 (bài toán trong mặt phẳng toạ độ Đề Các) .2. Thuật giải Bước 1. Nhận vào giá trị của các hệ số A, B, C ; Bước 2. . Nhận vào giá trị của X0 và Y0 ; Bước 3. Viết ra màn hình giá trị của biểu thức Bước 4. Kết thúc 6.3. Chương trình Program TinhKhoangCachTuMotDiêmDenDuongThang ; Uses Crt ; Var A, B , C, X0 , Y0 : Real ; BEGIN Clrscr ; Write (' Cho ba he so A, B, C cua duong thang ' : 75) ; readln (a , b, c); (* Pascal khong phan biet chu hoa và chu thuong trong ten *) ; Write (' Cho toa do cua diem I ' : 75) ; readln (x0 , y0); { In ra man hinh gia tri cua khoang cach } write (' Khoang cach la ', ABS(A*X0 + B*Y0 + C) /SQRT(A*A + B*B):9:3) ; Readln; End. Bài tập 1. Viết các số sau đây ra dạng thông thường -6E+9; 7.82E-5 ; 15; -5.2 2. Viết các dãy tính sau dưới dạng biểu thức toán thông thường: a) 3.7+7.8+9 b) 3.7/4.8/5.9 c) 3.6*4/3 d) (3.9*3.9/7*3-7.2)/3 3. Lập chương trình đổi kích thước a tính bằng inch ra cm biết 1 inch = 2,54cm. 4. Lập chương trình để tính trung bình cộng của 4 số thực bất kì. 5. Viết chương trình tính diện tích hình thang khi cho hai đáy và đường cao. 6. Viết chương trình tính quãng đường đi được S của một vật chuyển động nhanh dần đều khi cho máy biết vận tốc ban đầu V0, gia tốc a và thời gian t. 7. Tính khoảng cách đến mặt đất của một người nhảy dù từ độ cao h sau thời gian t giây. 8. Viết chương trình cho máy nhận vào ba kích thước của hình hộp chữ nhật. Tính diện tích toàn phần, thể tích và đường chéo của hình đó. 9. Viết chương trình tính chu vi, diện tích của tam giác đều khi cho biết cạnh. 1. Bài toán. Tính chu vi, diện tích, đường chéo, chu vi đường tròn ngoại tiếp, diện tích hình tròn ngoại tiếp của hình chữ nhật khi nhập vào độ dài hai kích thước. 2. Thuật giải. Bước 1. Nhận vào k1, k2; Bước 2. Viết ra giá trị của biểu thức chu vi là 2 * (k1 + k2) ; Bước 3. Viết ra giá trị của biểu thức diện tích là k1 * k2 ; Bước 4. Tính giá trị của biểu thức d = Bước 5. Viết ra giá trị của d; Bước 6. Viết ra giá trị của biểu thức chu vi hình tròn là p* d ; Bước 7. Viết ra giá trị của biểu thức diện tích hình tròn là p* d*d/4 Bước 8. Kết thúc Nhìn vào thuật giải trên, ta thấy để d lưu giữ giá trị của biểu thức đường chéo của hình chữ nhật, bài này ta sẽ học một lệnh mới. Đó là lệnh gán. 3. Chương trình Program chunhat2; Uses crt; Var k1, k2 : real; BEGIN Clrscr ; Write (' Cho do dai hai canh cua hinh chu nhat ' : 65) ; readln (k1 , k2); writeln (' Chu vi la ' : 12 , 2*(k1+k2) : 9 : 2) ; writeln (' Dien tich la ' , k1*k2 : 9 : 3) ; { In ra man hinh gia tri cua duong cheo } write (' Duong cheo la ', SQRT(k1*k1 + k2*k2):16:4) ; Readln; END. Qui tắc viết lệnh này như sau: Tên biến := Biểu thức; Thực hiện lệnh này, máy tính giá trị của biểu thức ở bên phải dấu gán (:=), sau đó gán giá trị này cho biến ở bên trái dấu gán, tức là đưa giá trị đó vào địa chỉ được kí hiệu bởi tên biến ở bên trái dấu gán. Sau lệnh gán, giá trị cũ của biến bị mất và biến nhận giá trị mới. Ví dụ ta khai báo Var a : Integer ; ở phần thân chương trình ta có hai lệnh gán a := - 6 ; a := a + 8 thì thực hiện lệnh gán thứ nhất a có giá trị là -6. Tiếp đến sau khi thực hiện lệnh gán thứ hai biến a có giá trị là 2. Giá trị cũ là -6 bị mất, biến nhận giá trị mới. 4. Thực hiện chương trình Gõ phím F2 để ghi văn bản đã soạn lên đĩa. Gõ phím F9 để sửa lỗi. Khi nào hết lỗi nhớ gõ phím F2 để ghi chương trình hết lỗi cú pháp lên đĩa. 5. Ghi nhớ Hằng số p PASCAL đã cài đặt sẵn mang tên là Pi . - Cách viết lệnh gán: Tên biến := Biểu thức ; - Cách thực hiện Thực hiện lệnh này, trước tiên máy tính giá trị của biểu thức ở bên phải dấu gán, sau đó máy gán giá trị của biểu thức cho biến ở bên trái dấu gán. Sau lệnh gán, giá trị cũ của biến bị mất, biến nhận giá trị mới. 6. Áp dụng 6.1. Bài toán. Viết chương trình cho máy nhận vào ba cạnh a, b, c của tam giác ABC. Tính diện tích tam giác đó và tính độ dài từng đường cao của tam giác. 6.2 Thuật giải Ta tính diện tích của tam giác theo ba độ dài của ba cạnh bằng công thức Hê Rông như sau đây. Bước 1. Nhận vào số đo của ba cạnh a, b, c [...]... ỳng tờn hm v truyn i tng thc s cho tham chiu nh lm vi th tc S khỏc nhau gia hm v th tc l ch: hm phi gi trong thnh phn ca mt biu thc cũn th tc thỡ phi gi c lp Turbo Pascal Version 7.0 hm cng cú th gi c lp nh th tc 5 Cu trỳc chng trỡnh pascal 1) Tiờu ca chng trỡnh Cú th cú hay khụng cng c Nhng nu cú phi theo quy tc: - Phi c khai bỏo u tiờn - Phi bt u bng ch Program - Tờn chng trỡnh phi tuõn theo quy... cỏc s nguyờn vi cỏc dũng c ỏnh s t 1 n m v cỏc ct c ỏnh s t 1 n n (m > 4, n > 6), trong ú A[i, j] = i2 + j a Tớnh tng S1 gm cỏc phn t hai ct 3 v 5 b Tớnh tng S2 gm cỏc phn t dũng 5 v ct 7 (phn t ụ l giao ca dũng 5 v ct 7 ch cng mt ln) c Tớnh tng cỏc phn t l s nguyờn t ca mng 2 Cho hai s thc a, b v n cp s thc x1, y1, x2, y2, , xn, yn a, b l to trng hc xi, yi (i nhn giỏ tr t 1 n n) l to ca n ngụi... phn t nm song song sỏt di ng chộo ph Tớnh tng cỏc phn t nm trờn ng chộo chớnh v phớa trờn ng chộo chớnh h Tớnh tng cỏc phn t nm phớa di ng chộo ph 4 Lp chng trỡnh cho mỏy tớnh vit lờn mn hỡnh tam giỏc PASCAL gm K+1 dũng l h s ca khai trin nh thc Niu Tn (x+y)n vi n nhn cỏc giỏ tr t 0 n K K l mt s t nhiờn khụng quỏ 12 nhn vo t bn phớm Vớ d k=4 thỡ mn hỡnh s in ra 5 dũng nh sau 1 1 1 1 2 1 1 3 3 1 1 4... tng thc s vo tham chiu khi gi chng trỡnh con Vi mt s bi toỏn v phc tp, ngi ta thng chia nú thnh nhiu on chng trỡnh nh Ta tin hnh gii cỏc bi toỏn nh ny ri ghộp vo c kt qu ca bi toỏn ln ban u Trong Turbo Pascal cng cho phộp chỳng ta lm nh vy Bi hc ny chỳng ta s cp n: Mt s khỏi nim v chng trỡnh con Chng trỡnh l mt dóy lnh c xõy dng cho mỏy tớnh nhm hon thnh mt cụng vic no ú Cụng vic ny cú th bao gm nhiu... cu sau õy: Trờn mn hỡnh cú nm dũng ch nh sau: a Tinh duong cao va trung tuyen ung voi canh a b Tinh duong cao va trung tuyen ung voi canh b c Tinh duong cao va trung tuyen ung voi canh c 0 Ngung chuong trinh Go phim tuong ung de chon cong viec Cho mỏy nhn vo 3 cnh a, b, c ca tam giỏc ABC sau ú tu theo ngi dựng gừ vo phớm no trong cỏc kớ t a, b, c, 0 thỡ cụng vic tng ng ó ch ra c thc hin 2 Vit chng trỡnh... õy: Thut gii sau õy lm cụng vic gỡ? Thut gii khụng tờn ; Bin nguyờn i ,j ; Bt u Vi i := 1 n 9 Lm Vi j := 0 n 9 Lm vit ra ( i :4 , j ) X.vi j ; X.vi i ; Kt thỳc b Hóy chuyn thut gii trờn thnh chng trỡnh Pascal v cho chy chng trỡnh c Hóy lp bng mụ phng vic thc hin chng trỡnh trờn 2 Hóy lp bng mụ phng vic thc hin chng trỡnh trờn 3 Vit chng trỡnh gii bi toỏn: Va g va chú bú li cho trũn 36 con 100 chõn chn... kt thỳc bi du chm phy (;) (2) Phn thõn chng trỡnh Phn ny bt buc phi cú Thõn chng trỡnh bt u bng t khúa BEGIN v kt thỳc bng END (nh cú du chm i bờn cnh END) (3) Phn khai bỏo s dng cỏc th vin (UNIT) ca Pascal Phn ny cú th cú, cú th khụng nu cú phi c khai bỏo ngay sau phn (1) (4) n (9) cú th cú, cú th khụng Nhng phn ny khụng nht thit phi tuõn theo th t nh trong bng trờn m v trớ ca chỳng cú th thay i BI... ú ta phi lm vic vi kiu d liu xõu kớ t Bi hc ny chỳng ta s tỡm hiu cỏc phn sau: Kiểu xâu kí tự 1 Khỏi nim Chỳng ta gi kiu d liu cú giỏ tr l tp nhng kớ t l kiu xõu kớ t hay núi mt cỏch ngn gn l kiu xõu Pascal cú t khoỏ STRING ngi dựng khai bỏo cho d liu cú giỏ tr l tp nhng kớ t Vớ d ta khai bỏo bin A cú kiu l tp nhng kớ t nh sau: VAR A : STRING ; mỏy dnh cho bin A cú th lu gi c mt tp cú khụng quỏ 255 . gian ít nhất Giao tiếp với Turbo Pascal Mục tiêu bài học: - Biết vào môi trường làm việc của Turbo Pascal. - Nắm được cấu trúc của 1 chương trình Pascal đơn. lệnh. 2. Khởi động TURBO PASCAL Để sử dụng TURBO PASCAL ta cần tối thiểu là hai tệp: TURBO.EXE và TURBO.TPL. Khởi động TURBO PASCAL, giả sử ta đang ở thư