Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 65 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
65
Dung lượng
700,45 KB
Nội dung
Chương LẬPTRÌNH CHO MÁY TÍNH ĐIỆN TỬ Chương trình bày khái niệm thuật tốn việc sử dụng ngơn ngữ lậptrình Pascal để giải tốn máy tính điện tử Qua đó, người học nắm bắt mấu chốt ngơn ngữ lậptrình Pascal xây dựng chương trình ứng dụng đơn giản, giúp người học có nhìn tổng quan cách giải cơng việc máy tính điện tử chương trình - - - - - - Nội dung chương gồm: Tổng quan lậptrình cho máy tính điện tử: Phần giới thiệu thuật tốn; cách thức trình bày thuật tốn giới thiệu ngơn ngữ lậptrình – cơng cụ biểu diễn thuật tốn vào máy tính điện tử Giới thiệu ngơn ngữ lậptrình Pascal: Trình bày sơ lược hình thành phát triển ngôn ngữ Pascal yếu tố sở ngôn ngữ Pascal Sử dụng ngôn ngữ lậptrình Pascal: Giới thiệu đối tượng sử dụng ngơn ngữ Pascal Lậptrình tuần tự: Giới thiệu cho người học dạng thức chương trình đơn giản cho máy tính điện tử Các cơng cụ giúp người học xây dựng chương trình đơn giản Lậptrình phân nhánh: Trình bày cơng cụ giải tốn có lựa chọn, có điều kiện thực thi hay nhóm cơng việc Lậptrình chu trình: Trình bày cơng cụ để giải tốn có phép toán giống nhau, khác liệu đầu vào Dữ liệu mảng: Giới thiệu kiểu liệu có cấu trúc Pascal đồng thời qua ví dụ giúp người học nắm bắt khả giải toán thực tế máy tính điện tử 6.1 TỔNG QUAN VỀ LẬPTRÌNH CHO MÁY TÍNH ĐIỆN TỬ 6.1.1 Thuật tốn a Khái niệm Đôi người sử dụng lầm tưởng máy tính cơng cụ vạn giải công việc Người sử dụng cần u cầu máy tính điện tử hiểu thực trả lại kết cho người sử dụng Thực tế khơng phải vậy, máy tính điện tử tập hợp thiết bị, linh kiện vô tri vô giác nên hiểu hay nhận biết yêu cầu người sử dụng suy luận để giải yêu cầu mà người sử dụng đưa Để giải công việc nào, dù nhỏ máy tính điện tử phải hướng dẫn cách tỷ mỉ thao thác cần thiết phải tiến hành Mọi thao tác ghi vào thành bảng hướng dẫn gọi thuật toán Thuật toán bảng hướng dẫn gồm hữu hạn mệnh lệnh, quy định xác thao tác hay phép tốn mà máy tính điện tử cần thực cách máy móc theo trình tự vạch sẵn để giải toán hay nhiệm vụ Trong tốn học, để giải lớp tốn đặc trưng đó, người ta ghi nhận lại phương pháp giải lớp tốn với bước thực cụ thể Khi cần phải giải tốn cụ thể thuộc lớp tốn người giải cần áp dụng máy móc bước thực có lời giải Ví dụ để giải toán ax2 + bx + c = Dù a, b, c nhận giá trị nào, số, biểu thức hay đa thức người giải cần thực theo bước 1/ Tính giá trị delta 2/ Xét giá trị delta : delta âm kết luận tốn vơ nghiệm ngược lại tốn có 02 nghiệm 3/ Tính nghiệm tốn theo cơng thức Với bước thao tác trên, người ta gọi thuật tốn giải phương trình bậc b Tính chất thuật tốn Thuật tốn có nhiều tính chất để xây dựng thuật toán cần phải đảm bảo tuân thủ 03 tính chất thuật tốn là: - Tính xác: Một thao tác thuật tốn phải rõ rang, không gây nhầm lẫn hiểu theo nhiều nghĩa khác Hay nói cách khác điều kiện thực thao tác phải cho kết - Tính phổ dụng: Thuật toán xây dựng đảm bảo dung để giải lớp tốn khơng xây dựng để giải toán cụ thể - Tính kết thúc: Các thao tác thuật tốn phải đảm bảo dừng lại cho kết sau số hữu hạn bước thực c Biểu diễn thuật toán sơ đồ khối Sơ đồ khối cơng cụ để biểu diễn thuật tốn cách trực quan, cho phép tiện theo dõi tiến trình tránh sai sót nhầm lẫn Để biểu diễn thuật toán sơ đồ khối người ta sử dụng ký pháp sau; - Đường mũi tên: Để hướng tiến trình thuật tốn - Khối bắt đầu hay kết thúc: Chỉ điểm bắt đầu hay kết thúc thuật toán B E Mỗi thuật toán có khối bắt đầu Bên khối ghi chữ B (Begin hay Bắt đầu) Còn khối kết thúc, thuật tốn có nhiều khối tương ứng với số khả kết thúc khác , nên khối ghi E (End) K (Kết thúc) - Khối nhập liệu: Ghi danh sách đại lượng cần nhận giá trị - Khối xử lý: Ghi cơng thức hay phương trình để tính tốn, xử lý liệu - Khối kiểm tra điều kiện: Ghi biểu thức logic, mà kết xác định hướng tiến trình - Khối kết xuất thông tin: Ghi danh sách đại lượng tính tốn, xử lý cần đưa - Khối nối tiếp: Ghi cặp ký hiệu, dùng đường tiến trình chồng chéo sơ đồ khối biểu diễn phạm vi khác Ví dụ: Lập sơ đồ khối thuật toán để giải toán giải phương trình bậc hai: Ví dụ: Lập sơ đồ khối thuật tốn nhập liệu, tìm đưa giá trị lớn nhỏ dãy A gồm N phần tử 6.1.2 Ngơn ngữ lậptrình (Programing Language) Ngơn ngữ lậptrình hệ thống ký hiệu hóa để miêu tả tính tốn (qua máy tính) dạng mà người máy đọc hiểu Theo khái niệm ngơn ngữ lậptrình phải thỏa mãn hai điều kiện là: - Nó phải dễ hiểu dễ sử dụng người lập trình, để người dùng giải tốn khác Nó phải miêu tả cách đầy đủ rõ ràng tiến trình (tiếng Anh: process), để chạy máy tính khác Một tập hợp thị biểu thị nhờ ngơn ngữ lậptrình để thực thao tác máy tính thơng qua chương - trình Như vậy, theo khái niệm, ngơn ngữ lậptrình chương trình, dùng để tạo nên chương trình khác Một chương trình máy tính viết ngơn ngữ lậptrình thị (của riêng ngơn ngữ ấy) góp phần tạo nên chương trình gọi mã nguồn chương trình Thao tác chuyển dạng từ mã nguồn sang thành chuỗi thị máy tính thực hồn tồn tương tự việc chuyển dịch ngôn ngữ tự nhiên người Các thao tác gọi biên dịch (hay ngắn gọn dịch) Người ta phân việc biên dịch làm hai loại tùy theo trình dịch xảy trước trình thực thi tính tốn hay xảy lúc với q trình tính tốn: + Thơng dịch: Một phần mềm thơng dịch phần mềm có khả đọc, chuyển dịch mã nguồn ngôn ngữ lệnh cho máy tính tiến hành tính tốn dựa theo cú pháp ngôn ngữ + Biên dịch: Một phần mềm biên dịch hay ngắn gọn trình dịch phần mềm có khả chuyển dịch mã nguồn ngôn ngữ ban đầu sang dạng mã thuộc ngôn ngữ cấp thấp Ngôn ngữ cấp thấp chuỗi thị máy tính mà thực trực tiếp máy tính (thơng qua theo tác vùng nhớ) Trước đây, hầu hết trình dịch cũ thường phải thông dịch từ mã nguồn sang mã phụ (các tệp có dang *.obj), sau đó, biên dịch tiếp sang tập tin thi hành Ngày nay, hầu hết trình dịch có khả viên dịch mã nguồn trực tiếp sang thành tập tin thi hành hay biên dịch sang dạng mã khác thấp tuỳ theo yêu cầu người lậptrình Điểm khác thơng dịch biên dịch là: Trình thơng dịch dịch câu lệnh chương trình đích khơng lưu lại Còn trình biên dịch dịch tồn chương trình, cho chương trình đích lưu lại máy tính thực chương trình Một chương trình máy tính thực thi cách tổ hợp việc biên dịch thông dịch 6.2 GIỚI THIỆU NGƠN NGỮ LẬPTRÌNH PASCAL 6.2.1 Sơ lƣợc hình thành phát triển ngơn ngữ lậptrình Pascal PASCAL ngơn ngữ lậptrình giáo sư Niklaus Wirth trường Đại học Zurich, Thụy Sỹ phát minh vào năm 1970 Ơng đặt tên ngơn ngữ PASCAL để tưởng nhớ nhà toán học người Pháp kỷ 17 Blaise Pascal Ngôn ngữ PASCAL hình thành với mục đích ban đầu nhằm hướng dẫn sinh viên trường đại học thói quen viết chương trình có cấu trúc sáng sủa, rõ ràng, dễ đọc dễ hiểu cho người khác Nhưng lý mà ngơn ngữ PASCAL phát triển nhanh chóng thương mại hóa Trong q trình phát triển, hình thành nhánh ngôn ngữ khác phổ biến là: - ISO PASCAL gọi PASCAL chuẩn (International Standard Organization) - ANSI PASCAL Institute) - TURBO PASCAL - IBM PASCAL (Amerrican National Satandard - FREE PASCAL Trong khn khổ chương trình, giáo trình đề cập đến TURBO PASCAL với phiên 7.0 Để sử dụng ngơn ngữ lậptrình này, người sử dụng cần tối thiểu 02 tệp tin TURBO.EXE TURBO.TPL, lưu thư mục Trong tập tin TURBO.EXE chứa hệ soạn thảo cho phép người sử dụng biên tập chương trình dạng tệp văn PAS, tệp TURBO.TPL tệp thư viện chứa hàm, thủ tục đơn vị chương trình chuẩn PASCAL Ngồi để dịch chương trình viết ngơn ngữ thuật tốn PASCAL sang thành tệp chương trình viết ngơn ngữ máy người sử dụng cần phải có thêm tệp TPC.EXE (Turbo Pascal Compile) 6.2.2 Các yếu tố sở ngôn ngữ Pascal + Bộ ký tự Cũng ngôn ngữ người hay máy tính điện tử PASCAL có ký tự để biểu diễn nội dung cần diễn đạt ngôn ngữ Bộ ký tự TURBO PASCAL bao gồm - Các chữ cái: Là chữ bảng chữ tiếng Anh từ A đến Z từ a đến z - Các chữ số: Là chữ số hệ thập phân từ đến 10 Min := a[1]; For i := to n If a[i] > Max Then Max := a[i] Else If a[i] < Min Then Min := a[i]; {In ket qua} Writeln(„Gia tri lon nhat day so: „, Max:6:2); Writeln(„Gia tri nho nhat day so: „, Min:6:2); Readln; End Ví dụ 3: Cho a1, a2,…, an dãy số nguyên Viết chương trình nhập liệu, xếp đưa dãy xếp theo trật tự giá trị tăng dần Program VD_3; Var i, j, n : Integer; a : Array[1 10] of Integer;{mang chieu gom toi da 100 phan tu kieu so nguyen} tg : Integer; {La bien trung gian duoc dung cho qua trinh sap xep} Begin {Nhap du lieu} Write(„Nhap so luong phan tu n = „); Readln(n); For i := to n Begin 51 Write(„Nhap gia tri phan tu a[„, i, „]= „); Readln(a[i]); End; {Sap xep} For i := to n – For j := i + to n If a[j] < a[i] Then Begin tg := a[i]; a[i] := a[j]; a[j] := tg; End; {In ket qua} For i := to n Write(a[i]:4); Readln; End Ví dụ 4: Cho ten1, ten2, …, tenn va tuoi1, tuoi2, …, tuoin tên tuổi tương ứng N cán quan Viết chương trình nhập liệu, tính in danh sách nhóm cán có chung độ tuổi Program VD_5; Var N, i, j: Integer; Ten : Array[1 100] of String [25]; {Mang gom toi da 100 phan tu kieu day ky tu voi dai toi da cua moi day la 25 ky tu} Tuoi : Array[1 100] of Integer; {Mang gom toi da 100 phan tu kieu so nguyen} 52 Tg1 : String [25]; {Bien trung gian dung de sap xep cac phan tu bien Ten} Tg2 : Integer; {Bien trung gian dung de sap xep cac phan tu bien Tuoi va dung de so sanh phan nhom can bo theo Tuoi} Begin {Nhap du lieu} Write(„Nhap so luong can bo co quan: „); Readln(N); For i := to N Begin Write(„Nhap ten can bi thu „, i, „: „); Readln(Ten[i]); Write(„Nhap tuoi can bo thu „, i, ‟: „); Readln(Tuoi[i]); End; {Sap xep trat tu theo tuoi} For i := to N – For j := i + to N Do If Tuoi[i] > Tuoi[j] Then Begin Tg1 := Ten[i]; Ten[i] := Ten[j]; Ten[j] := Tg1; Tg2 := Tuoi[i]; Tuoi[i] := Tuoi[j]; Tuoi[j] := Tg2; End ; {In danh sach tung nhom can bo theo tuoi} Tg2 := Tuoi[1]; 53 j := 1; While j DM[j] Then TC[i]:=TC[i]+DM[j]*DG[j]+(SL[i,j] – DM[j]) * 1.2 * DG[j] Else TC[i] := TC[i] + SL[i,j] * DG[j]; End; {In ket qua} For i := to N Writeln(„Tien cong cua „, HT[i]:25, „ la: „, TC[i]:10:2); Readln; End Ví dụ 8: Có N khách hàng vào cửa hàng mua M loại hàng hóa Biết tên khách hàng, số lượng loại hàng hóa mà khách hàng mua Biết tên hàng, đơn giá định mức bán lẻ loại hàng hóa Viết chương trình nhập liệu, tính in phiếu bán hàng cho khách hàng theo mẫu sau PHIEU BAN HANG Ho ten khach hang: ……………………………………… 58 TT Ten hang hoa So luong Don gia Chiet khau Tong cong Thanh tien xxxxxx Biết rằng: Nếu số lượng hàng hóa khách hàng mua vượt lần định mức hàng hóa tương ứng chiết khấu 20% đơn giá bán lẻ (giá bán bn), số lượng hàng hóa khách hàng mua vượt định mức chưa gấp lần định mức chiết khấu 5% đơn giá bán lẻ (giá bán sỉ) Program VD_8; Var N, M, i, j, k TenKH TenHH SL : Integer; : Array[1 50] of String[25]; : Array[1 20] of String[20]; : Array[1 50, 20] of Real; DG, DM : Array[1 20] of Real; CK, TT, Tong : Real; Begin {Nhap du lieu} Write(„Nhap so luong khach hang: „); Readln(N); Write(„Nhap so luong hang hoa: „); Readln(M); For j := to M Begin Write(„Nhap ten hang hoa thu „, j, „: „); Readln(TenHH[j]); Write(„Nhap don gia hang thu „, j, „: „); 59 Readln(DG[j]); Write(„Nhap dinh muc ban buon cua hang thu „, j, „: „); Readln(DM[j]); End; For i := to N Begin Write(„Nhap ten khach hang thu „, i, „: „); Readln(TenKH[i]); For j := to M Begin Write(„Nhap so luong hang hoa thu „, j, „ cua khach hang „, TenKH[i]); Readln(SL[i,j]); End; End; {Tinh toan – chiet khau va tien va tong tien toan cho moi khach hang} i := 1; While i = 2*DM[j] Then Begin TT := SL[i,j] * DG[j] * 0.8; CK := SL[i,j * DG[j] * 0.2; Tong := Tong + TT; End Else If SL[i,j] >= DM[j] Then Begin TT := SL[i,j] * DG[j] * 0.95; CK := SL[i,j] * DG[j] *0.05; Tong := Tong + TT; End Else Begin TT := SL[i,j] * DG[j]; CK := 0; Tong := Tong + TT; End; {in tung hang hoa – moi hang hoa tren mot dong} Writeln(‟|‟,j:3,‟|‟,TenHH[j]:25,‟|‟,SL[i,j]:6:1,‟|‟,DG[j]:5: 1,‟|‟,CK:8:1,‟|‟,TT:8:1,‟|‟); Writeln(„ -„); End; {In dong tong cong cuoi moi bang} Writeln(„| | Tong cong: | | | |‟,Tong:8:1,‟|‟); Writeln(„ -„); i := i + 1; End; 61 Readln; End BÀI TẬP CHƢƠNG Bài 1: Cho dãy số a1, a2,…, an Viết chương trình Pascal nhập liệu, tính in a/ Tổng giá trị phần tử dương số lượng phần tử có giá trị âm b/ Giá trị trung bình dãy số giá trị lớn nhất, giá trị nhỏ nhât c/ Tổng giá trị phần tử vị trí chẵn dãy số d/ Trung bình giá trị phần tử có giá trị lẻ Bài Cho dãy số a1, a2,…, an Viết chương trình Pascal để nhập liệu, tính in a/ Dãy xếp theo trật tự giá trị giảm dần b/ Danh sách cách phần tử có giá trị lớn giá trị trung bình c/ Tổng giá trị phần tử có giá trị nhỏ giá trị trung bình Bài Cho Ten1, Ten2,…, Tenn NS1, NS2,…, NSn tên năm sinh tương ứng N cán cơng ty Viết chương trình Pascal để nhập liệu, tính in tên cán cao tuổi cơng ty Bài Có N cơng nhân sản xuất loại sản phẩm Biết tên cơng nhân, số lượng sản phẩm cơng nhân sản xuất Biết đơn giá tiền công sản phẩm Hãy viết chương trình Pascal để nhập liệu, tính in danh sách tiền lĩnh công nhân Biết công nhân sản xuất lượng sản phẩm nhiều định mức thưởng 300.000 nhiều gấp lần định mức trở lên tiền thưởng 500.000 Tiền lĩnh = Số lượng sản phẩm * Đơn giá + Tiền thưởng 62 Bài Có khách hàng gửi tiền tiết kiệm N ngân hàng vào thời điểm Biết tên ngân hàng, số tiền gửi ban đầu ngân hàng với kỳ hạn mức lãi suất tương ứng Viết chương trình Pascal để nhập liệu, tính in danh sách khoản tiền lĩnh dự kiến ngân hàng hết hạn gửi Bài 6: Cho SP1, SP2,…, SPn TG1, TG2,…, TGn số lượng sản phẩm thời gian lao động tương ứng N công nhân phân xưởng Viết chương trình Pascal để nhập liệu, tính in a/ Năng suất lao động trung bình cơng nhân tồn phân xưởng tổng số sản phẩm cơng nhân có suất lao động thấp mức suất lao động trung bình phân xưởng b/Năng suất lao động trung bình cơng nhân tồn phân xưởng số lượng cơng nhân có suất lao động cao phân xưởng Bài : Cho ma trận số nguyên A(n, m) Viết chương trình Pascal để nhập số liệu, tính in : a/ Giá trị lớn dòng ma trận A b/ Giá trị nhỏ cột ma trận A c/ Giá trị trung bình tồn ma trận d/ Sắp xếp giá trị dòng ma trận theo trật tự giá trị giảm dần Bài 8: Có N cửa hàng thành phố phân phối sản phẩm cho công ty Biết khoảng cách từ cửa hàng đến cửa hàng khác lại Viết chương trình Pascal để nhập liệu, tính in danh sách cửa hàng làm Đại lý phân phối đạt yêu cầu tổng khoảng cách từ cửa hàng đến hàng lại ngắn Bài 9: Có N cửa hàng bán M loại hàng hóa cho cơng ty Biết tên cửa hàng, tên mặt hàng đơn giá mua vào, đơn giá bán loại mặt hàng Biết số lượng loại mặt 63 hàng hàng bán tháng Viết chương trình Pascal để nhập liệu, tính in bảng: BAO CAO TINH HINH KINH DOANH CUA CAC CUA HANG TRONG THANG TT Ten cua hang Tong doanh thu Tien lai xxxxx.xx xxxxxx.xx …… … Tong cong Yêu cầu in báo cáo theo trật tự giảm dần giá trị tiền lãi cửa hàng Bài 10: Trong nhà máy có N phân xưởng sử dụng M loại tài sản cố định Biết tên phân xưởng, tên loại tài sản cố định giá mua ban đầu, tỷ lệ khấu hao tương ứng Năm đưa vào sử dụng tài sản cố định phân xưởng Giả sử đếnnăm tại, tất tài sản cố định chưa khấu hao hết Viết chương trình Pascal để nhập liệu, tính in ra: a/ Tổng giá trị lại loại tài sản cố định nhà máy b/ Tổng giá trị khấu hao loại tài sản cố định phân xưởng Bài 11: Có N khách hàng gửi tiết kiệm M ngân hàng Biết ngân hàng, tên khách hàng Biết số tiền gửi ban đầu, số kỳ hạn gửi mức lãi suất/kỳ hạn tương ứng khoản tìên gửi khách hàng ngân hàng Viết chương trình Pascal để nhập liệu, tính in ra: a/ Tổng số tiền dự kiến lĩnh khách hàng ngân hàng hết hạn gửi b/ Tổng số tiền dự kiến ngân hàng phải trả cho khách hàng hết hạn gửi 64 c/ Tổng số tiền dự kiến mà ngân hàng phải trả cho khách hàng hết hạn gửi Bài 12: Có N tập phiếu bán hàng quầy hàng ngày Biết tên loại hàng, số lượng đơn giá bán lẻ Biết định mức bán buôn loại hàng Viết chương trình Pascal để nhập liệu, tính in tổng giá trị bán hàng ngày, tổng giá trị bán hàng loại hàng hóa tổng số lượng loại hàng hóa bán Biết số lượng hàng hóa bán đạt định mức trở lên tính theo đơn giá bán buôn 90%*đơn giá bán lẻ a/ Giả sử phiếu bán hàng bán loại hàng hóa b/ Giải sử phiếu bán hàng bán lúc nhiều loại hàng hóa 65