Cho xâu kí tự viết chương trình nhập xâu, thông báo xâu, đếm các kí tự b có trong xâu?

2 câu trả lời

Trước tiên ta phải đi phân tích đề này sau đó mới tìm ra được thuật toán để giải.Ví dụ : Nhập vào xâu jkllljhhj1254 thì nó sẽ in ra màn hình kết quả đó là :- Xâu có 9 ký tự chữ và 4 ký tự số.Thuật toán : - Tạo ra các biến đếm chữ số và chữ cái gán cho nó bằng 0, cho vòng for chạy từ phần tử đầu tiên đến phần tử cuối cùng của xâu.+ Nếu phần tử đó là chữ cái thì biến chữ cái +1 + Nếu phần tử đó là chữ số thì biến chữ số +1 Cách giải :Trước tiên ta khai báo các biến- Biến xâu s có kiểu dữ liệu string- Biến chuso và biến chucai dùng để đếm số ký tự chữ số và số ký tự chữ cái.- Biến i tý nữa dùng để chạy vòng for quen thuộc. var s: string; chuso,chucai,i: integer;
Tiếp theo ta viết câu lệnh để nhập xâu
write('Nhap mot xau ky tu: '); readln(s);
Rồi, tiếp ta cho vòng for chạy từ i đến độ dài của xâu (độ dài của xâu chính là ký tự cuối cùng của xâu) và kiểm tra
- Nếu nó là chữ số thì biến chuso +1
if s[i] in ['0'..'9']) then chuso:=chuso+1;
- Nếu nó là chữ cái thì biến chucai +1
if s[i] in ['A'..'Z'] + ['a'..'z'] then chuccai:=chucai+1;
Để cho nó kiểm tra đúng phần tử đang xét chúng ta phải cho 2 điều kiện if này chạy trong một chương trình con được kẹp giữa bởi BEGIN ... END; (Nhớ cho tui là chương trình con kết thúc bằng END; chứ không phải END. nhé)
begin if (s[i] in ['0'..'9']) then chuso:=chuso+1; if s[i] in ['A'..'Z'] + ['a'..'z'] then chucai:=chucai+1; end;
Việc cuối cùng của chúng ta là in kết quả ra thôi

uses crt;
var s:string;i,d:longint;
begin
   clrscr;
   write('Nhap xau: '); read(s);
   for i:=1 to length(s) do if s[i] in ['b'] then inc(d);
   write('Xau vua nhap: '); writeln(s);
   writeln('Co ',d,' ky tu b');
   readln
end.

Câu hỏi trong lớp Xem thêm