Giáo trình nhập môn tin học - Phần III Pascal

20 760 2
Giáo trình nhập môn tin học - Phần III Pascal

Đ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

TRƯỜNG ĐẠI HỌC XÂY DỰNG KHOA CÔNG NGHỆ THÔNG TIN    GIÁO TRÌNH MƠN HỌC: NHẬP MƠN TIN HỌC PHẦN III – NGƠN NGỮ LẬP TRÌNH PASCAL -2 Giảng viên: ĐÀO TĂNG KIỆM Bộ môn : TIN HỌC XÂY DỰNG Hà nội 2012 Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Chương CHƯƠNG TRÌNH CON I Khái niệm chung – đặc điểm Khái niệm chung: Ở chương trước làm quen với cấu trúc chương trình chính, để giải nhiều vấn đề, tất lệnh nằm chương trình thực lệnh từ xuống Với toán lớn, theo cấu trúc chương trình dài, cồng kềnh, khó kiểm sốt khơng thể phân chia cho nhiều nhóm thực đồng thời lúc Từ hình thành ý tưởng xây dựng chương trình mơ đun độc lập, kết nối với chương trình chương trình khác qua “đầu vào” “đầu ra”, chia nhỏ chức cấu trúc chương trình thành nhiều mơ đun nhỏ, chương trình chương trình điều khiển q trình tính tốn chương trình Trong năm đầu bắt đầu xuất ngơn ngữ lập trình, người ta chưa thiết lập cấu trúc Chương trình Trong trình phát triển ngơn ngữ có, với nhu cầu người sử dụng, tiện lợi mà chương trình mang lại, phát triển ngơn ngữ có xây dựng ngơn ngữ lạp trình hướng đến việc tổ chức chương trình Ưu điểm sử dụng cấu trúc chương trình con: - Cấu trúc chương trình trở nên gọn, mạch lạc, dễ hiểu - Không lặp lại phần tương tự - Vì mơ đun độc lập, chương trình sử dụng nhiều lần chương trình chương trình khác - Dễ kiểm tra, theo dõi trình thử nghiệm Đặc điểm Chương trình con: - Là đơn vị chương trình độc lập, hồn chỉnh, bao gồm phần: tên chương trình, phần khai báo phần thân Chương trình giải vấn đề trọn vẹn sử dụng nhiều lần qua lời gọi chương trình - Tồn Chương trình đặt cuối phần khai báo chương trình - Các biến chương trình có tính chất cục (chỉ có tác dụng thân chương trình đó) Trong chương trình sử dụng tất lệnh chương trình - Thứ tự khai báo chương trình khơng quan trọng chương trình độc lập với Khi chương trình gọi đến phải xếp theo trật tự Ví dụ chương trình A gọi đến chương trình B B phải khai báo trước A - Trong Pascal có loại chương trình con: chương trình dạng hàm (Function) chương trình dạng thủ tục (Procedurre) - Chương trình tham chiếu đến gọi từ chương trình Bộ mơn Tin học Xây dựng Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm - Mỗi lần gặp lời gọi chương trình con, chương trình chuyển đến chương trình thực chúng, sau thực hiện, quay trở chương trình thực câu lệnh sau lời gọi chương trình Minh họa cấu trúc chương trình chương trình con: Cấu trúc chương trình Chú thích Program Tên_chương_trình_chính; Các khai Lebel – Const- Type báo chung Var (Khai báo Các biến chung ) CT Function Tên_hàm ( Danh_sách_tham_số_hình thức) : kiểu_hàm ; { Phần khai báo biến cục hàm} Begin Các câu lệnh chương trình ạng hàm End; Procedure Tên_Thủ_tục (Dsach_Tham_số_hình_thức); { Phần khai báo biến cục thủ tục} Begin Các câu lệnh chương trình thủ tục; End; BEGIN Các lệnh ; Lời gọi chương trình con; …… END II Khai báo Chương trình Phần khai báo chương trình Nội dung chương trình Phần thân chương trình Thủ tục hàm – cách khai báo Hàm – Function: Chương trình dạng hàm dùng để tính cho hàm xử lý cho toán tính xuất kết  Đặc điểm chương trình dạng hàm: - Tên chương trình tên biến chứa kết - Dùng cho tốn tính kết - Trong phần thân chương trình phải có phép gán có chứa tên CTC - Lời gọi chương trình hàm phải nằm thành phần biểu thức phép gán kết chương trình lấy từ  Cấu trúc chương trình dạng hàm: Function Tên_hàm ( Danh_sách_tham_số_hình thức) : kiểu_hàm ; { Phần khai báo biến cục hàm} Begin Bộ môn Tin học Xây dựng Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Các câu lệnh; Tên_hàm:= Biểu_Thức End;  Ví dụ: Để tính hàm: F1 = a.x + 5b x2 – (a+b) xy F2 = (7.a-c).x + b x2 + (a-b) xy F3 = c.x + (a+c) x2 – (a2+b2) xy F4 = (a/2).x + 5b x2 – 120.b xy - Chúng ta nhận thấy hàm có cấu trúc giống tổng qt hóa qua cơng thức : F= a1.x + a2 x2 +a3 xy Trong a1, a2, a3 có giá trị khác hàm F1, F4 Chúng ta thiết lập chương trình dạng Function để tính cho hàm “đại diện”, sau gọi chúng tính cho hàm F1 F4 sau: - Chương tình tính cho hàm F bất kỳ: Nội dung Giải thích a1,a2, Ten : tham số hình Function F ( a1, a2, a3 : real) : real; Var x,y : real ; Begin F := a1* + a2* x2 +a3* x*y ; Writeln ( ‘ Gia tri cua ham ’); End; - Để tính tốn cho hàm F1, F4 ta viết đoạn chương trình sau: Program Tinh_ham; Var a,b,c, F1,F2,F3,F4,x,y : real ; BEGIN Writeln (‘ Nhap du lieu ’); Write ( ‘ Nhap cac gia tri a,b,c ’); Readln ( a,b,c); Write ( ‘ Nhap cac gia tri x,y ’); Readln ( x,y); Writeln (‘ KET QUA ’); F1:= F ( a, 5*b, - (a+b) ) ; Writeln (’F1= ’ , F1:8:2 ); F2:= F ( 7*a-c , sqr(b), (a-b) ) ; Writeln (’F2= ’, F2:8:2 ); F3:= F ( c, (a+c), - (a*a+b*b)) ; Writeln (’F3= ’ , F3:8:2 ); F4:= F ( a/2, 5*b, - 120*b ) ; Writeln (’F4= ’ , F4:8:2 ); Readln ; END Bộ môn Tin học Xây dựng thức Khai báo biến x,y lấy tên trùng với tên CT Thân chương trình con, tính cho hàm F sau in kết Chương trình Khai báo tham số thực Nhập liệu cho chương trình Gọi lần CTcon tính hàm, lời gọi tính cho hàm, ví dụ để tính F1 thay tham số hình thức tham số thực sau: a1= a; a2=5*b ;a3=a+b; Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Thủ tục - Procedure:  Đặc điểm thủ tục: dùng để tính cho tốn - Tên chương trình tên bất kỳ, theo cách đặt tên Pascal - Thủ tục tính xuất cho nhiều kết  Cấu trúc chương trình dạng thủ tục: Procedure Tên_thủ_tục ( Danh_sách_tham_số_hình thức) ; { Phần khai báo biến cục thủ tục} Begin Các câu lệnh; End;  Ví dụ: Viết chương trình nhập liệu cho ma trận X có kích thước m hàng, n cột Procedure Nhap_ma_tran ( Var m,n: integer; Var X :MT) ; Var i,j :integer; Begin Write (' m, n = '); Readln (n,m); for i:=1 to m for j:=1 to n begin write (' X[', i, ',' , j ,']= ' ); readln (X [i,j]); end End; Chú ý: tham số hình thức mảng, không khai báo trực tiếp, vậy, để khai báo cho X, chương trình phải mơ tả trước kiểu, dùng lệnh Type ví dụ: Type MT=array[1 15,1 15] of real; (Tham khảo thêm ví dụ chương trình ví dụ tổng hợp phần sau) Biến toàn cục biến cục bộ: Biến toàn cục (tổng thể) biến chương trình chính, biến thực chương trình đặt phần khai báo chương trình Biến cục (đại phương) biến chương trình con, có tác dụng chương trình Biến cục dùng chung với biến toàn cục Khai báo biến cục bộ, qua số vị trí chương trình: - Đặt phần khai báo chương trình - Khai báo qua tham số hình thức - Dùng chung với biến tồn cục (tên phải giống CT CT con) III Tham số Tham số hình thức: Chương trình có tham số khơng có tham số Việc truyền tham số cách kiểm soát liệu vào/ chương trình con, dễ dàng điều khiển biến nằm trị liên quan đến chứng chương trình Bộ mơn Tin học Xây dựng Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Khi sử dụng tạo tham số cần phải xác định: - Các liệu từ bên ngồi cần truyền đến chương trình liệu mà chương trình sau tính tốn cần lấy sử dụng tiếp - Đặt tên cho tham số - Những liệu bị chương trình thay đổi - Loại tham số danh sách (tham trị hay tham biến)  Tham số hình thức tham số khai báo sau tên hàm thủ tục, đặt cặp ngoặc trịn Nó tên giả định đại diện cho đại lượng biến/trị đưa vào trị cần đưa chương trình, biến cục CT Con Danh sách tham số hình thức tập hợp nhiều nhóm, nhóm phải loại kiểu, nhóm ngăn cách dấu chấm phẩy; cịn nhóm có nhiều tên ngăn cách dấu phẩy Dạng : (Nhóm :kiểu; Nhóm 2: kiểu …);  Ví dụ: Procedure Tong_MT ( m,n: interger; A,B: VT2; var C: VT2); Trong ví dụ trên, danh sách tham số hình thức có nhóm, nhóm tham trị, nhóm tham biến Nhóm có kiểu nguyên, nhóm nhóm có kiểu VT2, kiểu loại mảng khai báo trước Trong danh sách tham số hình thức có loại : Tham biến tham trị  Tham biến: tên phần khai báo tham số hình thức có chữ Var trước, tham số truyền theo kiểu biến Với kiểu truyền này, địa chứa biến trước truyền vào CTCon sau khỏi CTCon chung vùng, chương trình làm thay đổi giá trị khỏi CTC giữ nguyên giá trị bị thay đổi Thông thường, tham biến dùng khai báo cho liệu cần chương trình thay đổi giữ lại thay đổi đó, ví dụ liệu, kết cần tính tốn Sử dụng tham biến tiết kiệm nhớ  Tham trị: tên phần khai báo tham số hình thức khơng có chữ Var trước Với tham trị, Pascal sử dụng ô nhớ, ô nhớ để chứa giá trị biến trước truyền vào chương trình ô nhớ chứa tham trị dùng để tính tốn chương trình con, tác động chương trình đến tham trị có tác dụng nội CTCon Khi kết thúc khỏi chượng trình con, giá trị tham trị lấy theo giá trị ban đầu, trước truyền vào CTCon nên giá trị khơng bị thay đổi Do tham trị thường dùng để khai báo cho liệu cần truyền vào chương trình mà khỏi CTC, liệu không thay đổi Chú ý: - Trong danh sách tham số hình thức, khai báo mảng, tệp phải khai báo gián tiếp Bộ môn Tin học Xây dựng Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm - Chỉ liệu cần truyền vào, lấy đưa vào danh sách, tránh khai báo biến khơng cần thiết ( ví dụ số, biến đếm, biến tính tốn, xử lý trung gian…) Tham số thực cách truyền tham số: Chương trình thực có lời gọi từ chương trình Trong lời gọi chương trình con, tham số thực tế chương trình thay cho danh sách tham số hình thức gọi Tham số thực Tham số thực dùng để truyền liệu vào chương trình con, thay biến giả định hằng, biến, hàm biểu thức đơn giản (tùy thuộc vào thay cho tham biến hay tham trị) Tham số thực đại lượng khai báo chương trình chính, đại lượng dùng thực chương trình Dạng: ( Danh_sách_tham_số_thực sự); Danh sách tham số thực hằng, biến, hàm,bản ghi, tệp, biểu thức ngăn cách dấu phẩy Việc thay danh sách tham số thực gọi truyền tham số Danh sách truyền phải phù hợp với danh sách tham số hình thức số lượng, thứ tự kiểu - Với tham trị : truyền theo hằng, biến,biểu thức - Với tham biến: truyền liệu theo kiểu biến - Tên tham số hình thức tham số thực giống Ví dụ: Tham số hình thức Truyền -Tham số thực ( m,n: interger; A,B: VT2; var C: VT2); ( m, n, A, B, C); (10, 5, X, Y, Z) III Lời gọi chương trình Chương trình dùng (tham chiếu đến) qua lời gọi chương trình chỗ cần thực chương trình Số lần gọi tùy ý, lần gọi, danh sách tham số thực truyền vào danh sách tham số hình thức khác Lời gọi CTC câu lệnh độc lập  Dạng : Tên_chương trình_con ( Danh_sách_tham_số_thực_sự); Chú ý : Lời gọi hàm đứng độc lập tham gia vế biểu thức gán ( lời gọi hàm) Khi gặp lời gọi chương trình con, chương trình chuyển đến thực CTCon, thay tham số thực tương ứng với tham số hình thức thực CTCon, sau thực xong, kết trả chương trình thơng qua tham số trở chương trình câu lệnh sau lời gọi chương trình  Ví dụ: Minh họa cho tham biến, tham trị thực lời gọi chương trình Program Tham_bien; Var X,Y : integer ; { Chương trinh con} Bộ môn Tin học Xây dựng Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Procedure Cong ( Var A,B : integer); Begin A:= A+1 ; B:= B+ ; Writeln ( ‘ Gia tri cua X, Y chương trinh : ’ , A,B ); End; BEGIN { Chuong trinh chinh } X:=1 ; Y :=1 ; Writeln ( ‘ Gia tri cua X,Y truoc goi chuong trinh ’, X, Y ); Cong (X,Y) ; Writeln ( ‘ Gia tri cua X,Ysau goi chuong trinh ’, X, Y ); Readln END -Program Tham_tri; Var X,Y : integer ; { Chương trinh con} Procedure Cong ( A,B : integer); Begin A:= A+1 ; B:= B+ ; Writeln ( ‘ Gia tri cua X, Y chương trinh : ’ , A,B ); End; BEGIN { Chuong trinh chinh } X:=1 ; Y :=1 ; Writeln ( ’ Gia tri cua X,Y truoc goi chuong trinh ’, X, Y ); Cong (X,Y) ; Writeln (’ Gia tri cua X,Ysau goi chuong trinh ’, X, Y ); Readln END -Nội dung chương trình hồn tồn giống chương trình chương trình con, khác hai tham số hình thức A,B mà sau truyền vào X,Y, chương trình khai báo dạng tham biến, cịn chương trình khai báo tham trị Kết sau chạy chương trình trên: Chương trình Tham biến Chương trình Tham trị Gia tri cua X,Y truoc goi chuong trinh 1 1 Gia tri cua X,Y chuong trinh 3 Gia tri cua X,Y truoc goi chuong trinh 1 Từ thấy việc khai báo tham biến hay tham trị quan trọng ảnh hưởng đến kết tính tốn Bộ mơn Tin học Xây dựng Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Sơ đồ điều khiển chương trình chương trình Cấu trúc chương trình Program Chuong_trinh_chinh; … Procudere CTC1 ( Danh_sach); thực End; Procedure CTC2 (Danh_sach); … thực End; BEGIN … CTC1 ( Tham_so_thuc_su); … CTC2 (Tham_so_thuc_su); … Các tập áp dụng: Điều khiển Giải thích Chương trình Phần khai báo chương trình Khai báo- Toàn CT Khai báo- Toàn CT Phần thân Chương trình Lời gọi chương trình Lời gọi chương trình Bài 1: Cho véc tơ A, B có m phần tử Viết chương trình tính véc tơ C= A+B; D=A+C; E= B+D , viết chương trình con, chương trình nhập liệu cho véc tơ chương trình tính tổng véc tơ Bài 2: Cho ma trận A vng (mảng chiều) có m hàng, n cột - Tính trung bình cộng hàng ma trận - Tìm giá trị lớn cột ma trận viết chương trình con, chương trình nhập liệu cho ma trận, chương trình tính tổng hàng ma trận chương trình tính giá trị lớn cột ma trận Bài 3: Cho liệu phường dân cư có m người Biết thông tin Tên chủ hộ, Địa chỉ, Tổng số điện tiêu thụ tháng nhà 12 tháng - Nhập thơng tin hộ - Tính tổng số điện tiêu thụ năm nhà - Tính tiền điện hộ năm theo lũy tiến sau: Tổng số điện năm < 100 số: 3000đ/ số; từ 101 đến 150 số :4000đ/số; > 150 số : 5000đ/ số - Tính số lượng hộ phải trả tiền điện năm > X đồng Viết chương trình con: chương trình nhập liệu chương trình tính tiền điện cho hộ Chương TỆP VĂN BẢN Bộ môn Tin học Xây dựng Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm I Khái niệm tệp (File) Lý dùng tệp Trong trình tạo lập biến liệu đưa vào theo danh sách biến trình lưu trữ kết tính chương trình Pascal chương trước gặp nhiều tổn thất, điện tắt máy, chuyển chương trình… liệu nhập kết hình hết Bên cạnh làm toán lớn, khối lượng liệu nhiều, trình nhập liệu nhiều thời gian liệu cần lưu lại sử dụng cho mục đích khác cách nhập-xuất trực tiếp khơng hiệu Vấn đề cần phương pháp để lưu trữ liệu nhập thêm – xóa - sửa chúng cách dễ dàng, mục đích sử dụng cấu trúc tệp dữu liệu Cấu trúc tệp: Tệp kiểu liệu có cấu trúc, tập hợp liệu có liên quan đến chứa thiết bị nhớ ngồi (băng, đĩa,…) với tên đó, liệu tệp lưu trữ sử dụng nhiều lần Khác với tệp chương trình, tệp văn bản,… tệp liệu Pascal tạo từ câu lệnh chương trình Pascal từ phần mềm soạn thảo văn Tệp liệu tập hợp loại liệu dạng Văn Bản ghi tổ chức theo cách đó, đặt tên lưu đĩa Việc tổ chức sử dụng tệp gắn bó với gọi chung phương pháp truy nhập tệp Có phương pháp truy nhập truy nhập truy nhập trực tiếp Truy nhập tệp tổ chức để nhập liệu vào lấy cách tuần tự, từ đầu đến cuối tệp từ ghi đầu đến ghi cuối Truy nhập trực tiếp hay ngẫu nhiên tổ chức liệu nhập – lấy liệu từ tệp theo địa (kiểu cấu trúc ghi truy nhập đến địa ghi) Các loại tệp Có loại tệp : Tệp mã, Tệp văn Tệp khơng định kiểu Trong nội dung chương trình, đề cập đến Tệp văn Tệp văn tệp liệu lưu trữ dạng mã ASCII xếp theo dòng Các dòng ngăn cách tín hiệu EOLN (End of line),và đánh dấu vị trí cuối tệp ký hiệu EOF (end of file) Độ dài dịng tệp thay đổi Đặc điểm: - Dữ liệu ghi tệp dạng ký tự đọc hiểu - Muốn truy nhập tệp văn (nhập liệu – lấy liệu) phải tiến hành tuần tự.Ví dụ muốn lấy liệu tệp phải đọc liệu từ đầu đến vị trí muốn lấy DL (giữa tệp) - Có thể sử dụng phần mềm soạn thảo văn để soạn nội dung tệp - Tệp văn đơn giản, dễ tạo sử dụng Bộ môn Tin học Xây dựng 10 Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Tên tệp biến tệp: Như biết, tệp tạo sử dụng có tên phải tên q trình truy nhập để chương trình tìm vị trí Tên tệp xâu ký tự có thành phần : đường dẫn Tên Trong tất câu lệnh từ tạo tệp, mở tệp, truy nhập tệp …đều phải tên tệp mà muốn làm việc Điều làm cho chương trình rườm rà khó “tổng qt” câu lệnh Để tránh phiền toái đơn giản cho câu lệnh, Pascal người ta đưa khái niệm biến tệp Biến tệp bí danh cho tên tệp, thay cho tên tệp câu lệnh Bởi vậy, trước sử dụng, ta phải gán tên tệp cho biến tệp qua việc sử dụng thủ tục Assign - Các bước làm việc với tệp văn bản: Khai báo (Tạo (nhập) tên tệp gán Tên-> biến tệp) Mở tệp Truy nhập liệu tệp (nhập liệu vào tệp lấy liệu từ tệp) Đóng tệp II Khai báo Tạo Tên tệp: tên tệp chứa liệu đưa vào trực tiếp câu lệnh gán cho biến tệp, đưa vào lần thực chương trình qua lệnh Read qua biến có kiểu xâu ký tự Các tên tệp phải khác nhau, trùng tên, tạo tệp mới, liệu tệp cũ bị xóa hết Gán biến tệp cho tên tệp: ASSIGN ( Biến tệp, Tên tệp ); Biến tệp có kiểu text, ngắn, thường sử dụng ký hiệu f, f1, f2 … Tên tệp có dạng xâu kí tự (tên cụ thể) dạng biến  Ví dụ: - Gán trực tiếp : Assign ( f, ’D:\Bai_tap\ DL1.dat’ ); Theo cách này, tên tệp xâu cố định lần thực chương trình muốn thay tên phải thay trực tiếp câu lệnh Assign - Gán gián tiếp tên qua biến trung gian: Write ( ’ Hay nhap ten tep chua du lieu’); Readln (Ten_tep); Assign ( f, Ten_tep ); Theo cách này, tên tệp thay đổi lần thực chương trình, người sử dụng nhập vào gặp lệnh Read III Mở tệp Tất tệp trước làm việc phải dùng thủ tục mở tệp Trong Pascal mở tệp để tạo tệp hay mở tệp để lấy liệu từ tệp dùng lệnh khác Các dạng lệnh: Bộ mơn Tin học Xây dựng 11 Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Mở tệp để tạo tệp mới: REWRITE (Biến_tệp); Mở tệp để đưa thêm liệu vào tệp có: APPEND (Biến_tệp); Mở tệp để lấy liệu từ tệp RESET (Biến_tệp); Chú ý: - Khi gặp lệnh Rewrite chương trình kiểm tra, tên tệp chưa tồn tại, tệp tạo, tên tệp có, chương trình xóa hết liệu tệp cũ thay vào liệu - Khi gặp lệnh Append Reset chương trình kiểm tra tên tệp gán cho biến tệp, chưa tồn tại, thông báo: “ File not found” IV Đóng tệp Tất tệp sau sử dụng: nhập liệu lấy liệu phải đóng lại Cấu trúc lệnh : CLOSE (Biến_tệp); (Đóng tệp ) CLOSE (All); (Đóng tất tệp mở) Chú ý : Các lệnh gán biến tệp, mở tệp, đóng tệp khơng đặt lệnh chu trình Thơng thường, nên viết lệnh (trừ Close) đầu chương trình, trước xử lý liệu V Nhập liệu vào tệp Để nhập liệu vào tệp sử dụng lệnh Write kết hợp với lệnh khác Pascal  Cấu trúc lệnh: WRITE[LN] ( Biến_tệp, Danh sach biểu thức) ; WRITE[LN] ( Biến_tệp) ; - Cách sử dụng lệnh lệnh Write thông thường, khác có thêm biến tệp để chương trình nhận biết liệu ghi vào tệp (địa chỉ) - Trước nhập liệu vào tệp, liệu phải có nhớ - Có thể kết hợp vừa nhập liệu vào máy, vừa cất vào tệp làm độc lập với - Lệnh Writeln (f) dùng để in dòng trống tệp chuyển trỏ xuống dòng - Khi cất liệu vào tệp nên dùng cấu trúc có định dạng, tạo ô trống giá trị chúng Pascal nhận dạng khác  Ví dụ: Nhập liệu véc tơ A có n phần tử vào tệp có tên Bai1.txt đặt ổ đĩa D Assign ( f, ’D:Bai1,txt’); Rewrite ( f ); Writeln ( ’ Nhap cac phan tu cua A vao tep); Bộ mơn Tin học Xây dựng 12 Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Write ( ’ n= ’ ); Readln (n); For i:= to n Do Begin Write ( ‘ A[ ’ , i , ’ ] ’ ); Readln ( A[i] ) {Nhap du lieu vao bo nho trong} Write (f, a[i] :6:1 ); {Nhap du lieu vao tệp} End; Close (f) VI Lấy liệu từ tệp Để lấy liệu từ tệp, sử dụng lệnh Read kết hợp với lệnh khác Pascal  Cấu trúc lệnh: READ[LN] ( Biến_tệp, Danh sách biến) ; READ[LN] ( Biến_tệp) ; - Cách sử dụng lệnh lệnh Read thơng thường, khác có thêm biến tệp để chương trình nhận biết liệu lấy từ tệp (địa chỉ) - Lệnh Readln (f) dùng để bỏ qua dòng liệu chuyển trỏ xuống dòng - Cách lấy liệu từ tệp phải hoàn toàn giống cách tạo chúng - Gặp lệnh Read, chương trình đọc liệu tệp gán cho biến tương ứng danh sách lệnh Các liệu khác dòng lệnh tệp nhận biết qua trống Các liệu viết liền nhau, chương trình coi liệu - Các giá trị lấy từ tệp gán cho biến bất kỳ, với tên (không thiết tên với biến cất vào tệp) Tuy nhiên kiểu cấu trúc liệu tệp phải khớp với biến nhận giá trị  Ví dụ: Đọc liệu véc tơ A có n phần tử từ tệp có tên Bai1.txt đặt ổ đĩa D Assign ( f, ’D:Bai1,txt’); Reset ( f ); Writeln ( ’ Lay du lieu tu tep gan cho cac phan tu cua A ’); For i:= to n Do Read (f, a[i] ); Close (f);  Ví dụ: Tạo tệp để cất liệu cho ma trận A(mxn) sau mở tệp lấy liệu cất vào ma trận B(m1xn1): Program Tao_Tep_LayDL_tu_tep; Var n,m,i,j:integer; n1, m1:integer; a, b: array[1 10,1 15] of real; f: text; Ttep, ten2: string[20]; BEGIN Write( ' Nhap ten tep cat du lieu '); Readln ( Ttep); Bộ môn Tin học Xây dựng 13 Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Assign (f, Ttep); Rewrite (f); Write ('Nhap kich thuoc ma tran A n,m=? '); Readln (n,m); Writeln (f, n:5,m:5); for i:=1 to n for j:=1 to m begin write ( 'a[',i,',',j,']=?' ); readln ( a[i,j] ) end; { In ma tran A len man hinh va cat vao tep } Writeln; Writeln ( ' Ma tran A truoc cat vao tep ' ); for i:=1 to n begin for j:=1 to m write ( a[i,j]:10:2 ); writeln; for j:=1 to m write ( f, a[i,j]:10:2 ); writeln ( f ); end; close ( f ); write (' Nhap ten tep cab lay du lieu' ); Readln ( ten2 ); Assign ( f, ten2); Reset ( f ); Writeln; Writeln ( ' Cac du lieu lay tu tep ' ); Readln ( f, n1, m1); writeln; Writeln ( 'n= ',n1:3,' m= ',m1:3); Writeln ( ' Ma tran A sau lay tu tep ' ); writeln; for i:=1 to n1 begin for j:=1 to m1 read (f, b[i,j] ); readln ( f ); end; close (f) ; { sau doc du lieu tu tep In na tran B len man hinh } for i:=1 to n1 begin for j:=1 to m1 write ( b[i, j]:10:1 ); writeln; end; readln END Bộ môn Tin học Xây dựng 14 Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm Chương MỘT SỐ VÍ DỤ TỔNG HỢP Bài : Cho lớp học sinh, biết mã số SV, tên điểm thi môn sinh viên Viết chương trình (cấu trúc liệu kiểu ghi) tính điểm trung bình người xếp lại danh sách theo điểm trung bình tăng dần Program Vi_du_Ban_ghi_Sapxep; type sinhvien = record masv:string[10]; tensv: string[30]; dt,dl,dh,dtb:real; end; var temp:sinhvien; sv:array[1 100] of sinhvien; n, i, j: integer; BEGIN {Nhap du lieu n sinh vien} write('Nhap so sinh vien:'); readln(n); for i:=1 to n begin writeln('Nhap thong tin cua sv thu ' , i); write('Ma sv:'); readln(sv[i].masv); write('Ten sv:'); readln(sv[i].tensv); write('Diem toan:'); readln(sv[i].dt); write('Diem ly:'); readln(sv[i].dl); write('Diem hoa:'); readln(sv[i].dh); sv[i].dtb := (sv[i].dt+sv[i].dl+sv[i].dh)/3; end; {in danh sach sinh vien vua nhap} writeln; writeln(' Danh sach sinh vien vua nhap'); writeln(' STT ','Masv':5,'Tensv':10,' DT DL DH DTB'); for i:=1 to n writeln(i:4, sv[i].masv:5, sv[i].tensv:10, sv[i].dt:6:1, sv[i].dl:6:1, sv[i].dh:6:1, sv[i].dtb:6:1); {sap xep danh sach sinh vien theo diem trung binh tang dan} for i:= to n for j:=i+1 to n if (sv[i].dtb >sv[j].dtb) then begin temp:=sv[i]; sv[i]:=sv[j]; sv[j]:=temp; end; Bộ môn Tin học Xây dựng 15 Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm {in ket qua sau danh sach sinh vien sau sap xep} writeln; writeln(' Danh sach sinh vien sap theo thu tu dtb tang dan'); writeln(' STT ','Masv':5,'Tensv':10,' DT DL DH DTB'); for i:=1 to n writeln(i:4, sv[i].masv:5, sv[i].tensv:10, sv[i].dt:6:1, sv[i].dl:6:1, sv[i].dh:6:1, sv[i].dtb:6:1); readln; END Bài : Cho véc tơ A có n phần tử,tính tổng phần tử mảng, tạo tệp để cất liệu Program Mang_1_chieu; var i,n : Byte; A : Array[1 50] of Real; s : Real; tentep: string[10]; f : Text; BEGIN {Nhap mang} Write('n = '); ReadLn(n); For i:=1 To n Do Begin Write('A[',i,']= '); ReadLn(A[i]); End; {Tinh Tong Mang} s:=0; For i:=1 To n Do s:=s+A[i]; WriteLn('s = ',s:7:3); WriteLn; {Ra Mang} WriteLn( ' Mang vua nhap '); For i:=1 To n Do Write(A[i]:7:3); WriteLn( ' Mang vua nhap '); Write('Nhap ten tep cat du lieu'); ReadLn(tentep); Assign(f,tentep); ReWrite(f); WriteLn(f,'s = ',s:7:3); WriteLn(f); {Ra Mang} For i:=1 To n Do Write(f,A[i]:7:3); WriteLn(f); Close(f); Bộ môn Tin học Xây dựng 16 Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm WriteLn('Da xuat xong du lieu File '); ReadLn; END Bài : Cho lớp học sinh có n người, biết mã số SV, tên điểm thi m mơn sinh viên Viết chương trình (cấu trúc liệu kiểu ghi) tính điểm trung bình người tách danh sách lớp thành danh sách: SV có DTB nhỏ từ 5-7,và DTB >8 Program Ban_ghi_Tao_danh_sach; type sv=record ms:integer; ht:string[25]; d:array[1 20] of real; dtb:real end; var n,m,n1,n2,n3,i,j,k:integer; ds,ds1,ds2,ds3:array[1 30] of sv; ttsv:sv; t:real; BEGIN write('Nhap so nguoi n, somon m= '); readln(n,m); for i:=1 to n begin write('ms[',i,']=? '); readln(ds[i].ms); write('ht[',i,']=? '); readln(ds[i].ht); for j:=1 to m begin write('d[',j,']=? '); readln(ds[i].d[j]); end end; for i:=1 to n begin t:=0; for j:=1 to m t:=t+(ds[i].d[j]); ds[i].dtb:=t/m end; n1:=0; n2:=0; n3:=0; for i:=1 to n if ds[i].dtb8) in hình Program Lay_du_lieu_ra_tu_tep_da_co_va_Xu_ly; Type sv=record tt:integer; ht:string[15]; ms,ns,dtn:real; end; Var i,n:integer; tentep1,tentep2:string[10]; f1,f2:text; ds:array[1 10] of sv;{ Mang chua cac du lieu cua hoc sinh} Bộ mơn Tin học Xây dựng 19 Giáo trình Nhập mơn Tin học: Phần III – Ngơn ngữ lập trình Pascal -2 GVC: Đào Tăng Kiệm BEGIN { Doc du lieu tu tep thu nhat va cat vao mang danh sach co cau truc ban ghi} write(' Dua vao ten tep chua du lieu - hoten '); readln(Tentep1); Assign (f1,tentep1); Reset(f1); i:=1; readln(f1); While not EOF(f1) Do with ds[i] Begin readln(f1,tt,ht); i:=i+1; end; n:=i-1; Close(f1); { Doc du lieu tu mang thu hai cat tiep vao mang truoc } write(' Dua vao ten tep chua thong tin hoc sinh-thongtin '); readln(tentep2); Assign (f2,tentep2); Reset(f2); i:=1; readln(f2); While not EOF(f2) with ds[i] begin readln(f2,tt,ms,ns,dtn); i:=i+1; End; close(f2); Writeln; Writeln(' Danh sach day du '); For i:=1 to n with ds[i] writeln(tt:3,ht:15,' ',ms:6:0,' ',ns:6:0,' ',dtn:5:1); Writeln; Writeln ( ' DANH SACH SINH VIEN GIOI '); For i:= to n with ds[i] If dtn>=8 then Writeln (tt:3,' ',ht:15,' ',ms:5:0,' ',ns:5:0,' ',dtn:5:1); Readln END Bộ môn Tin học Xây dựng 20

Ngày đăng: 11/04/2014, 16:08

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan