PDA

View Full Version : giúp mình bài tập về xâu ký tự



ksnguyen2010
13-01-2008, 14:29
Mình có bài tập này cần mọi người giúp đỡ chi tiết
Đb: viết chương trình thực nhập 1 xâu ký tự bất kỳ và thực hiện công việc sau:
1,Chuẩn hóa xâu này.
2,Đếm số từ trong xâu.
3,Đếm tổng các từ đối xứng.
4,Đếm tổng các từ đơn âm và đa âm.

Xin cảm ơn các bạn

mr_invincible
13-01-2008, 14:39
1. chuẩn hóa tức là làm những việc gì? Loại dấu cách ở đầu, cuối và 2 dấu cách liền nhau à?
2. Nếu xâu đã được xóa hết 2 dấu cách liền nhau và các kí tự không phải là chữ (hoặc số nếu cần) thì có thể làm như sau:
Cho i chạy từ 1 đến độ dài xâu, nếu i là dấu cách thì tăng số từ
3,4: Không hiểu đề, tổng các từ nghĩa là số lượng hay ghép các từ lại???

bluesky1612
13-01-2008, 15:29
Nghe từ "chuẩn hóa" thấy giống Ngôn ngữ hình thức Automata quá

ksnguyen2010
13-01-2008, 19:38
chuẩn hóa ở đây đúng như bạn nói. còn câu 3 và 4 thì có thể có các định nghĩa phụ như sau.
-Từ đối xứng thì không biết định nghĩa thế nào vì bản thân cái tên cũng đã định nghĩa rồi. đại loại như: tot,tat...
-Từ đơn âm là từ có 1 nguyên âm.các nguyên âm là:a,i,o,e,u.vd:anh,em..
-Từ đa âm là từ có nhiều hơn 2 nguyên âm. vd:nguyen,qua...
các bạn giúp mình với. nếu có thời gian thì cho mình luôn code nha.

m2mpro
13-01-2008, 20:21
Đối xứng thì chỉ cần tạo xâu mới rồi so sánh với xâu cũ thôi.


For i:=1 to n do
s[i]:y[n-i+1]
If s=y then dx:=true else dx:=false;
Từ đơn âm thì xét thành phần của từ có 1 nguyên âm hay không.


d:=0;
donam:=0;
daam:=0;
nguyenam:= ['a','i','o','e','u'];
For i:=1 to length(từ) do
If s[i] in nguyenam then d:=d+1; {* biến đếm số nguyên âm *}
If d=1 then donam:=donam+1 else daam:=daam+1; {* biến đêm đơn âm và đa âm *}

ksnguyen2010
14-01-2008, 22:30
cảm ơn bạn rất nhiều

mr_invincible
15-01-2008, 19:40
Đối xứng mà tạo xâu mới thì chắc hơi thừa. Chỉ cần làm như sau: xâu cần kiểm tra: s.
For i:=1 to length(s) do
If s[i]<>s[length(s)-i+1] then begin {Thông báo xâu không đối xứng}; Dừng chương trình con hoặc chương trình chính nếu đã thực hiện xong.
{Thông báo là xâu đối xứng}
Chú ý phải dừng chương trình chính hoặc chương trình con nếu không thì lúc nào chương trình cũng in ra thông báo xâu đối xứng. Nếu không muốn làm vậy thì có lẽ nên thêm một biến cho biết xâu có đối xứng hay không