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 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 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 quả 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 biến đổi xâu thì ta phải khai thác kỹ năng 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 chế tạo ra một xâu mới để sau cùng so sánh nhị xâu, mà chỉ việc sánh cặp kí tự ở trong phần đối xứng nhau để kết luận có nên hay không.

Bởi vậy, ta hoàn toàn có thể dùng một biến logic để ghi nhận sự phát hiện nay này. Trước vòng lặp tiến hành các so sánh nói trên, đề nghị không gửi biến ngắn gọn xúc tích ở từng bước lặp, hễ nhì kí trường đoản cú được so sánh không giống nhau thì biến xúc tích và ngắn gọn đó vẫn 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 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 vày dai cua xau

palin:=true;

khoi tao palin, tam coi xau a la palindrome

for i:= 1 to X div 2 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 lúc nhập vào xau "abcddcba" 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 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à sử dụng while-do tuyệt repeat-until và rất có thể không yêu cầu dùng đổi mới logic. Công tác sau đây thỏa mãn nhu cầu đượ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 giới thiệu thông báo: "xau khong la palindrome", còn lúc nhập vào xâu " ABCDDCBD" thì lịch 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 đưa ra thông báo: “xau la palindrome" .

Kết quả của chương trình mang đến 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 nhấn số lần mở ra của từng chữ cái. Có toàn bộ 26 chữ cái " A " " z ". Có thể dùng một mảng cùng với chỉ số là kí tự từ bỏ "A " mang đến "z" nhằm ghi nhận số lần xuất hiện thêm của các kí tự vào xâu s. Bởi 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ự vào xâu s. Nạm thể, nhằm ghi nhấn số lần xuất hiện thêm của kí tự, ta rất có thể dùng dem nhằm ghi nhấn số lần xuất hiện thêm kí trường đoản cú A (hay kí trường đoản cú a, bởi không khác nhau chữ hoa tốt chữ thường).

Xem thêm:
5 Đề Thi Học Kì 1 Môn Tiếng Việt Lớp 1, 16 Đề Thi Học Kì 1 Môn Tiếng Việt Lớp 1


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

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

End.

Chương trình nhập từ keyboard một xâu kí từ và thông báo ra màn hình số lần mở ra của mỗi chữ cái tiếng Anh trong (không rành mạch chữ hoa tuyệ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" 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 mang lại các kết quả như hình 56 dưới đây:

*

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

Để thay thế tất cả các từ "anh" trong một xâu st thành các kí trường đoản cú "em", có thể làm một phương pháp tự nhiên: Tìm vị trí xâu bé "anh" vào xâu st đã 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 kiế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, 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 kiếm tìm thấy xâu bé ‘anh " vào xâu st còn hỗ trợ ba các bước sau: tìm kiếm vị trí bắt đầu của xâu "anh" ;

Xóa xâu " anh" vừa 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: Lưu Vực Sông Mê Kông Chảy Qua Bao Nhiêu Quốc Gia ? Những Ngày Cuối Của Dòng Mekong Hùng Vĩ

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ằng 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 cố the: " ,st ,")

readln

End.

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