Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (168.3 KB, 25 trang )
<span class='text_page_counter'>(1)</span>CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC Bài 11: Kiểu mảng Cho mảng a gồm n phần tử n<=15. Giá trị từng phần tử là số nguyên. Thực hiện các chương trình sau: 1. Tính tổng các phần tử trong mảng Input A=1 4 5 6 7 Output S = 23 Xác định bài toán: - Input: mảng a - Output: tổng các phần tử trong mảng. Thuật toán: - B1: Nhập n, a1,a2, …, an B2: i 1, s 0 - B3: s s + ai B4: i i + 1 B5: nếu i > n, đưa ra S và kết thúc. - B6: quay lại bước 3. Chương trình: program tinhtong; uses crt; var n,i:byte; a:array[1..15] of integer; s:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] = '); readln(a[i]); end; s:=0; for i:=1 to n do s:=s+a[i]; writeln('tong cac phan tu trong mang la: ',s); readln end..
<span class='text_page_counter'>(2)</span> 2. Tính tổng các phần tử âm của mảng Input A = 1 -4 5 6 -7 Output S = -11 Xác định bài toán: - Input: mảng a - Output: tổng các phần tử âm trong mảng. Thuật toán: - B1Nhập n, a1,a2, …, an B2: i 1, s 0 - B3: nếu ai < 0 thì s s + ai B4: i i + 1 B5: nếu i > n, đưa ra S và kết thúc. - B6: quay lại bước 3. Chương trình: program tongam; uses crt; var n,i:byte; a:array[1..15] of integer; s:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] = '); readln(a[i]); end; s:=0; for i:=1 to n do if a[i] < 0 then s:=s+a[i]; writeln('tong cac phan tu trong mang la: ',s); readln end..
<span class='text_page_counter'>(3)</span> 3. Tính tổng và trung bình cộng của các phần tử chẵn của mảng. Input A = 1 -4 5 6 -7 Output S = 2, TB = 1 Xác định bài toán: - Input: mảng a Output: tổng các phần tử chẵn và TB cộng của các phần tử chẵn trong mảng. Thuật toán: - B1Nhập n, a1,a2, …, an - B2: i 1, s 0, d 0 - B3: nếu ai chia hết cho 2 thì s s + ai , d d+1 B4: i i + 1 B5: nếu i > n, tính TB s/d, đưa ra S và TB rồi kết thúc. - B6: quay lại bước 3. Chương trình: program tongchan; uses crt; var n,i:byte; a:array[1..15] of integer; s:integer; TB: real; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] = '); readln(a[i]); end; s:=0; d:=0; for i:=1 to n do if a[i] mod 2 = 0 then begin s:=s+a[i]; d:=d+1; end; TB:= s/d; writeln('tong cac phan tu trong mang la: ',s); writeln(‘trung binh cac phan tu chan la: ‘,TB); readln end..
<span class='text_page_counter'>(4)</span> 4. Tìm phần tử có giá trị lớp nhất của mảng. Input A = 1 -4 5 6 -7 Output Max = 6, vt = 4 Xác định bài toán: - Input: mảng a - Output: phần tử có giá trị lớn nhất trong mảng, và vị trí của nó Thuật toán: - B1Nhập n, a1,a2, …, an - B2: i 2, Max a1 , cs 1 B3: nếu i > n thì đưa ra Max, cs và kết thúc - B4: nếu ai > Max, thì Max ai , cs i B5: i i + 1, quay lại bước 3. Chương trình: program timmax; uses crt; var n,i,cs:byte; a:array[1..15] of integer; Max:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] = '); readln(a[i]); end; Max := a[i]; cs:=i; for i:=2 to n do if a[i] > Max then begin Max:=a[i]; cs:=i; end; writeln(' phan tu lon nhat trong mang la: ',Max , ‘o vi tri ‘,i); readln end..
<span class='text_page_counter'>(5)</span> 5. Tìm phần tử có giá trị nhỏ nhất của mảng. Input A = 1 -4 5 6 -7 Output Min = -7, vt = 5 Xác định bài toán: - Input: mảng a - Output: Phần tử có giá trị nhỏ nhất trong mảng và vị trí của nó Thuật toán: - B1Nhập n, a1,a2, …, an - B2: i 2, Min a1 , cs 1 - B3: nếu i > n thì đưa ra Max và kết thúc - B4: nếu ai > Max, thì Max ai , cs i B5: i i + 1, quay lại bước 3. Chương trình: program timmax; uses crt; var n,i,cs:byte; a:array[1..15] of integer; Min:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] = '); readln(a[i]); end; Min := a[i]; cs i; for i:=2 to n do if a[i] < Min then begin Min:=a[i]; cs:= i; end; writeln(' phan tu nho nhat trong mang la: ',Min,’ o vi tri ‘,i); readln end..
<span class='text_page_counter'>(6)</span> 6. Sắp xếp dãy a thành dãy không giảm. Input A = 1 -4 5 6 -7 Output A = -7 -4 1 5 6 Xác định bài toán: - Input: mảng a - Output: mảng a là dãy không tăng Thuật toán: - B1Nhập n, a1,a2, …, an - B2: m n - B3: Nếu M < 2 thì đưa ra dãy a đã được sắp xếp rồi kết thúc - B4: m m – 1, i 0 - B5: i i + 1 B6: Nếu i > M thì quay lại bước 3; B7: nếu ai > ai + 1 , thì tráo đổi ai và ai+1 cho nhau - B8: quay lại bước 5. Chương trình: program sxkhonggiam; uses crt; var n,i,m,j:byte; a:array[1..15] of integer; t:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] = '); readln(a[i]); end; for j:=n downto 2 do for i:= 1 to j-1 do if a[i] > a[i+1] then begin t:=a[i]; a[i]:=a[i+1]; a[i+1]:=t; end; writeln(' Day so sau khi sap xep: ’); for i:=1 to n do write(a[i]:4); readln end..
<span class='text_page_counter'>(7)</span> 7.. Tính tổng các số nguyên dương chia hết cho 5. Input A= 1 5 8 4 Output S = 15. 10. Xác định bài toán: - Input: mảng a - Output: tổng các phần tử trong mảng chia hết cho 5 Thuật toán: - B1Nhập n, a1,a2, …, an - B2: i 1, s 0, - B3: nếu ai chia hết cho 5 thì s s + ai B4: i i + 1 - B5: nếu i > n, đưa ra S và TB rồi kết thúc. - B6: quay lại bước 3. Chương trình: program tongboi5; uses crt; var n,i:byte; a:array[1..15] of integer; s:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] = '); readln(a[i]); end; s:=0; for i:=1 to n do if a[i] mod 5 = 0 then s:=s+a[i]; writeln('tong cac phan tu chia het cho 5 la: ',s); readln end..
<span class='text_page_counter'>(8)</span> 8.. Kiểm tra tính nguyên tố của các phần tử trong mảng.. Input. A= 2 3 4 5 6 2 là số nguyên tố 3 là số nguyên tố Output 4 không phải là số nguyên tố 5 là số nguyên tố 6 không phải là số nguyên tố Xác định bài toán: - Input: mảng a - Output: tổng các phần tử chẵn và TB cộng của các phần tử chẵn trong mảng. Thuật toán: - B1Nhập n, a1,a2, …, an - B2: i 1, - B3: nếu ai là nguyên tố thì thông báo ai là số nguyên tố - B4: ngược lại, thông báo ai không phải là số nguyên tố. B5: ii+1; B6: nếu i > n, kết thúc. B7: quay lại bước 3. Chương trình: program ktnguyento; uses crt; var a:array[1..15] of integer; n,i,j,d:byte; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,']= '); readln(a[i]); end; writeln('------------'); for i:=1 to n do begin d:=0; for j:=2 to (a[i] div 2) do if a[i] mod j = 0 then d:=d+1; if d=0 then writeln(a[i],' la so nguyen to') else writeln(a[i],' khong phai so nguyen to'); end; readln end..
<span class='text_page_counter'>(9)</span> 9. Có bao nhiêu phần tử trong mảng a có giá trị bằng k Input. A1 = 1 4 5 4 7 K=4d=2 Output K=6d=0 Xác định bài toán: - Input: mảng a, giá trị k - Output: số lượng phần tử trong mảng có giá trị bằng k Thuật toán: B1Nhập n, a1,a2, …, an , k B2: i 1, d 0 B3: nếu ai = k thì tăng d lên 1 đơn vị d d +1 B4: ii+1; B5: nếu i > n, đưa ra d và kết thúc. - B6: quay lại bước 3. Chương trình: program timkiem; uses crt; var a:array[1..15] of integer; n,i,d:byte; k:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,']= '); readln(a[i]); end; write(‘phan gia tri k = ’); readln(k); d:=0; for i:=1 to n do if a[i]=k then d:=d+1; writeln(‘so luong phan tu trong mang co gia tri bang ’,k,’ la: ‘,d); readln end..
<span class='text_page_counter'>(10)</span> 10.Tìm vị trí xuất hiện của giá trị X trong mảng a và thay thế X thành Y. Input A = 1 4 5 6 7, x = 5, y =10 Output A = 1 4 10 6 7 Xác định bài toán: - Input: mảng a, giá trị k - Output: giá trị X trong mảng được thay thế bằng giá trị Y Thuật toán: - B1Nhập n, a1,a2, …, an , x,y - B2: i 1 - B3: nếu ai = x thì ai y B4: ii+1; B5: nếu i > n, đưa ra mảng sau khi thay thế và kết thúc. - B6: quay lại bước 3. Chương trình: program thaythe; uses crt; var a:array[1..15] of integer; n,i:byte; x,y:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] ='); readln(a[i]); end; write('mang moi nhap la: '); for i:=1 to n do write(a[i]:4); writeln; write('nhap gia tri can tim: '); readln(x); write('nhap gia tri thay the: '); readln(y); for i:=1 to n do if a[i]=x then a[i]:=y; write('mang sau khi thay the: '); for i:=1 to n do write(a[i]:4); readln end..
<span class='text_page_counter'>(11)</span> 11. Tim kiếm các căp 2 phần tử gần nhau co tổng chia hết cho 10. Thay thế các phần tử đo băng tổng của chúng.. Input A = 2 4 6 14 16 24 Output A = 1 10 10 30 30 24 Xác định bài toán: - Input: mảng a, giá trị k - Output: mảng a sau khi thay thế Thuật toán: B1Nhập n, a1,a2, …, an , x,y B2: i 1 B3: nếu ai + ai+1 chia hết cho 10 thì ai và ai+1 nhận giá trị mới là tổng của chúng. B4: ii+1; - B5: nếu i > n, đưa ra mảng sau khi thay thế và kết thúc. - B6: quay lại bước 3. Chương trình: program thaythe; uses crt; var a:array[1..15] of integer; n,i:byte; x,y:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] ='); readln(a[i]); end; write('mang moi nhap la: '); for i:=1 to n do write(a[i]:4); writeln; for i:=1 to n do if (a[i] +a[i+1]) mod 10 = 0 then begin a[i]:=a[i]+a[i+1]; a[i+1]:=a[i]; end; write('mang sau khi thay the: '); for i:=1 to n do write(a[i]:4); readln end..
<span class='text_page_counter'>(12)</span> 12. Kiểm tra mảng co đối xứng hay không? A1 = 1 4 5 6 7 Input A2 = 1 2 3 2 1 A3 = 1 2 3 3 2 1 A1 không đối xứng Output A2 đối xứng A3 đối xứng Xác định bài toán: - Input: mảng a, giá trị k - Output: thông báo mảng a có đối xứng hay không. Thuật toán: - B1Nhập n, a1,a2, …, an - B2: i 1, dx true B3: nếu ai <> an-i+1 thì dx nhận giá trị mới là false. B4: ii+1; - B5: nếu i > n, o B5.1: kiểm tra nếu dx = true thì tb mảng đối xứng và kết thúc o B5.2: dx = false thì thông báo mảng không đối xứng và kết thúc - B6: quay lại bước 3. Chương trình: program doixung; uses crt; var a:array[1..15] of integer; n,i:byte; dx:boolean; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] ='); readln(a[i]); end; write('mang moi nhap la: '); for i:=1 to n do write(a[i]:4); writeln; dx:=true; for i:=1 to n do if a[i] <> a[n-i+1] then dx:=false; if dx= true then writeln('day la mang doi xung') else writeln('day khong phai mang doi xung'); readln end..
<span class='text_page_counter'>(13)</span> 13. Kiểm tra xem mảng a co phải la mảng tăng theo câp số công d hay không? A1 = 1 4 5 6 7 A2 = 1 4 7 10 A1 không phải cấp số cộng Output A2 là cấp số cộng có công sai là 3 Input. Xác định bài toán: - Input: mảng a, giá trị k - Output: thông báo mảng a có phải là cấp số cộng hay không? Thuật toán: - B1Nhập n, a1,a2, …, an - B2: i 2, d a2 – a1, csc true B3: nếu ai <> ai-1 + d, thì csc false. B4: ii+1; - B5: nếu i > n, o B5.1: kiểm tra nếu csc = true thì tb mảng là cấp số cộng, kết thúc o B5.2: csc = false thì tb mảng không là cấp số cộng và kết thúc - B6: quay lại bước 3. Chương trình: program cscong; uses crt; var a:array[1..15] of integer; d:integer; n,i:byte; csc:boolean; begin clrscr; write('nhap so luong ptu cua mang '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] = '); readln(a[i]); end; write('mang moi nhap la: '); for i:=1 to n do write(a[i]:4); writeln; d:=a[2]-a[1]; csc:=true; for i:=2 to n do if (a[i]-a[i-1]<>d) then csc:= false; if csc=true then writeln('day la cap so cong co cong sai = ',d) else writeln('day khong la cap so cong'); readln end..
<span class='text_page_counter'>(14)</span> 14. Chèn phần tử X vao vị trí k trong mảng. Input A = 1 4 5 6 7, k = 3, x = 10 Output A = 1 4 10 5 6 7 Xác định bài toán: - Input: mảng a, giá trị k - Output: mảng a sau khi chèn Thuật toán: - B1: Nhập n, a1,a2, …, an , x, k - B2: Chia mảng làm đôi, xuất mảng từ vị trí thứ nhất đến k -1 - B3: dịch chuyển các phần từ ở nửa cuối mảng đến i + 1 - B4: tại vị trí k của mảng nhận giá trị x B5: Đưa ra mảng sau khi thay thế và kết thúc. Chương trình: program chenso; uses crt; var a:array[1..15] of integer; n,i,k:byte; x:integer; begin clrscr; write('nhap so luong phan tu: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,'] ='); readln(a[i]); end; write('mang moi nhap la: '); for i:=1 to n do write(a[i]:4); writeln; write('nhap vi tri can chen: '); readln(k); write('nhap gia tri can chen: '); readln(x); write('mang sau khi thay chen: '); for i:=1 to k-1 do write(a[i]:4); for i:=n+1 downto k+1 do a[i]:=a[i-1]; a[k]:=x; for i:=k to n+1 do write(a[i]:4); readln end..
<span class='text_page_counter'>(15)</span> Bài 12: Kiểu xâu: Bài 1: nhập vào 2 xâu, đưa ra xâu có độ dài lớn hơn, và đưa ra xâu lớn hơn S1 = ‘tin hoc’ S2 = ‘hoc tin hoc’ Xâu dài hơn: S2 = ‘hoc tin hoc’ Output Xâu lớn hơn: S1 = ‘tin hoc’ Ý tưởng: - So sánh hai xâu, xâu nào lớn hơn thì xuất ra màn hình - So sánh hai xâu, xâu nào dài hơn thì xuất ra màn hình Chương trình: program sosanh; uses crt; var s1,s2:string; begin clrscr; write('Nhap xau thu nhat: '); readln(s1); write('Nhap xau thu hai: '); readln(s2); if s1> s2 then writeln(‘xau lon hon la:’,s1) else writeln(‘xau lon hon la:’,s2); if length(s1) > length(s2) then writeln(‘xau dai hon la:’,s1) else writeln(‘xau dai hon la:’,s2); readln end. Input.
<span class='text_page_counter'>(16)</span> Bài 2: nhập vào 1 xâu, đếm số kí tự chữ số có trong xâu Input Nam sinh ngay 21/10/1999 Output 8 Ý tưởng: - Khởi tạo một biến đếm d = 0 - Lần lượt đi từ đầu xâu đến cuối xâu kiểm tra xem kí tự nào là số từ 0 …9 nếu là số thì tăng biến đếm lên 1 đơn vị Chương trình: program demso; uses crt; var s1:string; i:byte; begin clrscr; write('nhap xau: '); readln(s1); d:=0; for i:=1 to length(s1) do if ('0'<=s1[i]) and (s1[i]<='9') then d:=d+1; writeln('ket qua: ',d); readln end..
<span class='text_page_counter'>(17)</span> Bai 3: nhâp vao 1 xâu, kiểm tra xâu đo co phải la xâu đối xứng hay không?. S1= ‘tin hoc’ S2= ‘tot’ S1 không đối xứng Output S2 là xâu đối xứng Ý tưởng: - Khởi tạo 1 xâu rỗng - Xâu rỗng vừa tạo lưu trữ xâu nhập vào theo thứ tự từ sau ra trước. - Nếu 2 xâu bằng nhau thì xâu nhập vào là xâu đối xứng và ngược lại Chương trình: program doixung; uses crt; var s1,s2:string; i:byte; begin clrscr; write('nhap xau: '); readln(s1); s2:=''; for i:=length(s1) downto 1 do s2:=s2+s1[i]; if s1 = s2 then writeln('day la xau doi xung') else writeln('day khong phai xau doi xung'); readln end. Input.
<span class='text_page_counter'>(18)</span> Bai 4: nhâp vao 1 xâu, đưa ra man hinh các chư số co trong xâu. Input Nam sinh nam 1999 – ki mao Output 1999 Ý tưởng: - Khởi tạo 1 xâu rỗng - Lần lượt đi từ đầu xâu đến cuối xâu kiểm tra xem kí tự nào là số từ 0 …9 nếu là số thì đưa vào xâu rỗng trên. Chương trình: program inso; uses crt; var s1,s2:string; i:byte; begin clrscr; write('nhap xau: '); readln(s1); s2:=''; for i:=1 to length(s1) do if ('0'<=s1[i]) and (s1[i]<='9') then s2:=s2+s1[i]; writeln('ket qua: ',s2); readln end..
<span class='text_page_counter'>(19)</span> Bai 5: nhâp vao 1 xâu, chuyển xâu vưa nh âp thanh xâu in hoa. Input tin hoc Output TIN HOC Ý tưởng: - Sử dụng câu lệnh chuyển chữ thường thành chữ hoa - Lần lượt đi từ đầu xâu đến cuối xâu và thực hiện chuyển chữ Chương trình: program chuyenchu; uses crt; var s:string; i:byte; begin clrscr; write('nhap xau: '); readln(s); for i:=1 to length(s) do s[i]:= upcase(s[i]); writeln('xau sau khi chuyen: ',s); readln end..
<span class='text_page_counter'>(20)</span> Bài 6: nhập vào 1 xâu, thay thế tất cả các cụm kí tự “anh” bằng cụm kí tự “em”. Ý tưởng: - Xác định vị trí của cụm kí tự anh - Xóa cụm kí tự anh - Chèn cụm kí tự em vào vị trí vừa xóa Chương trình: program thaychu; uses crt; var s:string; i,vt:byte; begin clrscr; write('nhap xau: '); readln(s); while pos('anh',s)<>0 do begin vt:=pos('anh',s); delete(s,vt,3); insert('em',s,vt); end; writeln('xau sau khi chuyen: ',s); readln end..
<span class='text_page_counter'>(21)</span> Bài 7: nhập vào 1 xâu, xóa các kí tự trắng thừa trong xâu (kí tự trắng thừa là kí tự ở đầu và cuối xâu, giữa hai từ có 2 kí tự trắng). Input ‘ hoc tin hoc ’ Output ‘hoc tin hoc’ Ý tưởng: - Xóa kí tự trắng ở đầu và cuối dãy trước. - Lần lượt đi từ đầu xâu đến cuối xâu nếu 2 kí tự liền nhau là 2 kí tự trắng thì xóa bớt đi 1 kí tự trắng Chương trình: program xoatrang; uses crt; var st:string; i,n: byte; begin clrscr; write('Nhap xau: '); readln(st); n:=length(st); if st[1]=' ' then delete(st,1,1); if st[n]=' ' then delete(st,n,1); for i:=1 to n do if (st[i]=' ') and (st[i+1]=' ') then delete(st,i,1); writeln('Ket qua la: ',st); readln end..
<span class='text_page_counter'>(22)</span> Bài 8: nhập vào họ tên của 1 người, điều chỉnh các kí tự đầu của các từ thành chữ in hoa Input kieu le quyen Output Kieu Le Quyen Ý tưởng: - Tìm vị trí của các dấu cách - Chuyển kí tự tiếp theo sau dấu cách thành kí tự in hoa - Chuyển kí tự đầu tiên trong xâu thành kí tự in hoa Chương trình: program doichu; uses crt; var st,ten:string; i: byte; begin clrscr; write('Nhap xau: '); readln(st); for i:=1 to length(st) do if st[i]=' ' then st[i+1]:=upcase(st[i+1]); st[1]:=upcase(st[1]); writeln('ket qua la: ',st); readln end..
<span class='text_page_counter'>(23)</span> Bài 9: nhập vào họ tên của 1 người, đưa ra phần tên. Input Kieu Le Quyen Output Quyen Ý tưởng: - Tìm vị trí của dấu cách cuối cùng (vt) - Đếm số kí tự của phần tên (độ dài của tên: dai) Copy từ xâu vừa nhập ra dai kí tự từ vị trí vt được tên. Chương trình: program tach_ten; uses crt; var st,ten:string; vt,dai,i: byte; begin clrscr; write('Nhap xau: '); readln(st); for i:=1 to length(st) do if st[i]=' ' then vt:=i+1; dai:=length(st) - vt + 1; ten:=copy(st,vt,dai); writeln('Phan ten la: ',ten); readln end..
<span class='text_page_counter'>(24)</span> Bài 10: Nhập vào một xâu, mã hóa xâu vừa nhập theo vòng tròn k =1. Input abc Output bcd Ý tưởng: - Tìm vị trí của dấu cách cuối cùng (vt) - Đếm số kí tự của phần tên (độ dài của tên: dai) Copy từ xâu vừa nhập ra dai kí tự từ vị trí vt được tên. Chương trình: program mahoa; uses crt; var st:string; i: byte; begin clrscr; write('Nhap xau: '); readln(st); for i:=1 to length(st) do st[i]:= succ(st[i]); {giới thiệu thêm cho HS} writeln('ket qua sau ma hoa: ',st); readln end..
<span class='text_page_counter'>(25)</span> Bài 11: nhập vào 1 xâu, thông báo ra màn hình chữ cái có trong xâu và số lượng của chúng.(không phân biệt chữ hoa, chữ thường); Input. ‘hoc tin hoc’ H:2 O:2 C:2 Output T:1 I:1 N:1 Ý tưởng: - Khởi tạo một mảng dem để đếm các kí tự - Chuyển kí tự trong dãy thành kí tự in hoa - Đi từ đầu xâu đến cuối xâu so xâu vừa nhập với bảng chữ cái in hoa, nếu xuất hiện kí tự nào thì thực hiện đếm kí tự đó. - Kí tự có trong xâu thì biến đếm kí tự đó > 0. Từ điều kiện này ta xuất ra màn hình kí tự và số lượng kí tự có trong xâu. Chương trình: program demkitu; Uses Crt; Var St:String; dem: Array['A'..'Z'] Of Byte; i:Byte; ch:Char; Begin clrscr; Write('Nhap xau St: '); Readln(St); For ch:='A' To 'Z' Do dem[ch]:=0; For i:=1 To Length(St) Do If (Upcase(St[i]) >='A') and (Upcase(St[i]) <='Z') Then dem[Upcase(St[i])]:=dem[Upcase(St[i])] +1; For ch:='A' To 'Z' Do If dem[ch]>0 Then Writeln(ch,' : ',dem[ch]); Readln; End..
<span class='text_page_counter'>(26)</span>