Nhập sâu S đếm số lần lượt số lần xuất hiện mỗi kí tự trong sâu S ( không phân biệt chữ,số) vd : S = MADAM M : 2 A : 2 D : 1 Giải bằng ngôn ngữ pascal chứ không phải bằng c++ ạ!!! Cần gấp ạ !
2 câu trả lời
Chương trình:
uses crt; {thu vien dung cho viec xoa man hinh}
var Dem:array[‘A’..‘Z’] of integer;
____S: String;
____ch: char;
____i: integer;
begin
____clrscr; {lenh xoa man hinh}
____write(‘Nhap xau S: ’);
____readln(S);
_for ch:= ‘A’ to ‘Z’ do
_______Dem[ch]:= 0;
_ for i:=1 to length(S) do
begin
if S[i] in ([‘a’..‘z’]) then {co the thay bang if (S[i] >= ‘a’) and (S[i] <= ‘z’) then}
begin
_________ch:=upcase(S[i]);
_________Dem[ch]:= Dem[ch]+1;
end;
end;
{for ch:= ‘A’ to ‘Z’ do
write(‘So lan xuat hien cua ’,ch, ‘ trong xau la ’, Dem[ch]);}
____writeln(‘So lan xuat hien cua cac chu cai trong xau la: ‘);
for ch:= ‘A’ to ‘Z’ do
_______write(ch:3);
____writeln;
for ch:= ‘A’ to ‘Z’ do
_______write(Dem[ch]:3);
____readln
end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var s:string[30];
ch,x:char;
i:byte;
dem:array['A'..'Z']of byte;
BEGIN
clrscr;
write('Nhap vao xau s=');
readln(s);
for ch:='A' to 'Z' do dem[ch]:=0;
for i:=1 to length(s) do
begin
x:=upcase(s[i]);
if (x>='A') and (x<='Z')
then
dem[x]:=dem[x]+1;
end;
for ch:='A' to 'Z' do
if dem[ch]<>0 then
writeln('So luong ki tu',ch,'la',dem[ch]);
readln;