1. Trang chủ
  2. » Giáo án - Bài giảng

mảng

5 102 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Tiết 8 Dữ liệu kiểu máy ( Mảng ). I. Mục đích yêu cầu. + Học sinh nắm đợc cú pháp và nguyên tắc hoạt động. II. Kiến thức trọng tâm. + Học sinh nắm đợc cú pháp và nguyên tắc hoạt động vận dụng làm bài tập III. Ph ơng pháp và đồ dùng dạy học . + Thuyết trình, máy tính thực hành. VI. Tiến trình dạy học. 1. ổn định lớp. Lớp Ngày giảng Tiết Sĩ số Ghi chú Tin Tin Tin 2. Kiểm tra bài cũ. 3. Nội dung giờ dạy 1 Hoạt động của thầy Nội dung giờ dạy * Nhập dãy sau đó tính tổng Program nhapday ; Uses crt; Type mang = Array[ 1 . . 100 ] of Integer; Var a:mang; S,n,i:integer; Begin Clrscr; Write( Nhap n = ); readln(n); Write(Nhap day ); For i := 1 to n do Begin Write(a[,i,]= ); Readln(a[i]); End; S := 0; For i := 1 to n do S := S + a[i]; Writeln( Tong S = , s); Readln; End. GV: Hớng dẫn học sinh 1. Khái niệm: Mảng là 1 dãy liên tiếp các ô nhớ có cùng tên cùng kiểu dữ liệu, chỉ phân biệt nhau bởi thứ tự các phần tử gọi là chỉ số. 2. Mảng 1 chiều * Khai báo: Type < Kiểu mảng > = Array[ tập chỉ số ] of < kiểu phần tử>; Var < Biến mảng> : < Kiểu mảng>; < Biến mảng > : Array [ Tập chỉ số ] of < kiểu phần tử>; * Trong đó: - Type, Var, Array, of là từ khoá. - Kiểu mảng, biểu mảng ta tự đặt. - Tập chỉ số: Thờng là 1 đoạn con của số nguyên hay ký tự. ví dụ 1 100, A Z, -10 10 - Kiểu phàn tử có thể là kiểu bất kỳ. Ví dụ: Type day = Array[1 100] of Real; Var m1,m2: day; a,b: Array[1 50 ] of Integer; c: Array [ -2 4 ] of Boolean; * Thao tác : - Lệnh gán cho hai mảng cùng kiểu m1 := m2; - Không có lệnh đọc và viết cho 1 biến mảng nói chung. - Chỉ có thể thao tác đến từng phần tử của mảng phụ thuộc vào kiểu dữ liệu của nó. - Để truy cập đến phần tử thứ i của mảng a là a[i] Read(a[i]); b[1] := a[1]; Write( b[1]); * Một số thao tác chính: - Nhập vào mảng A có n phần tử. For i := 1 to n do Begin Write(a[,i]= ); Readln (a[i]); End; Hoặc i := 0; Repeat i := i + 1; Write(a[,i]= ); Readln (a[i]); Until a[i] = 0; 2 * Tìm các số nguyên tố trong dãy Program Ngtoday ; Uses crt; Type mang = Array[ 1 . . 100 ] of Integer; Var a:mang; n,i,j:integer; Ok : Boolean; Begin Clrscr; Writeln(nhap day: ); For i := 1 to n do Begin Write(a[,i]= ); { goto(5+4*i,10) } Readln (a[i]); End; For i := 1 to n do Begin Ok := true; If a[i] < 2 then ok := false else For j := 2 to ( a[i] div 2 ) do If a[i] mod j = 0 then Begin Ok := false; Break; End; If a[i] = 2 then ok := false; If ok = true then Writeln(a[i], La ng to ) Else Writeln(a[i], La ng to ); End; Readln; End. * Tìm phàn tử max và vỉtí của nó Program timmax ; Uses crt; Type mang = Array[ 1 . . 100 ] of Integer; Var a:mang; n,i,j,max,vitri :integer; Ok : Boolean; Begin Clrscr; Writeln(nhap day: ); For i := 1 to n do Begin Write(a[,i]= ); { goto(5+4*i,10) } Readln (a[i]); - Duyệt mảng ( tính tổng); S := 0; For i := 1 to n do S := s + a[i]; Writeln( Tong la ,s); 3. Các thuật toán cơ bản a. Thuật toán tính tổng thoả mãn tính chất . - Khởi động s := 0; - Lặp từ phần tử đầu tiên tới phần tử cuối cùng và nếu phần tử và nếu phần tử đó thoả mãn tính chất đề ra thì cộng vào tổng. S := 0; For i := 1 to n do If < a[i] thoả mãn yêu cầu > then S := S + a[i]; b. Đếm số phần tử thoả mãn tính chất. - Khởi động: Đếm := 0; - Lặp từ phần tử đầu tiên tới phần tử cuối cùng và nếu phần tử đó thoả mãn tính chất đề ra thì tăng biến đếm Đếm := 0; For i := 1 to n do If < a[i] thoả mãn tính chất > then Đếm := Đếm+ 1; + Tính trung bình cộng thoả mãn tính chất nào đó: + Về điều kiện: 1. Nguyên tố. 2. Chính phơng. 3. Hoàn hảo. 4. Chia hết. 5. Số dơng. 6. Số âm Thì phải tìm cách biểu diễn = Biểu thức logic. c. Thuật toán tìm max, min. - Tìm Max. + B1: Max := phần tử đầu tiên. + B2: For i := 2 to n do If max < PT then max := PT. Max := a[1]; For i := 2 to n do If max < a[i] then max := a[i]; 3 End; Max := a[1]; vitri := 0; For i := 2 to n do If a[i] < max then Begin max := a[i]; vitri := i; end; Writeln(Phan tu max la: , max); Writeln(Vi tri max la: , vitri); Readln; End. * Sắp xếp 1 dãy theo chiều tăng dần. Program SX ; Uses crt; Type mang = Array[ 1 . . 100 ] of Integer; Var a:mang; n,i,j,tg :integer; Begin Clrscr; Writeln(nhap day: ); For i := 1 to n do Begin Write(a[,i]= ); { gotoxy(5+4*i,10) } Readln (a[i]); End; Tg:= 0; For i := 1 to n - 1 do For j := i + 1 to n do If a[i] < a[j] then Begin Tg := a[i]; a[i] := a[j]; a[j] := tg; end; Writeln( Day da SX : ); for i := 1 to n do begin gotoxy(5+4*i,10); Write(a[i]); End; Readln; End. d. Thuật toán sắp xếp. * Chèn trực tiếp. Duyệt For i := 1 to n 1 do For j := i+1 to n do If a[i] > a[j] then Begin tg:= a[i]; a[i] := a[j]; a[j] := tg; end; * Chèn chọn trực tiếp. Duyệt For i := 1 to n 1 do Begin k := i; For j := i+1 to n do If a[j] < a[k] then k := j; tg:= a[i]; a[i] := a[k]; a[k] := tg; end; * Bài tập: - Nhập vào số n sau đó nhập vào một dãy số nguyên. - Tìm số lớn nhất, nhỏ nhất, và cho biết vị trí của nó. - Tính tổng các số chẵn, lẻ. - Cho biết trong dãy có bao nhiêu số: 1. Nguyên tố, tính tổng các số là nguyên tố, 2. Chính phơng. 3. Hoàn hảo. 4. Chia hết. 5. Số dơng. 6. Số âm - Tìm số nhỏ thứ nhì của dãy. 4 V. Củng cố và nhắc nhở. a. Củng cố: Cách khai báo và thuật toán các thuật toán cơ bản. b. Nhắc nhở: - Tự cho ví dụ và làm các bài tập đã học. 5 . báo: Type < Kiểu mảng > = Array[ tập chỉ số ] of < kiểu phần tử>; Var < Biến mảng& gt; : < Kiểu mảng& gt;; < Biến mảng > : Array [. Lệnh gán cho hai mảng cùng kiểu m1 := m2; - Không có lệnh đọc và viết cho 1 biến mảng nói chung. - Chỉ có thể thao tác đến từng phần tử của mảng phụ thuộc

Ngày đăng: 07/07/2013, 01:26

Xem thêm: mảng

w