Pascal | Đếm số lần xuất hiện của giá trị X trong mảng A

Pascal | Đếm số lần xuất hiện của giá trị X trong mảng A

Đếm số lần xuất hiện của giá trị X trong mảng A. Đếm số lần xuất hiện của các phần tử trong mảng.

Ví dụ: A:        1   5   6   7   4   1   5   5   1   1
            X:        6

Kết quả:          So lan xuat hien X la 1

So lan xuat hien cua cac phan tu:

1   ==>   4                   5   ==>   3
6   ==>   1                   7   ==>   1
4   ==>   1                   1   ==>   4       …….

Hướng dẫn:

+ Viết hàm đếm số lần xuất hiện củat một giá trị X nào đó được nhập vào, và xem như X nhà là tham số cho việc đếm số lần xuất hiện của nó trong A

+ Viết hàm in ra số lần xuất hiên của tất cả các phần tử trong mảng, sử dụng lại hàm đã xây dựng ở trước.

+ Xây dựng chương trình  giải quyết bài toán trên gồm:

-          Khai báo mảng A, N phần tử.

-          Nhập / Xuất mảng A với N phần tử (lưu ý, phải có định nghĩa hàm nhập /xuất mảng).

Hai hàm này được sử dụng kết quả của bài toán 3.1

-          Nhập giá trị X cần đếm số là xuất hiện.

-          In số lần xuất hiện của X trong A. Ý tưởng:

o       Khởi tạo biến đếm ban đầu là 0.

o       Sử dụng vòng lặp i, lặp từ 1 đến N.

o       Đối với mỗi phần tử A[i], nếu A[i] = X thì tăng biến đếm lên 1

o       Kết thúc, giá trị biến đếm là số lần xuất hiện cử X trong A.

-          In số lần xuất hiện của các phần tử trong A.

Các hàm xây dựng:

{ 1. Dem so phan tu A[i] trong mang bang gia tri X    }
Function DemPtuX(Var A : Mang20; N, X : Integer) : Integer;
Var i , Count : Integer;
Begin
            Count := 0;
            For i:=0 to N do
                        If ( A[i] = X ) then
                                    Count := Count + 1;
            DemPtuX := Count;
End;
 
{ 2. Dem so lan xuat hien cua tat ca cac phan tu trong mang  }
Procedure InSoLanXHcuaPTu( A:Mang20; N: Integer);
Var i :Integer;
Begin
    For i:=0 to N do
        Writeln( A[i] ,'  ===>  ', DemPtuX( A, N, A[i] ) );
End;

Source code chương trình chính:

BEGIN
            Clrscr;
            NhapMang1C( A, N );
            XuatMang1C( A, N );
            Write( 'Gia tri X:' );     Readln( X );
            Writeln( 'So lan xuat hien  trong A la:', DemPtuX(A, N, X) );
            InSoLanXHcuaPTu ( A, N );
            Readln;
END .
 
Cải tiến: Không in ra các phần tử được lặp lại.

Hướng dẫn: Đối với mỗi phần tử, trước khi in, kiểm tra xem nó xuất hiện trước nó hay không.

-          Nếu A[i] chưa xuất hiện trước nó, thì in ra số lần xuất hiện của A[i]

-          Nếu A[i] có xuất hiện trước nó, thì không in ra số lần xuất hiện của A[i] nữa, vì đã in ra số lần xuất hiện của phần tử có giá trị bằng A[i] rồi.

Mở rộng: In ra phần tử xuất hiện ít nhất và nhiều nhất trong mảng.

Bạn thấy bài viết này như thế nào?: 
Average: 7.1 (77 votes)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Sắp ra mắt thêm sàn giao dịch “mua theo nhóm”

Sắp ra mắt thêm sàn giao dịch “mua theo nhóm”

Trong tháng 1 tới đây, người tiêu dùng trực tuyến sẽ có thêm một lựa chọn mới với mô hình mua theo nhóm

Hướng dẫn tạo nút reply facebook đơn giản 1 phút

Hướng dẫn tạo nút reply facebook đơn giản 1 phút

Nhưng chúng ta đã biết lúc trước facebook chỉ cho bật nút reply comment facebook 

Chia sẻ 6 loại console giúp việc debugging của bạn dễ dàng hơn

Chia sẻ 6 loại console giúp việc debugging của bạn dễ dàng hơn

Trong quá trình coding ắt hẳn chúng ta không ít lần cần đến sự hỗ trợ của console để debugging. Một trong những lệnh hữu ích nhất và phổ biết nhất mà bất kì một lập trình viên nào cũng biết đến

Tomdesgin.vn

 

Drupal Services