1. Trang chủ
  2. » Giáo án - Bài giảng

Bài tập Pascal (chi tiết) - Tham khảo

51 2K 28
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 51
Dung lượng 481,5 KB

Nội dung

Bài giảng ngôn ngữ lập trình Pascal LỜI MỞ ĐẦU Theo khung chương trình của Bộ Giáo Dục và Đào Tạo, Ngôn ngữ Lập trình Pascal là một phần quan trọng trong học phần Tin học Đại cương thuộc các khối ngành Khoa học Tự nhiên, đặc biệt là ngành Công nghệ Thông tin. Nhằm đáp ứng yêu cầu học tập của học sinh, sinh viên bước đầu làm quen với công việc lập trình, chúng tôi đã biên soạn Bài Giảng ngôn ngữ lập trinh Pascal nhằm giúp cho sinh viên có một tài liệu học tập, rèn luyện tốt khả năng lập trình, tạo nền tảng vững chắc cho các môn học tiếp theo trong chương trình đào tạo Cử nhân Công nghệ Thông tin Giáo trình bai gồm rất nhiều bài tập từ đơn giản đến phức tạp. Các bài tập này được biên soạn dựa trên khung chương trình giảng dạy môn Tin học Đại cương. Bên cạch đó, chúng tôi cũng bổ sung một số bài tập dựa trên cơ sở một số thuật toán chuẩn với các cấu trúc dữ liệu được mở rộng nhằm nâng cao kỹ năng, phương pháp lập trình cho sinh viên. Nội dung trong mỗi chương đều có phần lý thuyết, phần bài tập mẫu và cuối cùng là phần bài tập tự giải để bạn đọc tự mình kiểm tra những kiến thức và kinh nghiệm đã học. Chúng tôi hy vọng sớm nhận được những ý kiến đóng góp, phê bình của bạn đọc về nội dung, chất lượng và hình thức trình bày để giáo trình này ngày một hoàn thiện hơn. QB, Tháng 11 Năm 2006 TÁC GIẢ Người soạn: Đinh Văn Thái 1 Bài giảng ngôn ngữ lập trình Pascal CHƯƠNG I THUẬT TOÁN I. Khái niệm thuật toán 1. Khái niệm: Thuật toán là một dãy hữu hạn các thao tác, được sắp xếp theo một trình tự xác định, sao cho từ Input của bài toán ta xác định được Output cần tìm. 2. Ví dụ: Một hộp kín chứa hữu hạn các viên bi có kích thước khác nhau. Hãy tìm thuật toán tìm ra viên bi lớn nhất, biết rằng mỗi lần chỉ được bốc một viên. Thuật toán được trình bày như sau: Bước 1: Bốc một viên bất kỳ. Bước 2: Kiểm tra xem hộp đã rỗng chưa? Nếu đúng chuyển qua bước 4. Nếu sai chuyển qua bước 3. Bước 3: Bốc tiếp một viên bi khác, so sánh hai viên và giữ lại viên lớn rồi chuyễn qua bước 2. Bước 4: Viên bi hiện tại là viên bi lớn nhất, kết thúc. II. Các tính chất của thuật toán. 1. Tính phổ dụng: Thuật toán không chỉ để giải quyết một bài toán riêng lẽ mà được dùng để giải quyết một lớp các bài toán (có thể la vô hạn), các bài toán cùng loại. 2. Tính hữu hạn: Thuật toán phải được kết thúc sau một số hữu hạn bước thực hiện các thao tác.Một thuật toán không có tính hữu hạn là không khả thi. 3. Tính xác định: Thuật toán đòi hỏi mỗi bước thao tác phải rõ ràng và xác định một cách đơn trị bước tiếp theo. 4. Tính hiệu quả: Thể hiện ở các yêu cầu sau: - Tính đúng đắn. - Tính tối ưu: Tiết kiệm thời gian thực hiện, tiết kiệm bộ nhớ. III. Các đại lượng của thuật toán. 1. Đại lượng vào: Là những đại lượng cho trước làm cơ sở cho việc hình thành nên bài toán. 2. Đại lượng ra: Thường là kết quả sau khi đã thực hiện xong thuật toán và đó cũng chính là yêu cầu của bài toán. 3. Đại lượng trung gian: Là các đại lượng tham gia vào quá trình để giải bài toán nhưng không phải là đại lượng vào mà cũng chẳng phải là đại lượng ra. Ví dụ: Bài toán giải phương trình bậc hai: ax 2 + bx + c = 0 (a ≠ 0). Đại lượng vào là các hệ số a,b,c. Đại lượng ra là: hoặc là nghiệm kép, hoặc là hai nghiệm phân biệt nhưng cũng có khi là một câu thông báo vô nghiệm. Đại lượng trung gian: delta = b 2 – 4ac. Người soạn: Đinh Văn Thái 2 Bài giảng ngôn ngữ lập trình Pascal 4. Hằng, biến, kiểu: Để biểu diễn các đại lượng nêu trên của thuật toán ta sử dụng các hằng, biến và phải có kiểu dữ liệu nhất định. - Hăng: Là đại lượng không thay đổi trong quá trình thực hiện thuật toán. - Biến: Là đại lượng có thể thay đổi giá trị trong quá trình thực hiện thuật toán. - Kiểu: Là tập hợp các giá trị (miền trị) mà các đại lượng cóthể nhận, đồng thời với việc quy định các phép toán tác động trên đó. IV. Biểu diễn của thuật toán 1. Các dạng biểu diễn của thuật toán: Có thể biểu diễn thuật toán bằng 3 dạng sau: - Liệt kê các bước (như ở ví dụ 1). - Cấu trúc theo ngôn ngữ quy ước của thuật toán. - Sơ đồ khối. 2. Biểu diễn thuật toán bằng sơ đồ khối: Đây là dạng biểu diễn có cấu trúc trực quan, rõ ràng. a. Các kí hiệu dùng để biểu diễn thuật toán: Dùng để chỉ sự bắt đầu và kết thúc của thuật toán Dùng để chỉ việc nhập dữ liệu và ghi dữ liệu ra màn hình Dùng để biểu diễn các thao tác của thuật toán Dùng để kiểm tra điều kiện. Dùng để hướng đi của thuật toán. Ngoài ra ta còn sử dụng ký hiệu := để biểu diễn cho việc gán giá trị cho các biến. b. Các ví dụ: Ví dụ 1: Vẽ sơ đồ thuật toán để giải phương trình: ax + b = 0; - Dữ liệu vào là a, b. - Dữ liệu ra là nghịêm hoặc một câu thông báo. Người soạn: Đinh Văn Thái 3 Bài giảng ngôn ngữ lập trình Pascal Ví dụ 2: Sơ đồ thuật toán để giải bài toán tính tổng: S = 1 + 2 + 3 + … + n (Với N nguyên dương bất kỳ và không dùng công thức S = n(n+1)/2). Người soạn: Đinh Văn Thái 4 Begin Nhập a,b a=0 x=-b/a b=0 moi x Vô nghiệm End. F F T T Bài giảng ngôn ngữ lập trình Pascal BÀI TẬP CHƯƠNG I Bằng phương pháp dùng sơ đồ khối, trình bày thuật toán giải các bài toán sau đây: 1. Tính S = 1 + 2 + 3 + … + n. 2. Tính S = 1 – 2 + 3 - … + (-1) n-1 n. 3. Giải phương trình bậc 2: ax 2 + bx + c = 0 (a ≠ 0). 4. Tìm ước chung lớn nhất của hai số nguyên dương. 5. Tìm bội chung nhỏ nhất của hai số nguyên dương. 6. Kiểm tra một số nguyên dương có phải là một số nguyên tố hay không CHƯƠNG II Người soạn: Đinh Văn Thái 5 Begi n Nhâp n S:=0; i:=1 i> n S:=S+i; i=i+1 S End. T F Bài giảng ngôn ngữ lập trình Pascal CÁC KIẾN THỨC CHUNG VỀ NGÔN NGỮ LẬP TRÌNH PASCAL Pascal là một ngôn ngữ lập trình bậc cao do Niklaus Wirth, giáo sư điện toán trường Đại học kỹ thuật Zurich (Thụy Sĩ) đề xuất năm 1970. Ông lấy tên Pascal để kỷ niệm nhà toán học và nhà triết học người Pháp nổi tiếng Blaise Pascal. I. Các tập tin cần thiết khi lập trình với Turbo Pascal Để lập trình được với Turbo Pascal, tối thiểu cần 2 file sau: • TURBO.EXE: Dùng để soạn thảo và dịch chương trình. • TURBO.TPL: Thư viện chứa các đơn vị chuẩn để chạy với TURBO.EXE. Ngoài ra, muốn lập trình đồ hoạ thì phải cần thêm các tập tin: • GRAPH.TPU: Thư viện đồ hoạ. • *.BGI: Các file điều khiển các loại màn hình tương ứng khi dùng đồ hoạ. • *.CHR: Các file chứa các font chữ đồ họa. II. Các bước cơ bản khi lập một chương trình Pascal 1. Các bước lập trình tổng quát: Bước 1: Phân tích bài toán; Xác định dữ liệu vào, dữ liệu ra làm cơ sở cho việc hình thành giải thuật. Bước 2: Xây dựng thuật toán: Trên cơ sở xác định dữ liệu vào, ra; các giả thiết của bài toán, các mối liên hệ giữa chúng và những kiến thức liên quan ta cần đưa ra thuật toán tương ứng. Bước 3: Tổ chức dữ liệu và lập chương trình theo thuật toán đã đè ra. 2. Các bước lập trình và thực hiện (với Turbo Pascal): Bước 1: Khởi động Turbo Pascal (Turbo. exe) Bước 2: Soạn thảo chương trình. Bước 3: Biên dịch (Nhấn tổ hợp phím ALT – F9). + Nếu thành công thì chuyễn qua bước 4. + Nếu không thành công chuyễn qua bước 2. Bước 4: Chạy thử chương trình. + Nếu tốt chuyễn qua bước 5. + Nếu chưa tốt thì quay về bước 2. Bước 5: Ghi vào đĩa, dịch thành file *.exe. Bước 6: Kết thúc. III. Một số phím chức năng thường dùng • F2: Lưu chương trình đang soạn thảo vào đĩa. • F3: Mở file mới hoặc file đã tồn tại trên đĩa để soạn thảo. • Alt-F3: Đóng file đang soạn thảo. Người soạn: Đinh Văn Thái 6 Bài giảng ngôn ngữ lập trình Pascal • Alt-F5: Xem kết quả chạy chương trình. • F8: Chạy từng câu lệnh một trong chương trình. • Alt-X: Thoát khỏi Turbo Pascal. • Alt-<Số thứ tự của file đang mở>: Dịch chuyển qua lại giữa các file đang mở. • F10: Vào hệ thống Menu của Pascal. IV.Các thao tác cơ bản khi soạn thảo chương trình IV.1. Các phím thông dụng • Insert: Chuyển qua lại giữa chế độ đè và chế độ chèn. • Home: Đưa con trỏ về đầu dòng. • End: Đưa con trỏ về cuối dòng. • Page Up: Đưa con trỏ lên một trang màn hình. • Page Down: Đưa con trỏ xuống một trang màn hình. • Del: Xoá ký tự ngay tại vị trí con trỏ. • Back Space (): Xóa ký tự bên trái con trỏ. • Ctrl-PgUp: Đưa con trỏ về đầu văn bản. • Ctrl-PgDn: Đưa con trỏ về cuối văn bản. • Ctrl-Y: Xóa dòng tại vị trí con trỏ. IV.2. Các thao tác trên khối văn bản • Chọn khối văn bản: Shift + <Các phím ←↑→↓ > • Ctrl-KY: Xoá khối văn bản đang chọn • Ctrl-Insert: Đưa khối văn bản đang chọn vào Clipboard • Shift-Insert: Dán khối văn từ Clipboard xuống vị trí con trỏ. V. Các khái niệm và các thành phần cơ bản 1. Bộ ký tự (Dùng để soạn thảo chương trình) Bao gồm các loại ký tự sau đây:  Các chữ cái: a z; A Z (Khi soạn thảo chương trình, Turbo Pascal không phân biệt chữ hoa hay chữ thường).  Các ký tự số: 0 9. - Các dấu toán: + - * / ^ = > < . - Các ký tự đặc biệt: ? ; . : ! [ ] { } # $ @.  Dấu gạch nối: - Các ký tự điều khiển. 2. Từ và từ khoá a. Từ: Là một dãy liên tiếp các ký tự không chứa ký tự trắng và ký tự điều khiển. b. Từ khoá: Là từ dành riêng của Pascal với chức năng và cú pháp được quy định sẵn. Vì vậy khi sử dụng phải theo đúng quy định và không được sử dụng các từ khoá vào các công việc khác. Ví dụ: Begin, end, if, then, const, var, function,… 3. Tên và tên chuẩn. Người soạn: Đinh Văn Thái 7 Bài giảng ngôn ngữ lập trình Pascal a. Tên: Là một từ bao gồm tối đa 255 ký tự, chỉ được lấy trong các chử cái, chử số và dấu gạch nối, nhưng không được bắt đầu bằng số. Tên dùng để đặt cho các đối tượng trong chương trình như hằng, biến, hàm, thủ tục, kiểu dữ liệu,… b.Tên chuẩn: Là tên mà Turbo Pascal đã định sẵn để chỉ các hàm, hằng, biến, thủ tục thư viện của nó. VI. Cấu trúc chung của một chương trình Pascal { Phần tiêu đề } PROGRAM Tên_chương_trình; { Phần khai báo và định nghĩa} USES ; CONST .; TYPE .; VAR ; PROCEDURE ; FUNCTION ; . { Phần thân chương trình } BEGIN . END. 1. Phần tiêu đề: Từ khoá để khai báo là Program tiếp đến là tên của chương trình do người dùng tự đặt. Phần này không bắt buộc phải có. 2. Phần khai báo và định nghĩa: Uses: Dùng để khai báo các Unit (đơn vị chương trình) của Turbo Pascal. Nếu có nhiều Unit thì sử dụng dấu phẩy “,” để ngăn cách. Const: Dùng để khai báo các hằng. Cú pháp: Tên_hằng = Giá trị. Type: Dùng để định nghĩa các kiểu dữ liệu của người dùng. Cú pháp: Tên_kiểu = định nghĩa cụ thể cho từng kiểu. Var: Khai báo biến. Cú pháp: Tên_biến: Kiểu_dữ liệu; (Hoặc khai báo trực tiếp không thông qua kiểu.). Nếu có nhiều biến cùng kiểu thì sử dụng dấu phẩy “,” để ngăn cách. Procedure: Định nghĩa chương trình con dạng thủ tục. Function: Định nghĩa chương trình con dạng hàm. 3. Phần thân chương trình: Được bắt đầu bằng từ khoá “Begin” và kết thúc bởi từ khoá “End”. Giữa cặp từ khoá này có các câu lệnh của chương trình. Chú ý: - Turbo Pascal cũng sử dụng dấu “;” để kết thúc phần này chuyển qua phần khác cũng như giữa khai báo này qua khai báo khác của chương trình. Người soạn: Đinh Văn Thái 8 Bài giảng ngôn ngữ lập trình Pascal - Khi soạn thảo chương trình cho phép đưa vào các câu chú thích nhưng phải được đặt trong cặp dấu móc {…} hoặc (*…*). Ví dụ 1: Chương trình Pascal đơn giản nhất BEGIN Write(‘Hello World!’); END. Ví dụ 2: Program Vidu2; Const PI=3.14; Var R,S:Real; Begin R:=10; {Bán kính đường tròn} S:=R*R*PI; {Diện tích hình tròn} Writeln(‘Dien tich hinh tron = ‘, S:0:2); { In ra màn hình } Readln; End. CHƯƠNG III CÁC KIỂU DỮ LIỆU ĐƠN GIẢN Người soạn: Đinh Văn Thái 9 Bài giảng ngôn ngữ lập trình Pascal I. Tổng quan về các kiểu dữ liệu trong Turbo Pascal Các kiểu dữ liệu trong Turbo Pascal được chia làm hai loại: - Các kiểu dữ liệu đơn gian. - Các kiểu dữ liệu co cấu trúc. 1. Các kiểu dữ liệu đơn giản gồm:  Kiểu chuẩn: - Logic. - Số nguyên. - Số thực. - Ký tự. - Xâu.  Kiểu do người dung định nghĩa: - Kiểu đoạn con. - Kiểu liệt kê. 2. Các kiểu dữ liệu có cấu trúc: - Mảng. - Tập hợp. - Bản ghi. - File II. Các kiểu dữ liệu đơn giản chuẩn 1. Kiểu logic:  Từ khoá: Boolean.  Miền trị: Chỉ có hai giá trị là True và False.  Các phép toán: AND, OR, NOT, XOR.(Xem bảng dưới đây) Các phép toán: phép so sánh (=, <, >) Trong Pascal, khi so sánh các giá trị boolean ta tuân theo qui tắc: FALSE < TRUE. Giả sử A và B là hai giá trị kiểu Boolean. Kết quả của các phép toán được thể hiện qua bảng dưới đây: A B A AND B A OR B A XOR B NOT A TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE 2. Kiểu số nguyên 2.1. Các kiểu số nguyên • Có 5 kiểu số nguyên: Miền trị của các kiểu đó như sau: Người soạn: Đinh Văn Thái 10 [...]... A2 + B 2 Bài tập 2: Viết chương trình tách một số n thành 2 số a, b sao cho tích P=a*b 2 đạt cực đại với n được nhập vào từ bàn phím Gợi ý: Gọi x là số thứ hai thì số thứ nhất là: (n-x) Theo đề ta có: P(x) = x2.(n-x) Hàm P đạt cực đại khi P’(x) = -3 x2 + 2nx = 0  x = 2n/3 Bài tập 3: Viết chương trình nhập vào ba cột điểm với các hệ số 1,2 và 3 Tính và in lên màn hình điểm trung bình cộng Bài tập 4: Viết... WRITE( [, , ]); (2) WRITELN( [, , ]); (3) WRITELN; Các thủ tục trên có chức năng như sau: (1) Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ không xuống dòng (2) Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ xuống đầu dòng tiếp theo (3) Xuất ra màn hình một dòng trống Các tham số có thể là các hằng, biến, biểu thức Nếu có nhiều tham. .. soạn: Đinh Văn Thái 19 Bài giảng ngôn ngữ lập trình Pascal Readln; End b/ Không được phép dùng biến trung gian Program Swap; Var a,b: Integer; Begin Write('Nhap vao a= '); Readln(a); Write('Nhap vao b= '); Readln(b); a:=a+b; {a lấy tổng giá trị của a+b} b:=a-b; {b lấy giá trị của a} a:=a-b; {a lấy lại giá trị của b} Writeln('a = ',a,’ b = ‘,b); Readln; End BÀI TẬP CHƯƠNG IV Bài tập 1: Viết chương trình... số thực: +, -, *, / • Chú ý: (1) Miền trị của các kiểu dữ liệu (trừ comp) được hiểu là lấy trong các đoạn:  [-max, -min] Người soạn: Đinh Văn Thái 11 Bài giảng ngôn ngữ lập trình Pascal  [max, min]  số 0 Nếu một số < -max hoặc > max thì sẽ không biểu diễn được và xem như là tràn số Nếu một số ” hay nhỏ hơn ” . Kiểu do người dung định nghĩa: - Kiểu đoạn con. - Kiểu liệt kê. 2. Các kiểu dữ liệu có cấu trúc: - Mảng. - Tập hợp. - Bản ghi. - File II. Các kiểu dữ liệu. liệu đơn gian. - Các kiểu dữ liệu co cấu trúc. 1. Các kiểu dữ liệu đơn giản gồm:  Kiểu chuẩn: - Logic. - Số nguyên. - Số thực. - Ký tự. - Xâu.  Kiểu do

Ngày đăng: 01/08/2013, 05:41

HÌNH ẢNH LIÊN QUAN

 Các phép toán: AND, OR, NOT, XOR.(Xem bảng dưới đây)                      Các phép toán: phép so sánh (=, &lt;, &gt;)  - Bài tập Pascal (chi tiết) - Tham khảo
c phép toán: AND, OR, NOT, XOR.(Xem bảng dưới đây) Các phép toán: phép so sánh (=, &lt;, &gt;) (Trang 10)
Câu lệnh Kết quả trên màn hình - Bài tập Pascal (chi tiết) - Tham khảo
u lệnh Kết quả trên màn hình (Trang 18)
Vídụ 2: Viết chương trình nhập và oN số nguyên từ bàn phím. Hãy tính và in ra màn hình - Bài tập Pascal (chi tiết) - Tham khảo
d ụ 2: Viết chương trình nhập và oN số nguyên từ bàn phím. Hãy tính và in ra màn hình (Trang 25)

TỪ KHÓA LIÊN QUAN

w