Giáo Án Môn Tin Học 11

     

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: Giáo án môn 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 công tác dùng biến chuyển xâu thì ta cần khai thác kĩ năng tham chiếu đến 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 nên một xâu bắt đầu để sau cuối so sánh hai xâu, mà chỉ cần sánh cặp kí tự tại phần đối xứng nhau để tóm lại có đề nghị hay không.

Bởi vậy, ta có thể dùng một biến xúc tích để ghi dìm sự phát hiện này. Trước vòng lặp triển khai các so sánh nói trên, nên không gửi biến logic ở từng bước lặp, hễ nhì kí tự được so sánh khác nhau thì biến xúc tích và ngắn gọn đó sẽ phải chuyể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 tốt không.

vai i, X: byte;

a: string;

palii: boolean;

begin

write (Nhap vao xau: ’ );

reailn(a) ;

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

palin:=true;

khoi tao palin, tam coi xau a la palindrome

for i:= 1 khổng lồ 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 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 quả của chương trình đến như hình 53 bên 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 đề nghị dùng phát triển thành logic. Lịch trình sau đây đáp ứng đượ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 đưa ra thông báo: "xau khong la palindrome", còn khi nhập vào xâu " ABCDDCBD" thì lịch trình cũng chỉ dẫn 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 trái của chương trình mang đến như hình 55 dưới đây:

*

Bài 2. Để giải quyết và xử lý 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ó toàn bộ 26 vần âm " A " " z ". Có thể dùng một mảng với chỉ số là kí tự trường đoản cú "A " đến "z" nhằm ghi nhận số lần mở ra của những kí tự vào xâu s. Vày vậy, họ dùng một mảng một chiều nhằm đếm số lần xuất hiện thêm của một kí tự vào xâu s. Thế thể, để ghi dìm số lần xuất hiện thêm của kí tự, ta rất có thể dùng dem để ghi dìm số lần xuất hiện kí tự A (hay kí tự a, vì chưng không biệt lập chữ hoa xuất xắc chữ thường).

Xem thêm:
Soạn Văn Lớp 6 Bài Học Đường Đời Đầu Tiên, Trích Dế Mèn Phiêu Lưu Kí


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

for i: =1 to lớn N vị {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 mở ra của c

End.

Chương trình nhập từ bàn phím một xâu kí trường đoản cú và thông tin ra màn hình số lần xuất hiện thêm của mỗi chữ cái tiếng Anh trong (không khác nhau chữ hoa hay 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à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 công dụng như hình 56 bên dưới đây:

*

Bài 3. Đối với bài toán này:

Để sửa chữa thay thế tất cả nhiều từ "anh" vào một xâu st thành các kí từ bỏ "em", rất có thể làm một phương pháp tự nhiên: Tìm địa chỉ xâu nhỏ "anh" trong xâu st sẽ cho, xóa xâu bé này đi rồi chèn xâu "em" vào địa điểm đó. Lặp đi tái diễn đ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, bọn họ cần vận dụng những 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 bé ‘anh " trong xâu st còn giúp ba công việc sau: kiếm tìm vị trí bước đầ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 điểm trước đây lộ diện xâu "anh" ;

In xau S kết quả

end.

Xem thêm: Bầy Sâm Cầm Nhỏ Vỗ Cánh Mặt Trời, Lời Bài Hát Nhớ Mùa Thu Hà Nội

Chương trình nhập vào từ bàn phím một xâu, sửa chữa tất cả các cụm kí tự ‘anh ’ bằng 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 nắm 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 kết quả theo trang bị tự như sau: "em va em" ," em em vào mot nha " . Công dụng chương trình mang lại như hình 57 dưới đây: