TIN HỌC - HK II<br />
Câu 1: Khái niệm; cách khai báo mảng một chiều.<br />
- KN: Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu.<br />
- KB: +Trtiếp: var : array [kiểu chỉ số] of ;<br />
+ Gitiếp: type = array [kiểu chỉ số] of ;<br />
var : ;<br />
Câu 2: Khái niệm, cách khai báo xâu. Các thao tác sử dụng xâu. Các hàm,<br />
thủ tục xử lí xâu.<br />
- KN: Xâu là dãy các kí tự trong bộ mã ASCII.<br />
- KB:<br />
var : string [độ dài lớn nhất của xâu];<br />
- Các thao tác xử lí:<br />
+ Phép ghép xâu, KH: (+), dùng để ghép nhiều xâu thành một xâu .<br />
+ Các phép so sánh: (=), (), (), (=), thực hiện so sánh 2 xâu<br />
theo qui tắc:<br />
Xâu A lớn hơn xâu B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái<br />
sang phải trong xâu A có mã ASCII lớn hơn.<br />
Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A nhỏ<br />
hơn B.<br />
- Các hàm và thủ tục:<br />
Thủ tục delete(st, pos, n): xóa n ký tự trong xâu st kể từ vị trí pos.<br />
Thủ tục insert(s1, s2, pos): Thủ tục cho kết quả bằng cách chèn xâu s1 vào<br />
xâu s2 tại vị trí pos, những ký tự đứng sau pos sẽ được dời về phía sau của<br />
xâu ký tự s1.<br />
Hàm copy(st, pos, n): sao chép trong xâu st, n ký tự tại vị trí pos.<br />
Hàm length(st): cho độ dài thực của xâu ký tự.<br />
Hàm pos(s1,s2): hàm cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.<br />
Hàm upcase(ch): cho chữ cái in hoa ứng với chữ cái trong ch.<br />
Câu 3: Khái niệm, cách khai báo biến tệp. Các thao tác với tệp. Sơ đồ<br />
mối quan hệ.<br />
- KN: Tệp là tập hợp các thông tin ghi trên bộ nhớ ngoài, tạo thành 1 đơn vị<br />
lưu trữ do HĐH quản lí.<br />
- KB: var : text;<br />
<br />
- Thao tác:<br />
+ Gọi tên: assign(, );<br />
+ Mở tệp để<br />
đọc dữ liệu: reset();<br />
ghi dữ liệu: rewrite();<br />
+ Đọc/ ghi tệp văn bản:<br />
đọc: read(ln)(, );<br />
ghi: write(ln)(, );<br />
* Một số hàm chuẩn khi đọc/ ghi tệp văn bản:<br />
- Hàm eof() trả về giá trị true nếu con trỏ tệp đang chỉ tới<br />
cuối tệp.<br />
- Hàm eoln() trả về giá trị true nếu con trỏ tệp đang chỉ tới<br />
cuối dòng.<br />
Đóng tệp: close();<br />
- Sơ đồ MQH:<br />
assign(, );<br />
rewrite();<br />
<br />
reset();<br />
<br />
write(ln)(, );<br />
<br />
read(ln)(, );<br />
<br />
close();<br />
Câu 4: Phương pháp lập trình có cấu trúc, chương trình có cấu trúc,<br />
chương trình con.<br />
Phân loại, nêu cấu trúc chương trình con. Phân loại hàm và thủ tục.<br />
- Lập trình có cấu trúc: khi lập trình để giải bài toán trên máy tính có thể<br />
phân chia chương trình (gọi là chương trình chính) thành các khối (môđun),<br />
mỗi khối bao gồm các lệnh giải một bài toán con nào đó. Mỗi khối lệnh sẽ<br />
được xây dựng thành một chương trình con. Sau đó, chương trình chính sẽ<br />
được xây dựng từ các chương trình con này. Chương trình con cũng có thể<br />
được xây dựng từ nhiều chương trình con khác.<br />
- Chương trình có cấu trúc được xây dựng như vậy.<br />
- Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có<br />
thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.<br />
<br />
- Phân loại: 2 loại<br />
Hàm (Function)<br />
là chương trình con thực hiện một<br />
số thao tác nào đó và trả về một<br />
giá trị qua tên của nó.<br />
VD: Sin(x), Cos(x), Sqrt(x)…<br />
Cấu trúc chương trình con:<br />
<br />
Thủ tục (Procedure)<br />
là chương trình con thực hiện một<br />
số thao tác nào đó nhưng không trả<br />
về một giá trị nào qua tên của nó.<br />
VD: Writeln, Readln, Delete, …<br />
<br />
<br />
[]<br />
<br />
· Phần đầu: cấu trúc chương trình con tương tự chương trình chính,<br />
nhưng nhất thiết phải có phần đầu để khai báo tên, nếu là Hàm thì phải<br />
có khai báo kiểu dữ liệu trả về.<br />
· Phần khai báo: có thể khai báo cho dữ liệu vào và ra, các hằng được<br />
sử dụng trong chương trình con.<br />
· Phần thân: là các dãy lệnh được thưc hiện trong chương trình con từ<br />
dữ liệu vào và được kết quả như mong muốn.<br />
Câu5:<br />
var f1, f2, f3, : text;<br />
x: integer;<br />
begin<br />
assign(f1, ‘songuyen.txt’);<br />
reset(f1);<br />
assign(f2, ‘chan.txt’);<br />
rewrite(f2);<br />
assign(f3, ‘le.txt’);<br />
rewrite(f3);<br />
while not eof(f1) do<br />
begin<br />
read(f1, x);<br />
if (x>0) and (x mod 2 = 0) then write(f2, x);<br />
if (x>0) and (x mod 2 = 1) then write(f3, x);<br />
end;<br />
close(f10; close(f2); close(f3);<br />
end.<br />
<br />
Câu 6:<br />
var s :string;<br />
f: text;<br />
i,k : byte;<br />
begin<br />
assign(f, ‘baitap.txt’);<br />
reset(f);<br />
while not eof(f) do<br />
begin<br />
read(f, s);<br />
k := length(s);<br />
for i := k downto 1 do write(s[i]);<br />
write ('Xau dao nguoc la : ', s);<br />
readln<br />
end;<br />
close(f)<br />
end.<br />
Câu 7:<br />
var i, k: byte;<br />
a, b: string;<br />
begin<br />
write(‘nhap xau: ‘);<br />
readln(a);<br />
k:= length(a);<br />
b:= ‘ ‘;<br />
for i:= 1 to k do<br />
if a[i]’ ‘ then b:=b+a[i];<br />
writeln(‘Ket qua: ‘,b);<br />
readln<br />
end.<br />
<br />