Bài giảng Tin học Lớp 8 - Bài 9: Làm việc với dãy số (Tiết 1)
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học Lớp 8 - Bài 9: Làm việc với dãy số (Tiết 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_tin_hoc_lop_8_bai_9_lam_viec_voi_day_so_tiet_1.pptx
Nội dung text: Bài giảng Tin học Lớp 8 - Bài 9: Làm việc với dãy số (Tiết 1)
- KIỂM TRA BÀI CŨ
- Bài 9: Em thường nhìn thấy việc xếp hàng tập thể dục, xếp hàng để mua vé, xếp hàng vào lớp Qua những quan sát xếp hàng như trên em thấy sắp xếp công việc có lợi ích gì? Tập thể dục
- Bài 9: Sắp xếp công việc làm cho mọi hoạt độngTrong diễn lập ra trình một cũngcách trậtvây tựnếu và biết bố trí nhanhdữ liệu chóng theo dãy, việc khai báo và xử lý dữ liệu trở nên đơn giản rất nhiều. Thay vì phải viết nhiều câu lệnh giống nhau, ta có thể dùng vài câu lệnh lặp và nhường lại phần lớn công việc cho máy tính thực hiện
- Bài 9: 1. Dãy số và biến mảng Xét VD: Viết chương trình nhập điểm kiểm tra môn Tin của các học sinh trong một lớp Nhập và lưu điểm Var Diem1: cho 1 học sinh real; Readln(Diem1) ; Nhập và lưu điểm cho Var Diem1, Diem2: 2 học sinh real; Read(Diem1); Read(Diem2); Vậy nhập và lưu điểm cho 40 học sinh thì sao?
- Bài 9: 1. Dãy số và biến mảng Vậy nhập và lưu điểm cho 40 học sinh thì sao? Khai báo 40 biến: Var Diem1, Diem2, Diem3, , Diem40: Real; Sử dụng 40 câu lệnh nhập điểm: Read(Diem1); Read(Diem2); Read(Diem3); .;Readln(Diem40); Những hạn chế: Khi viết chương trình với bài toán cần - Phảinhập khai với báo lượng quá dữ nhiều liệu lớnbiến thì có những hạn chế gì? - Chương trình phải viết khá dài - Dễ nhầm lẫn giữa các biến khi viết chương trình
- Bài 9: 1. Dãy số và biến mảng Khắc phục hạn chế: - Lưu các biến có liên quan thành một dãy và đặt một tên chung - Đánh số thứ tự (chỉ Vậysố) cho phải các khắc biến đó - Sử dụng câu lệnh lặpphục để xử như lí dữ thế liệu nào? var Diem1, DiemDữ2 , Diemliệu 3, , Diem40 : Real; Read(Diem1); Read(Diem2);kiểu mảng Read(Diem3); .;Readln(Diem40); Die 7 9 5 10 Chỉm số - Với i=1 đến 40: hãy nhập Diem_i;
- Bài 9: 1. Dãy số và biến mảng * Dữ liệu kiểu mảng: - Là dãy hữu hạn các phần tử có cùng kiểu dữ liệu, được sắp xếp thứ tự bằngDữcách liệugán kiểucho mỗi mảngphần làtử gì?một chỉ số. A 8 12 5 9 1717 3 i 1 2 3 4 5 6 Trong đó: ❑ Tên mảng: A ❑ Chỉ số: i ❑ Số phần tử của mảng: 6 ❑ Kiểu dữ liệu của các phần tử: Kiểu số nguyên ❑ Khi tham chiếu đến phần tử thứ i, ta viết A[i] Ví dụ: A[5]=17
- Bài 9: 1. Dãy số và biến mảng * Biến mảng: - Là biến có kiểu dữ liệu là kiểu mảng - Giá trị của biến mảng là một mảng, tức là một dãy số (số nguyên hoặc số thực) - Mỗi số là giá trị của các phần tử tương ứng Giá trị của mảng Biến mảng A 17 13 20 10 9 Chỉ số 1 2 3 4 5
- Bài 9: 2. Ví dụ về biến mảng a.Cách khai báo mảng trong Pascal: Var Tên mảng : array [ ] of ; Tuoi 7 6 8 9 . 10 Chỉ số 1 2 3 4 . 40 Var Tuoi : array[1 40] of Integer; Chieuc 1.5 1.65 1.75 1.7 . 1.8 Chỉao số 2 3 4 5 . 20 Var chieucao: array[2 20] of Real;
- Bài 9: 2. Ví dụ về biến mảng a. Khai báo mảng một chiều trong Pascal: Var Tên mảng : array[ ] of ; Trong đó: - Tên mảng: Do người lập trình đặt - array, of: Là từ khóa của chương trình - Chỉ số đầu, chỉ số cuối: Là 2 số nguyên, thỏa mãn: chỉ số đầu ≤ chỉ số cuối giữa hai chỉ số là dấu - Kiểu dữ liệu: Là kiểu của các phần tử, là Integer hoặc Real - Số phần tử = chỉ số cuối – chỉ số đầu + 1
- Bài 9: 2. Ví dụ về biến mảng a) Cách khai báo mảng trong Pascal: Ví dụ: Cách khai báo đơn giản một biến mảng trong ngôn ngữ Pascal như sau: var Tuoi: array[21 80] of integer; Tên biến, Số lượng phần tử Kiểu dữ liệu chung tên mảng var Chieucao: array[1 50] of real; Chỉ số đầu Chỉ số cuối
- Bài 9: 2. Ví dụ về biến mảng a) Cách khai báo mảng trong Pascal: Var Tênmảng: array [ ] of ; Ví dụ: Hãy khai báo các mảng sau: 1/ Mảng Diem gồm 40 phần tử thuộc kiểu dữ liệu số thực? Var diem : array[1 40] of real; 2/ Mảng A, B gồm 10 phần tử thuộc kiểu dữ liệu số nguyên? Var A: array[1 10] of integer; Var A ,B: array[1 10] of integer; B: array[1 10] of integer;
- Bài 9: 2. Ví dụ về biến mảng a) Cách khai báo mảng trong Pascal: Câu lệnh khai báo biến mảng sau đây máy tính có thực hiện được không? Var N : integer; Không xác định A : array[1 N] of real; KHÔNG Lưu ý: - Kích thước của mảng phải được khai báo bằng một con số cụ thể
- Bài 9: Lưu ý: Kích thước của mảng phải được khai báo bằng một con số cụ thể
- Bài 9: 2. Ví dụ về biến mảng a) Cách khai báo mảng trong Pascal: Tênmảng: array [ ] of ; b) Truy cập đến giá trị phần tử trong mảng: Cú pháp: Tên mảng [Chỉ số] VD: DiemTin[1] → Tham chiếu tới phần tử thứ nhất của mảng DiemTin
- Bài 9: 2. Ví dụ về biến mảng b) Truy cập đến giá trị phần tử trong mảng: Cú pháp: Tên mảng [Chỉ số] Ví dụ1: Cho mảng A chứa các giá trị sau: 2 5 7 1 10 3 4 5 6 7 - Xác định các giá trị của: A[1], A[3], A[5], A[10] ? A[1], A[10]: không xác định A[3]=2; A[5]=4
- Bài 9: 2. Ví dụ về biến mảng b) Truy cập đến giá trị phần tử trongCó thểmảng thực: hiện các thao tác nào với các phần tử trong mảng? Cú pháp: Tên mảng [Chỉ số] Ví dụ 2: Cho các câu lệnh sau: A[3]:=2; A[3]=2 A[4]:=5; A[4]=5 A[6]:=A[3]+A[4]; A[6]=7 Giá trị của các phần A[3], A[4], A[6] sẽ là bao nhiêu? - Có thể gán giá trị, đọc giá trị và thực hiện tính toán với các phần tử trong mảng
- Bài 9: 2. Ví dụ về biến mảng b) Truy cập đến giá trị phần tử trong mảng: Ví dụ: Gán giá trị cho 40 phần tử của mảng DiemTin DiemTin[1]:=5; DiemTin[2]:=7; DiemTin[40]:=10; Viết chương trình khá dài Hoặc Readln(DiemTin[1]); For i:=1 to 40 do Readln(DiemTin[i]); Readln(DiemTin[2]); Readln(DiemTin([40]); For i := to do Readln(Tenmang[i]);
- Bài 9: 2. Ví dụ về biến mảng c. Nhập giá trị cho mảng A 7 5 8 6 9 10 9 với nn = 7 - Sử dụng lệnh Read (Readln) kết hợp với For do. Các bước Thể hiện bằng pascal Write(‘ Nhap vao so HS:’); 1. Nhập số phần tử của mảng. Readln(n); For i:=1 to n do 2. Nhập vào giá trị từng phần tử Begin của mảng (A[i]). write(‘Diem cho HS thu ’ ,i, ’ : ’); Sử dụng cấu trúc readln(A[i]); lặp để nhập dữ liệu end;
- Bài 9: 2. Ví dụ về biến mảng d. In giá trị các phần tử của mảng: Ví dụ: In giá trị của 40 phần tử trong mảng DiemTin For i:=1 to 40 do Writeln(DiemTin[i]); DiemTin 88 6 7 66 . . . . Chỉ số 1 2 3 4 . i . 40 DiemTin[1] = 8 DiemTin[4] = 6 For i:= to do Writeln(Tenmang[i]);
- Bài 9: 2. Ví dụ về biến mảng d. In giá trị các phần tử của mảng: Sử dụng lệnh Write (Writeln) kết hợp với For do. - Thông báo Writeln(‘ Điểm của lớp : ’); - In giá trị của For i:=1 to n do từng phần tử Write(A[i]:7); - Sử dụng cấu trúc lặp để in dữ liệu Kết quả trên màn hình: Điểm của lớp: 7 5 8 6 9 10 9
- Bài 9: 3. Tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số: Bài toán: Viết chương trình nhập N số nguyên từ bàn phím và in ra màn hình số nhỏ nhất và số lớn nhất. EmTHUẬT hãy nêu TOÁN • B1:thuật max:=a; toán min:=a;để tìm i:=1; • B2: sối:= nhỏi+1; nhất và • B3:số Nếu lớn i nhất> n, trongchuyển đến bước 5.dãy số? • B4: Nếu ai > max thì max:=ai; ai < min thì min :=ai.Quay lai bước 2. • B5: Kết thúc thuật toán.
- Program vd1; Uses crt; Var i, n, Max, Min: integer ; Khai báo biến mảng A: Array[1 100] of Integer ; BEGIN Clrscr; write(‘ Nhap so phan tu cua day so: n= ’) ; readln(n) ; For i := 1 to n do Begin Nhập giá trị cho mảng write(‘ Nhap so thu ‘,i,’ : ‘) ; readln(A[i]) ; End; Max:=A[1]; For i := 2 to n do If A[i]>Max Then Max := A[i]; Writeln(‘ So lon nhat la max = ', Max) ; Min:=A[1]; For i := 2 to n do Tìm số lớn nhất và nhỏ If A[i]<Min Then Min := A[i]; nhất Writeln(‘ So nho nhat la Min = ', Min) ; Readln ; END.
- Ch¬ng tr×nh ch¹y vµ cho kÕt qu¶ nh sau: Nhap so phan tu cua day so: n= 7 Nhap so thu 1 : 7 Nhap so thu 2 : 9 Nhap so thu 3 : 4 Nhap so thu 4 : 6 Nhap so thu 5 : 9 Nhap so thu 6 : 8 Nhap so thu 7 : 5 So lon nhat la Max = 9 So nho nhat la Min = 4
- Kiến thức cần nhớ Củng cố
- Bài 9: Bài tập củng cố Bài 1: Em hãy chọn đáp án đúng: A. Dữ liệu kiểu mảng là tập hợp các phần tử không có thứ tự và mọi phần tử có cùng một kiểu dữ liệu. B. Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mỗi một phần tử trong mảng có thể có các kiểu dữ liệu khác nhau . C. Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mọi phần tử có cùng một kiểu dữ liệu.
- Bài 9: Củng cố Bài 2: Cách khai báo biến mảng sau đây đúng hay sai? Khoanh tròn vào chỗ sai (nếu có). a) Var X: Array[10 , 13] of Real; a) Sửa dấu , thành dấu b) Var X: Array[3 4.8] of Integer; b) Sửa 4.8 thành số nguyên c) Var X: Array[10 1] of Integer; c) Chỉ số cuối phải >= chỉ số đầu d) Var X: Array[4 10] of Real; d) Đúng
- 1 V A R 2 R E A D 3 R E A L 4 M A X 5 N G U Y Ê N Có CóCó6 chữ 44 Cóchữchữ cái: 3 cái: cái: chữChỉ Là Là cái:số câu từđầu, Là khóa lệnh từchỉ khóa trong trongsố cuối để chương chương khai trong báo trìnhkhai trình biến báoPascal Pascal mảng Có 3 chữ cái: Là tên của hàm tìm giá trị lớn nhất? dùng để dùngdừngThường đểchươngtrong thể là chươnghiện những trình những chờ trìnhsố .? tabiến Pascal? nhập kiểu giá thực? trị cho biến?
- Bài 9: - Học bài cũ - Tìm hiểu thuật toán tìm giá trị lớn nhất, nhỏ nhất của dãy số (xem lại ví dụ 6 trang 43 SGK) - Về nhà làm các bài tập 2, 4, 5 trang 79 SGK
- Xin chân thành cảm ơn sự chú ý theo dõi của các học viên