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

Làm việc với dãy số Tin 8

11 298 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 11
Dung lượng 173,5 KB
File đính kèm Lam viec voi day so tin 8.rar (58 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo án dạy học theo chủ đề bài Làm việc với dãy số Tin 8 1. Kiến thức: Đạt chuẩn :  Biết được khái niệm mảng một chiều.  Biết cách khai báo mảng, nhập, in, truy cập các phần tử của mảng.  Nhận biết được ưu điểm khi sử dụng biến mảng trong chương trình.  Hiểu các thuật toán và các câu lệnh có sử dụng biến mảng. Trên chuẩn :  Viết được đoạn chương trình có sử dụng biến mảng ở bài toán đơn giản. 2. Kỹ năng:  Rèn luyện về khai báo, sử dụng biến.  Đọc, hiểu và chỉnh sửa đoạn chương trình

Trang 1

DẠY HỌC THEO CHỦ ĐỀ Tuần: 28-29

Tiết: từ tiết 53 đến tiết 55

Ngày soạn: 04/03/2018

Ngày dạy: Từ ngày 12/03/2018 đến ngày 21/03/2018

Tên chủ đề: LÀM VIỆC VỚI DÃY SỐ

Số tiết: 03

A BẢNG MÔ TẢ CÁC NĂNG LỰC CẦN PHÁT TRIỂN

Nội dung chủ đề Nhận biết Thông hiểu Vận dụng thấp Vận dụng cao

Bài 9: Làm việc

với dãy số

- Biết được khái niệm mảng một chiều

- Biết cách khai báo mảng, nhập,

in, truy cập các phần tử của mảng

- Nhận biết được

ưu điểm khi sử dụng biến mảng trong chương trình

- Hiểu các thuật toán và các câu lệnh

có sử dụng biến mảng

- Hiểu được việc gán giá trị, đọc giá trị

và thực hiện các tính toán với các giá trị của một phần

tử trong biến mảng được thực hiện thông qua chỉ

số tương ứng của phần tử đó

- Viết được các câu lệnh có sử dụng biến mảng

và câu lệnh ghép

Viết được chương trình hoàn chỉnh có

sử dụng biến mảng ở bài toán đơn giản

B HỆ THỐNG CÂU HỎI/BÀI TẬP THỰC HÀNH:

Biết :

1 Để giải bài toán nhập điểm cho 50 bạn học sinh cần khai báo biến như thế nào ?

2 Thay cho việc sử dụng nhiều biến để lưu nhiều dữ liệu có liên quan với nhau, có thể sử dụng một biến duy nhất hay không ?

3 Biến mảng là gì ?

4 Việc sắp xếp thứ tự cho các phần tử trong mảng như thế nào?

5 Để nhập điểm cho 50 bạn học sinh thì sử dụng câu lệnh gì ?

6 Kiểu dữ liệu của mảng là gì?

7 Cú pháp khai báo biến mảng ?

8 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

Trang 2

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

9 Để nhập điểm cho một lớp, mỗi học sinh có thể có nhiều loại điểm khác nhau, để

xử lý đồng thời các loại điểm thì cần khai báo thế nào ?

10 Cách khai báo và sử dụng biến mảng có lợi gì?

11 "Có thể xem biến mảng là một biến được tạo từ nhiều biến có cùng kiểu, nhưng chỉ dưới một tên duy nhất" Phát biểu đó đúng hay sai?

Hiểu :

1 Hãy khai báo các mảng sau :

a Mảng Diem gồm 40 phần tử thuộc kiểu dữ liệu số thực ?

b Mảng A, B gồm 10 phần tử thuộc kiểu dữ liệu số nguyên ?

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;

b) Var X: Array[3 4.8] of integer;

c) Var X: Array[10 1] of integer;

d) Var X: Array[4 10] of real;

e) Var X : Array[5 10.5] of real;

f) var a: array[1,20] of real;

g) var xau: array[255 1] of longint;

h) var so: array[1.1 1.10] of integer;

i) var kitu: array (1 255) of real;

j) var y: array[1, ,100] of integer;

3 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;

A : array[1 n] of real;

4 Hãy viết khai báo cho bài toán nhập điểm kiểm tra môn Tin học của n học sinh trong một lớp, với 1≤ n ≤ 50 và điểm số là các số thực

Vận dụng thấp :

1 Viết câu lệnh để nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử số nguyên ?

