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 chỉ dẫn thông báo: "xau khong la palindrome", còn lúc 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 tập thực hành 5 tin học 11

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

*

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

Bởi vậy, ta rất có thể dùng một biến súc tích để ghi dìm sự phát hiện nay này. Trước vòng lặp triển khai các đối chiếu nói trên, buộc phải không gửi biến xúc tích ở mỗi bước lặp, hễ nhị kí từ bỏ được so sánh không giống nhau thì biến logic đó đã phải biến hóa giá trị.

Chương trình sau đây dùng để làm kiểm tra coi xâu nhập vào liệu có phải là xâu palindrome tố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 khổng lồ X div 2 vì chưng so sinh 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 chỉ dẫn thông báo: "xau khong la palindrome”, còn lúc nhập vào xau "abcddcba" thì chương trình đưa ra thông báo: "xau la palindrome" kết quả của chương trình mang đến như hình 53 dưới đây:

*

Tuy nhiên, ta có thể không cần sử dụng vòng for-do mà sử dụng while-do hay repeat-until và hoàn toàn có thể không phải dùng trở thành logic. Chương trình sau đây đáp ứng nhu cầu được yêu ước đặt ra:


var x: byte;

a: string;

palin: boolean;

begin

write("Nhap vao xau: " ) ,

readln(a);

X: =length (a) , xac dinh vì chưng 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 đưa ra 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 chỉ dẫn 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 quả của chương trình cho như hình 55 bên dưới đây:

*

Bài 2. Để giải quyết bài toán này, chúng ta nhận thấy rằng:

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


Để xử lý vấn đề không sáng tỏ chữ hoa giỏi chữ thường ta yêu cầu dùng hàm Upcase(c).

Do một kí tự mở ra trong xâu s có thể không phải là một trong những chữ cái nên những lúc duyệt theo thứ tự từng kí tự trong xâu s, phải kiểm tra coi kí trường đoản cú đó liệu có phải là chữ cái hay không để ghi dìm số lần mở ra của nó. Chúng ta đã gặp mặt đoạn chương trình khám nghiệm một kí tự có là chữ số hay là không ở ví dụ như 5 tiết học tập 12. Từ bỏ đó, rất có thể viết được đoạn chương trinh thao tác duyệt từng thành phần cùa xâu với đế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 cho màng Dem

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

for c:="A" to Z do Thông báo sô lần xuất hiện của c

End.

Chương trình nhập từ keyboard một xâu kí tự và thông tin ra màn hình hiển thị số lần xuất hiện thêm của mỗi vần âm tiếng Anh trong (không phân minh chữ hoa giỏi 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" to lớn "Z" vày khoi tao cho mang dem dem:= 0 ; s 1 : = ’ " ;

readln

End.

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

*

Bài 3. Đối với việc này:

Để thay thế sửa chữa tất cả các từ "anh" vào một xâu st thành nhiều kí trường đoản cú "em", có thể làm một bí quyết tự nhiên: Tìm địa điểm xâu bé "anh" trong xâu st đang cho, xóa xâu con 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 kiếm thấy xâu "anh" cần sửa chữa thay thế trong xâu st nữa. Để giải quyết vấn đề này, chúng ta 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 tra cứu thấy xâu nhỏ ‘anh " trong xâu st còn giúp ba các bước sau: tìm vị trí bắt đầu của xâu "anh" ;

Xóa xâu " anh" vừa search thấy;

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

In xau S kết quả

end.

Xem thêm:
Giải Bài Tập 2 Trang 30 Toán 12 (Bài 4, Bài 2 Trang 30 Sgk Giải Tích 12

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í tự ‘anh ’ bởi cụm từ bỏ ‘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 khoản thời gian da duoc gắng the: " ,st ,")

readln

End.

Khi nhập vào lần lượt các xâu: "anh" và "em" ; "anh em vào mot nha " thì chương trình mang đến các công dụng theo đồ vật tự như sau: "em va em" ," em em vào mot nha " . Công dụng chương trình mang đến như hình 57 bên dưới đây: