Tin học 11 - Chương 4 - Bài 11:Kiểu mảng3/19/2018
WELCOME TO MY CLASS!
Trường THPT Lý Thường Kiệt
Môn: Tin học 11
_______________________________
teacher:NguyễnNgọcPhú
mail:tinhocnhe@gmail.com
câuhỏi:
http://link.fpo.vn/giaosinh
KHÔNG ĐIỆN THOẠI
KHÔNG TÁM CHUYỆN
KHÔNG NÓI LEO
2Tiết
Thầy có ý định muốn
viết một chương trình
nhập vào tên học sinh
và so sánh độ dài của
chúng.
Ví dụ nhập tên sau:
L E T H I H U Y E N T O N N U B E A N H
Khai báo biến : kiểu char
Khai báo một mảng :
A: array[1..50] of char;
Baøi 12: Kieåu xaâu
1. Khaùi nieäm xaâu
2. Khai baùo bieán xaâu
3. Caùc thaotaùc xöû lí xaâu
4. Baøøi taäp
 Xâu là dãy các kí tự trong bộ mã ASCII
T I N H O CA
1 2 3 4 5 6 7
Trong đó:
 Khi tham chiếu đến phần tử thứ i của xâu ta
viết :
 Tên xâu:
 Mỗi kí tự gọi
là
Ví dụ:
 Độ dài của xâu (Số kí tự trong xâu):
H
‘H’
A;
mỗi phần tử của xâu
7;
A[i]
Ví dụ: A[5]=
1. Khái niệm:
- Kí tự đầu tiên bên trái của xâu được đánh chỉ số là 1.
* Các quy tắc hay cách thức xác định biến xâu trong ngôn ngữ
lập trình:
- Cách khai báo biến xâu.
- Tên biến xâu.
- Số lượng phần tử của xâu.
- Cách tham chiếu tới phần tử của xâu.
Tên biến xâu[ chỉ số tham chiếu ]
- Các phép toán thao tác với xâu.
1. Moätsoá khaùi nieäm
VÝ dô: H·y cho biÕt ®é dµi cña c¸c x©u sau:
 Ñoä daøi laø 8S1 = ‘XUAT SAC’
S2 = ‘THPT PHU HUNG’
S3 = ‘ ’
S4 = ‘’
 Ñoä daøi laø 13
 Ñoä daøi laø 1 (khoaûng traéng)
 Ñoä daøi laø 0 (Xaâu roãng)
2. Khai baùobieán xaâu
Var <Teânbieán> : String[ñoä daøi lôùn nhaátcuûa
xaâu];-Trongñoù:
Teân cuûabieán xaâu
- Cuù
phaùp:
Töø khoùa khaibaùo bieán xaâu
<Teânbieán> :
String :
Var hoten: string[30];
Tên biến Độ dài lớn nhất là 30
- Nếu không khai báo độ dài lớn nhất của xâu thì xâu sẽ nhận giá trị ngầm định là 255. Xâu ký tự trong bộ
nhớ chiếm số byte bằng số ký tự cực đại được khai báo cộng với byte đầu tiên chứa số ký tự hiện có của
xâu.
- Ngoài ra có các kiểu khai báo khác của xâu như:
+ Shortstring: Chính là String
+ longstring: là mảng ký tự có kiểu char. Thông thường kiểu char có kích thước 16 bit
nên mảng có kích thước tối đa 16 bit = 65535 ký tự
+ ansistring (chỉ có trong free pascal)có kích thước gần 2GB = 230 B
Lưu ý
2. Khai baùobieán xaâu
Var<teânbieán>:String[ñoä daøilôùnnhaátcuûa
xaâu];-VD1:Khai baùo bieánñeå löu hoïteâncuûa moätngöôøi
-Cuù phaùp:
VarHoten:String[50];
-VD2:Khaibaùobieánñeå löu ñòa chæ cuûa moätngöôøi
Vardiachi:String;
*Chuùyù: Khikhaibaùo bieán neáu khoângñöa ñoä daøilôùn nhaátvaøo thì ñoädaøimaëc
ñònh laø255
Lưu ý: Trong khi soạn thảo một chương trình, khi viết một xâu kí tự, ta phải viết xâu kí tự đó
giữa hai dấu nháy đơn. Nhưng khi chạy chương trình, để nhập giá trị của một xâu, ta chỉ cần
gõ các kí tự thuộc xâu đó.
Chọn khai báo đúng
Var Ten:String[30];
Var TieuSu:String[300];
Var NgaySinh:String[10];
SVar GioiTinh:String[0];
Đ
S
Đ
2. Khai baùobieán xaâu
Nhaäp Vaø xuaátdöõ lieäu xaâu:
-Nhaäp:
readln(<teânbieán xaâu>);
- Xuaát:
Write(<teân bieán xaâu>);
VD: VCT nhaäpvaø xuaátra hoï vaø teâncuûa 1 hoïc sinh
program VD;
uses crt;
Var S: String[50];
begin
write('Nhap vao Ho Va Ten cua HS: ');
readln(S);
write('Ho Va Ten vua nhap la:',S);
readln
end.
2.1) Nhập xuất dữ liệu cho biến xâu
Khi viết nhập/ xuất dữ liệu cho
biến xâu có gì khác so với biến
mảng các kí tự?
- Viết một lệnh nhập nguyên cho cả xâu.
- Viết lệnh gọn hơn, Chương trình gọn.
Ta có thể sử dụng lệnh gán để nhập giá trị
cho biến xâu:
Tên_biến_xâu := hằng_xâuVí dụ: St : = ‘ HA NOI’
?
2.2) Cấu trúc chung khi tham chiếu
 Tên biến[chỉ số]
Ví dụ: st[2]
Các em hãy tìm thêm vài ví dụ?
?
3.1) Biểu thức xâu:
 Là biểu thức trong đó các toán hạng là các biến xâu, biến kí
tự
- Söû duïng kíhieäu+ ñeå gheùp nhieàuxaâu thaønh
moät xaâu
a. Pheùpgheùp
xaâu
-Víduï: S:=‘Viet’+‘Nam’
S:=‘VietNam’
Pheùp gheùpxaâu duøng ñeå laøm gì?
Vaø söû duïngkíhieäu naøo ñeå gheùp
caùcxaâu laïi vôùi nhau?
S1:= ‘PHU ’ + ‘HUNG’
S1:= ‘PHU HUNG’
Em h·y cho biÕt kÕt qu¶ cña c¸c phÐp ghÐp x©u
sau:
Nhãm 1: st:=‘Ha’ +‘Noi’;
Nhãm 2: st:=‘Ha ’+‘Noi’;
Nhãm 3: st:=‘ ’+ ‘Ha Noi’;
Nhãm 4: st:=‘Ha Noi’ + ‘Viet’+ ‘Nam’;
Nhãm 5: st:=‘Ho’+ ‘ Guom’;
Nhãm 6: st:=‘Ho Guom’ + ‘ ’;
st:= ‘HaNoi’;
st:= ‘Ha Noi’;
st:= ‘ Ha Noi’;
st:= ‘Ha NoiVietNam’;
st:=‘Ho Guom’;
St:=‘Ho Guom ’;
- Caùcpheùp so saùnhxaâu:
b. Pheùpso saùnhxaâu
- Quy taéc:
+ XaâuA=B neáu chuùng gioáng heät nhau
+ Xaâu A>B neáu:
 Kítöï ñaàutieân khaùcnhaugiöõa chuùng ôû
xaâuA coù maõ ASCII lôùn hôn ôû xaâuB
 ‘Ha Noi’ ‘Ha Nam’
 Xaâu Blaø ñoaïn ñaàu cuûaxaâu A
 ‘lop hoc’ > ‘lop’
>, >=, <, <=, =, <>
Treân xaâu coù theåthöïc hieän
nhöõng pheùp so saùnh naøo?
>
- Xâu rỗng là xâu ‘’
Haõy cho bieát keát quaû cuûa caùc pheùp toaùn treân xaâu sau:
1. ‘anh’ >’em’
2. ‘hoa’ <> ’bong’
3. ‘123’=’321’
4. ‘tin’=’tin’
5. ‘adc’< ‘b’
True
False
True
True
False
BÀI TẬP
Đ (80>68)
S (53>52)
S (32 >0)
S (84>66)
‘Hai Phong’ > ’Hai Duong’
‘Lop 11B5’ < ’Lop 11B4 cua toi’
‘ ’ = ’’
‘Thoa’ < ’Bui Thi Thoa’
Chọn đáp án đúng.
C. C¸c thñ tôc vµ hµm chuÈn xö lÝ
x©u
ChÌn x©u S1 vµo x©u
S2 b¾t ®Çu tõ vÞ
trÝ vt.
Xo¸ n kÝ tù cña x©u
S b¾t ®Çu tõ vÞ trÝ
vt.
1. Delete(S,vt,n)
S1:=‘1’ S2:=‘Hinh .2’
Insert(s1,s2,6)

2. Insert(S1,S2,vt)
S: = ‘Song Hong’
Delete(S,1,5)

VÝ dôý nghÜaThñ tôc
‘Hong’
’Hinh 1.2’
Quan s¸t chư¬ng tr×nh ®Ó dù tÝnh kÕt qu¶.
Nhóm 1: Var st:string;
Begin
st:=‘HaNoi’;
Delete(st,3,2);
Write(st); Readln;
End.
Nhóm 2: Var st1,st2:string;
Begin
st2:=‘HaNoi’;
st1:=‘ ’;
Insert(st1,st2,3);
Write(st); Readln;
End.
Nhóm 3: Var st:string;
Begin
st:=‘Ha Noi’;
Write(length(st)); Readln;
End.
Nhóm 4: Var ch:char;
Begin
ch:=‘h’;
Write(Upcase(ch));
Readln;
End.
Nhóm 5: Var vt:byte;
Begin
vt:=pos(‘cd’,’abcdefcd’);
Write(vt);
Readln;
End.
Nhóm 6: Var st:string;
Begin
st:=copy(‘bai tap’,3,4);
Write(st);
Readln;
End.
Gi¸ trÞ
s1
Gi¸ trÞ s2 Thao t¸c KÕt qu¶
‘cua Me’ ‘Em se la mua
xuan’
Insert(...,s 2
...);
‘Em se la mua
xuan cua Me’
... ‘ABGHI’ Insert(...,s2,...); ‘ABCDEGHI’
§iÒn vµo chç trèng (...) trong b¶ng sau:
Gi¸ trÞ cña st Thao t¸c KÕt qu¶
‘abcdef’ Delete(st,...,...)
;
‘abef’
‘Xuan da ve tren cao nguyen’ Delete(st,5,5); ‘................................
..’
* Hàm LENGTH
Cấu trúc chung:
 Cho giá trị là độ dài xâu S
LENGTH(S)
Ý nghĩa của LENGTH là gì?
Ý nghĩa của S là gì?
?
 LENGTH là tên hàm
 S là một biểu thức xâu ký tự
Ý nghĩa của LENGTH là gì?
Ý nghĩa của S là gì?
?
 LENGTH là tên hàm
 S là một biểu thức xâu ký tự
Ví dụ:
Giá trị s Biểu thức Kết quả
‘500 ki tu’ Length(s);
‘Lop 11A3’ Length(s);
‘Phu Thanh’ Length(s);
9
8
9
 Hàm Length cho số lượng kí tự của xâu S
Chức năng của hàm
Length(S) là gì?
?
Chương trình
Viết chương trình nhập
vào một xâu, in ra màn
hình số kí tự ‘a’ có trong
xâu
Chương trình
Ứng dụng
* Hàm UPCASE:
Cấu trúc chung:
UPCASE(ch)
Chức năng của hàm
UPCASE(ch) là gì?
?
 Cho giá trị là chữ cái in hoa của ch
Chương trình
Ví dụ:
Giá trị ch Biểu thức Kết quả
‘d’ Upcase(ch)
‘E’ Upcase(ch)
Viết chương trình nhập
vào một xâu, in ra màn
hình xây đó dạng in hoa
Ứng dụng
‘D’
‘E’
* Hàm POS
Cấu trúc chung:
POS(S1,S2)
Chức năng của hàm
POS(S1,S2) là gì?
?
 Cho vị trí xuất hiện đầu tiên của xâu s1
trong xâu s2.
Chương trình
Ví dụ:
Viết chương trình nhập vào
1 xâu S. Xét xem trong xâu
có dấu cách nhau không?
Ứng dụng
Giá trị s1 Biểu thức Kết quả
‘abcdef ’ Pos(‘cd’,s2)
‘abcdef’ Pos(‘k’,s2)
Chương trình1
3
0
Cấu trúc chung:
Chức năng của hàm
COPY(S.,vt,N) là gì?
?
* Hàm COPY
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
Chương trình
Ví dụ:
Thực hiện chương trình
từ VD trên
Ứng dụng
Giá trị s Biểu thức Kết quả
‘ bai hoc thu 9’ Copy(s,9,5); ‘thu 9’
Thể lệ :
Dành cho cả 4 nhóm, gồm 5 câu hỏi.
Mỗi câu trả lời đúng được 10 điểm
trong thời gian 5 giây. Trả lời sai không
có điểm; (Bằng hình thức giơ bảng đáp
án A, B, C, D ).
0503020100
Câu 1: Trong ngôn ngữ lập trình Pascal, thủ tục
Delete(a,b,c) thực hiện công việc gì trong các công viêc
sau?
A. Xóa trong xâu a, tại vị trí b, xóa đi c kí tự
B. Xóa trong xâu a, tại vị trí c, xóa đi b kí tự
C. Xóa trong xâu c, tại vị trí b, xóa đi a kí tự
D. Xóa trong xâu c, tại vị trí a, xóa đi b kí tự
1009080706050403020100
Câu 2:
Cho S:= ‘Tin hoc’; Tham chiếu tới
phần tử thứ 4 của S ta được kết quả?
A. S[4] = ‘hoc’
B. S[4] = ‘’
C. S[4] = ‘h’
D. S[4] = ‘ ‘
1009080706050403020100
Câu 3:
Cú pháp khai báo tổng quát, đầy đủ
của dữ liệu kiểu xâu là:
A. Var <tên biến> of String;
B. Var <tên biến>: String[độ dài lớn nhất của xâu];
C. Var < tên biến> String[độ dài lớn nhất của xâu];
D. Var < tên biến> of String[độ dài lớn nhất của xâu];
0503020100
Câu 4:
Tìm vị trí xuất hiện đầu tiên
của xâu ‘hoa’ trong xâu S ta viết
A. I:= Pos(‘hoa’,S);
B. S1:= ‘hoa’; I:= Pos(S1,‘hoa’);
C. I:=Pos(S,‘hoa’)
D. I:=Pos(‘hoa’,‘hoa’)
1009080706050403020100
Câu 5: Trong ngôn ngữ lập trình
pascal,hai xâu được so sánh dựa trên?
A. Độ dài tối đa của hai xâu;
B. Mã của từng kí tự trong các xâu lần lượt
từ trái sang phải;
C. Độ dài thực sự của hai xâu;
D. Số lượng kí tự khác nhau trong xâu;
Em hãy chỉ ra kết quả khi thực hiện các thao tác sau:
Giá trị st Thao tác Kết quả
a) ‘Dat Nuoc’ Delete(st, 5, 4)
b) ‘Hoc ki 2’ Copy(st, 4, 5)
c) ‘Hoc tot’ Length(st)
d) ‘Nang dong’ Pos(‘Nang’, st)
‘Dat ’
‘ki 2’
7
1
Bài tập
Viết chương trình nhập vào một xâu S, in ra màn hình xâu đó
ở dạng in hoa.
CHƯƠNG TRÌNH:
Program inhoa;
Uses CRT;
Var S: string; i: integer;
Begin
Clrscr;
Write(‘Nhap vao xau S: ’); readln(S);
For i:= 1 To length(S) Do upcase(S[i]);
Write(‘Xau da chuyen:’,S);
Readln;
End.
Viết chương trình nhập họ tên của 2 người vào 2 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 sau.
Bài tập
Program bai2;
Uses CRT;
Var a,b: string;
Begin
Clrscr;
Write(‘Nhap ho ten nguoi thu nhat ’); readln(a);
Write(‘Nhap ho ten nguoi thu hai ’); readln(b);
Readln;
End.
IF Length(a)>Length(b) Then Write(a)
Else Write(b);
Bai 12 kx
Bai 12 kx
Bai 12 kx
Bai 12 kx
Bai 12 kx

