a) khi chạy chương trình, nhập vào xâu: " vui ma hoc hoc ma vui" thì chương trình đưa ra thông báo: "xau khong la palindrome", còn khi nhập vào xâu "abcddcba" thì chương trình chỉ dẫn thông báo: "Xâu là palindroine?".

Bạn đang xem: Bài thực hành số 5 tin học 11

Kết quả của chương trình đến như hình 52 dưới đây :

*

b) Để viết lại công tác dùng trở nên xâu thì ta đề nghị khai thác khả năng tham chiếu mang đến từng kí tự trong xâu thông qua vị trí của xâu này. Như vậy, không quan trọng phải tạo một xâu new để cuối cùng so sánh nhị xâu, mà chỉ việc sánh cặp kí tự tại phần đối xứng nhau để kết luận có phải hay không.

Bởi vậy, ta hoàn toàn có thể dùng một biến ngắn gọn xúc tích để ghi nhấn sự phát hiện này. Trước vòng lặp tiến hành các so sánh nói trên, bắt buộc không gửi biến xúc tích ở mỗi bước lặp, hễ nhị kí tự được so sánh khác biệt thì biến ngắn gọn xúc tích đó sẽ phải biến đổi giá trị.

Chương trình sau đây dùng để kiểm tra xem xâu nhập vào liệu có phải là xâu palindrome tuyệt không.

vai i, X: byte;

a: string;

palii: boolean;

begin

write (Nhap vao xau: ’ );

reailn(a) ;

X:= length(a); xac dinh vị dai cua xau

palin:=true;

khoi tao palin, tam coi xau a la palindrome

for i:= 1 lớn X div 2 vì chưng so sanh cap ki tu doi xung

if a oa

then palin: =false;

if palin then writeln: Xau la palindrome’)

else writeln(’Xau khong la palindrome’);

readln

End.

Khi chạy chương trình, nhập vào xâu: "He 2007 " thì chương trình giới thiệu thông báo: "xau khong la palindrome”, còn khi nhập vào xau "abcddcba" thì chương trình đưa ra thông báo: "xau la palindrome" kết trái của chương trình đến như hình 53 bên dưới đây:

*

Tuy nhiên, ta rất có thể không dùng vòng for-do mà dùng while-do hay repeat-until và có thể không cần dùng biến logic. Công tác sau đây đáp ứng nhu cầu được yêu cầu đặt ra:


var x: byte;

a: string;

palin: boolean;

begin

write("Nhap vao xau: " ) ,

readln(a);

X: =length (a) , xac dinh vị dai cua xa i:=1;

