1. Trang chủ
  2. » Mẫu Slide

Tiết 34 bài tập và thực hành 5

19 430 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 895,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Output: Xuất ra kết quả có phải là xâu đối xứng Tiết 34.. BÀI TẬP VÀ THỰC HÀNH 5... BÀI TẬP VÀ THỰC HÀNH 5... Bài 2: Viết chương trình nhập từ bàn phím một xâu kí tự S và thông báo ra

Trang 2

Bài 1 :

Nhập 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 ?

 Input: Nhập vào xâu.

 Output: Xuất ra kết quả có phải là xâu đối xứng

Tiết 34 BÀI TẬP VÀ THỰC HÀNH 5

Trang 3

Ví dụ:

S:= ‘ I was saw I ’

1 2 3 4 5 6 7 8 9 10 11

11 10 9 8 7 6 5 4 3 2 1

Xâu đối xứng có tính chất ?

Đọc nó từ trái sang phải cũng thu được kết quả giống

như đọc từ phải sang trái (còn được gọi là xâu

Tiết 34 BÀI TẬP VÀ THỰC HÀNH 5

Bài 1 :

Trang 4

THUẬT TOÁN

Bước 1: Nhập Xâu a

Bước 2: Tính chiều dài xâu a

Bước 3: Tạo xâu P (xâu rỗng)

Bước 4: Với I = length(a) 1 thì

P:=P+a[i].

Bước 5: Nếu a=P thì a là xâu đối xứng, ngược lại

thì không phải là xâu đối xứng

Tiết 34 BÀI TẬP VÀ THỰC HÀNH 5

Bài 1 :

Trang 5

var i, x: byte;

a, p: string;

BEGIN

write(‘Nhap vao 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 la Palindrome’);

readln;

END.

{xac dinh do dai cua xau} {khoi tao xau rong}

{tạo xau dao nguoc}

Tiết 34 BÀI TẬP VÀ THỰC HÀNH 5

Trang 6

b) Hãy viết lại chương trình trên,trong đó không dùng biến xâu p

I

1 2 3 4 5 6 7 8 9 10 11

I

- So sánh các kí tự ở vị trí 111, 210,… nếu có kí tự

khác nhau thì không phải là xâu đối xứng Bởi vậy dùng

biến Logic để ghi nhận sự phát hiện này

- Chúng ta sẽ có bao nhiêu lần xét?

Chúng ta sẽ có n 2 lần xétdiv

Tiết 34 BÀI TẬP VÀ THỰC HÀNH 5

Bài 1 :

Trang 7

Program bai1_b;

Uses crt;

Var s: string;

x,i: byte;

KT: Boolean;

Begin

Clrscr;

Write(' Nhap xau s='); readln(s);

x:=length(s); KT:=true;

For i:=1 to (x div 2) do

begin

If s[i]<> s[x-i+1] then KT:=false;

end;

If KT then write('doi xung') else write('khong doi xung'); readln;

End.

Trang 8

Tiết 35 BÀI TẬP VÀ THỰC HÀNH 5

Trang 9

Bài 2: Viết chương trì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 )

- Input: Nhập vào xâu

- Output: Xuất ra số lần xuất hiện của các chữ cái tiếng Anh trong xâu vừa nhập

Tiết 35.BÀI TẬP VÀ THỰC HÀNH 5

Trang 10

Chúng ta sẽ có bao nhiêu chữ cái trong tiếng Anh?

Thuật toán

Bước 1: Nhập vào xâu S.

Bước 2: Tạo mảng A lưu trữ số lần xuất hiện của chữ cái tiếng Anh.

Bước 3: Khởi tạo cho từng phần tử mảng.

Bước 4: Nếu trong xâu S chữ cái A Z thì tăng giá trị của phần tử trong mảng.

Tiết 35 BÀI TẬP VÀ THỰC HÀNH 5

Từ chữ cái A  Z (26 chữ cái) ;

Trang 11

