Bài tập về kiểu mảng 1 chiều trong pascal

[KHAI MẶC HỘI KHỎE PHÙ ĐỔNG CẤP TRƯỜNG NĂM HỌC 2023-2024] ☘️ Sáng nay, ngày 05/11/2023 trường THPT Liên Hà tổ chức Lễ khai mạc Hội khỏe Phù Đổng cấp trường năm học 2023-2024. ☘️ Tham dự lễ khai mạc Hội khỏe Phù Đổng cấp trường có các thầy cô giáo trong Ban giám hiệu, Ban đại diện Cha mẹ học sinh các lớp cùng các thầy cô giáo, các giáo sinh thực tập và các em học sinh nhà trường.

  • Tài liệu hướng dẫn phòng ngừa, giảm thiểu trẻ em lao động trái quy định của pháp luật thông qua trường học

    20/12/2023TÀI NGUYÊNĐây là tài liệu tham khảo dùng cho cán bộ quản lý, giáo viên, nhân viên của cơ sở giáo dục phổ thông để từ đó có thể cụ thể hoá sự chỉ đạo của cấp trên cho phù hợp với điều kiện thực tiễn tại địa phương, nhà trường về công tác phòng ngừa, giảm thiểu lao động trẻ em thông qua trường học. Trong quá trình triển khai thực hiện công tác này, cơ sở giáo dục phổ thông cần kết nối với công tác giáo dục lao động, hướng nghiệp, phân luồng học sinh để đem lại hiệu quả tốt, tránh bệnh hình thức. Học sinh, phụ huynh học sinh và những người quan tâm có thể dùng Tài liệu này để tham khảo nhằm giúp cho trẻ em, học sinh có điều kiện tốt để duy trì học tập tại trường, phòng ngừa, giảm thiểu lao động trẻ em.

Sinh hoạt chuyên đề cụm trường thpt huyện đông anh

19/10/2023TÀI NGUYÊN[SINH HOẠT CHUYÊN ĐỀ CỤM TRƯỜNG THPT HUYỆN ĐÔNG ANH] ☘️ Thực hiện và triển khai sinh hoạt chuyên đề nội dung bài học theo chỉ đạo của Sở GD&ĐT Hà Nội và kế hoạch “ Nhà trường chung tay phát triển, thầy cô cùng sẻ chia” do Sở Giáo dục phát động; hoạt động chuyên môn nhằm hỗ trợ và giúp đỡ các nhà trường công tác dạy học Chương trình giáo dục phổ thông 2018, chiều 18/10/2023 cụm trường THPT huyện Đông Anh tổ chức buổi Sinh hoạt chuyên đề Cụm lần 1 năm học 2023-2024 các môn Giáo dục địa phương, Tiếng Anh, Toán, Địa lý, Ngữ Văn, Kinh tế - Pháp luật.

Bài toán số 3.2: Đế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:
      • Khởi tạo biến đếm ban đầu là 0.
      • Sử dụng vòng lặp i, lặp từ 1 đến N.
      • Đối với mỗi phần tử A[i], nếu A[i] = X thì tăng biến đếm lên 1
      • 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ài toán số 3.3: Tìm kiếm và thay thế. Tìm kiếm vị trí xuất hiện của x trên mảng A. Thay thế những giá trị Ai là x thành y.

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

X=5 Y=15

Kết quả: Vi tri xuat hien X la 1

Ket qua thay the: 1 15 6 7 4 1 15 15 1 1

Hướng dẫn:

  • Xây dựng hàm tìm kiếm giá trị X trong mảng A, N phần tử. Sử dụng vòng lặp từ 0 đến N-1 để kiểm tra tất cả các giá trị Ai, nếu bằng x thì trả về vị trí i tìm thấy. Nếu thoát vòng lặp mà không tìm thấy thì trả về là –1.
  • Xây dựng hàm thay thế giá trị x bằng y tại vị trí tìm thấy đầu tiên. Tương tự như tìm kiếm, nhưng khi tìm thấy thì tiến hành gán giá trị mới cho Ai là y.
  • Xây dựng hàm thay thế tất cả các giá trị x bằng y tại mỗi vị trí tìm thấy. Sử dụng vòng lặp duyệt qua tất cả các giá trị của Ai, nếu Ai bằng x thì tiến hành gán thành y.

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

{ 1. Ham tim kiem gia tri X trong mang A voi N phan tu } Function TimKiem [ A:Mang20; N:Integer; X:Integer ]:Boolean; Var Flag : Boolean;

   i:Integer;
Begin
  Flag:=False;
  For  i:=0  to N do
        Begin
                    If [A[i] = x] then
                      Begin
                                Flag:=True;
                                Break;              {Tim thay  ==> Tra ve vi tri tim thay }
                      End;
        End;
   TimKiem:=Flag;
End; { 2. Thay the phan tu X dau tien tim thay trong mang bang gia tri Y } Function ThayThe[Var A:Mang20;Var N, x, y:Integer]:Integer; Var i:Integer; Begin
   For i:=0 to N do
          If [A[i] = x] then
          Begin
  A[i] := y;               { Tim thay x ==> thay the thanh y }
              Break;                   { Cham dut qua trinh thay the}
          End;
   ThayThe := i;
End; { 3. Thay the tat ca cac phan tu co gia tri X tim thay bang gia tri Y } Procedure ThayTheTatCa [Var A:Mang20; Var N, x,y:Integer]; Var i:Integer; Begin
   For i:=0 to N do
          If[A[i] = x] then                    { Tim thay x ==> thay the thanh y }
                 A[i] := y;
End; Source code chương trình chính BEGIN
   NhapMang1C[A, N];                   { Ham nhap xuat khong lam lai nua }
   XuatMang1C[A, N];                    { Su du let qua o truoc  }
   Write['Gia tri x:']; Readln[x];
   If [TimKiem[A,N,x]] then
          Writeln[ 'Tim thay tai vi tri  trong mang A.', x, k ]
   Else
          Writeln[ 'Khong tim thay trong mang A', x ];
   Write['gia tri y:'];  Readln[y];
   ThayThe[A, N, x, y];
   Writeln['Ket qua thay the ',x, y];
   XuatMang1C[A, N];
   ThayTheTatCa[A, N, x, y];
   Writeln['Ket qua thay the tat ca la:',x, y];
   XuatMang1C[A, N];
   Readln;
END.

Mở rộng:

+ Tìm kiếm các cặp 2 phần tử gần nhau có tổng chia hết cho 10. Thay thế các phần tử đó bằng tổng của chúng.

Chủ Đề