Trong ngôn ngữ lập trình Pascal cú pháp để truy cập đến phần tử của mảng một chiều là

Skip to content

Trong ngôn ngữ lập trình Pascal cú pháp để truy cập đến phần tử của mảng một chiều là

Câu 1: Phát biểu nào dưới đây về kiểu mảng một chiều là phù hợp?

A. Là một tập hợp những số nguyên

B. Độ dài tối đa của mảng là 255

Bạn đang đọc: Trắc nghiệm Tin học 11 Bài 11 (có đáp án): Kiểu mảng

C. Là một dãy hữu hạn những phần tử cùng kiểu D. Mảng không hề chứa kí tự

Hiển thị đáp án

Trả lời: Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số. Để mô tả ta cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó.

Đáp án: C

Câu 2: Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần:

A. khai báo một hằng số là số phần tử của mảng B. khai báo chỉ số khởi đầu và kết thúc của mảng C. khai báo chỉ số kết thúc của mảng D. không cần khai báo gì, mạng lưới hệ thống sẽ tự xác lập

Hiển thị đáp án

Trả lời: Để khai báo số phần tử của mảng trong PASCAL ( kiểu chỉ số), người lập trình cần khai báo chỉ số bắt đầu và kết thúc của mảng. Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và cuối (n1 ≤ n2).

Đáp án:  B 

Câu 3: 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 vấn đến một phần tử bất kỳ trong mảng B. Dùng để quản lí kích 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 cỡ của mảng

Hiển thị đáp án

Trả lời: Chỉ số của mảng dùng để tham chiếu (truy cập) đến một phần tử bất kì trong mảng. Cú pháp: <Tên mảng>[chỉ số];

Đáp án: A

Câu 4: Phát biểu nào sau đây về mảng là không chính xác?

A. Chỉ số của mảng không nhất thiết khởi đầu từ 1 B. Có thể thiết kế xây dựng mảng nhiều chiều C. Xâu kí tự cũng hoàn toàn có thể xem như thể một loại mảng D. Độ dài tối đa của mảng là 255

Hiển thị đáp án

Trả lời: Chỉ số của mảng không nhất thiết bắt đầu từ 1 tùy theo người lập trình. Xâu kí tự cũng có thể xem như mảng một chiều, mỗi phần tử là một kí tự. Trong lập trình có thể xây dựng mảng nhiều chiều. Và không có giới hạn cụ thể về độ dài của mảng.

Đáp án: D

Câu 5: Thế nào là khai báo biến mảng gián tiếp?

A. Khai báo mảng của những bản ghi B. Khai báo mảng xâu kí tự C. Khai báo mảng hai chiều D. Khai báo trải qua kiểu mảng đã có

Hiển thị đáp án

Trả lời: Khai báo biến mảng gián tiếp là khai báo thông qua kiểu mảng đã có. Cấu trúc khai báo mảng gián tiếp:

Type < tên kiểu mảng> = array [kiểu chỉ số] of ;

Var : < tên kiểu mảng>;

Đáp án:D

Câu 6: Phương án nào dưới đây là khai báo mảng hợp lệ?

A. Var mang : ARRAY [ 0 .. 10 ] OF INTEGER ; B. Var mang : ARRAY [ 0 .. 10 ] : INTEGER ; C. Var mang : INTEGER OF ARRAY [ 0 .. 10 ] ; D. Var mang : ARRAY ( 0 .. 10 ) : INTEGER ;

Hiển thị đáp án

Trả lời:

Cấu trúc khai báo mảng trực tiếp :

Var <tên biến mảng> : array [kiểu chỉ số] of <kiểu phần tử>;

Trong đó :

+  Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và cuối (n1 ≤ n2).

+ Kiểu phần tử là kiểu của những phần tử trong mảng .

Đáp án: A

Câu 7: Cho khai báo mảng và đoạn chương trình như sau:

Var a : array[0..50] of real ;

Xem thêm: Top 5 Laptop dưới 10 triệu cấu hình cao, tốt nhất năm 2021

k := 0 ;

for i := 1 to 50 do

if a[i] > a[k] then k := i ;

Đoạn chương trình trên thực thi việc làm gì dưới đây ? A. Tìm phần tử nhỏ nhất trong mảng ; B. Tìm phần tử lớn nhất trong mảng ; C. Tìm chỉ số của phần tử lớn nhất trong mảng D. Tìm chỉ số của phần tử nhỏ nhất trong mảng

Hiển thị đáp án

Trả lời: ý nghĩa của câu lệnh

Var a : array[0..50] of real ; {khai báo mảng a}

k := 0 ; {gán chỉ số 0 cho k}

for i := 1 to 50 do { vòng lặp chạy từ 1 đến 50}

if a[i] > a[k] then k := i ; { kiểm tra từ phần tử thứ 2 đến phần tử 50 so sánh với phần tử đầu và đưa ra chỉ số lớn nhât}

Đáp án:C

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

Phương án nào dưới đây chỉ phần tử thứ 10 của mảng ? A. a [ 10 ] ; B. a ( 10 ) ; C. a [ 9 ] ; D. a ( 9 ) ;

Hiển thị đáp án

Trả lời: Tham chiếu (truy cập) đến một phần tử bất kì trong mảng.

Cú pháp: Tên mảng[chỉ số];

Đáp án: A

Câu 9: Khai báo mảng hai chiều nào sau đây là sai?

A. var m : array [ 1 .. 10 ] of array [ 0 .. 9 ] of integer ; B. var m : array [ 1 .. 20,1 .. 40 ] of real ; C. var m : array [ 1 .. 9 ; 1 .. 9 ] of integer ; D. var m : array [ 0 .. 10,0 .. 10 ] of char ;

Hiển thị đáp án

Trả lời: Khai báo mảng hai chiều:

+ Cách 1 : trực tiếp

Var : array [kiểu chỉ số hàng, kiểu chỉ số cột] of < kiểu phần tử>;

+ Cách 2 : gián tiếp

Type : array [kiểu chỉ số hàng, kiểu chỉ số cột] of < kiểu phần tử>;

Var : < tên kiểu mảng>;

Đáp án: B

Câu 10: Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho:

A. chèn thêm phần tử B. truy vấn đến phần tử bất kể C. xóa một phần tử D. chèn thêm phần tử và xóa phần tử

Hiển thị đáp án

Trả lời: Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho truy cập đến phần tử bất kì. Theo cú pháp Tên mảng[chỉ số];

Đáp án: B

Xem thêm những bài Câu hỏi trắc nghiệm Tin học 11 tinh lọc, có đáp án khác :

Giới thiệu kênh Youtube VietJack

Đã có app VietJack trên điện thoại thông minh, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi trực tuyến, Bài giảng …. không lấy phí. Tải ngay ứng dụng trên Android và iOS .

Trong ngôn ngữ lập trình Pascal cú pháp để truy cập đến phần tử của mảng một chiều là

Trong ngôn ngữ lập trình Pascal cú pháp để truy cập đến phần tử của mảng một chiều là

Nhóm học tập facebook miễn phí cho teen 2k5: fb.com/groups/hoctap2k5/

Xem thêm: Tải Chiến dịch 3 – Honkai Impact 3 – Game hành động MMORPG

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Theo dõi chúng tôi không tính tiền trên mạng xã hội facebook và youtube :

Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn.

Source: https://sangtaotrongtamtay.vn
Category: Công nghệ

Giải Bài Tập Tin Học 11 – Bài 11: Kiểu mảng giúp HS giải bài tập, giúp cho các em hình thành và phát triển năng lực sử dụng công nghệ thông tin và truyền thông:

  • Sách Giáo Viên Tin Học Lớp 11

Chúng ta chỉ xét hai kiểu mảng thông dụng với nhiều ngôn ngữ lập trình là kiểu mảng một chiều và kiểu mảng hai chiều.

1. Kiểu mảng một chiều

-Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu. Mảng được đặt tên và mỗi phần tử mang một chỉ số. Để mô tả mảng một chiều cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử.

– Với mảng một chiều ta quan tâm đến:

+ Tên kiểu mảng một chiều.

+ Số lượng phần tử trong mảng.

+ Kiểu dữ liệu của phần tử.

+ Cách khai báo biến mảng.

+ Cách tham chiếu đến phần tử.

Tại sao ta lại phải sử dụng mảng?

Giả sử ta muốn đo nhiệt độ trung bình trong 1 tháng và đưa ra những ngày nào cao hơn nhiệt độ trung bình. Nếu chỉ sử dụng kiến thức ta biết từ đầu chương trình đến giờ. Ta sẽ phải khai báo 30 biến để lưu giữ giá trị nhiệt độ các ngày trong tháng. Sau đó phải gõ lại rất nhiều lệnh if gây ra sự nhàm chán.

a) Khai báo.

Cách 1: Khai báo trực tiếp biến mảng một chiều

Var :array[kiểu chỉ số] of ;

Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng một chiều

Type=array[kiểu chỉ số] of ; Var:;

Trong đó:

+ Kiểu chỉ số thường là đoạn số nguyên liên tục có dạng n1..n2, với n1 là chỉ số đầu và n2 là chỉ số cuối (n1≤n2).

+ Kiểu phần tử là kiểu dữ liệu của các phần tử mảng.

+ Tham chiếu đến phần tử mảng ta viết :

[chỉ số];

Ví dụ:

Var nhietdo:array[1..30] of integer;

Muốn tham chiếu tới phần tử thứ 20 ta sẽ viết là nhietdo[20].

b) Một số ví dụ

Ví dụ 1. Tìm phần tử lớn nhất của dãy số nguyên

Input: Số nguyên dương N (N<=250) và dãy N số nguyên dương A1,A2,..,An,mỗi số đều không vượt quá 500.

Output: Chỉ số và giá trị của phần từ lớn nhất trong dãy số đã cho (nếu có nhiều phần tử lớn nhất thì chỉ cần đưa ra một trong số chúng.

program vidu1; uses crt; var arrayint:array[1..250] of integer; n,i,mi:integer; begin clrscr; writeln('nhap vao so phan tu '); readln(n); for i:=1 to n do begin writeln('phan tu thu ',i,'='); readln(arrayint[i]); end; mi:=1; for i:=2 to n do begin if arrayint[i]>arrayint[mi] then mi:=i; end; writeln('gia tri lon nhat la ',arrayint[mi],' chi so la ',mi); readln; end.

Ví dụ 2: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.

program sapxep; uses crt; const Nmax=250; var N,i,j,t:integer; A:array[1..Nmax] of integer; begin clrscr; write('nhap so luong phan tu cua day N='); readln(N); for i:=1 to N do begin write('phan tu thu ',i,'='); readln(A[i]); end; for j:=N downto 2 do for i:=1 to j-1 do if A[i]>A[i+1] then begin t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t; end; writeln('day da duoc sap xep la '); for i:=1 to N do write(A[i]:4); readln; end.

Kết quả:

Trong ngôn ngữ lập trình Pascal cú pháp để truy cập đến phần tử của mảng một chiều là

Ví dụ 3: Tìm kiếm nhị phân.

Bước 1: Nhập N, các số hạng a1, a2… aN và khóa k.

Bước 2: Dau <— 1, Cuoi <-N;

Bước 3: Giua <—[ Dau + Cuoi]/2

Bước 4: Nếu Agiữa = k thì thông báo chỉ số Giua rồi kết thúc;

Bước 5: Nếu Agiữa> k thì đặt Cuối= Giữa-1 rồi chuyển đến bước 7;

Bước 6: Nếu Nếu Agiữa ≤ k Dau;

Bước 7: Nếu Dau > Cuoi thì thông báo dãy A không có số hạng có giá trị bằng k rồi kết thúc;

Bước 8: Ọuay lại bước 3.

Từ thuật toán của bài toán, chúng ta rút ra được một số điều cơ bản cần phải lưu ý, đó là:

– Mảng đã dược sắp xếp tăng dần.

– Trong thuật toán, việc tìm kiếm thực chất là lặp một số lần (chưa xác định được trước) các thao tác sau: chọn số hạng ở “giữa” dãy, so sánh số hạng đó với k, căn cứ vào kết quả so sánh này để hoặc kết luận đã tìm thấy (trường hợp xảy ra bằng) hoặc thu hẹp phạm vi tìm kiếm(trường hợp không bằng).

– Khi nào quá trình lặp nói trên dừng lại? Quá trình lặp đó cần dừng lại với một trong hai sự kiện sau xảy ra gồm đã tìm thấy hoặc không gian tìm kiếm đã trở nên bằng rỗng (nghĩa là không còn đoạn nào của dãy cho ta hy vọng chứa phân tử cần tìm).

– Phạm vi tìm kiếm trên dãy là một đoạn được xác định bởi các biến nguyên Dau và Cuoi, tương ứng cho biết bắt đầu từ phần tử có chỉ số Dau của dãy cho đến phần tử có chỉ số Cuoi của dãy. Từ đó, ta đưa ra được công thức xác định phân tử ở “giữa” phạm vi tìm kiếm và công thức xác định lại giá trị cho biến Dau hay Cuoi trong mỗi trường hợp thu hẹp phạm vi tìm kiếm.

Trong ngôn ngữ lập trình Pascal cú pháp để truy cập đến phần tử của mảng một chiều là

2. Kiểu mảng hai chiều

Mảng hai chiều: Là bảng các phần tử cùng kiểu.

Ta có thể coi mảng hai chiều là mảng một chiều mà mỗi phần tử của mảng một chiều lại là một mảng khác.

Ví dụ:

Var b:array[1..9] of array[1..10] of integer;

Khai báo b là một mảng một chiều gồm 9 phần tử. Mỗi phần tử của mảng b là một mảng một chiều gồm 10 phần tử.

Cách khai báo:

Ngoài khai báo theo cách trên. Ta có thêm 2 cách nữa để khai báo mảng 2 chiều.

Cách 1:

Var:array[kiểu chỉ số hang,kiểu chỉ số cột] of ;

Cách 2:

Type=array[kiểu chỉ số hang,kiểu chỉ số cột] of ; Var:;

Ví dụ:

Var b:array[1..9,1..10] of integer;

Hoặc

Type mang2chieu=array[1..9,1..10] of integer; Var B:mang2chieu;

Muốn tham chiếu đến phần tử trong mảng 2 chiều ta sử dụng 2 chỉ số là chỉ số hàng và chỉ số cột.

Ví dụ:

Mang2chieu[5,6]

b) Một số ví dụ:

Ví dụ 1: Tính và in ra bảng nhân.

program bangnhan; uses crt; var bnhan: array[1..9,1..9] of integer; i,j:integer; begin clrscr; for i:=1 to 9 do for j:=1 to 9 do bnhan[i,j]:=i*j; for i:=1 to 9 do begin for j:=1 to 9 do write(bnhan[i,j]:4); writeln(); end; readln end.

Kết quả:

Trong ngôn ngữ lập trình Pascal cú pháp để truy cập đến phần tử của mảng một chiều là

Ví dụ 2. Chương trình sau nhập vào từ bàn phím các phần tử của mảng hai chiều B gồm 5 hàng, 7 cột với các phần tử là các số nguyên và một số nguyên k. Sau đó, đưa ra màn hình các phần tử có giá trị nhỏ hơn k.

program vidu2; uses crt; var arr: array[1..5,1..7] of integer; i,j,k:integer; begin clrscr; for i:=1 to 5 do for j:=1 to 7 do begin write('a[',i,']','[',j,']='); readln(arr[i,j]); end; write('k='); readln(k); write('cac phan tu nho hon k la:'); for i:=1 to 5 do for j:=1 to 7 do if arr[i,j]Lưu ý: Ngoài mảng một chiều và hai chiều ta có thể có các mảng nhiều chiều.