Bài giảng Ngôn ngữ lập trình bậc cao - Đoàn Thị Thu Huyền
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngôn ngữ lập trình bậc cao - Đoàn Thị Thu Huyền", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_ngon_ngu_lap_trinh_bac_cao_doan_thi_thu_huyen.ppt
Nội dung text: Bài giảng Ngôn ngữ lập trình bậc cao - Đoàn Thị Thu Huyền
- NGÔN NGỮ LẬP TRÌNH BẬC CAO Th.S Đoàn Thị Thu Huyền Khoa Ngoại Ngữ - Tin học 0976 678 142 6/15/2021 1
- MỤC TIÊU ❖Số đơn vị học trình: 04 (60 tiết) ▪ Lý thuyết: 30 tiết ▪ Bài tập + Thực hành: 30 tiết ❖Mục tiêu của học phần: ▪ Nắm vững cấu trúc của các lệnh trong NNLT Pascal ▪ Lựa chọn giải thuật và dữ liệu phù hợp cho mỗi bài toán cụ thể, thực tế. 6/15/2021 2
- Tài liệu học tập ❖ Giáo trình chính: ▪ Bài giảng Ngôn ngữ lập trình bậc cao - Bộ môn Tin học ĐH Hoa Lư ▪ SGK Tin học lớp 11 ❖ Giáo trình tham khảo: ▪ Ngôn ngữ lập trình Pascal (Quách Tuấn Ngọc, NXB Giáo dục) ▪ Bài tập Pascal, Quách Tuấn Ngọc, NXB Giáo dục ▪ Lập trình nâng cao trên ngôn ngữ Pascal, Nguyễn Tô Thành, Nhà xuất bản Đai học Quốc Gia Hà Nội. ▪ Lập trình, Dự án trung học cơ sở ▪ Bài tập lập trình cơ sở Ngôn ngữ Pascal, Nguyễn Hữu Ngự, NXB Đại học Quốc Gia Hà Nội 6/15/2021 3
- KIỂM TRA – ĐÁNH GIÁ ❖Cách tính Điểm: ▪ Điểm chuyên cần ▪ Điểm kiểm tra thường xuyên (hệ số 1 - lấy trung bình của 2 bài kiểm tra, điểm TX) ▪ Điểm kiểm tra giữa kỳ (1 bài - hệ số 2) ▪ Điểm kiểm tra cuối kỳ (1 bài - hệ số 5 – thi thực hành) 6/15/2021 4
- NỘI DUNG 1 Các thành phần cơ bản của NNLT 2 Các kiểu dữ liệu đơn giản, hằng, biến, biểu thức 3 Các câu lệnh có cấu trúc 4 Chương trình con và đơn vị chương trình 5 Dữ liệu kiểu tập hợp và kiểu mảng 6 Kiểu xâu kí tự 7 Dữ liệu kiểu bản ghi 6/15/20218 Dữ liệu kiểu tệp 5
- CHƯƠNG 1 CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH 6/15/2021 6
- GIỚI THIỆU 1970 • Chương trình là tập hợp dãy các lệnh điều khiển máy tính thực hiện. • Là một cách diễn tả thuật toán trong một ngôn ngữ chính xác để máy có thể hiểu được. 6/15/2021 7
- ❖ Các bước cơ bản khi lập một chương trình Pascal ▪ Bước 1: Soạn thảo chương trình. ▪ Bước 2: Dịch chương trình (nhấn phím F9), nếu có lỗi thì phải sửa lỗi. ▪ Bước 3: Chạy chương trình (nhấn phím Ctrl-F9). 6/15/2021 8
- MỘT SỐ LƯU ĐỒ CƠ BẢN A Thực hiện công việc A Ra vào dữ liệu Sai Begin B Đúng End Một phép kiểm tra B, tùy thuộc vào Bắt đầu hay kết thúc một trạng thái của B là đúng hay sai để thuật toán rẻ nhánh thích hợp 6/15/2021 9
- Lưu đồ thuật toán mẫu ❖Giải phương trình bậc nhất ax + b = 0. Begin Nhập a,b Sai a=0 Đúng Sai b=0 Đúng Nghiệm: -b/a Vô số nghiệm Vô nghiệm End 6/15/2021 10
- Bài tập ❖Viết lưu đồ thuật giải tìm số lớn nhất trong ba số a, b, c. ❖Gợi ý: ▪ Nếu a>b đúng • Nếu a>c đúng ->Max =a • Ngược lại Max=c ▪ Sai (b>=a) • Nếu b>c đúng ->Max=b • Ngược lại Max=c 6/15/2021 11
- Cấu Trúc Của Một Chương Trình Pascal Phần khai báo CẤU TRÚC 1 BÀI PROGRAM ; THUYẾT TRÌNH? USES [, ]; - Mở đầu LABEL [, ]; Mở đầu CONST - Thân bài TYPE VAR - Kết luận Phần thân chương trình Thân bài BEGIN END. Kết luận 6/15/2021 12
- Ví dụ Program CT_dau_tien; Uses Crt; Var SoNguyen: Integer; Begin CLRSCR; {Xóa màn hình} Writeln(‘Nhap vao day mot so nguyen:’); {Thông báo nhập liệu} Readln(SoNguyen); {Chờ nhập liệu} Writeln(‘Binh phuong cua no la:’, SoNguyen*SoNguyen); {Kết xuất} End. 6/15/2021 13
- GIỚI THIỆU ❖ Các thành phần cơ bản của Pascal: ▪ Khai báo Hằng: • CONST = ; Ví dụ: CONST pi = 3.14; ▪ Khai báo Kiểu: • TYPE = ; Ví dụ: TYPE NguyenDuong = 1 MaxInt; ▪ Khai báo Biến: • VAR [ ]: ; Ví dụ: VAR x, y: Integer; a, b: Real; I, J: NguyenDuong; {Đã định nghĩa trước} 6/15/2021 14
- Các kiểu dữ liệu cơ bản Stt Kiểu Kích thước Miền xác định 1. Boolean 1 byte FALSE TRUE 2. Char 1 byte 256 ký tự 3. Shortint 1 byte -128 127 4. Byte 1 byte 0 255 5. Integer 2 byte -32768 32767 6. Word 2 byte 0 65535 7. Longint 4 byte -2147483648 2147483647 8. Real 6 byte 2.9E-39 1.7E+38 9. Single 4 byte 1.5E-45 3.4E+38 10. Double 8 byte 5.0E-324 1.7E+308 11. Extended 10 byte 3.4E-4932 1.1E+4932 12. Comp 8 byte -9.2E-18 9.2E+18 6/15/2021 15
- Một số lệnh đơn ❖ Lệnh gán Cú pháp: := ; Ví dụ: x := 1; y := 2; y:= y + x; z := x + y; 6/15/2021 16
- NHẬP DỮ LiỆU ❖ Readln(biến1, biến2, , biếnk); ❖ Chú ý: ▪ Dữ liệu nhập phải phù hợp với kiểu của biến. Nếu không phù hợp thì chương trình sẽ dừng ngay và hiện thông báo lỗi ▪ Readln; ▪ Biến kiểu lôgic không nhập được từ bàn phím. ▪ Read (như Readln): Sau khi đã nhận đủ các giá trị cho các biến cần nhập • Readln sẽ xóa sạch các giá trị nhập thừa • Read thì không. Các giá trị nhập thừa của lệnh Read sẽ được tự động gán cho các biến trong lệnh nhập tiếp theo.
- XUẤT DỮ LIỆU ❖Writeln(bt1, bt2 , , btk ); ❖VD: Writeln(3*2+9); i:=10 ; j:=15*2 ; Writeln(i, j+1, 678); Writen(‘ket qua x=‘ , 4+15); ❖x:=100/4; y:=-123.4824; Writeln(‘ x=‘, x:6:2); Writeln(‘ y=‘, y:10:3); ❖Write(x); Write(y); Write(j); Write(x,y,j); ❖Writeln
- Một số phép tính ❖ + (cộng) – (trừ) * (nhân) ❖ / (chia, kết quả có kiểu thực) Ví dụ: ▪ 5 / 2 = 2.50 ▪ 10 / 2 = 5.00 ❖ DIV (chia lấy phần nguyên) Ví dụ: ▪ 5 DIV 2 = 2 ▪ 3 DIV 4 = 0 ❖ MOD (chia lấy phần dư) Ví dụ: ▪ 5 MOD 2 = 1 ▪ 10 MOD 4 = 2 6/15/2021 19
- ❖Phép toán số học: + - * / DIV MOD ❖Phép toán logic: AND OR NOT XOR ❖Phép toán quan hệ: = = < ❖Phép toán ghép dãy ký tự: + 6/15/2021 20
- 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 6/15/2021 21
- CÁC CÂU LỆNH CÓ CẤU TRÚC Câu Câu lệnh lệnh IF CASE 6/15/2021 22
- CẤU TRÚC LỰA CHỌN Sai ❖Câu lệnh IF Điều kiện Dạng Không Đầy Đủ Đúng IF THEN ; Công Việc ❖ Ví dụ: Program vidu1; Var a,b: Integer; Begin Write( ‘Nhập a: ’); Readln(a); Write( ‘Nhập b: ‘); Readln(b); If b <> 0 then Write( ‘Thương hai số vừa nhập: ’,a/b:5:2); Readln; End. 6/15/2021 23
- CẤU TRÚC LỰA CHỌN Sai ❖ Dạng Đầy Đủ DK ▪ Cú pháp: Đúng IF THEN ELSE ; CV1 CV2 ❖ Ví dụ: Program vidu1; Var a,b: Integer; Begin Write( ‘Nhập a: ’); Readln(a); Write( ‘Nhập b: ‘); Readln(b); If b <> 0 then Write( ‘Thương hai số vừa nhập: ’,a/b:5:2); Else Write( ‘Không thể chia cho 0’ ); Readln; End. 6/15/2021 24
- Kí hiệu Phép so sánh = bằng lớn hơn ≠ khác ≤ nhỏ hơn hoặc bằng ≥ lớn hơn hoặc bằng 6/15/2021 25
- CÁC HÀM SỐ HỌC CƠ BẢN SQR(x) Bình phương ABS(x) Trị tuyệt đối SQRT(x) Căn bậc hai TRUNC(x) Lấy phần nguyên (nguyên) ROUND(x) Làm tròn ODD(x) Cho giá True nếu x lẻ, cho False nếu x chẵn 6/15/2021 26
- Bài tập ❖Viết chương trình Giải phương trình bậc nhất ax + b = 0 Begin Nhập a,b Sai a=0 Đúng Sai b=0 Đúng Nghiệm: -b/a Vô số nghiệm Vô nghiệm 6/15/2021 End 27
- CẤU TRÚC LỰA CHỌN Giá trị kiểu Có thể nguyên, kiểu là một logic, hay kiểu kí hoặc tự, nhưng không nhiều thể là kiểu số thực giá trị CASE Giá trị chọn OF Nếu không có giá trị nào thỏa thì thực hiện GT1 GT2 GTi GTn ELSE CôngViệc1 CôngViệc2 CôngViệci CôngViệcn CôngViệc0 END 6/15/2021 28
- CẤU TRÚC LỰA CHỌN Cú pháp: CASE OF Hằng 1a, 1b, , 1x: ; Hằng 2a, 2b, , 2x: ; Hằng na, nb, , nx: ; ELSE END; 6/15/2021 29
- ❖ Ví dụ: Program Case_day_du; Var Thang: Integer; Begin Write( ‘Nhập vào một tháng: ’); Readln(Thang); CASE Thang OF 1, 3, 5, 7, 8, 10, 12 : Write( ‘Tháng có 31 ngày.’); 4, 6, 9, 11 : Write( ‘Tháng có 30 ngày.’); 2 : Write( ‘Tháng có 28 (nhuận 29) ngày.’); ELSE Write( ‘Tháng sai, phải nhập tháng từ 1 tới 12.’); End; Readln; End. 6/15/2021 30
- Bài tập ❖Viết chương trình nhập vào số ngày thuê phòng khách sạn, nhập vào loại phòng (A, B, C). Tính tiền và xuất ra ▪ phòng loại A : 300000/ngày ▪ phòng loại B : 250000/ngày ▪ phòng loại C : 200000/ngày 6/15/2021 31
- CẤU TRÚC LẶP CẤU TRÚC LẶP Câu Câu Câu lệnh lệnh lệnh FOR WHILE REPEAT 6/15/2021 32
- Câu lệnh FOR ❖Cấu trúc FOR cho phép lặp lại nhiều lần một công việc: ❖Lệnh Lặp Với Số Lần Xác Định Cú pháp1: ▪ FOR := TO DO Cú pháp2: ▪ FOR := DOWNTO DO ❖ 6/15/2021 33
- Sơ đồ khối Sai Trị đầu<=Trị cuối Đúng Biến đếm:=Trị đầu Sai Biến đếm<=Trịcuối {Lặp} Công việc Đúng Kết thúc Tăng biến đếm lên 1 6/15/2021 34
- Ví dụ ❖Viết chương trình tính tổng n số lẻ S=1+3+5+ +(2*n+1)
- Bài tập 1 1 1 1+ + + + 1. Tính tổng: A= 2 3 n (n nhập từ bàn phím) 2. Viết chương trình nhập vào số nguyên N. In ra màn hình tất cả các ước số của N. 3. Viết chương trình tìm các số có 3 chữ số sao cho abc= a3 +b3 + c3. 6/15/2021 36
- Câu lệnh WHILE ❖Lệnh Lặp Với Số Lần Lặp Không Xác Định Cú pháp: ▪ WHILE DO ❖ Sai DK Đúng CV 6/15/2021 37
- ❖Ví dụ: Tính tiền gửi ngân hàng. Lãi suất hàng năm là 8% người đó gửi vào ngân hàng vốn ban đầu là 100000000 đồng (100 triệu). Cứ sau mỗi tháng tiền lãi được gộp vào vốn và trở thành vốn mới để tính cho tháng sau. Hỏi sau bao lâu người đó được 1 tỷ đồng? 6/15/2021 38
- Program TinhTienlai; var Ls, Vn, Mm, tien: real; sothang, i: integer; Begin Writeln('CHUONG TINH TINH TIEN GOI NGAN HANG'); Ls := 2/100; Vn := 1000000; {Số vốn ban đầu - 1 triệu} Mm := 1000000000; {Số tiền mong muốn - 1 tỷ} sothang := 0; tien := Vn; While (tien<Mm) do begin tien := tien + Ls*tam; sothang := sothang + 1; end; Writeln('So thang = ' ,sothang); Writeln('Tien von cong lai la: ',tien:12:2); readln; End. 6/15/2021 39
- Câu lệnh REPEAT ❖Lệnh Lặp Với Số Lần Lặp Không Xác Định Cú pháp: ▪ REPEAT • CV ▪ UNTIL Sai DK Đúng 6/15/2021 40
- Ví dụ ❖Viết chương trình nhập điểm môn tin học và in điểm trung bình của cả lớp. 6/15/2021 41
- ❖ Program Nhap_diem; Var tin,tong,dtb:Real; hs:Byte; tiep:Char; Begin Writeln('NHAP DIEM MON TIN VA TINH DIEM TRUNG BINH CUA LOP'); Writeln(' '); hs:=1; tong:=0; tiep:='C'; Repeat Writeln('-Hoc sinh thu: ',hs); Write('-Diem mon Tin : '); Readln(tin); tong:=tong+tin; hs:=hs+1; Write(' -Nhap nua khong (C/K) '); Readln(tiep); Until Upcase(tiep)='K'; hs:=hs-1; tb:=tong/hs; Writeln('+Tong so diem = ',tong:5:2,' diem'); Writeln('+Tong so ca lop co = ',hs,' hoc sinh'); Writeln('+Diem trung binh cua mon Tin= ',tb:5:2,' diem'); Writeln; Writeln(' Bam phim de ket thuc'); Readln End.
- Bài tập 6/15/2021 43
- 6/15/2021 44