TẠI SAO PHẢI KHAI BÁO KÍCH THƯỚC CỦA MẢNG

Tóm tắt chương IV Tin học lớp 11. Giải câu 1 đến câu 11 trang 79, 80 . Tại sao mảng là kiểu dữ liệu có cấu trúc…

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

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 dã 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ố.

Bạn đang xem: Tại sao phải khai báo kích thước của mảng

Chúng ta phải khai báo kích thước cùa mảng bởi vì để cách đánh số các phần tử của nó.

Câu 2: Tại sao phải khai báo kích thước của mảng?

Các phần tử của mảng có thể có những kiểu sau đây: real, boolean, integer, longint

Câu 3: Các phần tử của mảng có thể có những kiểu gì?

Tham chiếu đến phần tử của mảng một chiều được xác định bởi tên mảng cùng với chỉ số, được viết trong cặp ngoặc < và > (ví dụ nhietdo<20J). Còn tham chiếu đến phần tử của mảng hai chiều được xác định bởi tên mảng cùng với hai chỉ số được phân cách bởi dấu phẩy và viết trong cặp ngoặc < và > (ví dụ Arrlnt<5, 9J).

Câu 4: Tham chiếu đến phần tử của mảng bằng cách nào?

 Mảng có các kiểu như biến : integer.Real.char.String.byte…

– Tham chiếu đến phần tử của mạng có 2 kiểu :** Với mảng 1 chiều:– Cách tham chiếu đến mảng: A với i là chỉ số phân tử trong mảng.vd: Vẫn xét mảng 10 20 30 5 6 7A<1>=10; A<2>=20; A<3>=30; A<4>=50; A<5>=6; A<7>=7

– Cách khai báo mảng: Có 2 cách khai báo:

Khai báo trực tiếp: Thường thì cách khai báo trực tiếp được dùng nhiều hơn vì nó ngắn gọn.

var :array of ;

ví dụ:a:array<1..100> of integer;b,c:array<1..250> of integer;

Khai báo gián tiếp:

type =array of ;var :;

vd:type mang=array<1..100> of integer;var a,b,c:mang;

**Với mảng 2 chiều :– Tham chiếu: Vì mảng 2 chiều là bảng nên sẽ cần chỉ số hàng và chỉ số cột: A với i là chỉ số hàng, j là chỉ số cột.

– Khai báo: Tương tự như mảng 1 chiều nhưng thêm chỉ số cột.

Câu 5: Viết chương trình nhập từ bàn phím số nguyên dương N (N ≤100) và dãy A gồm N số nguyên A1…AN có giá trị tuyệt đối lớn hơn 1000. Hãy cho biết dãy A có phải là một cấp số cộng hay không và thông báo kết quả ra mành hình.

Xem thêm:

Trả lời

Để lập chương trình nhập từ bàn phím số nguyên dương N (NN có giá trị tuyệt đối không lớn hơn 100, thì ta cần phải thực hiện việc kiểm tra xem số N nhập vào (số phần tử của dãy) có thỏa mãn yêu cầu của đầu bài hay không nghĩa là 0N của mảng cũng phải là những số nguyên và có giá trị tuyệt đối không lớn hơn 100 (A >= -100 và A=1000) or (N0) and (N100) or (A-1000) and (A0 then writeln(‘A khong la cap so cong’) else writeln(’A la cap so cong’);

readln,

end.

Khi chạy chương trình, nếu nhập số phần tử cùa dãy N= 5 và các phần tử của dãy theo thứ tự là 2,4,6, 8,10 thì chương trình đưa ra thông báo “A la cap so cong”(Hình 59).

*

Nhưng khi nhập N không thỏa mãn điều kiện đầu bài, chẳng hạn N= -5 thì chương trình đưa ra thông báo “Mời nhập lại!”. Khi đó, ta phải vào lại N, chẳng hạn, N= 5 và nhập tiếp các phần tử của dãy, chẳng hạn: 1, 3, 5, 7, 9 thì kết quả của chương trình: “A la cap so cong’’ (Hình 60).

*

Còn trong trường hợp các phần tử nhập vào của dãy không thỏa mãn điều kiện A -1000: thì ta phải nhập lại các phần tử của dãy cho đến khi chương trình đưa ra thông báo A là cấp số cộng hay không?

Chẳng hạn, ta nhập vào dãy N= 7 phần từ với giá trị các phần tử lần lượt như sau:

2, 5, 7 8, 9, 4, 7 (ở phần tử thứ tư lúc đầu nhập vào số-1500 thì chương trình yêu cầu nhập lại và đã nhập vào số 8) thì chương trình dưa ra thông báo: ” A khong la cap so cong* (Hình 62).

*

Bài 6: Viết chương trình nhập từ bàn phím số nguyên dương N (N ≤100) và dãy A gồm N số nguyên A1, A2 …AN có giá trị tuyệt đối không lớn hơn 1000. Hãy đưa ra những thông tin sau:

a) Số lượng số chẵn và số lượng số lẻ

b) số lượng số nguyên tố trong dãy

Trả lời

Đối với với bài toán này thì phần kiểm tra số nguyên dương N(N2 …AN có giá trị tuyệt đối không lớn hơn 1000 giống như bài tập 5 đã nêu ờ trên. Chúng ta chi cần giải quyết thêm 2 vấn đề nữa, đó là đếm số lượng số chẵn, số lẻ và số lượng số nguyên tố trong dãy.

Chưntg trình:

progran baitap6_chuong4;

uses crt;

var

array<1..100> of integer;

if: boolean;

N, i„ l: integer; so_nt, so_chan: integer;

begin

for i := -1000 to 1000 do if i>0 then NT:= false;

so_chan:=0; so_nt:=0;

{Nhap vao)

repeat

write(‘So phan tu cua day A (N0) and

(N1000) or (a-1000) and (a1 then

begin

u: = 2 ;

while ((u0))) do u: = u + 1; if u>sqrt(A) then so_nt:= so_nt + 1;

end,

end;

{In ra man hinh}

writeln(‘So luong so chan:’,so_chan);

writeln(‘So luong so le:’,N – so_chan);

writeln(’So luong so nguyen tro:’, so_nt);

readln

End.

Khi chạy chương trình, ta lần lượt nhập các phần tử của dãy A:

 Với N = 3 và các phần tử được nhập vào theo thứ tự:

A<1>=5

A<2>=7

A<3>=900

thì chương trình đưa ra thông báo:

So luong so chan: 1

So luong so le: 2

So luong so nguyen to: 2

– Với 5 và các phần tử được nhập vào theo thứ tự:

A<1>=12

A<2>=3 A<3>=5

A<4>10 A <5> =11

thì chương trinh đưa ra thông báo:

So luong so chan: 2

So luong so le: 3

So luong so nguyen to: 3

Kết quả của chương trình như hình 63 sau đây:

*

Trong trường hợp số phần tử nhập vào và giá trị các phần tử của dãy A không thỏa mãn điều kiện thì chương trình sẽ có thông báo mời nhập lại. Chẳng hạn, trong các trường hợp sau đây: