1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng Tin học 11 - Bài 13: Bài tập mảng một chiều

15 22 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 536,93 KB

Nội dung

• Khi a[i]>a[i+1] tøc lµ bät • Sau lượtthứ hai bäth¬n nước cã nướcbên trªn nÆng bät träng lượng lín hai nướcbên dưới =>thø bọt nước n»m s¸t trªn bät vµ nước lín trªn ch×m xuèng bät nước [r]

(1)Bµi 13 Gi¸o ¸n ®iÖn tö tin häc líp 11 Lop11.com (2) Bµi T×m phÇn tö lín nhÊt cña d·y sè nguyªn (víi n  250 vµ A[i]  500), nÕu d·y cã nhiÒu phÇn tö cïng gi¸ trÞ th× ®­ara chØ sè cña phÇn tö lín nhÊt ®Çu tiªn * INPUT: Nhập số nguyên dương n định vµ d·y n sè nguyªn H·y x¸c dươnga1,a2, ,an Input, Output và nªu thuËt to¸n t×m Max? * OUTPUT: ChØ sè vµ gi¸ trÞ cña phÇn tö lín nhÊt d·y Lop11.com (3) thuËt to¸n t×m max Qu¶ nµy lín nhÊt Qu¶ nµy míi lín nhÊt MAX Lop11.com å!T×m Qu¶ra nµy qu¶lín lín nhÊt h¬n råi! (4) NhËp n vµ d·y a1, ,an; Write(‘ Nhap vao so luong phan tu:’); Readln(n); For i:=1 to n begin write(‘ Phan tu thu ’ ,i, ’ = ’); readln(a[i]) end; Max  a1 ; i  1; Max:=a[1]; csmax:=1; NÕu i>N ®­ara MAX vµ chØ sè i => KÕt thóc; For i :=2 to n IF a[i]>max then begin max:=a[i]; csmax:=i; end; NÕu a[i]>max th× maxa[i], i  i+1 => quay lại bước3 Lop11.com (5) 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 := to n Begin write(‘ Phan tu thu ‘,i,’ = ‘) ; readln(A[i]) ; End; Max := A[1[ ; csmax :=1 ; For i := to n 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 Lop11.com (6) Chươngtrình chạy và cho kết nhưsau: Nhap vao so phan tu cua day so : Phan tu thu = Phan tu thu = Phan tu thu = 15 Phan tu thu = 25 Phan tu thu = 18 Phan tu thu = 12 Phan tu thu = 19 20 16 Gia tri cua phan tu Max : 25 Chi so cua phan tu Max : Lop11.com (7) Bµi 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ươngn và dãy n số nguyên dươnga1,a2, ,an * OUTPUT: D·y sè ®­ îc s¾p xÕp theo tr×nh tù kh«ng gi¶m Lop11.com (8) 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! Lop11.com (9) Cho d·y sè sau: Gi¶ sö:  Mçi phÇn tö ®­ ợc xem nhưmột bọt nước;  Trọng lượngcủa bọt nướcthứ i là giá trị A[i] Lượt2: 1: Lop11.com • i chạy từ đầu dãy đến vị trÝ [cuèi 2] (bá qua [cuèid·y d·y 1] phÇn tö cuèi) • Khi a[i]>a[i+1] tøc lµ bät • Sau lượtthứ hai bäth¬n nước cã nướcbên trªn nÆng bät träng lượng lín hai nướcbên =>thø bọt nước n»m s¸t trªn bät vµ nước lín trªn ch×m xuèng bät nước næi lªn (tr¸o • nhÊt Qu¸bªn tr×nh duyÖt, tr¸o đổi đổi trÝ) ®­ îcvÞlÆp lặp lại • Sau chØ lượtcòn thø nhÊt, duyÖtbät hainước cã träng phÇn tử lượng vµ thu lín®­ nhÊt îc d·y sÏ ch×m xuèng kh«ng giảm.đáy (10) Số phần tử các lượtduyệt (j) giảm từ n xuống hai phần tử C¸c em h·y cho For j := n downto biÕt Pascal nhËn xÐt ®­ îc thÓ For i := to j-1 T¹ihiÖn mçib»ng lượtlệnh duyÖt: g× IF A[i]>A[i+1] then ? từ đến số phần tử -1, - Cho i ch¹y nÕu A[i]>A[i+1] th× tráo đổi vị trí A[i] và A[i+1] th«ng qua biÕn trung gian (Tg) Begin Tg := A[i]; A[i] := A[i+1]; A[i+1]:=Tg; end; Lop11.com (11) PROGRAM Sapxep; Uses crt; Type dayso = Array[1 250] of integer; Var i, j , n , tg : integer; A : dayso; BEGIN Clrscr; write(‘ Nhap vao so phan tu cua day so : ’); readln(n); For i := to n Begin write(‘ Phan tu thu ‘,i,’ = ‘); readln(A[i]); end; For j := n downto For i:= to j-1 If A[i]>A[i+1] Then begin Tg := A[i]; A[i]:=A[i+1]; A[i+1]:=Tg; end; Writeln(‘ Day so duoc sap xep ’); For i:=1 to n Write(A[i]:5); Readln; Lop11.com END Khai b¸o m¶ng chiÒu NhËp m¶ng chiÒu Xö lÝ m¶ng b»ng thuËt to¸n næi bät In kÕt qu¶ (12) Bài Nhập vào dãy A tăng gồm N (N  250) số nguyên dươngkhác và sè k Cho biÕt vÞ trÝ cña sè h¹ng cã gi¸ trÞ b»ng k d·y (nÕu cã) ? * INPUT: Nhập số nguyên dươngn, dãy n số nguyên dươnga1,a2, ,an và số nguyên k * OUTPUT: ChØ sè i mµ = k hoÆc th«ng b¸o “Kh«ng t×m thÊy” nÕu kh«ng cã sè h¹ng nµo cña d·y A cã gi¸ trÞ b»ng k Lop11.com (13)  C¸ch 1: T×m kiÕm tuÇn tù Lần lượttừ số hạng thứ nhất, so sánh giá trị số hạng xét với k gặp đư îc sè h¹ng b»ng k, 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 Tim_thay := false; nªu c¸c c¸ch để giải bài Tõto¸n ý tưởngtrên Forh·y i := to n trên ?viết đoạn chương IF A[i] = k then tr×nh b»ng PASCAL để tìm số hạng 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’); Lop11.com (14)  C¸ch 2: T×m kiÕm nhÞ ph©n Víi k = 21 vµ d·y A gåm 10 sè h¹ng nh­sau: A 21 22 30 31 33 i 10 Lượtthứ nhất: agiữa là a5 = 9; < 21  vïng t×m kiÕm thu hÑp ph¹m vi tõ a6 a10; Lượtthứ hai: agiữa là a8 = 30; 30 > 21  vïng t×m kiÕm thu hÑp ph¹m vi tõ a6 a7; Lượtthứ ba: agiữa là a6 = 21; 21= 21  VËy chØ sè cÇn t×m lµ i = Lop11.com (15) 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 cách so sánh k với A[giua] và xét các trườnghợ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  Thu hÑp vÒ phÝa bªn ph¶i (§Çu = Gi÷a +1); Qu¸ tr×nh trªn ®­ îc lÆp l¹i chõng nµo cßn ch­at×m thÊy hoÆc Dau <= Cuoi Dau:=1; Cuoi:=n; tim_thay:=false; while ( Dau<= Cuoi) or NOT(tim_thay) Begin Giua:= (Dau+Cuoi) div 2; IF A[giua] = k then Tim_thay :=true else IF (A[Giua]>k) then Cuoi := Giua – else Dau := Giua +1; end; IF Tim_thay then Writeln(‘ Chi so tim duoc la : ’,Giua) Else Writeln(‘Khong tim thay’); Lop11.com (16)

Ngày đăng: 01/04/2021, 20:44

TỪ KHÓA LIÊN QUAN

w