H O T H I K Y Y

Cho xâu S:

Tạo mảng A: Ghi nhận số lần xuất hiện của các kí tự trong

xâu S

1 2 3 4 5 6 7

Var A: array[

<chỉ số đầu> <chỉ số cuối>‘A’ ‘Z’ ] of byte;

A[‘H’]=2 có nghĩa là có 2 kí tự ‘H’ trong xâu S.

Tiết 35 BÀI TẬP VÀ THỰC HÀNH 5

Bài 2:

A H I J K … O … T Z

Trang 12

Program bai02;

Uses crt;

Var a: array['A' 'Z'] of byte;

s: …;

i: …;

c: …;

Begin

clrscr;

write('nhap xau :');readln(s);

for c:='A' to 'Z' do a[c]:=0;

for i:=1 to length(s) do

begin

…………

for c:='A' to 'Z' do

if a[c]<>0 then writeln( 'So lan xuat hien', c,': ',a[c]);

readln;

End.

Trang 13

Program bai02;

Uses crt;

Var a: array['A' 'Z'] of byte;

s: string;

i: byte;

c: char;

Begin

clrscr;

write('nhap xau :');

readln(s);

for c:='A' to 'Z' do a[c]:=0;

for i:=1 to length(s) do

begin

s[i]:=upcase(s[i]);

if (s[i]>='A') and (s[i]<='Z') then

a[s[i]]:=a[s[i]]+1;

end;

Trang 14

for c:='A' to 'Z' do

if a[c]<>0 then

writeln( 'So lan xuat hien', c,': ',a[c]); readln;

End.

Trang 15

Các thao tác xử lí xâu

1.Thủ tục delete(St, vt, n);

2.Thủ tục insert(St1, St2, vt);

3.Hàm length(St);

4.Hàm Pos(St1, St2);

Tiết 35 BÀI TẬP VÀ THỰC HÀNH 5

Trang 16

Bài 3: Nhập vào từ bàn phím một xâu Thay thế tất

cả các cụm kí tự ‘anh’ bằng cụm kí tự ‘em’.

Input: Nhập vào một xâu

Output: Xuất ra xâu kết quả đã thay thế cụm

từ ‘anh’ bằng cụm từ ‘em’

Tiết 35 BÀI TẬP VÀ THỰC HÀNH 5

Trang 17

Ví dụ : S:= ‘anh yeu truong anh’

 ‘em yeu truong em’

1 … 16 17 18

e m y e u t r u o n g e m

Bước 1: Tìm vị trí bắt đầu của xâu ‘anh’

Bước 2: Xóa xâu ‘anh’ vừa tìm thấy

Bước 3: Chèn xâu ‘em’ vào xâu S tại vị trí trước đây xuất hiện

xâu ‘anh’(lặp lại các bước trên cho đến khi không còn xâu ‘anh’) Bước 4: In ra xâu S

1 … 15 16

Tiết 35 BÀI TẬP VÀ THỰC HÀNH 5

Bài 3:

Trang 18

Uses crt;

Var s: string;

i: byte;

Begin

Clrscr;

Write('Nhap xau S:'); Readln(s); i:=Pos('anh',s);

While i<> 0 do

Delete(s,i,3);

Insert('em',s,i);

I:=Pos('anh',s);

writeln(S);

Trang 19

Những kiến thức cần nắm :

 Cách tạo một xâu mới từ xâu ban đầu.

 Đếm số lần xuất hiện của một chữ cái trong toàn

bộ văn bản.

 Tìm kiếm và thay thế một từ bằng một từ khác

trong toàn bộ văn bản.

Những kiến thức cần chuẩn bị:

 Kiến thức về kiểu dữ liệu có cấu trúc.

 Câu hỏi và bài tập trang 79 (SGK).

Tiết 35 BÀI TẬP VÀ THỰC HÀNH 5

Ngày đăng: 06/12/2016, 10:34

TỪ KHÓA LIÊN QUAN

w