Nội dung Học tập Môn Tin Học 11 Học kì 2 - Năm học 2019-2020

pdf 23 trang anhmy 26/07/2025 190
Bạn đang xem 20 trang mẫu của tài liệu "Nội dung Học tập Môn Tin Học 11 Học kì 2 - Năm học 2019-2020", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfnoi_dung_hoc_tap_mon_tin_hoc_11_hoc_ki_2_nam_hoc_2019_2020.pdf

Nội dung tài liệu: Nội dung Học tập Môn Tin Học 11 Học kì 2 - Năm học 2019-2020

  1. III. BÀI TẬP 1. Những khai báo nào là đúng? Type Arrayr = array[1..200] Of integer; Arrayr = array[byte] of real; Arrayb = array[-100..100] of boolean; Var a : arrayr; B : arrayb; 2. Biến a trong khai báo trên chiếm dung lượng bộ nhớ là bao nhiêu? IV. HƯỚNG DẪN TỰ HỌC 1. Quan sát trên ví dụ 1, tìm xem đoạn lệnh nào thực hiện các công việc sau: - Khai báo mảng một chiều; - Nhập số phần tử của mảng; - Nhập các phần tử của mảng. 2. Viết chương trình nhập n phần tử là các số nguyên cho mảng 1 chiều và thực hiện các công việc sau: a) Đếm xem có bao nhiêu số chẵn, bao nhiêu số lẻ. b) Đếm xem có bao nhiêu số nguyên dương, số nguyên âm. BÀI TẬP VÀ THỰC HÀNH 4 (1 tiết) I. MỤC ĐÍCH, YÊU CẦU Giúp học sinh: 1. Về kiến thức − Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chương trình chạy nhanh hơn. − Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp. 2. Về kỹ năng − Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng. − Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chương trình chạy nhanh hơn. 3. Về thái độ Rèn luyện tư duy lập trình, tác phong của người lập trình. Tự giác, chủ động trong khi thực hành. II. NỘI DUNG Bài 1. a) Hãy tìm hiểu và chạy thử chương trình thuật toán sắp xếp dãy số nguyên bằng thuật toán tráo đổi với các giá trị khác nhau của n dưới đây . Qua đó nhận xét về thời gian chạy chương trình. program sapxep; uses crt; const Nmax=250; var N,i,j,t: integer; A : array[1..Nmax] of integer; begin clrscr; randomize; write('nhap so luong phan tu cua day N='); readln(N); 3
  2. for i:=1 to N do A[i]:=random(300) - random(300); for i:=1 to N do write(A[i]:5); writeln; for j:=N downto 2 do for i:=1 to j-1 do if A[i]>A[i+1] then begin t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t; end; writeln('day da duoc sap xep la '); for i:=1 to N do write(A[i]:4); readln; end. b) (không thực hành) Bài 2. (không thực hành) III. BÀI TẬP 1. Những khai báo nào là đúng? Type Arrayr = array[1..200] Of integer; Arrayr = array[byte] of real; Arrayb = array[-100..100] of boolean; Var a : arrayr; B : arrayb; 2. Biến a trong khai báo trên chiếm dung lượng bộ nhớ là bao nhiêu? IV. HƯỚNG DẪN TỰ HỌC 1. Học sinh thực hiện soạn thảo và chạy thử chương trình. Cho các giá trị của n khác nhau để quan sát thời gian chương trình thực hiện và nhận xét. 2. Đoạn chương trình tạo ra dãy số tự động? Đoạn chương trình in mảng ra màn hình? 3. Viết chương trình nhập n phần tử là các số nguyên cho mảng 1 chiều và thực hiện các công việc sau: Đếm xem có bao nhiêu số chẵn, bao nhiêu số lẻ. In các số chẵn, in các số lẻ ra màn hình. § 12. KIỂU XÂU (1 tiết) I. MỤC ĐÍCH, YÊU CẦU Giúp học sinh: 1. Về kiến thức − Biết xâu là một dãy ký tự (có thể coi xâu là mảng một chiều). − Biết cách khai báo xâu, truy cập phần tử của xâu. − Biết một số thủ tục, hàm thông dụng về xâu. 2. Về kỹ năng − Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal. − Sử dụng biến xâu và các phép toán trên xâu để giải quyết một bài toán đơn giản. 3. Về thái độ Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức. II. NỘI DUNG Khái niệm kiểu dữ liệu xâu - Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần tử của xâu. Số lượng kí tự trong một xâu được gọi là độ dài của xâu. Xâu có độ dài bằng 0 gọi là xâu rỗng. 4
  3. - Ví dụ: ‘Le Hong Phong’ - Lưu ý: + Xâu được đặt trong 2 dấu nháy đơn; + Các kí tự của xâu được đánh số thứ tự thường bắt đầu từ 1; + Tham chiếu đến các phần tử của xâu tương tự mảng một chiều: Tên biến xâu[chỉ số]; Ví dụ: xâu A: ‘Le Hong Phong’ A[1]=’L’, A[2]=’e’, A[3]=’ ’ 1. Khai báo - Để khai báo dữ liệu kiểu xâu ta sử dụng tên dành riêng string, tiếp theo là dộ dài lớn nhất của xâu (không vượt quá 255 kí tự đặt trong dấu ngoặc [ và ] ) - Cú pháp: Var :string[độ dài lớn nhất của xâu]; hoặc Var :string; - Ví dụ: Var ten : string[26]; Var chuthich : string; (xâu có độ dài tối đa là 255 kí tự. 2. Các thao tác xử lí xâu a) Phép ghép xâu, kí hiệu là dấu (+), được sử dụng để ghép nhiều xâu thành một. Có thể thực hiện ghép xâu đối với hằng và biến xâu. Ví dụ: 'Tin hoc'+ '11' sẽ cho xâu có kết quả là 'Tin hoc 11'. b) Các phép so sánh như bằng (=), khác (<>), nhỏ hơn (<), có độ ưu tiên thực hiện thấp hơn ghép xâu.Việc so sánh 2 xâu sẽ thực hiện theo nguyên tắc sau: - Xâu A lớn hơn xâu B nếu như kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn. - Nếu độ dài hai xâu khác nhau thì coi như thêm các kí tự đặc biệt (nhỏ hơn tất cả các kí tự trong bảng ASCII). Ví dụ: 'Ab' sẽ nhỏ hơn 'a'. Vì A có mã ASCII là 65 nhỏ hơn a là 97. 'a' sẽ nhỏ hơn 'aB'. Khi 2 xâu độ dài không bằng nhau ta thêm kí tự đặc biệt nhỏ hơn mọi kí tự trong bảng ASCII (dĩ nhiên sẽ nhỏ hơn B ). c) Các thủ tục khác + delete(st, vt, n) xóa n kí tự của xâu st từ vị trí vt. Ví dụ: delete(‘Nam Bac’, 3, 5) → ‘Na’. + insert(st, s2, vt) chèn xâu s1 vào s2 bắt đầu ở vị trí vt. Ví dụ: insert(‘HOC’, ‘TIN’, 1) → ‘HOCTIN’ + copy(S, vt, N); Tạo xâu gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâu S. Ví dụ: copy(‘CHUNG HO’, 3, 6) → ‘UNG HO’ + length(s) cho giá trị là độ dài xâu s. Ví dụ: length(‘Bac Nam sum hop’) → 15. + pos(s1, s2) cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2. Ví dụ: pos(‘a’, ‘Bac Nam’) → 2. + upcase(ch) cho chữ cái in hoa ứng với chữ cái trong ch. Ví dụ: upcase(‘Bac’) → ‘BAC’ 3. Một số ví dụ Ví dụ 1 Chương trình dưới đây nhập họ tên của hai người vào hai biến xâu và đưa ra màn hình xâu dài hơn nếu bằng nhau thì đưa ra xâu nhập vào sau. program vd1; uses crt; var a,b:string; begin 5
  4. clrscr; write('nhap ho ten thu nhat:'); readln(a); write('nhap ho ten thu hai :'); readln(b); if length(a)>length(b) then write(a) else write(b); readln; end. Ví dụ 4 Viết chương trình nhập vào từ bàn phím và đưa ra màn hình xâu thu được từ nó sau khi loại bỏ hết các dấu cách. program vd4; uses crt; var a,b:string; i:integer; begin clrscr; write('nhap xau:'); readln(a); b:=''; for i:=1 to length(a) do if a[i]<> ' ' then b:=b+a[i]; write('xau sau khi bo dau cach la ', b); readln; end. III. BÀI TẬP Câu 1. Chọn khai báo xâu đúng: A. VAR St:STRING; B. VAR St:STRING[266]; C. VAR St=STRING[200]; D. VAR St=STRING; Câu 2. Cho biết giá trị của biến xâu St sau khi thực hiện xong câu lệnh St:= ‘Khoa’+‘Hoc’; A. St = ‘KhoaHoc’; B. St = ‘Khoa Hoc’; C. St = ‘Khoahoc’; D. St = ‘khoa hoc’; Câu 3. Phép so sánh xâu nào cho giá trị TRUE A. ‘Quoc_gia’ > ‘Quoc_Su’ B. ‘Quoc_gia’ > ‘Quoc_su’ C. ‘Quoc_Gia’ > ‘Quoc_Su’ D. ‘Quoc_Gia’ > ‘Quoc_su’ Câu 4. Kết quả của thủ tục Delete(‘AbcdeF’,3,3); là: A. Lỗi cú pháp B. ‘AdeF’ C. ‘adef’ D. ‘ADEF’ Câu 5. Cho biến xâu S. Chương trình sau thực hiện công việc gì? WHILE S[1]= ‘a’ DO delete(S,1,1); A. Xóa các ký tự ‘a’ ở đầu xâu S B. Xóa 1 ký tự ‘a’ ở đầu xâu S C. Xóa các ký tự ‘a’ và ‘A’ ở đầu xâu S D. Xóa các ký tự trắng ở đầu xâu S IV. HƯỚNG DẪN TỰ HỌC 1. Nhớ cách khai báo biến: VAR tên_biến : STRING[độ dài lớn nhất của xâu]; 2. Nhập xuất giá trị cho biến xâu: read/readln(): write/writeln(); 3. Tham chiếu đến từng ký tự trong xâu: tên_biến[chỉ_số]. 4. Phép ghép xâu: ký hiệu là +, được sử dụng để ghép nhiều xâu thành một xâu. 5. Các phép so sánh: =, , =: thực hiện việc so sánh hai xâu. 6
  5. BÀI TẬP VÀ THỰC HÀNH 5 (1 tiết) I. MỤC ĐÍCH, YÊU CẦU Giúp học sinh: 1. Về kiến thức Làm quen với việc tìm kiếm, thay thế và biến đổi xâu. 2. Về kỹ năng Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu xâu. 3. Về thái độ Rèn luyện tư duy lập trình, tác phong của người lập trình. Tự giác, chủ động trong khi thực hành. II. NỘI DUNG Bài 1. Nhập vào từ bàn phím một xâu. Kiểm tra xâu đó có phải là xâu đối xứng hay không. Xâu đối xứng có tính chất: đọc nó từ phải sang trái cũng thu được kết quả giống như đọc từ trái sang phải (còn được gọi là xâu palindrome). a) Hãy chạy thử chương trình sau: program vd2; uses crt; var i,x:byte; a,p:string; begin clrscr; write('nhap xau:'); readln(a); x:=length(a); p:=''; for i:=x downto 1 do p:=p+a[i]; if a=p then write('xau la palindrome') else write('xau khong phai la palindrome'); readln; end. b) Hãy viết lại chương trình tên, trong đó không dùng biến xâu p (không thực hành) Bài 2. Viết chương tình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiêng Anh trong S (không phân biệt chữ hoa hay chữ thường). 7
  6. program vd2; uses crt; var a:string; gt:array[0..26] of integer; i:integer; begin clrscr; write('nhap xau:'); readln(a); for i:=0 to 25 do gt[i]:=0; for i:=1 to length(a) do begin gt[ord(upcase(a[i]))-ord('A')]:=gt[ord(upcase(a[i]))-ord('A')]+1; end; for i:=0 to 25 do if gt[i]>0 then writeln(chr(ord('A')+i),':',gt[i]); readkey; end. Bài 3. (không thực hành) III. BÀI TẬP 1. Những khai báo nào là đúng? Type Arrayr = array[1..200] Of integer; Arrayr = array[byte] of real; Arrayb = array[-100..100] of boolean; Var a : arrayr; B : arrayb; 2. Biến a trong khai báo trên chiếm dung lượng bộ nhớ là bao nhiêu? IV. HƯỚNG DẪN TỰ HỌC 1. Học sinh nắm kỹ các nội dung: - Cách khai báo biến xâu. - Cách nhập một xâu từ bàn phím. - Các phép toán, thủ tục và hàm dùng để xử lý xâu. - Thủ tục Delete(st,vt,n); Insert(st1,st2,vt); - Hàm Copy(st,vt,n); Length(st); Pos(st1,st2); UpCase(ch) 2. Hãy viết chương trình nhập vào một xâu bất kỳ (có cả ký tự và ký tự số) và đưa ra màn hình có bao nhiêu ký tự là số? Ví dụ: S=’08bC156546C3D’ → Dem = 9 Var S:String; i, Dem:Byte; Begin Write(‘Nhap xau ’);Readln(S); Dem:=0; For i:=1 To length(S) Do If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1; Write(‘Tong so ky tu la so’,Dem); Readln; End. 8
  7. ÔN TẬP (1 tiết) I. MỤC ĐÍCH, YÊU CẦU Giúp học sinh: 1. Về kiến thức Củng cố các kiến thức về: - Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế. - Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định. - Mỗi kiểu dữ liệu có cấu trúc thường hữu ích trong việc giải quyết một số bài tập. - Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type. 2. Về kỹ năng Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng, kiểu xâu. 3. Về thái độ Rèn luyện tư duy lập trình, tác phong của người lập trình. Tự giác, chủ động trong khi thực hành. II. NỘI DUNG 1. Kiểu dữ liệu mảng Khai báo Khai báo trực tiếp Var : array[kiểu chỉ số] of ; Khai báo gián tiếp Type = array[kiểu chỉ số] of ; Var : ; Nhập số phần tử N của mảng A write(‘Nhap so luong phan tu cua day so, N = ’) ; readln(N); Nhập các phần tử của mảng A for i:=1 to N do begin write(‘ Phan tu thu ‘ , i , ‘ = ‘); readln(A[i]); end; In mảng B có N phần tử ra màn hình for i:=1 to N do write(B[i]:4); 2. Kiểu dữ liệu xâu Khai báo Var a : string[N]; hoặc Var a : string; (độ dài tối đa 255) Xử lí xâu - Phép ghép xâu (+); - Các phép so sánh như bằng (=), khác (<>), nhỏ hơn (<), - Các hàm và thủ tục khác: + delete(st, vt, n) + insert(st, s2, vt) + copy(S, vt, N + length(s) + pos(s1, s2). + upcase(ch) III. BÀI TẬP 9
  8. Bài 1. Viết chương trình nhập vào n số nguyên dương rồi tính trung bình cộng và trung bình nhân của nó. Bài 2. Viết chương trình nhập vào một xâu. In ra màn hình xâu đó sau khi đã đổi tất cả chữ in thường thành in hoa. IV. HƯỚNG DẪN TỰ HỌC 1. Học sinh nắm kỹ các nội dung: - Cách khai báo biến mảng, biến xâu. - Cách nhập một mảng, một xâu từ bàn phím. - Các phép toán, thủ tục và hàm dùng để xử lý xâu. - Thủ tục Delete(st,vt,n); Insert(st1,st2,vt); - Hàm Copy(st,vt,n); Length(st); Pos(st1,st2); UpCase(ch) 2. Hướng dẫn: Bài 1. - Khai báo biến n,i kiểu số nguyên. Biến mảng m kiểu số nguyên để chứa dãy số nhập vào. Các biến tbc,tbn kiểu số thực để chứa kết quả. - Sử dụng lệnh for tính tổng, tích của n số nguyên dương đó từ đó tính trung bình cộng và trung bình nhân. Bài 2. Nhập xâu. Sử dụng hàm dổi chữ thường thành chữ in hoa. In ra màn hình xâu đã đổi. KIỂM TRA MỘT TIẾT I. MỤC ĐÍCH, YÊU CẦU Đánh giá mức độ tiếp thu của học sinh: 1. Về kiến thức - Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế. - Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định. - Mỗi kiểu dữ liệu có cấu trúc thường hữu ích trong việc giải quyết một số bài tập. - Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type. 2. Về kỹ năng Kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng, kiểu xâu. 3. Về thái độ Nghiêm túc, tự lực cánh sinh. II. NỘI DUNG 1. Kiểu dữ liệu mảng 2. Kiểu dữ liệu xâu III. ĐỀ KIỂM TRA Giáo viên chuẩn bị đề kiểm tra trên giấy: - Phần trắc nghiệm 7 điểm. - Phần tự luận 3 điểm. IV. HƯỚNG DẪN TỰ HỌC 1. Học sinh ôn tập các nội dung trong tiết ôn tập. 2. Viết các chương trình đơn giản về kiểu mảng, kiểu xâu. 10
  9. CHƯƠNG V. TỆP VÀ THAO TÁC VỚI TỆP §14. KIỂU DỮ LIỆU TỆP - §15. THAO TÁC VỚI TỆP (1 tiết) I. MỤC ĐÍCH, YÊU CẦU Giúp học sinh: 1. Về kiến thức − Biết khái niệm về kiểu dữ liệu tệp. − Biết khái niệm tệp có cấu trúc và tệp văn bản. − Biết lệnh khai báo tệp văn bản. − Biết các bước làm việc với tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp. − Biết một số hàm và thủ tục chuẩn làm việc với tệp. 2. Về kỹ năng − Khai báo đúng tệp văn bản. − Sử dụng được một số hàm và thủ tục chuẩn làm việc với tệp 3. Về thái độ Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức. II. NỘI DUNG 1. Vai trò của kiểu tệp Dữ liệu kiểu tệp có những đặc điểm sau: + Được lưu trữ lâu dài ở bộ nhớ ngoài (đĩa từ, CD, . . .) và không bị mất khi tắt nguồn điện vào máy + Lượng thông tin lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa. Khái niệm kiểu dữ liệu xâu 2. Phân loại tệp và thao tác với tệp (học sinh tự đọc thêm). §15. Thao tác với tệp 1. Khai báo tệp văn bản VAR : TEXT; Ví dụ: Var f : text; 2. Thao tác với tệp a) Gán tên tệp ASSIGN( , ); Trong đó Tên tệp là biến xâu hoặc hằng xâu. Ví dụ 1. MYFILE := 'DULIEU.DAT'; ASSIGN(F2,MYFILE); hoặc ASSIGN(F2,'DULIEU.DAT'); Ví dụ 2. MYFILE := 'C:\INP.DAT'; ASSIGN(F3,MYFILE); b) Mở tệp Để đọc: RESET( ); Để ghi: REWRITE( ); Ví dụ 3. TF := 'C:\KQ.DAT'; ASSIGN(F3,TF); REWRITE(F3); Ví dụ 4. Để đọc dữ liệu từ tệp DL.INP ta có thể mở tệp bằng: ASSIGN(F1, 'DL.INP'); RESET(F1); c). Đọc/ghi tệp 11
  10. Đọc: READ( , ); Ghi: WRITE( , ); Ví dụ 5. Lệnh ghi giá trị biến A vào tệp gắn với biến tệp F3: WRITE(F3,A); Ví dụ 6. Lệnh đọc giá trị từ tệp gắn với biến tệp F1 và gán cho biến C: READ(F1,C); d) Đóng tệp Sau khi làm việc xong phải đóng tệp bằng câu lệnh: CLOSE( ); Ví dụ 7. CLOSE(F1); CLOSE(F3); Một số hàm và thủ tục chuẩn thường dùng trong thao tác tệp Hàm EOF( ): Cho giá trị True nếu con trỏ tệp đang chỉ tới cuối tệp. Hàm EOFLN( ): Cho giá trị True nếu con trỏ tệp đang chỉ tới cuối dòng. III. BÀI TẬP Câu hỏi trắc nghiệm (10 câu): Câu 1. Trong NNLT Pascal, cú pháp để khai báo biến tệp văn bản là: A. var : txt; B. var : txt; C. var : text; D. var : text; Câu 2. Để có thể thao tác với tệp dữ liệu trên đĩa thông qua biến tệp cho trước thì bước đầu tiên chúng ta phải làm gì? A. Gắn tên tệp cho biến tệp B. Mở tệp để ghi dữ liệu vào tệp C. Mở tệp để đọc dữ liệu từ tệp D. Đóng tệp. Câu 3. Trong NNLT Pascal, cú pháp để gắn tên tệp cho biến tệp là: A. := ; B. := ; C. assign ( , ); D. assign ( , ); Câu 4. Trong NNLT Pascal, cú pháp để mở tệp ở chế độ đọc dữ liệu từ tệp là: A. repeat( ); B. reset ( ); C. restart ( ); D. rewrite ( ); Câu 5. Cú pháp của thủ tục đọc dữ liệu từ tệp văn bản là: A. read ( , ); B. readln ( , ); C. readln ( , ); D. Cả đáp án A và B đều đúng. IV. HƯỚNG DẪN TỰ HỌC 1. Nắm kỹ các nội dung: - Đặc điểm của kiểu dữ liệu tệp; - Các thao tác cơ bản khi làm việc với tệp; - Sơ đồ làm việc với tệp; các thao tác với tệp được mô tả trong Hình16 - Ghi dữ liệu vào tệp; đọc dữ liệu từ tệp. 2. Tập viết chương trình đọc và hiển thị ra màn hình nội dung một tập tin dạng văn bản, với tên tập tin được nhập từ bàn phím. 12
  11. §16. VÍ DỤ LÀM VIỆC VỚI TỆP (1 tiết) I. MỤC ĐÍCH, YÊU CẦU Giúp học sinh: 1. Về kiến thức Củng cố lại kiến thức đã học về tệp trong chương 5 thông qua ví dụ. 2. Về kỹ năng Sử dụng được các hàm và thủ tục liên quan để giải quyết các bài tập. 3. Về thái độ - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp. - Có ý thức lưu trữ dữ liệu một cách khoa học. II. NỘI DUNG Ví dụ 1. Một trường trung học phổ thông tổ chức cho giáo viên và học sinh của trường đi cắm trại, sinh hoạt ngoài trời ở vườn quốc gia Cúc Phương. Để lên lịch đến thăm khu trại các lớp, thầy hiệu trưởng cần biết khoảng cách từ trại của mình (ở vị trí có tọa độ (0,0) )đến trại của các giáo viên chủ nhiệm. Mỗi lớp có một khu trại, vị trí trại của mỗi giáo viên chủ nhiệm đều có tọa độ nguyên (x,y) được ghi trong tệp văn bản TRAI.TXT (như vậy tệp TRAI.TXT chứa liên tiếp các cặp số nguyên, các số cách nhau bởi dấu cách và không kết thúc bằng kí tự xuống dòng). program khoang_cach; uses crt; var d:real; f:text; x,y:integer; begin clrscr; assign(f,'TRAI.TXT'); reset(f); while not eof(f) do begin read(f,x,y); d:=sqrt(x*x+y*y); writeln('Khoang cach :',d:10:2); end; close(f); readln; end. III. HƯỚNG DẪN TỰ HỌC - Ta sử dụng hàm eof để kiểm tra xem đã đọc hết tệp hay chưa (Hàm này giới thiệu ở bài trước). - Sau đó lần lượt đọc 2 số nguyên ra rồi tính khoảng cách của điểm (x,y) đến điểm (0,0) bằng công thức tính khoảng cách: - Soạn thảo và thực hiện chương tình trong Pascal. Chuẩn bị tập tin có tên TRAI.TXT có chứa các cặp số (x, y) là tọa độ các trại trong thư mục gốc của Pascal (nếu ở ổ đĩa khác thì khai báo đường dẫn. Ví dụ ở ổ E:\ thì dòng lệnh assign(f,'TRAI.TXT'); phải sửa lại là assign(f,'E:\TRAI.TXT'); 13