Thao tác với dữ liệu văn bản: 2.Lời khuyên về báo cáo OUTPUT 3.Lời khuyên về báo cáo INPUT 8.Bài tập... • Dữ liệu kiểu số: Readlnbiến 1, biến 2,…,biến k; • Dữ liệu kiểu kí tự hay chuỗi:
Trang 1Nhóm 12:
Lớp: Sư Phạm Tin 1
Trang 2Học được một số chức năng quan trọng xử lý chuỗi và thủ tục
mà có sẵn trong các triển khai hiện đại của Pascal:
Trang 34 Đọc một dòng văn bản: EOLN
5 Đọc một tập tin của văn bản: EOF
6 Thao tác chuỗi
7 String Chức năng và Thủ tục
1 Thao tác với dữ liệu văn bản:
2.Lời khuyên về báo cáo OUTPUT
3.Lời khuyên về báo cáo INPUT
8.Bài tập
Trang 41 Thao tác với dữ liệu văn bản:
Các file INPUT tiêu chuẩn (bàn phím)
Các file OUTPUT tiêu chuẩn (màn hình)
1 Sử dụng lệnh READ, READLN: cần phải hiểu về báo cáo đầu vào và cách làm việc với các loại dữ liệu khác nhau.
• Dữ liệu kiểu số: Readln(biến 1, biến 2,…,biến k);
• Dữ liệu kiểu kí tự hay chuỗi: Readln(biến);
Lưu ý: Lệnh READLN cần phải dùng để kiểm tra kết quả của chương trình(Nếu không thì khi chạy chương trình sẽ trở về màn hình soạn thảo văn bản mà không hiển thị KQ).
2.Các loại đầu vào của hỗn hợp: nên sử dụng từng lệnh
READLN riêng biệt cho từng loại kiểu dữ liệu khác nhau, làm hạn chế lỗi trong chương trình
3 Dữ liêu nhập phải phù hợp với kiểu dữ liệu của biến
Biến kiểu Logic không nhập đươc từ bàn phím.
2.Lời khuyên về báo cáo INPUT
Trang 73.Lời khuyên về báo cáo OUTPUT
Muốn hiển thị nhiều dòng văn bản hoặc hiển thị kết
quả số trên riêng biệt, có thể sử dụng nhiều WRITELN báo cáo là số lượng các dòng cần thiết hoặc là sử dụng
mã ASCII 13 và 10.
In tất cả các kết quả sử dụng một WRITE hoặc
WRITELN.
Trang 8CR(carriage return):phím xuống dòng
LF( line feed): tín hiệu xuống dòng, thể hiện kết quả trên các dòng riêng biệt.
CR + LF cho tác dụng như là ENTER
Trang 9Nếu đang ở giá trị False có thể sử dụng vòng
lặp WHILE NOT EOLN DO(đưa con trỏ về
cuối dòng) để trở về giá trị True.
Trang 105 Đọc một tập tin của văn bản: EOF
Là một chức năng Boolean, kết thúc tập tin, được sử dụng để phát hiện cuối cùng của tập tin đánh dấu Khi con trỏ ở phần cuối của tập tin thì giá trị trả về là true, ngược lại là False
Khi sử dụng bàn phím cho đầu vào phần cuối tập tin sẽ hoàn thành nếu bạn nhấnCtrl + Z (ASCII 26)Chức
năng này rất hữu ích để đọc một vài dòng văn bản
(một tập tin)
Trang 11FOR I: = 1 TO LENGTH (Tên) DO
WRITE (Tên [I], LF);
có thể xây dựng một mảng của kiểu
STRING để lưu trữ các mục liên quan như tên
hay địa chỉ
có thể sắp xếp tên theo thứ tự bằng cách sử dụng
cùng một thuật toán mà bạn đã sử dụng trước để
sắp xếp các con số
Trang 12Pos (S,st)cho giá trị bằng 4
Pos(4S,st) cho giá trị bằng 0 vì không tìm thấy
Trang 13COPY( st, k ,m): coppy m kí tự của chuỗi st từ vị trí k.
Ví dụ:
St:=‘123456789’;St1 là một xâu kí tự khác.
St1:=copy(St,3,2) sẽ cho St1:=’34’
CONCAT( st1, st2… stn): là hàm ghép nối các xâu kí tự
st1,st2,…,stn thành 1 xâu kí tự như xâu đã viết, có thể dùng
Trang 14INSERT(S,St,k): chèn xâu kí tự S vào xâu St từ vị trí k.
St:=‘ngochan’
Insert(12,St,4);
St1:=‘ngoc12han’
Chú ý:
k> length(st) thì S được nối vào cuối của st
STR(x, st):biến đổi giá trị số nguyên (thực)thành một
dãy kí tự biểu diễn số và gán cho chuỗi St.
Ví dụ;
Str( 4752, st’) thì St:= ‘4752’;
x=34.95
Str(x:7:3,st) thì St:=‘ 34.950’
Trang 15Val(St,x,code) là hàm chuyển xây kí tự St sang x giá trị số,
code là số ngyên phát hiện lỗi
Ví dụ:
St:=‘123.56’
Val(St,x,k) thì cho x=123.56, code=0
Nếu St:=‘123A’(ko biểu diễn đúng kiểu số thực do có A)
Val (St,x,code) cho x không xác định và code=4
Chú ý: các thủ tục và hàm không được sử dụng đối với file dạng texteek,filePos,fileSize
Trang 161 Viết chương trình Pascal để đọc một dòng văn bản từ bàn phím
và thay đổi tất cả ký tự chữ thường thành chữ hoa
Bài tập:
2 Một trong những ứng dụng thú vị của xử lý văn bản được mã hóa
và giải mã, một chương trình đơn giản để mã hóa một chuỗi là viết
nó về phía sau Viết chương trình đọc dòng văn bản từ bàn phím và
hiển thị nó về phía sau
3 Viết một chương trình để đọc một dòng văn bản hoặc một tập tin văn bản chuyển từ chữ hoa thành chữ thường và ngược lại
4.Viết chương trình để mã hóa một chuỗi văn bản mà mỗi kí tự
được thay thế bằng kí tự kế tiếp nó Ngoài ra viết chương trình giải
mã chuyển đổi thành các văn bản ban đầu trước khi mã hóa
Trang 171.Program BT_1;
Var Ch:string[30]; I:integer; T: boolean;
Begin
Write(‘nhap mot chuoi ki tu:’); Readln(Ch);
For I:=1 to length(Ch) do
BeginT:=(ORD(Ch[I])>96) AND(ORD(Ch[I])<123);
If T then Ch [I]:=CHR(ORD(Ch[I])-32);
Write(Ch[I]);
End;
Readln;
Trang 18Writeln(‘chuoi duoc dao nguoc la:’);
For I:= length(Ch) down to 1 do
Writeln(Ch[I]);
Readln;
End
Trang 20Write(Ch[I]); Readln(Ch[I]);
END;
For I:=1 to length(Ch[I]) do
Begin Ch[I];= PRED(Ch[I]);
Writeln(‘chuoi giai ma la:’ Ch[I]); End;
Readln;