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;

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