a) lúc chạy chương trình, nhập vào xâu: " vui ma hoc hoc ma vui" thì chương trình giới thiệu thông báo: "xau khong la palindrome", còn khi nhập vào xâu "abcddcba" thì chương trình giới thiệu thông báo: "Xâu là palindroine?".

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

Kết quả của chương trình cho như hình 52 sau đây :

*

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

Bởi vậy, ta hoàn toàn có thể dùng một biến lô ghích để ghi nhận sự phát hiện nay này. Trước vòng lặp triển khai các so sánh nói trên, yêu cầu không gửi biến logic ở từng bước một lặp, hễ nhì kí trường đoản cú được so sánh khác biệt thì biến súc tích đó đã phải chuyển đổi giá trị.

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

vai i, X: byte;

a: string;

palii: boolean;

begin

write (Nhap vao xau: ’ );

reailn(a) ;

X:= length(a); xac dinh bởi dai cua xau

palin:=true;

khoi tao palin, tam coi xau a la palindrome

for i:= 1 to X div 2 do 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 chỉ dẫn 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 quả của chương trình cho như hình 53 bên dưới đây:

*

Tuy nhiên, ta hoàn toàn có thể không dùng vòng for-do mà cần sử dụng while-do tốt repeat-until và rất có thể không bắt buộc dùng biến hóa logic. Lịch trình sau đây thỏa mãn 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 bởi 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 lúc nhập vào xâu " ABCDDCBD" thì công tác 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 chỉ dẫn thông báo: “xau la palindrome" .

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

*

Bài 2. Để giải quyết bài toán này, bọn họ 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 " mang đến "z" để ghi nhấn số lần lộ diện của các kí tự trong xâu s. Vị vậy, họ dùng một mảng một chiều để đếm số lần xuất hiện của một kí tự trong xâu s. Nuốm thể, nhằm ghi dìm số lần mở ra của kí tự, ta rất có thể dùng dem để ghi thừa nhận số lần lộ diện kí trường đoản cú A (hay kí từ bỏ a, vì chưng không phân minh chữ hoa giỏi chữ thường).


Để xử lý vấn đề không minh bạch chữ hoa tốt chữ thường ta buộc phải 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 lúc duyệt theo thứ tự từng kí tự vào xâu s, đề nghị kiểm tra xem kí tự đó có phải là chữ cái hay không để ghi thừa nhận số lần xuất hiện thêm của nó. Họ đã gặp đoạn chương trình soát sổ một kí tự gồm là chữ số hay không ở ví dụ 5 tiết học tập 12. Từ đó, hoàn toàn có thể viết được đoạn chương trinh làm việ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 nên màng Dem

for i: =1 lớn N do {Neu s là chữ cái thì đém tăng mang lại 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 lộ diện của mỗi vần âm tiếng Anh trong (không rành mạch 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" bởi vì khoi tao mang đến 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 đến các tác dụng như hình 56 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 cụm kí trường đoản cú "em", rất có thể làm một cách tự nhiên: Tìm địa chỉ xâu con "anh" vào xâu st đang cho, xóa xâu con này đi rồi chèn xâu "em" vào địa điểm đó. Lặp đi lặp lại điều này cho đến khi không tìm kiếm thấy xâu "anh" cần thay thế sửa chữa trong xâu st nữa. Để giải quyết và xử lý vấn đề này, chúng ta cần vận dụng các hàm Pos, thủ tục chuẩn chỉnh Delete, Insert.

Dàn ý chương trinh:


phần khai báo

Begin

Nhập xâu S

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

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

Chèn xâu " em" vào xâu s tại địa chỉ trước đây mở ra xâu "anh" ;

In xau S kết quả

end.

Xem thêm:
Sách Bài Tập Tin Học Lớp 6, Giải Sbt Tin Học 6 Kết Nối Tri Thức

Chương trình nhập vào từ bàn phím một xâu, thay thế sửa chữa tất cả các 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 khi da duoc thế 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 đến các công dụng theo lắp thêm tự như sau: "em va em" ," em em vào mot nha " . Hiệu quả chương trình đến như hình 57 bên dưới đây: