Bài Thực Hành Số 5 Tin Học 11

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 giới thiệu 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 trái của chương trình cho như hình 52 dưới đây :

*

b) Để viết lại lịch trình dùng phát triển thành xâu thì ta đề nghị khai thác năng lực 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 cần thiết phải sản xuất một xâu new để ở đầu cuối 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ó bắt buộc hay không.

Bởi vậy, ta rất có thể dùng một biến lô ghích để ghi dấn sự phát hiện tại này. Trước vòng lặp tiến hành các so sánh nói trên, yêu cầu không gửi biến xúc tích và ngắn gọn ở từng bước 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 thay đổi giá trị.

Chương trình sau đây dùng để kiểm tra xem xâu nhập vào có phải là xâu palindrome hay 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 khổng lồ X div 2 bởi vì 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 chỉ dẫn thông báo: "xau la palindrome" kết quả của chương trình cho như hình 53 dưới đây:

*

Tuy nhiên, ta rất có thể không sử dụng vòng for-do mà sử dụng while-do tốt repeat-until và rất có thể không phải dùng biến đổi logic. Công tác sau đây đáp ứng được yêu mong đặ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ì chương trình cũng giới thiệu thông báo: “xau khong la palindrome", còn khi 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 mang lại như hình 55 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 thừa nhận số lần xuất hiện của từng chữ cái. Có toàn bộ 26 chữ cái " A " " z ". Hoàn toàn có thể dùng một mảng cùng với chỉ số là kí tự tự "A " đến "z" để ghi thừa nhận số lần mở ra của những kí tự vào xâu s. Vì vậy, chúng ta 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. Rứa thể, để ghi thừa nhận số lần xuất hiện của kí tự, ta có thể dùng dem nhằm ghi thừa nhận số lần xuất hiện thêm kí tự A (hay kí tự a, vì không biệt lập chữ hoa giỏi chữ thường).

Xem thêm: Cách Nấu Cháo Thịt Bò Cà Chua Cho Bé Ăn Dặm Tuyệt Ngon » Báo Phụ Nữ Việt Nam


Để giải quyết và xử lý vấn đề không tách biệt chữ hoa xuất xắc chữ hay ta buộc phải dùng hàm Upcase(c).

Do một kí tự xuất hiện trong xâu s hoàn toàn có thể không phải là một trong những chữ cái nên những khi duyệt thứu tự từng kí tự trong xâu s, buộc phải kiểm tra xem kí từ bỏ đó 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 đoạn chương trình soát sổ một kí tự tất cả là chữ số hay là không ở lấy ví dụ như 5 tiết học 12. Tự đó, hoàn toàn có thể viết được đoạn chương trinh thao tác duyệt từng phần tử 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 khổng lồ N do {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 lộ diện của c

End.

Chương trình nhập từ keyboard một xâu kí từ và thông báo ra screen số lần xuất hiện thêm của mỗi vần âm tiếng Anh trong (không rành mạch chữ hoa tốt 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" lớn "Z" vì chưng 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 công 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ả nhiều từ "anh" trong một xâu st thành cụm kí tự "em", rất có thể làm một phương pháp tự nhiên: Tìm vị trí xâu con "anh" vào xâu st sẽ cho, xóa xâu bé này đi rồi chèn xâu "em" vào vị trí đó. Lặp đi tái diễn điều này cho tới khi không tìm thấy xâu "anh" cần sửa chữa thay thế trong xâu st nữa. Để xử lý vấn đề này, bọn 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 nào còn search thấy xâu con ‘anh " vào xâu st còn hỗ trợ ba công việc sau: tra cứu vị trí bước đầ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.

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ả những cụm kí từ bỏ ‘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 thời điểm da duoc cầm the: " ,st ,")

readln

End.

Khi nhập vào lần lượt các xâu: "anh" và "em" ; "anh em trong mot nha " thì chương trình cho các hiệu quả theo đồ vật tự như sau: "em va em" ," em em vào mot nha " . Tác dụng chương trình đến như hình 57 dưới đây: