Chương I MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH Chương IV KIỂU DỮ LIỆU CÓ CẤU TRÚC A Tóm tắt lý thuyết BÀI 11 KIỂU MẢNG 1 Kiểu mảng một chiều a Khái niệm Mảng một chiều là một dãy hữu hạn các phần tử có cùng k[.]
Chương IV : KIỂU DỮ LIỆU CÓ CẤU TRÚC A Tóm tắt lý thuyết: BÀI 11 KIỂU MẢNG Kiểu mảng chiều a Khái niệm - Mảng chiều dãy hữu hạn phần tử có kiểu Mảng đặt tên phần tử mang số Để mô tả mảng chiều cần xác định kiểu phần tử cách đánh số phần tử - Với mảng chiều ta quan tâm đến: Tên kiểu mảng chiều Số lượng phần tử mảng Kiểu liệu phần tử Cách khai báo biến mảng Cách tham chiếu đến phần tử b Khai báo mảng chiều - Cách 1: Khai báo trực tiếp: VAR : ARRAY [kiểu số] OF ; - Cách 2: Khai báo gián tiếp TYPE = ARRAY [kiểu số] OF ; VAR : ; - Trong đó: Kiểu số thường đoạn số nguyên liên tục có dạng n1 n2 (n1 Ta có cách sau: Cách 1: Var a: Array[1 100] Of Integer; Cách 2: Const Nmax = 100; Var a: Array[1 Nmax] Of integer; c Tham chiếu tới phần tử mảng - Để tham chiếu tới trúc: Tên_biến[chỉ số] phần tử mảng ta gọi theo cấu VD: Tham chiếu đến phần tử thứ 20 mảng A ta viết A[20] Câu : _ Phát biểu kiểu mảng phù hợp ? A.Là tập hợp số nguyên; B.Độ dài tối đa mảng 255; C Là dãy hữu hạn phần tử kiểu; (*) D.Mảng chứa kí tự; Câu : _ Hãy chọn phương án ghép Để khai báo số phần tử mảng PASCAL, người lập trình cần A.khai báo số số phần tử mảng; B.khai báo số bắt đầu kết thúc mảng; (*) C khai báo số kết thúc mảng; D.khơng cần khai báo gì, hệ thống tự xác định; Câu : _ Phát biểu số mảng phù hợp ? A.Dùng để truy cập đến phần tử mảng; (*) B.Dùng để quản lí kích thước mảng; C Dùng vòng lặp với mảng; D.Dùng vịng lặp với mảng để quản lí kích thước mảng; Câu : _ Phát biểu sau mảng khơng xác ? A.Chỉ số mảng khơng thiết 1; B.Có thể xây dựng mảng nhiều chiều; C Xâu kí tự xem loại mảng; D.Độ dài tối đa mảng 255; (*) Câu : _ Thế khai báo biến mảng gián tiếp ? A.Khai báo mảng ghi; B.Khai báo mảng xâu kí tự; C Khai báo mảng hai chiều; D.Khai báo thơng qua kiểu mảng có; (*) Câu : _ Phương án khai báo mảng hợp lệ ? A.mang : ARRAY[0 10] OF INTEGER; (*) B.mang : ARRAY[0 10] : INTEGER; C mang : INTEGER OF ARRAY[0 10]; D.mang : ARRAY(0 10) : INTEGER; Câu : _ Cho khai báo sau : a : array[0 16] of integer ; Câu lệnh in tất phần tử mảng ? A.for k := to 16 write(a[k]); B.for k := 16 downto write(a[k]); (*) C for k:= to 15 write(a[k]); D.for k := 16 down to write(a[k]); Câu : _ Cho khai báo mảng đoạn chương trình sau : Var a : array[0 50] of real ; k := ; for i := to 50 if a[i] > a[k] then k := i ; Đoạn chương trình thực cơng việc ? A.Tìm phần tử nhỏ mảng; B.Tìm phần tử lớn mảng; C Tìm số phần tử lớn mảng; (*) D.Tìm số phần tử nhỏ mảng; Câu : _ Cho khai báo mảng sau : Var m : array[0 10] of integer ; Phương án phần tử thứ 10 mảng ? A.a[10]; C a[9]; (*) B.a(10); D.a(9); Câu 10 : _ Hãy chọn phương án ghép Mảng kiểu liệu biểu diễn dãy phần tử thuận tiện cho A.chèn thêm phần tử; B.truy cập đến phần tử bất kì; (*) C xóa phần tử D.chèn thêm phần tử xóa phần tử; Câu 11 : _ Phát biểu sau ? A.Mảng chiều dãy hữu hạn số nguyên B.Mảng chiều dãy hữu hạn phần tử kiểu liệu (*) Câu Câu Câu Câu C Có thể dùng kiểu liệu chuẩn để đánh số cho phần tử mảng chiều D.Khi xây dựng kiểu mảng chiều, người lập trình khơng cần khai báo kiểu liệu phần tử mảng 12 : _ Phát biểu sau sai ? A.Mỗi phần tử mảng chiều đánh số, định nhờ số tương ứng B.Với khai báo xây dựng kiểu mảng chiều, biết mảng chứa tối đa phần tử (*) C Trong khai báo xây dựng kiểu mảng chiều, biết cách đánh số cho phần tử mảng D.Chỉ số đánh tuần tự, liên tiếp cho phần tử kề mảng chiều, từ phần tử phần tử cuối 13 : _ Hãy chọn phương án hợp lý Trong ngơn ngữ lập trình Pascal A.Các phần tử mảng chiều thứ tự theo số; (*) B.Các phần tử mảng chiều thứ tự theo giá trị giảm dần; C Các phần tử mảng chiều thứ tự theo giá trị tăng dần; D.Các phần tử mảng chiều không thứ tự 14 : _ Trong ngơn ngữ lập trình Pascal, để đổi giá trị hai phần tử mảng chiều A hai vị trí i j , ta viết mã lệnh sau : A.A[i] := Tag; A[i] := A[j]; A[j] := Tag; B.Tag := A[i]; A[i] := A[j]; A[j] := Tag; (*) C Tag := A[i]; A[j] := A[i]; A[j] := Tag; D.Tag := A[i]; A[i] := A[j]; Tag := A[j]; 15 : _ Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực việc việc sau (A mảng số có N phần tử) ? S := ; For i := to N S := S + A[i] ; A.Tính tổng phần tử mảng A; (*) B.In hình mảng A; C Đếm số phần tử mảng A; D.Không thực việc việc Câu 16 : _ Trong ngôn ngữ lập trình Pascal, với khai báo sau : Type mang = ARRAY[1 100] of integer ; Var a, b : mang ; c : array[1 100] of integer ; Câu lệnh hợp lệ ? A.a := b ; B.b := c ; C c := b ; D.a := c ; (*) BÀI 12: KIỂU XÂU Khái niệm - Xâu dãy kí tự bảng mã ASCII Mỗi kí tự gọi phần tử xâu - Số lượng kí tự xâu gọi độ dài xâu - Xâu có độ dài gọi xâu rỗng - Tham chiếu tới phần tử xâu xác định thông qua số phần tử xâu [chỉ số] - Cách khai báo biến xâu: var : string [độ dài lớn nhất xâu] ; - Ví dụ: Ten : String[10] ; Ho_dem : String[50] ; Que : String ; * Chú ý: Nếu không khai báo độ dài tối đa cho biến xâu kí tự độ dài ngầm định xâu 255 Hằng xâu kí tự đặt cặp nháy đơn ‘ ’ Các thao tác xử lí xâu - Phép ghép xâu: Kí hiệu dấu cộng (+) Ví dụ: ‘Ha’ + ‘ Noi’ + ‘ – ’ + ‘Viet Nam’ => cho kết ‘Ha Noi – Viet Nam’ - Phép so sánh: =, = , Xâu A lớn xâu B kí tự khác chúng kể từ trái sang xâu A có mã ASCII lớn Nếu A B xâu có độ dài khác A đoạn đầu B A nhỏ B Hai xâu coi chúng hồn tồn giống Ví dụ: o (‘ABC’=’ABC’) o (‘ABCDEF’