Tin học 8 Bài 9: Làm việc với dãy số

Nội dung bài học số 9 môn Tin học 8 được eLib biên soạn và tổng hợp dưới đây sẽ giúp các em học sinh bước đầu làm quen và tìm hiểu phương pháp làm việc cùng dãy số trong một số chương trình cơ bản. Mời các em cùng tham khảo!

Tin học 8 Bài 9: Làm việc với dãy số

1. Tóm tắt lý thuyết

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

- Dữ liệu kiểu mảng là 1 tập hợp hữu hạn các phần tử có thứ tự, mọi phần tử đều có chung 1 kiểu dữ liệu, gọi là kiểu của phần tử. việc sắp xếp thứ tự được thực hiện bằng cách gán cho mỗi phần tử 1 chỉ số.

- Khi khai báo 1 biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng.

- Ưu điểm sử dụng biến mảng: kiểu mảng để lưu nhiều dữ liệu liên quan đến nhau bằng 1 biến duy nhất và đánh số thứ tự cho các dữ liệu đó giúp cho việc xử lí các dữ liệu ấy đơn giản hơn.

Minh họa dữ liệu kiểu mảng

- Trong ví dụ trên, ta có:

+ Tên mảng: A

+ Chỉ số: i

+ Số phần tử 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[2]=12

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

- Biến mảng chỉ làm việc với kiểu số nguyên hoặc số thực.

- Cú pháp khai báo:

Var : array[..] of;

Lưu ý: chỉ số đầu ← chỉ số cuối và kiểu dữ liệu chỉ có thể là integer hoặc real

- Ví dụ: var Chieucao: array[1..20] of real;

+ Tên mảng: Chieucao

+ Kiểu dữ liệu: real

+ Số phần tử: 20

+ Chỉ số đầu: 1

+ Chỉ số cuối: 20

Truy cập tới các phần tử trong mạng

- việc truy cập tới phần tử bất kì của mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó trong mảng.

- việc truy cập ở đây bao gồm các hành động: gán giá trị, đọc giá trị và thực hiện tính toán với giá trị đó

- Ví dụ: khi khai báo biến mảng như sau: var Chieucao: array[1..20] of real;

+ Chieucao[2] := 5, gán giá trị cho phần tử thứ 2 trong mảng Chieucao bằng 5. Ta cũng có thể nhập giá trị này từ bàn phím.

+ Writeln(‘Chieu cao cua ban thu 1 la: ’,Chieucao[1]); lấy giá trị của phần tử thứ 1 trong mảng Chieucao và in ra màn hình.

+ TB:= (Chieucao[1] + Chieucao[2])/2, sử dụng giá trị phần tử thứ 1 và thứ 2 trong mảng Chieucao để tính chiều cao trung bình.

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

Ví dụ: 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. N cũng được nhập từ bàn phím.

Ý tưởng: Trước hết ta khai báo biến N để nhập số các số nguyên sẽ được nhập vào. Sau đó khai báo N biến lưu các số được nhập vào như là các phần tử của một biến mảng A. Ngoài ra, cần khai báo một biến i làm biến đếm cho các lệnh lặp và biến Max để lưu số lớn nhất, Min để lưu số nhỏ nhất.

Hướng dẫn giải

Chương trình mẫu:

program MaxMin;

uses crt;

Var

    i, n, Max, Min: integer;

    A: array[1..100] of integer;

Begin

    clrscr;

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

     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

              Max:=a[i];

           if Min>a[i] then

             Min:=a[i]

         End;

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

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

   readln;

End.

Trong chương trình này, chúng ta hãy lưu ý một số điểm sau: Số tối đa các phần tử của mảng  phải được khai báo bằng một số cụ thể (Ở đây là 100).

2. Bài tập minh họa

Khai báo mảng sau:

Mảng Tuổi

Hướng dẫn giải

var Tuoi: array[1..40] of integer;

Trong đó:

- Tên mảng: Tuoi

- Chỉ số đầu: 1

- Chỉ số cuối: 40

- Kiểu dữ liệu: Integer

- Số phần tử: 40

Lưu ý:

Kích thước của mảng phải được khai báo bằng một con số cụ thể.

3. Luyện tập

3.1. Bài tập tự luận

Câu 1: Số phần tử trong khai báo dưới đây là bao nhiêu?

Var hocsinh : array[12..80] of integer;

Câu 2: Cho khai báo mảng như sau: Var a : array[0..30] of integer ;

Để in giá trị phần tử thứ 20 của mảng một chiều A ra màn hình ta viết:

Câu 3: Để nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số nguyên ta dùng lệnh nào?

3.2. Bài tập trắc nghiệm

Câu 1: Cú pháp khai báo dãy số nào sau đây đúng nhất?

A. Var < tên dãy số > : array [ < chỉ số cuối > .. < chỉ số đầu >] of < kiểu dữ liệu >;

B. Var < tên dãy số > : array [ < chỉ số đầu > .. < chỉ số cuối > ] of < kiểu dữ liệu >;

C. Var < tên dãy số > : array [ < chỉ số cuối > : < chỉ số đầu > ] of < kiểu dữ liệu >;

D. Var < tên dãy số > : array [ < chỉ số đầu > .. < chỉ số cuối >] for < kiểu dữ liệu >;

Câu 2: Các cách nhập dữ liệu cho biến mảng sau, cách nhập nào không hợp lệ?

A. readln(B[1]);

B. readln(dientich[i]);

C. readln(B5);

D. read(dayso[9]);

Câu 3: Em hãy chọn phát biểu đúng khi nói về dữ liệu kiểu mả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

D. Tất cả ý trên đều sai

Câu 4: Cách khai báo biến mảng sau đây là đúng?

A. Var X: Array[3.. 4.8] of Integer;

B. Var X: Array[10 .. 1] of Integer;

C. Var X: Array[4 .. 10] of Real;

D. Var X: Array[10 , 13] of Real;

Câu 5: Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?

A. Dùng để truy cập đến một phần tử bất kì trong mảng

B. Dùng để quản lí kích thước của mảng

C. Dùng trong vòng lặp với mảng

D. Dùng trong vòng lặp với mảng để quản lí kích thước của mảng

Câu 6: Chọn câu phát biểu đúng về kiểu dữ liệu của mảng?

A. Có thể dùng tất cả các kiểu dữ liệu để làm kiểu dữ liệu của mảng

B. Kiểu dữ liệu của mảng chỉ có thể là kiểu số nguyên, số thực, kiểu logic, kiểu ký tự

C. Kiểu dữ liệu của mảng là kiểu của các phần tử của mảng, là Integer hoặc Real

D. Kiểu dữ liệu của mảng phải được định nghĩa trước thông qua từ khóa VAR

Câu 7: Khai báo mảng nào là đúng trong các khai báo sau đây:

A. var tuoi : array[1..15] of integer;

B. var tuoi : array[1.5..10.5] of integer;

C. var tuoi : aray[1..15] of real;

D. var tuoi : array[1 … 15 ] of integer;

4. Kết luận

Sau khi học xong bài 9 Làm việc với dãy số các em học sinh cần nắm được một số ý chính sau đây:

  • 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 và truy cập các phần tử của mảng;
  • Hiểu thuật toán tìm số lớn nhất, số nhỏ nhất của một dãy số.
  • Làm quen với việc khai báo và sử dụng các biến mảng.
  • Ôn luyện cách sử dụng câu lệnh lặp for do.
  • Củng cố các kĩ năng đọc, hiểu và chỉnh sửa chương trình.
  • Việc gán giá trị, nhập 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 được thực hiện thông qua chỉ số tương ứng của phần tử đó.
Ngày:14/09/2020 Chia sẻ bởi:Oanh

CÓ THỂ BẠN QUAN TÂM