2 Hãy viết thuật toán để tìm số lớn nhất trong dãy số ?

3 Để in ra màn hình số thứ tự của các học sinh đạt điểm cao nhất lớp, bạn Thành đã viết đoạn chương trình Pascal sau đây :

Max :=0 ;

For i :=1 to n do If max < a[i] then

begin

Max := a[i] ; Writeln(‘So thu tu HS co diem cao nhat la :’ , i) ; end;

Tuy nhiên, khi chạy thử Thành thấy rằng đoạn chương trình trên không cho kết quả đúng Em hãy giải thích tại sao và viết lại đoạn chương trình đó cho đúng ?

Vận dụng cao :

1 Viết chương trình sử dụng biến mảng để tính giá trị trung bình của n số nguyên được nhập vào từ bàn phím ?

2 Viết chương trình tính tổng các phần tử lớn hơn 0 của dãy n số nguyên nhập vào từ bàn phím ?

Trang 3

3 Cho một dãy gồm n số thực và một số thực x Viết chương trình nhập n số thực đó

và đếm xem có bao nhiêu số trong dãy không lớn hơn x ?

4 Viết chương trình Pascal sử dụng biến mảng để nhập từ bàn phím các phần tử của một dãy số Độ dài của dãy cũng được nhập từ bàn phím

5 Viết chương trình nhập vào một mảng các số nguyên bất kỳ, in ra màn hình tổng các số chẵn trong mảng ?

HƯỚNG DẪN TRẢ LỜI CÂU HỎI VÀ BÀI TẬP THỰC HÀNH:

Biết:

1 Để giải bài toán nhập điểm cho 50 bạn học sinh thông thường cần khai báo 50 biến

Vì vậy cần phải tìm cách khai báo ngắn gọn và dễ dàng hơn

2 Thay cho việc sử dụng nhiều biến để lưu nhiều dữ liệu có liên quan với nhau, ta có thể sử dụng một biến duy nhất

3 Biến mảng là biến có kiểu dữ liệu là kiểu mảng

4 Việc sắp xếp thứ tự cho các phần tử trong mảng bằng cách gán cho mỗi phần tử 1 chỉ số

5 Để nhập điểm cho 50 bạn học sinh, ta có thể sử dụng câu lệnh lặp như sau :

For i := 1 to 10 do readln(A[i]) ;

6 Kiểu dữ liệu của mảng là số nguyên hoặc số thực

7 Cú pháp khai báo biến mảng :

Var <tên mảng> : array[<chỉ số đầu> <chỉ số cuối>] of <kiểu dữ liệu> ;

Trong đó : - Var, array, of : là từ khóa

- Chỉ số đầu, chỉ số cuối : là các số nguyên

- Chỉ số đầu ≤ chỉ số cuối

- Số phần tử = chỉ số cuối – chỉ số đầu + 1

- Kiểu dữ liệu: là kiểu số nguyên hoặc số thực

7 Đáp án C

8 Để nhập điểm cho một lớp, mỗi học sinh có thể có nhiều loại điểm khác nhau, để

xử lý đồng thời các loại điểm thì cần khai báo :

Var diemtoan, diemvan, diemli : array[1 50] of real ;

9 Cách khai báo và sử dụng biến mảng giúp cho việc viết chương trình ngắn gọn và

dễ dàng hơn

10 Phát biểu đó đúng

Hiểu :

1 Khai báo các mảng như sau :

a Var Diem: Array[1 40] of real ;

b Var A, B: Array[1 10] of integer;

2 a) Sai Sửa dấu , thành dấu

b) Sai Sửa 4.8 thành số nguyên>=3

c) Sai Chỉ số cuối phải >= chỉ số đầu

d) Đúng

e) Sai, sửa 10.5 thành số nguyên >=5

f) Sai Sửa dấu , thành dấu

g) Sai Chỉ số cuối phải >= chỉ số đầu

h) Sai, chỉ số đầu và chỉ số cuối phải là số nguyên

i) Sai, phải là dấu ngoặc vuông

j) Sai, cần thay hai dấu phẩy bằng hai dấu chấm

Trang 4

3 Không Các chỉ số phải là những giá trị cụ thể Tuy nhiên, nếu n là một hằng đã được khai báo thì câu lệnh này hợp lệ

4 Hãy viết khai báo cho bài toán nhập điểm kiểm tra môn Tin học của n học sinh trong một lớp, với 1≤ n ≤ 50 và điểm số là các số thực

Var Diem: array[1 50] of real ;

Vận dụng thấp :

1 For i := 1 to 10 do

begin

write(‘Nhap so thu’, i , ‘ :’) ; readln(a[i]) ;

end ;

2 Bước 1 : max ← a[1] ; i ← 1 ;

Bước 2 : Nếu a[i]>max, max ← a[i] ;

Bước 3 : i ← i + 1 ;

Bước 4 : Nếu i≤ n thì quay lại bước 2

Bước 5 : Thông báo giá trị max và kết thúc thuật toán

3 Khi đoạn chương trình kết thúc thì mới tính được giá trị max thì điểm kiểm tra cao nhất của n học sinh Trong quá trình vòng lặp for … do còn đang thực hiện thì max chỉ nhận giá trị của những phần tử a[i] lớn hơn chứa chưa phải là lớn nhất Do đó, việc in ra số thứ tự của học sinh ngay trong vòng lặp for…do lại sai (in ra sớm) Chỉ khi vòng lặp kết thúc thì max mới là giá trị lớn nhất

Có thể sửa lại như sau :

Max :=a[1] ;

For i :=2 to n do If max < a[i] then Max := a[i] ;

Writeln(‘So thu tu HS co diem cao nhat la :’) ;

For i :=1 to n do if a[i]=max then writeln(i, ‘ ’) ;

Vận dụng cao :

1 Var n, i :integer ;

Tb :real ;

a :array[1 100] of integer ;

Begin

Write(‘Nhap so phan tu cua mang, n= ’) ; readln(n) ;

Tb :=0 ;

For i :=1 to n do

begin

write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;

Tb := Tb+a[i] ; end;

Tb := Tb/n ;

Writeln(‘Trung binh cua’, n, ‘so nguyen la :’, Tb) ;

Readln ;

End

2 Program tong_duong ;

Var n, i :integer ;

s :integer ;

Trang 5

a :array[1 100] of integer ;

Begin

Write(‘Nhap so phan tu cua mang, n= ’) ; readln(n) ;

s :=0 ;

For i :=1 to n do

begin

write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;

if a[i] >0 then s :=s+a[i] ; end;

Writeln(‘Trung binh cua’, n, ‘so nguyen la :’, s) ;

Readln ;

End

3 Program demso ;

Var x :real ;

n, soluong, i :integer ;

a :array[1 100] of real ;

Begin

Write(‘Nhap so phan tu cua day, n= ’) ; readln(n) ;

Write(‘Nhap so x =’) ; readln(x) ;

For i :=1 to n do

begin

write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;

end ;

soluong :=0 ;

For i :=1 to n do

if a[i] <=x then soluong :=soluong+1 ; end;

Writeln(‘Trong day co ’, soluong, ‘phan tu nho hon’, x :6 :2) ;

Readln ;

End

4 Program dayso ;

Var n, i :integer ;

a :array[1 100] of integer ;

Begin

Write(‘Nhap so phan tu cua day, n= ’) ; readln(n) ;

For i :=1 to n do

begin

write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;

end ;

For i :=1 to n do writeln(‘a[‘, i, ‘]=’, a[i]) ;

Readln ;

End

5 Program tong_chan ;

Trang 6

Var n, i :integer ;

s :integer ;

a :array[1 100] of integer ;

Begin

Write(‘Nhap so phan tu cua mang, n= ’) ; readln(n) ;

s :=0 ;

For i :=1 to n do

begin

write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;

if (a[i] mod 2) = 0 then s :=s+a[i] ; end;

Writeln(‘Tong cac so chan la:’, s) ;

Readln ;

End

I MỤC TIÊU:

1 Kiến thức:

* Đạt chuẩn :

− Biết được khái niệm mảng một chiều

− Biết cách khai báo mảng, nhập, in, truy cập các phần tử của mảng

− Nhận biết được ưu điểm khi sử dụng biến mảng trong chương trình

− Hiểu các thuật toán và các câu lệnh có sử dụng biến mảng

* Trên chuẩn :

− Viết được đoạn chương trình có sử dụng biến mảng ở bài toán đơn giản

2 Kỹ năng:

− Rèn luyện về khai báo, sử dụng biến

− Đọc, hiểu và chỉnh sửa đoạn chương trình

3 Thái độ:

− Hs nghiêm túc trong học tập

II CHUẨN BỊ:

− GV: Chuẩn bị tốt giáo án, phòng máy

− HS:

+ Sách vở, dụng cụ học tập

+ Xem trước bài học

* RÈN NĂNG LỰC: NL tự học, NL giải quyết vấn đề, NL giao tiếp, NL sáng tạo,

NL hợp tác, NL sử dụng ngôn ngữ

III TIẾN TRÌNH LÊN LỚP:

1 Ổn định lớp: Kiểm tra sĩ số.

2 Kiểm tra bài cũ:

3 Bài mới:

Hoạt động 1: Dãy số và biến mảng

PP giải quyết vấn đề

GV: Đưa ví dụ 1 SGK để giới thiệu

1 Dãy số và biến mảng

Trang 7

cho học sinh cách sử dụng biến

mảng như thế nào ?

HS: Chú ý lắng nghe

HS: Phân tích bài toán để hiểu rõ

hơn vấn đề

1 Để giải bài toán này cần khai báo

biến như thế nào ?

2 Thay cho việc sử dụng nhiều biến

để lưu nhiều dữ liệu có liên quan với

nhau, có thể sử dụng một biến duy

nhất hay không ?

3 Biến mảng là gì ?

4 Việc sắp xếp thứ tự như thế nào?

Bằng cách gán cho mỗi phần tử 1

chỉ số

5 Kiểu dữ liệu của mảng là gì?

Từ phân tích trên, HS rút ra kết

luận

Ví dụ 1 Trong Pascal ta cần nhiều câu lệnh khai

báo và nhập dữ liệu dạng sau đây, mỗi câu lệnh tương ứng với điểm của một học sinh:

Var Diem_1, Diem_2, Diem_3,… : real;

Read(Diem_1); Read(Diem_2), Read(Diem_3);

Nếu số học sinh trong lớp càng nhiều thì đoạn khai báo và đọc dữ liệu trong chương trình càng dài Giả sử chúng ta có thể lưu nhiều dữ liệu có liên quan với nhau (như Diem_1, Diem_2, Diem_3, ở trên) bằng một biến duy nhất và đánh "số thứ tự" cho các giá trị đó, ta có thể sử dụng quy luật tăng hay giảm của "số thứ tự" và một vài câu lệnh lặp để

xử lí dữ liệu một cách đơn giản hơn, chẳng hạn:

- Với i = 1 đến 50: hãy nhập Diem_i;

- Với i = 1 đến 50: hãy so sánh Max với Diem_i;

Để giúp giải quyết các vấn đề trên, một kiểu dữ liệu được gọi là kiểu mảng

Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần

tử có thứ tự, mọi phần tử đều có cùng một kiểu dữ liệu, gọi là kiểu của phần tử Việc sắp thứ tự được thực hiện bằng cách gán cho mỗi phần tử một chỉ số:

Hình 40 Khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng

Giá trị của biến mảng là một mảng, tức một dãy số (số nguyên, hoặc số thực) có thứ tự, mỗi số là giá trị của biến thành phần tương ứng

Hoạt động 2: Tìm hiểu về cú pháp khai báo biến mảng

PP giải quyết vấn đề

GV: Đưa ra ví dụ về biến mảng

HS: Chú ý phân tích ví dụ và rút ra

kết luận

Cú pháp khai báo biến mảng ?

HS: Đưa ra cách khai báo biến mảng

trong Pascal

PP thảo luận nhóm

Bài tập:

1 Hãy khai báo các mảng sau :

a Mảng Diem gồm 40 phần tử

2 Ví dụ về biến mảng

Để làm việc với các dãy số nguyên hay số thực, chúng ta phải khai báo biến mảng

Ví dụ, cách khai báo đơn giản một biến mảng trong ngôn ngữ Pascal như sau:

var Chieucao: array[1 50] of real;

var Tuoi: array[21 80] of integer;

Với câu lệnh thứ nhất, ta đã khai báo một biến có tên Chieucao gồm 50 phần tử, mỗi phần tử là biến

có kiểu số thực Với câu lệnh khai báo thứ hai, ta có biến Tuoi gồm 60 phần tử (từ 21 đến 80) có kiểu số nguyên

Trang 8

thuộc kiểu dữ liệu số thực ?

b Mảng A, B gồm 10 phần tử thuộc

kiểu dữ liệu số nguyên ?

2 Các khai báo biến mảng sau đây

đúng hay sai ?

a Var X : Array[10,13] of integer;

b Var X : Array[5 10.5] of real;

3 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;

A : array[1 n] of real;

Lưu ý:

- Số phần tử của mảng phải được

khai báo bằng một con số cụ thể

Cách khai báo mảng trong Pascal như sau:

Tên mảng : array[<chỉ số đầu> <chỉ số cuối>] of

<kiểu dữ liệu>

Trong đó chỉ số đầu và chỉ số cuối là hai số nguyên hoặc biểu thức nguyên thoả mãn chỉ số đầu ≤ chỉ số cuối và kiểu dữ liệu có thể là integer hoặc real.

Hoạt động 3: Ví dụ về biến mảng

PP giải quyết vấn đề

GV: Đưa ví dụ 2

HS: Đọc hiểu ví dụ, phân tích bài

toán

- Thông thường để lưu điểm cho 50

bạn học sinh cần khai báo biến như

thế nào ?

- Có thể khai báo biến một cách

ngắn gọn và dễ dàng hơn hay

không ?

- Để nhập điểm cho 50 bạn học sinh

thì sử dụng câu lệnh gì ?

HS phân tích bài toán và rút ra kết

luận: Khi sử dụng biến mảng có thể

kết hợp với câu lệnh lặp

PP vấn đáp

GV: Mỗi học sinh có thể có nhiều

loại điểm khác nhau, để xử lý đồng

thời các loại điểm thì làm thế nào ?

HS: Khai báo nhiều mảng…

GV : Tương tự, hãy khai báo biến

mảng có tên DiemLi, DiemVan,

DiemToan ?

HS : Lên bảng làm bài

→ HS rút ra kết luận : Có thể khai

báo gộp các biến mảng

GV: Cách khai báo và sử dụng biến

mảng như trên có lợi gì?

HS: Tiết kiệm thời gian và công sức

Ví dụ 2 Tiếp tục với ví dụ 1, thay vì khai báo các

biến Diem_1, Diem_2, Diem_3, để lưu điểm số của các học sinh, ta khai báo biến mảng Diem như sau:

var Diem: array[1 50] of real;

Trước hết, có thể thay rất nhiều câu lệnh nhập và in

dữ liệu ra màn hình bằng một câu lệnh lặp Chẳng hạn, ta có thể viết:

For i:=1 to 50 do readln(Diem[i]);

để nhập điểm của các học sinh

Để so sánh điểm của mỗi học sinh với một giá trị nào đó, ta cũng chỉ cần một câu lệnh lặp, chẳng hạn

For i:=1 to 50 do

if Diem[i]>8.0 then writeln('Gioi');

Điều này giúp tiết kiệm rất nhiều thời gian và công sức viết chương trình

Hơn nữa, mỗi học sinh có thể có nhiều điểm theo từng môn học: điểm Toán, điểm Văn, điểm Lí, Để

xử lí đồng thời các loại điểm này, ta có thể khai báo nhiều biến mảng:

var DiemToan: array[1 50] of real;

var DiemVan: array[1 50] of real;

var DiemLi: array[1 50] of real;

hay

var DiemToan, DiemVan, DiemLi: array[1 50] of

real;

Khi đó, ta cũng có thể xử lí điểm thi của một học sinh cụ thể

Trang 9

viết chương trình

GV : Cho HS lên bảng làm một số

ví dụ

1 Nhập dữ liệu từ bàn phím cho

mảng A có 10 phần tử số nguyên ?

For i := 1 to 10 do readln(A[i]) ;

2 Hãy viết khai báo cho bài toán

nhập điểm kiểm tra môn Tin học của

n học sinh trong một lớp, với 1≤ n

≤ 50 và điểm số là các số thực

* Sau khi một mảng đã được khai

báo, chúng ta có thể làm việc với

các phần tử của nó như làm việc với

một biến thông thường như gán giá

trị, đọc giá trị và thực hiện các tính

toán với các giá trị đó thông qua tên

của biến mảng và chỉ số tương ứng

của phần tử

Ví dụ 2 cũng cho thấy rằng, chúng ta gán giá trị, đọc giá trị và tính toán với các giá trị của một phần tử trong biến mảng thông qua chỉ số tương ứng của phần tử đó Chẳng hạn, trong câu lệnh trên Diem[i]

là phần tử thứ i của biến mảng Diem

Ta có thể gán giá trị cho các phần tử của mảng bằng câu lệnh gán:

A[1]:=5;

A[2]:=8;

hoặc nhập dữ liệu từ bàn phím bằng câu lệnh lặp:

for i := 1 to 5 do readln(a[i]);

Hoạt động 4: Tìm giá trị lớn nhất và nhỏ nhất của dãy số

PP giải quyết vấn đề

GV: Đưa ví dụ 3

HS: Đọc, phân tích bài toán

- Đầu tiên gán giá trị số thứ 1 của

dãy số cho Max (ban đầu tạm thời

coi số thứ 1 là số lớn nhất tạm thời)

- So sánh số lớn nhất tạm thời này

với số thứ 2, nếu số thứ 2 lớn hơn số

thứ 1 thì gán giá trị của số thứ 2 cho

Max Như vậy, đến thời điểm này,

Max là số lớn nhất của số thứ nhất

và số thứ 2

- Cứ tiếp tục như vậy, đem so sánh

Max với tất cả các số còn lại, gặp số

nào lớn hơn Max thì lại gán giá trị

của số đó cho Max Sau khi so sánh

đến số cuối cùng của dãy số thì Max

chính là giá trị lớn nhất của dãy số

Hãy viết thuật toán để tìm số lớn

nhất trong dãy số ?

HS viết thuật toán

PP thảo luận nhóm:

GV cho HS thảo luận nhóm để

nghiên cứu cách viết chương trình

3 Tìm giá trị lớn nhất và nhỏ nhất của dãy số

Ví dụ 3 (SGK) Phần khai báo của chương trình có

thể như sau:

program MaxMin;

uses crt;

Var

i, n, Max, Min: integer;

A: array[1 100] of integer;

Phần thân chương trình sẽ tương tự dưới đây:

Begin

clrscr;

write('Hay nhap do dai cua day so, N = ');

readln(n);

writeln('Nhap cac phan tu cua day so:');

For i:=1 to n do Begin

write('a[',i,']='); readln(a[i]);

End;

Max:=a[1]; Min:=a[1];

for i:=2 to n do begin if Max<a[i] then Max:=a[i];

if Min>a[i] then Min:=a[i]

end;

Trang 10

dựa trên các nội dung sau:

- Các yêu cầu của bài toán

- Các biến đã khai báo trong chương

trình Tác dụng của từng biến

- Số phần tử trong mảng A

- Ý nghĩa các câu lệnh trong phần

thân chương trình

Các nhóm HS thảo luận và cử đại

diện trả lời

Bài toán làm tương tự khi tìm giá trị

nhỏ nhất

Trong chương trình cần lưu ý : Số

phần tử của mảng phải được khai

báo bằng một số cụ thể

write('So lon nhat la Max = ',Max);

write('; So nho nhat la Min = ',Min);

readln

End.

4 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 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; → Sai Sửa dấu , thành dấu

b) Var X: Array[3 4.8] of integer; → Sai Sửa 4.8 thành số nguyên>=3

c) Var X: Array[10 1] of integer; → Sai Chỉ số cuối phải >= chỉ số đầu

d) Var X: Array[4 10] of real; → Đúng

Bài 3: Để in ra màn hình số thứ tự của các học sinh đạt điểm cao nhất lớp, bạn Thành

đã viết đoạn chương trình Pascal sau đây :

Max :=0 ;

For i :=1 to n do If max < a[i] then

begin

Max := a[i] ; Writeln(‘So thu tu HS co diem cao nhat la :’ , i) ; end;

Tuy nhiên, khi chạy thử Thành thấy rằng đoạn chương trình trên không cho kết quả đúng Em hãy giải thích tại sao và viết lại đoạn chương trình đó cho đúng ?

Bài 4: Viết chương trình sử dụng biến mảng để tính giá trị trung bình của n số nguyên được nhập vào từ bàn phím ?

Bài 5: Viết chương trình tính tổng các phần tử lớn hơn 0 của dãy n số nguyên nhập vào từ bàn phím

5 Dặn dò:

- Học bài và làm bài tập sau : Cho một dãy gồm n số thực và một số thực x Viết chương trình nhập n số thực đó và đếm xem có bao nhiêu số trong dãy không lớn hơn x

Ngày đăng: 10/04/2018, 11:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w