Tại sao danh sách la kiểu dữ liệu có cấu trúc

Các thuộc tính của một véctơ là:

- Số lượng các phần tử, luôn được chỉ rõ bằng cách cho tập chỉ số. Tập chỉ số này thông thường được cho bởi một miền con các số nguyên, trong trường hợp đó, số lượng các phần tử bằng số nguyên cuối cùng - số nguyên đầu tiên + 1. Một cách tổng quát thì tập chỉ số có thể là kiểu liệt kê nào đó, trong trường hợp này, số lượng phần tử bằng số giá trị trong kiểu liệt kê. Cũng có những ngôn ngữ chỉ định rõ số lượng các phần tử như ngôn ngữ C chẳng hạn.

- Kiểu dữ liệu của mỗi một phần tử, thường được viết rõ trong khai báo.

- Chỉ số được sử dụng để lựa chọn mỗi một phần tử. Nếu tập chỉ số được cho bởi một miền con của tập các số nguyên thì số nguyên đầu tiên chỉ định phần tử đầu tiên số nguyên thứ 2 chỉ định phần tử thứ 2 ...Nếu tập chỉ số là một liệt kê thì giá trị đầu tiên trong liệt kê là chỉ số của phần tử đầu tiên. Nếu ngôn ngữ chỉ định rõ số lượng các phần tử thì 0 là chỉ số của phần tử đầu tiên.

Khai báo véctơ trong Pascal là ARRAY [] OF .

Ví dụ VAR a: ARRAY[1..10] OF real;

Khai báo này xác định 1 véctơ a có 10 phân tử là các số real. Các phần tử này được lựa chọn bởi các chỉ số từ 1 đến 10.

Miền giá trị của chỉ số không nhất thiết bắt đầu từ 1, ví dụ

Var b: ARRAY [-5..10] OF integer; Với khai báo này thì b là một véctơ có 16 phần tử [10 – [-5] + 1 = 16]. Các phần tử được lựa chọn nhờ các chỉ số từ -5 đến 10.

Miền giá trị của chỉ số không nhất thiết là miền con của số nguyên, nó có thể là một liệt kê bất kỳ [hoặc 1 miền con của một liệt kê]. Ví dụ:

Type

Ngay = [Chu_nhat, Hai, Ba, Tu, Nam, Sau, Bay];

var

c : ARRAY [Ngay] OF Integer ;

Khai báo này xác đinh véctơ c có 7 phần tử là các số integer, các phần tử của c được lựa chọn nhờ các “chỉ số” từ Chu_nhat đến Bay.

Khai báo véctơ trong ngôn ngữ C là [].

Ví dụ int d[10];

Khai báo này xác định véctơ d có 10 phần tử các số int, các phần tử này được lựa chọn nhờ các chỉ số từ 0 đến 9.

Các phép toán trên véctơ bao gồm:

Phép toán lựa chọn một phần tử của véctơ là phép lấy chỉ số, được viết bằng tên của véctơ theo sau là chỉ số của phần tử được lựa chọn đặt trong cặp dấu []. Như vậy phép lựa chọn một phần tử của véctơ là phép lựa chọn trực tiếp.

Ví dụ, với các khai báo trong các ví dụ thuộc phần đặc tả thuộc tính nói trên,

Các phần tử của véctơ a được lựa chọn bằng cách viết a[1], a[2], …, a[10].

Các phần tử của véctơ b được lựa chọn bằng cách viết b[-5], b[-4], …, b[10].

Các phần tử của véctơ c được lựa chọn bằng cách viết c[Chu_nhat], c[Hai], …, c[Bay].

Các phần tử của véctơ d được lựa chọn bằng cách viết d[0], d[1], …, d[9].

Chỉ số có thể là một hằng hoặc một biến [nói chung là một biểu thức], ví dụ a[i] hay a[i+2]. Nhờ chỉ số là một biểu thức nên việc lập trình trở nên đơn giản hơn nhiều nhờ tính khái quát của chỉ số.

Ví dụ để in ra giá trị của 10 phần tử trong véctơ a, thay vì ta phải viết 10 lệnh in các phần tử cụ thể theo kiểu writeln[a[1]]; writeln[a[2]]; writeln[a[3]]; … ta chỉ cần viết một lệnh for i:=1 to 10 do writeln[a[i]];

Các phép toán khác trên véctơ bao gồm các phép toán tạo và hủy bỏ véctơ, gán hai véctơ cho nhau và các phép toán thực hiện như các phép toán số học trên từng cặp 2 véctơ có cùng kích thước. Chẳng hạn phép cộng 2 véctơ [cộng các phần tử tương ứng]. Tùy thuộc vào ngôn ngữ mà các phép toán này có hoặc không có.

Tại sao mảng là kiểu dữ liệu có cấu trúc?

Đề bài

Tại sao mảng là kiểu dữ liệu có cấu trúc ?

Lời giải chi tiết

Mảng là kiểu dữ liệu có cấu trúc bởi vì mảng [một chiều, hai chiều hay nhiều chiều] là kiểu có cấu trúc được đề cập tới sớm nhất trong các ngôn ngữ lập trình. Nó được xây dựng từ những kiểu dữ liệu đã có theo quy tắc khuôn dạng do ngôn ngữ lập trình cung cấp. Nó được dùng để chỉ định một nhóm đối tượng cùng một tính chất nào đó. Chẳng hạn, vectơ là một nhóm các số mà mỗi số ta có thể xác định chỉ cần biết chỉ số. Như vậy, để khai báo kiểu mảng phải chỉ ra kiểu dữ liệu chung của các phần tử và kiểu chỉ số.

Loigiaihay.com

  • lý thuyết
  • trắc nghiệm
  • hỏi đáp
  • bài tập sgk

Tại sao mảng là kiểu dữ liệu có cấu trúc?

Các câu hỏi tương tự

Trong nhiều trường hợp, chúng ta cần lưu trữ một nhóm các biến dữ liệu khác nhau [int, float, char, string,…]. Ngôn ngữ C++ có hỗ trợ lập trình viên tạo ra kiểu dữ liệu cấu trúc [struct] để thực hiện lưu trữ như thế. Bài này sẽ giới thiệu định nghĩa và cách khai báo biến cấu trúc.

Cần viết chương trình lưu thông tin 1 sinh viên gồm các thông tin:

    • MSSV: kiểu chuỗi
    • Tên SV: kiểu chuỗi
    • Ngày sinh: kiểu chuỗi
    • Phái: kiểu luận lý
    • Điểm Toán, Lý, Hóa: kiểu số thực

Khai báo các biến lưu thông tin 1 sinh viên

    • string mssv; // “0306201123”
    • string hoten; // “Nguyễn Văn Minh”
    • string ngaysinh; // “16/08/2002”
    • bool phai; // true: Nữ, false: Nam
    • float Toan, Ly, Hoa; //8.5, 9, 7.5

Nếu cần lưu thông tin của 10 sinh viên hoặc hơn thì phải làm thế nào? Một sinh viên tạo 7 biến, không lẻ phải tạo 7×10 = 70 biến để lưu 10 sinh viên?

Giải pháp: Gom những thông tin của cùng một sinh viên thành một kiểu dữ liệu mới. Đó là kiểu dữ liệu cấu trúc [struct].

Kiểu dữ liệu cấu trúc [struct] là một nhóm các thành phần dữ liệu, được gom lại với nhau và đặt trong một tên. Trong đó:

– Mỗi thành phần dữ liệu gọi là trường dữ liệu hoặc thành viên.

– Các trường dữ liệu có thể có kiểu dữ liệu khác nhau.

– Lập trình viên tự định nghĩa kiểu dữ liệu cấu trúc gồm những thành phần dữ liệu.

Cú pháp định nghĩa một kiểu dữ liệu cấu trúc mới

struct

{

            ;

            …

            ;

};//lưu ý phải có dấu ;

Ví dụ:

struct DIEM { int x; int y; }; struct SINHVIEN { string mssv; string hoten; string ngaysinh; bool phai; float Toan, Ly, Hoa; };

Muốn sử dụng các kiểu cấu trúc đã định nghĩa để lưu trữ dữ liệu thì cần tạo ra các biến của kiểu cấu trúc đó. Cú pháp khai báo biến của kiểu cấu trúc là:

;

Ví dụ:

DIEM d1, d2; SINHVIEN sv1, sv2;

Định nghĩa kiểu cấu trúc và khai báo biến cấu trúc cùng lúc

Việc khai báo biến cấu trúc có thể được thực hiện đồng thời với việc định nghĩa cấu trúc. Muốn vậy, cần đặt danh sách tên biến cấu trúc cần khai báo sau dấu } theo cú pháp sau:

struct

{

            ;

            …

            ;

} , ,…, ;

Ví dụ:

struct DIEM { int x; int y; } d1, d2; struct SINHVIEN { string mssv; string hoten; string ngaysinh; bool phai; float Toan, Ly, Hoa; } sv1, sv2;

Khởi tạo giá trị cho biến cấu trúc

Cú pháp khởi tạo giá trị cho biến cấu trúc

= {,…,};

– Khởi tạo biến cấu trúc khi định nghĩa cấu trúc struct DIEM { int x; int y; } d1 = {5, 9}, d2 = {1, 1}; – Khởi tạo biến cấu trúc khi khai báo biến cấu trúc struct DIEM { int x; int y; }; DIEM d1 = {5, 9}; DIEM d2 = {1, 1};

Lưu ý: Có thể chỉ khởi tạo giá trị cho một số thành phần dữ liệu đầu tiên trong cấu trúc

DIEM d1 = {99};//chỉ khởi tạo giá trị cho x = 99, y không được khởi tạo. y sẽ nhận giá trị mặc định hoặc giá trị rác.

Thiếu dấu ; khi định nghĩa kiểu cấu trúc

struct DIEM { int x; int y; }//lỗi thiếu dấu ;

Khởi tạo biến cấu trúc sau khi khai báo sẽ gây lỗi

struct DIEM { int x; int y; }d1, d2; d1 = {1, 5};//lỗi DIEM d3; d3 = {1, 9};//lỗi

Không thể khởi tạo các thành phần cấu trúc trong khi định nghĩa cấu trúc

struct HINH_TRON { float x = 5.5; //Không hợp lệ float y = 3.2; //Không hợp lệ float BanKinh = 6; //Không hợp lệ }; Bài trước và bài sau trong môn học

Video liên quan

Chủ Đề