BÀI 2 TRANG 73 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 đưa ra thông báo: "Xâu là palindroine?".

Bạn đang xem: Bài 2 trang 73 tin học 11

Kết trái của chương trình mang lại như hình 52 tiếp sau đây :

*

b) Để viết lại lịch trình dùng biến chuyển xâu thì ta buộc phải khai thác khả năng tham chiếu cho từng kí tự vào 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 mới để sau cuối so sánh nhị xâu, mà chỉ việc sánh cặp kí tự ở phần đối xứng nhau để tóm lại có nên hay không.

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

Chương trình sau đây dùng làm kiểm tra xem xâu nhập vào có phải là xâu palindrome tuyệ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 to lớn 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 đưa ra 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 cho như hình 53 bên dưới đây:

*

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

Xem thêm:
Please Wait - How To Root Qmobile Q


Để xử lý vấn đề không biệt lập chữ hoa tốt chữ hay ta yêu cầu dùng hàm Upcase(c).

Do một kí tự lộ diệ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 khi duyệt theo lần lượt từng kí tự vào xâu s, yêu cầu kiểm tra xem kí trường đoản cú đó có phải là chữ cái hay là 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 kiểm soát một kí tự tất cả là chữ số hay không ở lấy ví dụ như 5 tiết học tập 12. Trường đoản cú đó, rất có thể viết được đoạn chương trinh thao tác làm việc duyệt từng bộ phận cùa xâu và đế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ì chưng {Neu s là vần âm thì đém tăng cho 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 tin ra screen số lần xuất hiện thêm của mỗi vần âm tiếng Anh trong (không khác nhau 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" to "Z" bởi khoi tao mang lại 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 mang lại các tác dụng như hình 56 dưới đây:

*

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

Để sửa chữa tất cả cụm từ "anh" trong một xâu st thành cụm kí từ bỏ "em", hoàn toàn có thể làm một cách tự nhiên: Tìm địa chỉ xâu bé "anh" vào xâu st đã cho, xóa xâu nhỏ 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 tới 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à 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 chỉnh 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 tìm thấy xâu nhỏ ‘anh " vào xâu st còn khiến cho ba công việc sau: tìm vị trí ban đầu của xâu "anh" ;

Xóa xâu " anh" vừa tra cứu thấy;

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

In xau S kết quả

end.

Xem thêm: Bộ Đề Thi Học Kì 2 Môn Tiếng Anh Lớp 6 Chương Trình Mới Có Đáp Án

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í trường đoản cú ‘anh ’ bằng cụm trường đoản cú ‘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 vào mot nha " thì chương trình cho các tác dụng theo máy tự như sau: "em va em" ," em em vào mot nha " . Hiệu quả chương trình mang đến như hình 57 dưới đây: