Bài giảng Bài tập mảng một chiều - Nguyễn Thái Quang
Nội dung
1. Bài củ
2. Mục tiêu
3. Bài toán 1
4. Bài toán 2
Bạn đang xem nội dung tài liệu Bài giảng Bài tập mảng một chiều - Nguyễn Thái Quang, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
TRÒ CHƠI Ô CHỮCâu 1:Câu 2:Câu 4:Câu 3: 12431. Đây là một ngôn ngữ lập trình cơ bản lấy tên một nhà Bác học nguời Pháp (cho biết tên ông ta)2. Trong khi viết chương trình để lặp với số lần biết trước ta dùng cấu trúc lặp? 4. Để nhập dữ liệu từ bàn phím và xuống hàng ta dùng từ khoá3. Để đưa dữ liệu ra màn hình ta dùng từ khoá P A S C A LF O R R E A D L NW R I T E Câu 5:B Y T E 5Em hãy cho biết đây là một từ khoá của một kiểu dữ liệu trong PascalTừHàng dọcARRAY5. Đây là một kiểu dữ liệu Nguyên nhưng có bộ nhớ nhỏ nhấtCho bieát chöùc naêng cuûa caùc ñoaïn chöông trình sau: Ñoaïn 1: Ñoaïn 2: Ñoaïn 3: Ñoaïn 4:Bµi 1. 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× ®a ra chØ sè cña phÇn tö lín nhÊt ®Çu tiªn. H·y x¸c ®Þnh Input, Output vµ nªu thuËt to¸n t×m Max?* INPUT: NhËp sè nguyªn d¬ng n vµ d·y n sè nguyªn d¬ng a1,a2,...,an.* OUTPUT: ChØ sè vµ gi¸ trÞ cña phÇn tö lín nhÊt trong d·y.QUANGTHIN08@YAHOO.COM.VNQu¶ nµy lín nhÊt Qu¶ nµy míi lín nhÊt å! Qu¶ nµy lín h¬n T×m ra qu¶ lín nhÊt råi! thuËt to¸n t×m maxMAX1. NhËp n vµ d·y a1,...,an;Write(‘ Nhap vao so luong phan tu:’);Readln(n);For i:=1 to n do begin write(‘ Phan tu thu ’ ,i, ’ = ’); readln(a[i]) end;2. Max a1 ; i 1; Max:=a[1]; csmax:=1; For i :=2 to n do IF a[i]>max then begin max:=a[i]; csmax:=i; end; 3. NÕu i>N ®a ra MAX vµ chØ sè i => KÕt thóc;4. NÕu a[i]>max th× maxa[i],i i+1 => quay l¹i bíc 3.thuËt to¸nthÓ hiÖn b»ng pascalQUANGTHIN08@YAHOO.COM.VNProgram 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.Nhap vao so phan tu cua day so :7Phan tu thu 1 = 15201625181219Gia tri cua phan tu Max : 25Chi so cua phan tu Max : 4 Ch¬ng tr×nh ch¹y vµ cho kÕt qu¶ nh sau:Phan tu thu 2 = Phan tu thu 3 = Phan tu thu 4 = Phan tu thu 5 = Phan tu thu 6 = Phan tu thu 7 = QUANGTHIN08@YAHOO.COM.VNBµi 2. ViÕt ch¬ng tr×nh nhËp vµo mét d·y sè nguyªn, sau ®ã 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.QUANGTHIN08@YAHOO.COM.VNC¸c em h·y cho biÕt ®Ó gi¶i bµi to¸n trªn, 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! QUANGTHIN08@YAHOO.COM.VN32976Cho 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; Lît 1:i ch¹y tõ ®Çu d·y ®Õn vÞ trÝ [cuèi d·y -1]Khi a[i]>a[i+1] tøc lµ bät níc bªn trªn nÆng h¬n bät níc bªn díi => bät níc trªn ch×m xuèng vµ bät níc bªn díi næi lªn (tr¸o ®æi vÞ trÝ).Sau lît thø nhÊt, bät níc cã träng lîng lín nhÊt sÏ ch×m xuèng ®¸y. Träng lîng cña bät níc thø i lµ gi¸ trÞ cña A[i]. Lît 2:i ch¹y tõ ®Çu d·y ®Õn vÞ trÝ [cuèi d·y - 2] (bá qua phÇn tö cuèi).Sau lît thø hai bät níc cã träng lîng lín thø hai n»m s¸t trªn bät níc lín nhÊt. Qu¸ tr×nh duyÖt, tr¸o ®æi ®îc lÆp ®i lÆp l¹i cho ®Õn khi chØ cßn duyÖt hai phÇn tö vµ thu ®îc d·y kh«ng gi¶m.NhËn xÐt: Sè phÇn tö ë c¸c lît duyÖt (j) sÏ gi¶m tõ n xuèng hai phÇn tö. T¹i mçi lît duyÖt: - Cho i ch¹y tõ 1 ®Õn sè phÇn tö -1, 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).C¸c em h·y cho biÕt trong Pascal nhËn xÐt 1 ®îc thÓ hiÖn b»ng lÖnh g× ? 1For j := n downto 2 do 2For i := 1 to j-1 do IF A[i]>A[i+1] then Tg := A[i];A[i] := A[i+1];A[i+1]:=Tg;Begin end; QUANGTHIN08@YAHOO.COM.VNKhai b¸o m¶ng 1 chiÒuNhËp m¶ng 1 chiÒuXö lÝ m¶ng b»ng thuËt to¸n næi bätIn kÕt qu¶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 := 1 to n do Begin write(‘ Phan tu thu ‘,i,’ = ‘); readln(A[i]); end; For j := n downto 2 do For i:= 1 to j-1 do 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 do Write(A[i]:5); Readln;END.Ch¬ng tr×nh pascalMoät laàn nöõa kính chuùc Thaày coâ vui veõ, haïnh phuùc vaø thaønh ñaït trong cuoäc soáng!Môøi Thaày Coâ nghæ
File đính kèm:
- BAI TAP MANG MOT CHIEU.ppt