while (iế if i> (x div 2) then writeln("Xau la palindrome")

else writeln("Xau khong la palindrome");

readln

End.

Khi chạy chương trình, nhập vào xâu: "tin hoc hoc tin" thì chương trình chỉ dẫn thông báo: "xau khong la palindrome", còn khi nhập vào xâu " ABCDDCBD" thì chương trình cũng giới thiệu thông báo: “xau khong la palindrome", còn lúc nhập vào xâu: " ABCD0770DCBA" thì chương trình giới thiệu thông báo: “xau la palindrome" .

Kết trái của chương trình đến như hình 55 bên dưới đây:

*

Bài 2. Để giải quyết và xử lý bài toán này, họ nhận thấy rằng:

Cần ghi nhận số lần mở ra của từng chữ cái. Có tất cả 26 chữ cái " A " " z ". Có thể dùng một mảng cùng với chỉ số là kí tự trường đoản cú "A " cho "z" để ghi dấn số lần xuất hiện thêm của những kí tự vào xâu s. Vị vậy, bọn họ dùng một mảng một chiều nhằm đếm số lần xuất hiện của một kí tự trong xâu s. Nắm thể, để ghi dấn số lần mở ra của kí tự, ta hoàn toàn có thể dùng dem nhằm ghi thừa nhận số lần lộ diện kí từ bỏ A (hay kí tự a, vày không rành mạch chữ hoa tuyệt chữ thường).


Để xử lý vấn đề không tách biệt chữ hoa hay chữ hay ta đề nghị dùng hàm Upcase(c).

Do một kí tự lộ diện trong xâu s rất có thể không phải là 1 trong những chữ cái nên những khi duyệt thứu tự từng kí tự trong xâu s, nên kiểm tra xem kí trường đoản cú đó liệu có phải là chữ cái hay không để ghi nhấn số lần xuất hiện thêm của nó. Họ đã gặp gỡ đoạn chương trình đánh giá một kí tự gồm là chữ số hay là không ở lấy ví dụ như 5 tiết học 12. Tự đó, rất có thể viết được đoạn chương trinh thao tác làm việc duyệt từng thành phần cùa xâu và đếm.

Dàn ý của chương trình:

phần khai báo

begin

nhập xâu S

N: = length (S);

Khởi tạo nên màng Dem

for i: =1 khổng lồ N vì chưng {Neu s là vần âm thì đém tăng mang lại s<1>

for c:="A" to Z do Thông báo sô lần mở ra của c

End.

Chương trình nhập từ bàn phím một xâu kí từ bỏ và thông báo ra screen số lần mở ra của mỗi vần âm tiếng Anh vào (không biệt lập chữ hoa xuất xắc chữ thường).


Program tinh_ki_tu,

var s,sl: string;

i, j, n: integer;

dem: array < "A’ . . "z ’ > of integer;

c: char ;

begin

write(’Nhap vao xau: ");

readln(S);

n:= length(s);

for C:= "A" khổng lồ "Z" vị khoi tao mang lại mang dem dem:= 0 ; s 1 : = ’ " ;

readln

End.

Khi nhập vào lần lượt các xâu: "đfd"2n5fv" 3m.A" , " 55B7cfcManu07 " , " 8gs9"0A6ha5kQ " thì chương trình cho các hiệu quả như hình 56 bên dưới đây:

*

Bài 3. Đối với câu hỏi này:

Để thay thế tất cả các từ "anh" vào một xâu st thành các kí tự "em", rất có thể làm một cách tự nhiên: Tìm địa chỉ xâu nhỏ "anh" trong xâu st đang cho, xóa xâu bé này đi rồi chèn xâu "em" vào địa chỉ đó. Lặp đi lặp lại điều này cho đến khi không tìm thấy xâu "anh" cần sửa chữa trong xâu st nữa. Để xử lý vấn đề này, họ cần vận dụng các hàm Pos, thủ tục chuẩn Delete, Insert.

Dàn ý chương trinh:


phần khai báo

Begin

Nhập xâu S

{Chừng làm sao còn tìm thấy xâu bé ‘anh " trong xâu st còn giúp ba quá trình sau: search vị trí bắt đầu của xâu "anh" ;

Xóa xâu " anh" vừa tìm kiếm thấy;

Chèn xâu " em" vào xâu s tại vị trí trước đây lộ diện xâu "anh" ;

In xau S kết quả

end.

Xem thêm:
" Bigcityboi Nghĩa Là Gì ? Ca Khúc Đánh Dấu Tên Tuổi Của Rapper Binz

Chương trình nhập vào từ keyboard một xâu, sửa chữa thay thế tất cả những cụm kí trường đoản cú ‘anh ’ bởi cụm từ ‘em"

program thay_the_cum_tu;

var vt: byte;

St: string;

Begin

write(’Nhap vao mot xau: ");

readln(st);

while pos ("anh", st)0 

begin

Vt : = pos ( " anh " , St. : ; delete(St,vt,3);

insert("em",St,vt) ; end;

write ("Xau sau thời điểm da duoc thế the: " ,st ,")

readln

End.

Khi nhập vào lần lượt những xâu: "anh" và "em" ; "anh em trong mot nha " thì chương trình mang lại các công dụng theo sản phẩm công nghệ tự như sau: "em va em" ," em em vào mot nha " . Công dụng chương trình cho như hình 57 dưới đây: