Giáo án cô đọng và đầy đủ trong quá trình bồi dưỡng HSG tin 8 (Pascal) từ cấp trường, quận, thành phố,... gồm các phần sau: PHẦN CƠ BẢN:Bài thực hành 1: Làm quen với Free PascalBài thực hành 2: Viết chương trình để tính toánBài thực hành 3: Khai báo và sử dụng biếnBài thực hành 4: Sử dụng lệnh điều kiện IF…THEN…Bài thực hành 5: Sử dụng lệnh lặp FOR…DO…Bài thực hành 6: Sử dụng lệnh lặp WHILE…DO…Bài thực hành 7: Xử lý dãy số trong chương trình PHẦN NÂNG CAO:2.1.Bài thực hành 8: Xử lý các loại số2.2.Bài thực hành 9: Xử lý xâu ký tự2.3.Bài thực hành 10: Mảng 1 chiềuPhụ lục 01NTC: Lý thuyết xâu kí tự.
Trường THCS Đồng Khởi – Q Tân Phú Giáo trình Pascal LẬP TRÌNH PASCAL – TIN HỌC Đề luyện tập cấp độ (sơ cấp): Bài thực hành 1: Làm quen với Free Pascal Bài tập 1: Hướng dẫn: Sửa lỗi sai chương trình sau: – Từ khóa, cách đặt tên chương trình, quy định phần thân chương trình – Cú pháp lệnh: Program Bai tho; Uses crt; Writeln(‘Chuỗi ký tự ’); Begin; Clrscr; – Uses crt Khai báo thư viện crt Writeln(‘Thuong cat buoc song song’) – Clrscr Xóa hình kết Writeln(Toc bay cuong quit nang xuan nhe ve); – Writeln In hình Writeln ‘Tan truong doi bong ngo nghe’; – Readln Tạm ngưng chương trình đến nhấn phím Enter Writln(‘Duong trua ngan qua! Ta le the buon.’); Readln End; Bài tập 2: Hướng dẫn: Viết chương trình in hình nội dung sau: – Cú pháp lệnh: Writeln(‘Chuỗi ký tự ’); “Hello Free Pascal!” Bài tập 3: Hướng dẫn: Viết chương trình in hình câu thơ sau: – Sử dụng lệnh: Write(‘Chuỗi ký tự ’); “Mùa hè mùa thi cử Writeln(‘Chuỗi ký tự ’); Chúc bạn hiền hai chữ thành công – Thành cơng có nhớ tơi khơng Phân biệt lệnh Write Writeln Hay trót bỏ quên nơi nào?” Bài tập 4: Hướng dẫn: Viết chương trình in hình thơ sau: – Write: Con nháy vị trí cuối dòng ký tự “Lắng tai nghe tiếng thở thời gian – Writeln: Con nháy vị trí đầu dòng Tiếng rơi từ nhành non khe khẽ Tiếng phượng nở nghe nhẹ Chợt lặng bóng nắng ban chiều.” Bài tập 5: Hướng dẫn: Viết chương trình dùng ký hiệu bàn phím để vẽ hình – chữ nhật, hình bình hành, hình tam giác, hình thoi *********** *********** Dùng lệnh Write Writeln ######## ######## *********** ######## ######## $ % $$$ $$$$$ $$$$$$$ % % % % % % % Bài tập 6: Hướng dẫn: ĐT: 0938.038.735 thuythan@ymail.com Q Tân Phú Năm: 2017 Viết chương trình in bảng thơng tin học sinh hình: Tên – trường, Họ tên, Lớp, Mã số Đóng khung đẹp mắt ********************************** * Trường : THCS Đồng Khởi * * Ho ten : Nguyen Trinh Lap * * Lop * : 8/17 * Ma so : 19 * ********************************** Bài tập 7: Hướng dẫn: Viết chương trình in hình nội dung sau: – a) (5 + 9) – x b) 25 : [12 – x (4 :3) + 12] – Bài thực hành 2: Viết chương trình để tính tốn Bài tập 1: Viết chương trình tính biểu thức sau: Hướng dẫn: – a) (5 – x 3) : = Write(‘ Chuỗi ký tự ’,biểu thức); b) 12 : [5 x + (5 * 8) – 1] = Writeln(‘ Chuỗi ký tự ’, biểu thức); c) 25^2 – = d) (15 div 2) mod = – e) [(245 div 10) div 3] mod = f) Kết hợp lệnh in chuỗi ký tự in giá trị biểu thức: Phép tính Pascal: cộng +, trừ -, nhân *, chia /, mod, div dấu ( ) (25 x 3) + 15 div (17 mod 5) = Bài tập 2: Hướng dẫn: Viết chương trình nhập năm sinh bạn học sinh số – Khai báo số: nguyên, cho biết bạn tuổi (Cho năm Const Tên_biến = ; 2017) – Khai báo biến: Ví dụ: Var Biến_1, Biến_2,… : ; Nhap nam sinh: 2004 >> Tuoi cua ban la: 13 Bài tập 3: – Hướng dẫn: Viết chương trình nhập vào năm năm sinh – bạn học sinh Tính tuổi bạn học sinh Bài tập 4: Readln(Tên_biến): Đọc lưu giá trị vào biến Sử dụng hai biến kiểu số nguyên (Integer) Hướng dẫn: Viết chương trình nhập số học sinh số táo số nguyên – Kết hợp lệnh in chuỗi ký tự in giá trị biểu thức: Hãy chia táo cho bạn, xuất hình cho biết bạn táo dư táo? Write(‘Chuỗi ký tự ’,biểu thức, ’Chuỗi ký tự‘); Ví dụ: Writeln(‘Chuỗi ký tự ’, biểu thức, ’Chuỗi ký tự‘); Nhap so qua tao: 52 Nhap so hoc sinh: 15 – Dùng lệnh Div để tìm số táo học sinh nhận – Dùng lệnh Mod để tìm táo dư >> Moi hoc sinh nhan duoc: qua tao >> Con du: qua tao Bài tập 5: Hướng dẫn: Viết chương trình nhập điểm tốn, văn, anh bạn học – sinh số thực Hãy tính điểm trung bình bạn biết điểm tốn, văn hệ số – Ví dụ: GVBS: Nguyễn Thị Cúc Sử dụng biến toán, văn, anh kiểu số thực (Real) Cú pháp lệnh: Writeln( :n :m); Trường THCS Đồng Khởi – Q Tân Phú Giáo trình Pascal Nhap diem toan: 9.5 Trong đó: Nhap diem van: N : Độ dài để in số Nhap diem anh: 9.5 M : Số chữ số thập phân >> Diem trung binh cua ban la: 9.0 Bài tập 6: Hướng dẫn: Viết chương trình nhập vào số nguyên có chữ số Hãy – cho biết chữ số cuối số Sử dụng lệnh Mod để tìm chữ số cuối Ví dụ: Nhap so nguyen co chu so: 356 >> Hai chu so cuoi cung la: 56 Bài thực hành 3: Khai báo sử dụng biến Bài tập 1: Hướng dẫn: Viết chương trình nhập bán kính hình tròn số thực Hãy – Khai báo số Pi = 3.14 Const tính diện tích chu vi hình tròn (Lấy chữ số thập – Khai báo biến kiểu số thực Real phân) – Cơng thức: Ví dụ: Diện tích hình tròn = Bán kinh2 x Pi Nhap ban kinh: Chu vi hình tròn = x Bán kính x Pi >> Dien tich la: 12.56 >> Chu vi la: 12.56 Bài tập 2: Hướng dẫn: Viết chương trình nhập chiều cao bạn học sinh so – thực, đơn vị mét Hãy tính trung bình cộng chiều cao bạn Kết lấy chữ số thập phân (2 số lẻ) Ví dụ: Nhap chieu cao ban 1: 1.5 Nhap chieu cao ban 2: 1.6 >> Trung binh cong chieu cao hai ban la: 1.55 Bài tập 3: Hướng dẫn: Nhập cạnh a Tính xuất chu vi, diện tích hình vng Bài tập 4: – Chu vi = a x – Diện tích = a2 Hướng dẫn: Nhập cạnh a, b Tính chu vi diện tích hình chữ nhật Bài tập 5: – Chu vi = (a + b) x – Diện tích = a x b Hướng dẫn: Nhập cạnh a, b, c Tính xuất chu vi, diện tích hình tam giác – Chu vi = a + b + c – Dien tich = Với p = Chu vi : Bài tập 6: Hướng dẫn: Nhập vào hai số nguyên dương a, b Tính tổng, hiệu, thương, – tích hai số nguyên Bài tập 7: Hướng dẫn: Nhập số nguyên n Tính xuất giá trị tuyệt đối n Bài tập 8: Sử dụng hàm Abs(a) để lấy giá trị tuyệt đối a |a| Hướng dẫn: Nhập số nguyên n Tính xuất bậc hai n – ĐT: 0938.038.735 – Sử dụng hàm Sqrt(a) để lấy bậc a thuythan@ymail.com Q Tân Phú Năm: 2017 Bài tập 9: Hướng dẫn: Viết chương trình nhập vào hai số nguyên dương a b Hãy – hoán đổi giá trị a b cho in hình kết Sử dụng phép gán: T := 12; T mang giá trị 12 Ví dụ: E := T; E mang giá trị T E = 12 Nhap a: 15 T := T – 5; T mang giá trị Nhap b: -8 >> Sau hoan doi gia tri a= -8 >> Sau hoan doi gia tri b= 15 Bài tập 10: Hướng dẫn: Viết chương trình đảo ngược số ngun dương có – ký số Ví dụ: Nhap so nguyen co ky so: 248 >> Dao cua 248 la: 842 Bài thực hành 4: Sử dụng lệnh điều kiện IF…THEN… Bài tập 1: Hướng dẫn: Viết chương trình nhập vào số nguyên Kiểm tra xem số có – phải số phương khơng Bài tập 2: Số phương số có bậc số nguyên – Sử dụng hàm Frac Hàm lấy số lẻ – Sử dụng hàm Sqrt Lấy bậc Hướng dẫn: Viết chương trình nhập vào số nguyên có ký số Kiểm tra số – vừa nhập chẵn hay lẻ Sử dụng lệnh Mod để kiểm tra tính chẵn hay lẻ Ví dụ: Nhap so nguyen: 17 >> 17 la so lẻ Bài tập 3: Hướng dẫn: Nhập vào số nguyên a b Cho biết giá trị lớn hai – số Dùng Readln(Biến_1, Biến_2) để nhập hai biến dòng – Cách 1: Dùng điều kiện a>=b a> So lon nhat la: 12 Gán max:=a; Nếu maxt2 gán min:=t2; Nếu min>t3 gán min:=t3; In kết hình >> -6 la gia tri nho nhat Bài tập 5: Hướng dẫn: Viết chương trình nhập số kg gạo số nguyên Giả sử có số – GVBS: Nguyễn Thị Cúc Sử dụng lệnh Mod Div Trường THCS Đồng Khởi – Q Tân Phú Giáo trình Pascal bao: 20 kg, 10 kg, kg, kg, kg Hãy tìm cách cho gạo vào – bao cho số lượng bao cần dùng Nếu số lượng bao > in số lượng bao hình Ví dụ: Nhap so kg gao: 49 >> Bao 20 kg : >> Bao kg : >> Bao kg : Bài tập 6: Hướng dẫn: Viết chương trình nhập vào số nguyên x, y Nếu x>0 tăng x – thêm đơn vị Nếu y>0 gấp đơi giá trị y Ví dụ: Nhap x : Nhap y : >> Gia tri moi cua x la : >> Gia tri moi cua y la : 10 Bài tập 7: Hướng dẫn: Viết chương trình kiểm tra số nguyên n số âm hay – dương Bài tập 8: Hướng dẫn: Viết chương trình kiểm tra số thực có chứa số lẻ hay khơng in số lẻ hình – Sử dụng hàm Frac để kiểm tra Ví dụ: Nhap so thuc : 2.578 >> So thuc co so le la: 578 Bài tập 9: Hướng dẫn: Viết chương trình nhap vào số nguyên dương tháng – năm in số ngày tháng Biết rằng: + Tháng có 31 ngày: 1, 3, 5, 7, 8, 10, 12 + Tháng có 30 ngày: 4, 6, 9, 11 + Tháng có 28 29 ngày: Bài tập 10: Hướng dẫn: Nhập số a, b Kiểm tra xem chúng có dấu hay khơng? Bài tập 11: – Hướng dẫn: Nhập vào hai số nguyên dương a, b So sánh giá trị chúng – (lớn, nhỏ, bằng) Bài tập 12: Hướng dẫn: Nhập vào chiều dài đoạn thẳng số nguyên Kiểm tra xem – đoạn thẳng có tạo thành tam giác Bài tập 13: Hướng dẫn: Nhập vào số nguyên t Kiểm tra xem t có vừa chia hết cho vừa chia hết cho không? Bài tập 14: – Sử dụng lệnh kết hợp điều kiện And Hướng dẫn: Nhập vào số nguyên t Kiểm tra xem t có chia hết cho – không chia hết cho không? đoạn thẳng d1, d2, d3 tạo thành tam giác tổng hai đoạn thẳng phải lớn đoạn thẳng lại ĐT: 0938.038.735 Sử dụng lệnh kết hợp điều kiện Or thuythan@ymail.com Q Tân Phú Năm: 2017 Bài tập 15: Hướng dẫn: Nhập vào số ngun có ký số Hốn đổi vị trí ký số – cho số đạt giá trị lớn – Ví dụ: N= Dùng lệnh Mod Div để gán t1=a, t2=b, t3=c Nhap so nguyen co ky so : 152 – Nếu t1> 521 dat gia tri lon nhat sau hoan doi – Nếu t15) Cho biết từ – đến n có số chia hết cho Hàm Inc(a) Tăng a lên thêm đơn vị Ví dụ: Nhap n = 10 >> Tu den 10 co so chia het cho Bài tập 3: Hướng dẫn: Viết chương trình nhập số nguyên dương a (a>5) Hãy xuất – hình số chẵn từ đến a Ví dụ: Nhap a = >> Cac so chan la: Bài tập 4: Hướng dẫn: Viết chương trình nhập vào số nguyên dương b Hãy in – hình bảng cửu chương b Ví dụ: Nhap b = 3x1=3 3x2=6 3x3=9 … x 10 = 30 Bài tập 5: GVBS: Nguyễn Thị Cúc Hướng dẫn: Trường THCS Đồng Khởi – Q Tân Phú Giáo trình Pascal Nhập số nguyên dương t In số chia cho dư – khoảng [1,t] Bài tập 6: Hướng dẫn: Nhập số nguyên dương t In số vừa chia hết cho vừa chia hết cho khoảng [1,t] Bài tập 7: – Hướng dẫn: Nhập số nguyên dương t In số không chia hết cho không chia hết cho khoảng [1,t] Bài tập 8: – Hướng dẫn: Nhập số nguyên dương t Liệt kê ước số t Bài tập 9: – Hướng dẫn: Nhập số nguyên dương t Liệt kê ước số chẵn t Bài tập 10: – Hướng dẫn: Nhập số nguyên dương t T có ước số lẻ Bài tập 11: – Hướng dẫn: Nhập số nguyên dương t Tính tổng ước số chia hết cho – t Bài tập 12: Hướng dẫn: Nhập số nguyên dương t Tính tích ước số chia hết cho – t Bài tập 13: Hướng dẫn: Nhập số nguyên dương k Kiểm tra xem k có phải số hồn – hảo Bài tập 14: Số hồn hảo số có tổng ước số nhỏ nó Hướng dẫn: Nhập số nguyên dương t Kiểm tra xem k có phải số nguyên – tố Số nguyên tố số có ước số Bài thực hành 6: Sử dụng lệnh lặp WHILE…DO… Bài tập 1: Hướng dẫn: Viết chương trình nhập số nguyên n Cho biết n có – chữ số – Ví dụ: Sử dụng hàm Inc(dem) Tăng biến đếm lên đơn vị Tránh vòng lặp chạy mãi Nhap n: 12345 >> 12345 co chu so Bài tập 2: Hướng dẫn: Viết chương trình nhập số nguyên n, m (n> Tang len lan Bài tập 3: Hướng dẫn: Viết chương trình nhập n (điều kiện: 5 Day C co phan tu: Bài tập 6: Hướng dẫn: Viết chương trình nhập vào dãy n số thực Sắp xếp dãy số – Tìm phần tử lớn chuyển đầu dãy Ví dụ xếp dãy số nguyên: thực theo giá trị giảm dần In lại dãy số xếp với giá trị phần tử thể số lẻ (2, 6, -5, 8, -2) (8, 6, -5, 2, -2) (8, 6, -5, 2, -2) (8, 6, 2, -5, -2) (8, 6, 2, -2, -5) – Bài tập 7: Sắp xếp dãy số thực tương tự Hướng dẫn: Viết chương trình nhập vào dãy n phần tử, với giá trị phần – tử ký tự In lại dãy ký tự xếp tăng dần theo – giá trị mã ASCII tương ứng Kiểu ký tự: Char Sử dụng hàm Ord(‘Ký tự’) Giá trị mã ASCII ký tự Ví dụ: Day co ky tu: fa5bp >> Day da duoc sap xep theo ma ASCII: 5abfp Bài tập 8: Hướng dẫn: Viết chương trình nhập vào xâu ký tự S In hình mã – Khai báo xâu ký tự: ASCII tương ứng với ký tự Tìm ký tự có mã ASCII nhỏ Var Tên_biến : String[độ dài xâu]; – Hàm Length(st): cho độ dài thực xâu ký tự st Đề luyện tập cấp độ 2: 2.1 Bài thực hành 8: Xử lý loại số Bài tập Viết chương trình nhập vào số nguyên N Kiểm tra N có phải số phương Hướng dẫn: Sử dụng hàm Frac, Sqrt Bài tập Viết chương trình nhập vào số nguyên N Kiểm tra N có phải số hồn hảo Bài tập Viết chương trình nhập vào số nguyên N Kiểm tra N có phải số nguyên tố Bài tập Viết chương trình nhập vào số nguyên N Kiểm tra N có phải số đơn điệu Bài tập Viết chương trình nhập số nguyên K In hình số phương ≤ K Bài tập Viết chương trình nhập số ngun K In hình số hồn hảo ≤ K Bài tập Viết chương trình nhập số nguyên K In hình số nguyên tố ≤ K Bài tập Viết chương trình in hình số đơn điệu có ký số Bài tập Viết chương trình nhập số nguyên K In hình cặp số hữu nghị ≤ K Ví dụ: Nhap K : 1000 >> Cac cap so huu nghi la: (48, 75) (75, 48) (140, 195) (195, 140) Hướng dẫn: Hai số tự nhiên A, B coi hữu nghị số tổng ước số thực số (tổng ước khơng tính ước số nó) ngược lại Bài tập 10 Tổng lập phương: Tìm tất số có chữ số cho tổng lập phương chữ số số Ví dụ: 153 = 13 + 53 + 33 ĐT: 0938.038.735 thuythan@ymail.com Q Tân Phú Năm: 2017 Dữ liệu: File input File Output 153 370 371 407 Bài tập 11 Có số có chữ số có tính chất sau: Mỗi số trừ số viết theo thứ tự ngược lại số phương Ví dụ: 10 10 – = SCP Bài tập 12 Nhập vào số n (n>5) Hãy phân tích n thành tổng số nguyên tố Dữ liệu: File Input File Output 16 11 277 Bài tập 13 Viết chương trình liệt kê tất số tự nhiên có chữ số mà tổng chữ số số tự nhiên cho trước Dữ liệu: File Input File Output 103 112 121 130 202 211 220 301 310 Bài tập 14 Có cách phân tích số tự nhiên n = i3 + j3 (i ≤ j) Nhập n, xuất cách Dữ liệu: File Input 793 File Output 49 Bài tập 15 Số gần nhất: Cho số nguyên dương N chữ số c, tìm số nguyên dương nhỏ k thỏa k > N biểu diễn k hệ thập phân có chữ số c Dữ liệu: File Input 11 File Output 17 Bài tập 16 2.2 Bài thực hành 9: Xử lý xâu ký tự Bài tập Cho xâu ký tự S gồm chữ số Hãy loại bỏ chữ để chuỗi số Ví dụ: S=’1acvb58d96’ S=’15896’ Hướng dẫn: Hàm xóa ký tự: Delete(st, pos, num) VD: St = ‘FILENAME’ Delete(St, 5, 4) st = ‘FILE’ Hàm Length(st) Độ dài xâu ký tự st Bài tập Viết chương trình nhập vào số thực có phần ngun phần thập phân Hốn đổi vị trí ký số phần nguyên vị trí ký số phần thập phân để số thực đạt giá trị lớn Lưu ý khơng hốn đổi ký số phần nguyên phần thập phân với Ví dụ: K = 152.061 K = 521.610 GVBS: Nguyễn Thị Cúc 10 Trường THCS Đồng Khởi – Q Tân Phú Giáo trình Pascal Hướng dẫn: Hàm Pos(st1, st2) Vị trí tìm thấy st1 st2 VD: Pos(‘Lam’,’Le Thanh Lam’) = 10 Hàm Ord(‘Ký tự’) Giá trị ASCII ký tự Bài tập Viết chương trình đọc vào số nguyên N Hãy đổi N từ hệ thập phân (cơ số 10) sang hệ nhị phân (cơ số 2) Dữ liệu: File Input File Output 101 Hướng dẫn: Lệnh Mod, Div Hàm chèn xâu ký tự: Insert(St1, St, Pos); VD: St1 = ‘Van’; St = ‘Le Thanh’; Insert(St1, St, 4) St = ‘Le Van Thanh’ Bài tập Viết chương trình đọc vào số nguyên N k (k ≤ 34) Đổi N từ hệ thập phân sang hệ k File Input 35 12 Bài tập File Output 2B Cho trước xâu ký tự, có chữ số Hãy loại bỏ số ký tự khỏi xâu cho ký tự cuối lai theo thứ tự tạo nên số lớn Ví dụ: S = ‘24d5n4r05f704n652z393’ 7693 Hướng dẫn: Thủ tục đổi ký tự sang dạng số: Val(St, Value, Code); VD: St = ‘251’ Value=251, Code=0; St = ‘21a’ Code ≠ 0; Thủ tục đổi dạng số sang ký tự: Str(Value, St); VD: Bài tập Value = 12 St = ‘12’; Nhập số thực x Tìm phần ngun có chữ số, in hình chữ số lớn Dữ liệu: File Input File Output 12345.78 Phan nguyen co chu so Chu so lon nhat la Bài tập Viết chương trình nhập vào số nguyên dương n (0 < n ≤ 32000) Hãy cho biết số nguyên bội tổng tất chữ số hay khơng? Nếu khơng tìm số nguyên dương m nhỏ gần n m thỏa mãn tính chất trên? Ví dụ: 25 không bội 2+5=7 24 bội 2+4=6 Dữ liệu: File Input 25 Bài tập File Output 24 Viết chương trình nhân số ngun có độ dài lớn đến 300 chữ số Ví dụ: 123 x 789 = 97047 123456 x 123456 = 15241383936 123456789 x 123456789 = 15241278750190521 123456 11 ĐT: 0938.038.735 thuythan@ymail.com Q Tân Phú Năm: 2017 123456 740736 6172800 49382400 370368000 2469120000 12345600000 15241383936 Hướng dẫn: Sử dụng chuỗi hàm Ord, Val, … Dữ liệu: File Input File Output 123456 15241383936 123456 Bài tập Viết chương trình đọc vào chuỗi S số nguyên t1, t2 (t1 ≤ 34, t2 ≤ 34) Hãy thực chuyển đổi chuỗi S từ hệ số t1 sang hệ số t2 Dữ liệu: File Input 2B File Output 1E 12 21 2.3 Bài thực hành 10: Mảng chiều Bài tập Nhập vào mảng có n số nguyên dương khác Hãy in tất phần tử mảng có giá trị nhỏ giá trị lớn lớn giá trị nhỏ mảng Dữ liệu: File.inp gồm dòng: – Dòng 1: Số n số phần tử mảng – Dòng 2: Giá trị phần tử mảng, phần tử cách khoảng trắng File.out: Các phần tử tìm được, phần tử nằm dòng cách khoảng trắng Bài tập Nhập dãy số thực a số k Xét xem dãy có k số dương đứng cạnh hay không? Dữ liệu: File Input 12 File Output TRUE -1 -2 -4 -3 Bài tập Nhập dãy số thực a Tìm số dãy tổng số khác dãy Dữ liệu: File Input File Output -4 -4 -13 Bài tập Nhập dãy A có N số tự nhiên (N, > Sau hoan doi gia tri a= -8 >> Sau hoan doi gia tri b= 15 Bài tập 10: Hướng dẫn: Viết chương trình đảo ngược số ngun dương có – ký số Ví dụ: Nhap so nguyen co ky so: 2 48 >> Dao cua 248