Bài giảng Tin học Lớp 11 - Bài 13: Bài tập mảng một chiều - Trường THCS & THPT Mỹ Hòa Hưng

Bài 2. Nhập vào một dãy số nguyên, sắp xếp dãy theo trình tự không giảm.

INPUT: Nhập số nguyên dương n và dãy n số nguyên dương a1,a2,...,an.

OUTPUT: Dãy số được sắp xếp theo trình tự không giảm.

Các em hãy cho biết để giải bài toán trên, ở lớp 10 chúng ta dùng thuật toán gì?

Là Thuật toán tráo đổi kiểu nổi bọt từ trên xuống!
ppt 15 trang minhlee 14/03/2023 540
Bạn đang xem tài liệu "Bài giảng Tin học Lớp 11 - Bài 13: Bài tập mảng một chiều - Trường THCS & THPT Mỹ Hòa Hưng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pptbai_giang_tin_hoc_lop_11_bai_13_bai_tap_mang_mot_chieu_truon.ppt

Nội dung text: Bài giảng Tin học Lớp 11 - Bài 13: Bài tập mảng một chiều - Trường THCS & THPT Mỹ Hòa Hưng

  1. Bài 13 Giáo án điện tử tin học lớp 11
  2. thuật toán tìm max Quả này mới lớn ồ!T ìQuảm ra Quả này nhất nàyquả lớn lớn lớn nhất nhấthơn rồi! MAX
  3. Program Tim_Max; Uses crt; Type dayso = Array[1 250] of integer; Var A : dayso ; i,n,max,csmax : integer; BEGIN Clrscr; write(‘ Nhap vao so phan tu cua day so : ’) ; readln(n) ; For i := 1 to n do Begin write(‘ Phan tu thu ‘,i,’ = ‘) ; readln(A[i]) ; End; Max := A[1[ ; csmax :=1 ; For i := 1 to n do If (A[i]>max) Then begin max := a[i]; csmax=i; end; Writeln(‘ Gia tri cua phan tu Max : ’,Max) ; Writeln(‘ Chi so cua phan tu Max : ’, csmax) ; Readln ; END.
  4. Bài 2. Nhập vào một dãy số nguyên, sắp xếp dãy theo trình tự không giảm. * INPUT: Nhập số nguyên dơng n và dãy n số nguyên dơng a1,a2, ,an. * OUTPUT: Dãy số đợc sắp xếp theo trình tự không giảm.
  5. Cho dãy số sau: 3 2 9 7 6 Giả sử:  Mỗi phần tử đợc xem nh một bọt nớc;  Trọng lợng của bọt nớc thứ i là giá trị của A[i]. Lợt 2:1: •i chchạyạy từ đầu dãy đến vị 3 trí [cuối dãydãy-1-]2] (bỏ qua phần tử cuối). •Khi a[i]>a[i+1] tức là bọt 2 •nSauớc bênlợt thứtrênhainặngbọthơnnớcbọtcó ntrọngớc bênlợngdớilớn=>thứbọt nhaiớc 9 trênnằm chsátìmtrênxuốngbọtvànớcbọtlớnn- •ớcnhấtQuábên.trìdnhới nổiduyệt,lên tráo(tráo đổiđổi 7 vịđợctrí)lặp. đi lặp lại cho đến •Saukhi lchỉợt thứcònnhất,duyệtbọt nhaiớc 6 cóphầntrọngtử lvàợngthulớnđnhấtợc dãysẽ chkhôngìm xuốnggiảm.đáy.
  6. PROGRAM Sapxep; Uses crt; Type dayso = Array[1 250] of integer; Var Khai báo mảng 1 chiều i, j , n , tg : integer; A : dayso; BEGIN Clrscr; write(‘ Nhap vao so phan tu cua day so : ’); readln(n); For i := 1 to n do Nhập mảng 1 chiều Begin write(‘ Phan tu thu ‘,i,’ = ‘); readln(A[i]); end; For j := n downto 2 do For i:= 1 to j-1 do Xử lí mảng bằng thuật If A[i]>A[i+1] Then begin toán nổi bọt Tg := A[i]; A[i]:=A[i+1]; A[i+1]:=Tg; end; Writeln(‘ Day so duoc sap xep ’); For i:=1 to n do Write(A[i]:5); In kết quả Readln; END.
  7.  Cách 1: Tìm kiếm tuần tự Lần lợt từ số hạng thứ nhất, so sánh giá trị số hạng đang xét với k cho đến khi gặp đợc số hạng bằng k, hoặc dãy đã đợc xét hết và không có số hạng nào có giá trị bằng k. Các em hãy nêu các cách Tim_thay := false; để giải bàiTừ toán ý tởng trênFor hãy i := 1 to n do trên ?viết đoạn chơng trình bằng PASCALIF A[i] = k then để tìm số hạng của Begin dãy có giá trị bằng Tim_thay:=true; k? cs:=i; break; end; IF tim_thay then writeln(‘Chi so tim duoc: ’,i) else writeln(‘Khong tim thay’);
  8. Vì dãy A là dãy tăng, ta thực hiện thu hẹp nhanh phạm vi tìm kiếm bằng cách so sánh k với A[giua] và xét các trờng hợp: - A[giua]=k  tìm thấy chỉ số giữa và kết thúc; - A[giua]>k  Thu hẹp về phía bên trái (Cuối = Giữa -1); - A[giua] k) then Cuoi := Giua – 1 else Dau := Giua +1; end; IF Tim_thay then Writeln(‘ Chi so tim duoc la : ’,Giua) Else Writeln(‘Khong tim thay’);