Bai 12 kx

  • 1.
    Tin học 11- Chương 4 - Bài 11:Kiểu mảng3/19/2018 WELCOME TO MY CLASS! Trường THPT Lý Thường Kiệt Môn: Tin học 11 _______________________________ teacher:NguyễnNgọcPhú mail:tinhocnhe@gmail.com câuhỏi: http://link.fpo.vn/giaosinh
  • 2.
    KHÔNG ĐIỆN THOẠI KHÔNGTÁM CHUYỆN KHÔNG NÓI LEO
  • 3.
  • 4.
    Thầy có ýđịnh muốn viết một chương trình nhập vào tên học sinh và so sánh độ dài của chúng.
  • 5.
    Ví dụ nhậptên sau: L E T H I H U Y E N T O N N U B E A N H Khai báo biến : kiểu char Khai báo một mảng : A: array[1..50] of char;
  • 6.
    Baøi 12: Kieåuxaâu 1. Khaùi nieäm xaâu 2. Khai baùo bieán xaâu 3. Caùc thaotaùc xöû lí xaâu 4. Baøøi taäp
  • 7.
     Xâu làdãy các kí tự trong bộ mã ASCII T I N H O CA 1 2 3 4 5 6 7 Trong đó:  Khi tham chiếu đến phần tử thứ i của xâu ta viết :  Tên xâu:  Mỗi kí tự gọi là Ví dụ:  Độ dài của xâu (Số kí tự trong xâu): H ‘H’ A; mỗi phần tử của xâu 7; A[i] Ví dụ: A[5]= 1. Khái niệm: - Kí tự đầu tiên bên trái của xâu được đánh chỉ số là 1.
  • 8.
    * Các quytắc hay cách thức xác định biến xâu trong ngôn ngữ lập trình: - Cách khai báo biến xâu. - Tên biến xâu. - Số lượng phần tử của xâu. - Cách tham chiếu tới phần tử của xâu. Tên biến xâu[ chỉ số tham chiếu ] - Các phép toán thao tác với xâu.
  • 9.
    1. Moätsoá khaùinieäm VÝ dô: H·y cho biÕt ®é dµi cña c¸c x©u sau:  Ñoä daøi laø 8S1 = ‘XUAT SAC’ S2 = ‘THPT PHU HUNG’ S3 = ‘ ’ S4 = ‘’  Ñoä daøi laø 13  Ñoä daøi laø 1 (khoaûng traéng)  Ñoä daøi laø 0 (Xaâu roãng)
  • 10.
    2. Khai baùobieánxaâu Var <Teânbieán> : String[ñoä daøi lôùn nhaátcuûa xaâu];-Trongñoù: Teân cuûabieán xaâu - Cuù phaùp: Töø khoùa khaibaùo bieán xaâu <Teânbieán> : String : Var hoten: string[30]; Tên biến Độ dài lớn nhất là 30
  • 11.
    - Nếu khôngkhai báo độ dài lớn nhất của xâu thì xâu sẽ nhận giá trị ngầm định là 255. Xâu ký tự trong bộ nhớ chiếm số byte bằng số ký tự cực đại được khai báo cộng với byte đầu tiên chứa số ký tự hiện có của xâu. - Ngoài ra có các kiểu khai báo khác của xâu như: + Shortstring: Chính là String + longstring: là mảng ký tự có kiểu char. Thông thường kiểu char có kích thước 16 bit nên mảng có kích thước tối đa 16 bit = 65535 ký tự + ansistring (chỉ có trong free pascal)có kích thước gần 2GB = 230 B Lưu ý
  • 12.
    2. Khai baùobieánxaâu Var<teânbieán>:String[ñoä daøilôùnnhaátcuûa xaâu];-VD1:Khai baùo bieánñeå löu hoïteâncuûa moätngöôøi -Cuù phaùp: VarHoten:String[50]; -VD2:Khaibaùobieánñeå löu ñòa chæ cuûa moätngöôøi Vardiachi:String; *Chuùyù: Khikhaibaùo bieán neáu khoângñöa ñoä daøilôùn nhaátvaøo thì ñoädaøimaëc ñònh laø255 Lưu ý: Trong khi soạn thảo một chương trình, khi viết một xâu kí tự, ta phải viết xâu kí tự đó giữa hai dấu nháy đơn. Nhưng khi chạy chương trình, để nhập giá trị của một xâu, ta chỉ cần gõ các kí tự thuộc xâu đó.
  • 13.
    Chọn khai báođúng Var Ten:String[30]; Var TieuSu:String[300]; Var NgaySinh:String[10]; SVar GioiTinh:String[0]; Đ S Đ
  • 14.
    2. Khai baùobieánxaâu Nhaäp Vaø xuaátdöõ lieäu xaâu: -Nhaäp: readln(<teânbieán xaâu>); - Xuaát: Write(<teân bieán xaâu>); VD: VCT nhaäpvaø xuaátra hoï vaø teâncuûa 1 hoïc sinh program VD; uses crt; Var S: String[50]; begin write('Nhap vao Ho Va Ten cua HS: '); readln(S); write('Ho Va Ten vua nhap la:',S); readln end. 2.1) Nhập xuất dữ liệu cho biến xâu
  • 15.
    Khi viết nhập/xuất dữ liệu cho biến xâu có gì khác so với biến mảng các kí tự? - Viết một lệnh nhập nguyên cho cả xâu. - Viết lệnh gọn hơn, Chương trình gọn. Ta có thể sử dụng lệnh gán để nhập giá trị cho biến xâu: Tên_biến_xâu := hằng_xâuVí dụ: St : = ‘ HA NOI’ ?
  • 16.
    2.2) Cấu trúcchung khi tham chiếu  Tên biến[chỉ số] Ví dụ: st[2] Các em hãy tìm thêm vài ví dụ? ?
  • 17.
    3.1) Biểu thứcxâu:  Là biểu thức trong đó các toán hạng là các biến xâu, biến kí tự - Söû duïng kíhieäu+ ñeå gheùp nhieàuxaâu thaønh moät xaâu a. Pheùpgheùp xaâu -Víduï: S:=‘Viet’+‘Nam’ S:=‘VietNam’ Pheùp gheùpxaâu duøng ñeå laøm gì? Vaø söû duïngkíhieäu naøo ñeå gheùp caùcxaâu laïi vôùi nhau? S1:= ‘PHU ’ + ‘HUNG’ S1:= ‘PHU HUNG’
  • 18.
    Em h·y chobiÕt kÕt qu¶ cña c¸c phÐp ghÐp x©u sau: Nhãm 1: st:=‘Ha’ +‘Noi’; Nhãm 2: st:=‘Ha ’+‘Noi’; Nhãm 3: st:=‘ ’+ ‘Ha Noi’; Nhãm 4: st:=‘Ha Noi’ + ‘Viet’+ ‘Nam’; Nhãm 5: st:=‘Ho’+ ‘ Guom’; Nhãm 6: st:=‘Ho Guom’ + ‘ ’; st:= ‘HaNoi’; st:= ‘Ha Noi’; st:= ‘ Ha Noi’; st:= ‘Ha NoiVietNam’; st:=‘Ho Guom’; St:=‘Ho Guom ’;
  • 19.
    - Caùcpheùp sosaùnhxaâu: b. Pheùpso saùnhxaâu - Quy taéc: + XaâuA=B neáu chuùng gioáng heät nhau + Xaâu A>B neáu:  Kítöï ñaàutieân khaùcnhaugiöõa chuùng ôû xaâuA coù maõ ASCII lôùn hôn ôû xaâuB  ‘Ha Noi’ ‘Ha Nam’  Xaâu Blaø ñoaïn ñaàu cuûaxaâu A  ‘lop hoc’ > ‘lop’ >, >=, <, <=, =, <> Treân xaâu coù theåthöïc hieän nhöõng pheùp so saùnh naøo? > - Xâu rỗng là xâu ‘’
  • 20.
    Haõy cho bieátkeát quaû cuûa caùc pheùp toaùn treân xaâu sau: 1. ‘anh’ >’em’ 2. ‘hoa’ <> ’bong’ 3. ‘123’=’321’ 4. ‘tin’=’tin’ 5. ‘adc’< ‘b’ True False True True False
  • 21.
    BÀI TẬP Đ (80>68) S(53>52) S (32 >0) S (84>66) ‘Hai Phong’ > ’Hai Duong’ ‘Lop 11B5’ < ’Lop 11B4 cua toi’ ‘ ’ = ’’ ‘Thoa’ < ’Bui Thi Thoa’ Chọn đáp án đúng.
  • 22.
    C. C¸c thñtôc vµ hµm chuÈn xö lÝ x©u ChÌn x©u S1 vµo x©u S2 b¾t ®Çu tõ vÞ trÝ vt. Xo¸ n kÝ tù cña x©u S b¾t ®Çu tõ vÞ trÝ vt. 1. Delete(S,vt,n) S1:=‘1’ S2:=‘Hinh .2’ Insert(s1,s2,6)  2. Insert(S1,S2,vt) S: = ‘Song Hong’ Delete(S,1,5)  VÝ dôý nghÜaThñ tôc ‘Hong’ ’Hinh 1.2’
  • 23.
    Quan s¸t chư¬ngtr×nh ®Ó dù tÝnh kÕt qu¶. Nhóm 1: Var st:string; Begin st:=‘HaNoi’; Delete(st,3,2); Write(st); Readln; End. Nhóm 2: Var st1,st2:string; Begin st2:=‘HaNoi’; st1:=‘ ’; Insert(st1,st2,3); Write(st); Readln; End. Nhóm 3: Var st:string; Begin st:=‘Ha Noi’; Write(length(st)); Readln; End. Nhóm 4: Var ch:char; Begin ch:=‘h’; Write(Upcase(ch)); Readln; End. Nhóm 5: Var vt:byte; Begin vt:=pos(‘cd’,’abcdefcd’); Write(vt); Readln; End. Nhóm 6: Var st:string; Begin st:=copy(‘bai tap’,3,4); Write(st); Readln; End.
  • 24.
    Gi¸ trÞ s1 Gi¸ trÞs2 Thao t¸c KÕt qu¶ ‘cua Me’ ‘Em se la mua xuan’ Insert(...,s 2 ...); ‘Em se la mua xuan cua Me’ ... ‘ABGHI’ Insert(...,s2,...); ‘ABCDEGHI’ §iÒn vµo chç trèng (...) trong b¶ng sau: Gi¸ trÞ cña st Thao t¸c KÕt qu¶ ‘abcdef’ Delete(st,...,...) ; ‘abef’ ‘Xuan da ve tren cao nguyen’ Delete(st,5,5); ‘................................ ..’
  • 25.
    * Hàm LENGTH Cấutrúc chung:  Cho giá trị là độ dài xâu S LENGTH(S) Ý nghĩa của LENGTH là gì? Ý nghĩa của S là gì? ?  LENGTH là tên hàm  S là một biểu thức xâu ký tự
  • 26.
    Ý nghĩa củaLENGTH là gì? Ý nghĩa của S là gì? ?  LENGTH là tên hàm  S là một biểu thức xâu ký tự
  • 27.
    Ví dụ: Giá trịs Biểu thức Kết quả ‘500 ki tu’ Length(s); ‘Lop 11A3’ Length(s); ‘Phu Thanh’ Length(s); 9 8 9
  • 28.
     Hàm Lengthcho số lượng kí tự của xâu S Chức năng của hàm Length(S) là gì? ? Chương trình
  • 29.
    Viết chương trìnhnhập vào một xâu, in ra màn hình số kí tự ‘a’ có trong xâu Chương trình Ứng dụng
  • 30.
    * Hàm UPCASE: Cấutrúc chung: UPCASE(ch) Chức năng của hàm UPCASE(ch) là gì? ?  Cho giá trị là chữ cái in hoa của ch
  • 31.
    Chương trình Ví dụ: Giátrị ch Biểu thức Kết quả ‘d’ Upcase(ch) ‘E’ Upcase(ch) Viết chương trình nhập vào một xâu, in ra màn hình xây đó dạng in hoa Ứng dụng ‘D’ ‘E’
  • 32.
    * Hàm POS Cấutrúc chung: POS(S1,S2) Chức năng của hàm POS(S1,S2) là gì? ?  Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.
  • 33.
    Chương trình Ví dụ: Viếtchương trình nhập vào 1 xâu S. Xét xem trong xâu có dấu cách nhau không? Ứng dụng Giá trị s1 Biểu thức Kết quả ‘abcdef ’ Pos(‘cd’,s2) ‘abcdef’ Pos(‘k’,s2) Chương trình1 3 0
  • 34.
    Cấu trúc chung: Chứcnăng của hàm COPY(S.,vt,N) là gì? ? * Hàm COPY 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
  • 35.
    Chương trình Ví dụ: Thựchiện chương trình từ VD trên Ứng dụng Giá trị s Biểu thức Kết quả ‘ bai hoc thu 9’ Copy(s,9,5); ‘thu 9’
  • 36.
    Thể lệ : Dànhcho cả 4 nhóm, gồm 5 câu hỏi. Mỗi câu trả lời đúng được 10 điểm trong thời gian 5 giây. Trả lời sai không có điểm; (Bằng hình thức giơ bảng đáp án A, B, C, D ).
  • 37.
    0503020100 Câu 1: Trongngôn ngữ lập trình Pascal, thủ tục Delete(a,b,c) thực hiện công việc gì trong các công viêc sau? A. Xóa trong xâu a, tại vị trí b, xóa đi c kí tự B. Xóa trong xâu a, tại vị trí c, xóa đi b kí tự C. Xóa trong xâu c, tại vị trí b, xóa đi a kí tự D. Xóa trong xâu c, tại vị trí a, xóa đi b kí tự
  • 38.
    1009080706050403020100 Câu 2: Cho S:=‘Tin hoc’; Tham chiếu tới phần tử thứ 4 của S ta được kết quả? A. S[4] = ‘hoc’ B. S[4] = ‘’ C. S[4] = ‘h’ D. S[4] = ‘ ‘
  • 39.
    1009080706050403020100 Câu 3: Cú phápkhai báo tổng quát, đầy đủ của dữ liệu kiểu xâu là: A. Var <tên biến> of String; B. Var <tên biến>: String[độ dài lớn nhất của xâu]; C. Var < tên biến> String[độ dài lớn nhất của xâu]; D. Var < tên biến> of String[độ dài lớn nhất của xâu];
  • 40.
    0503020100 Câu 4: Tìm vịtrí xuất hiện đầu tiên của xâu ‘hoa’ trong xâu S ta viết A. I:= Pos(‘hoa’,S); B. S1:= ‘hoa’; I:= Pos(S1,‘hoa’); C. I:=Pos(S,‘hoa’) D. I:=Pos(‘hoa’,‘hoa’)
  • 41.
    1009080706050403020100 Câu 5: Trongngôn ngữ lập trình pascal,hai xâu được so sánh dựa trên? A. Độ dài tối đa của hai xâu; B. Mã của từng kí tự trong các xâu lần lượt từ trái sang phải; C. Độ dài thực sự của hai xâu; D. Số lượng kí tự khác nhau trong xâu;
  • 42.
    Em hãy chỉra kết quả khi thực hiện các thao tác sau: Giá trị st Thao tác Kết quả a) ‘Dat Nuoc’ Delete(st, 5, 4) b) ‘Hoc ki 2’ Copy(st, 4, 5) c) ‘Hoc tot’ Length(st) d) ‘Nang dong’ Pos(‘Nang’, st) ‘Dat ’ ‘ki 2’ 7 1
  • 43.
    Bài tập Viết chươngtrình nhập vào một xâu S, in ra màn hình xâu đó ở dạng in hoa.
  • 44.
    CHƯƠNG TRÌNH: Program inhoa; UsesCRT; Var S: string; i: integer; Begin Clrscr; Write(‘Nhap vao xau S: ’); readln(S); For i:= 1 To length(S) Do upcase(S[i]); Write(‘Xau da chuyen:’,S); Readln; End.
  • 45.
    Viết chương trìnhnhập họ tên của 2 người vào 2 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 sau. Bài tập Program bai2; Uses CRT; Var a,b: string; Begin Clrscr; Write(‘Nhap ho ten nguoi thu nhat ’); readln(a); Write(‘Nhap ho ten nguoi thu hai ’); readln(b); Readln; End. IF Length(a)>Length(b) Then Write(a) Else Write(b);