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: 8.1 (137 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

 
Google sẽ độc bá CES 2013

Google sẽ độc bá CES 2013

Chỉ mới vài năm trước, gần như mọi sản phẩm điện toán xuất hiện tại Triển lãm CES đều chạy hệ điều hành Windows.

Chiến dịch bán hàng với Drupal Commerce và MailChimp

Chiến dịch bán hàng với Drupal Commerce và MailChimp

Measuring how much sales are generated from an email campaign becomes easy with Commerce MailChimp module.

Tài sản thừa kế từ Steve Jobs nên được bán ngay

Tài sản thừa kế từ Steve Jobs nên được bán ngay

Hiện tại chính là thời điểm cực kỳ thích hợp để đem số cổ phiếu của hai công ty lớn: Apple và Walt Disney do Steve Jobs để lại “đổi” ra 6,78 tỷ USD.

Công ty diệt chuột T&C

 

Diet con trung