- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

Bài 4: Mảng trong Pascal



1. Mảng 1 chiều:

- Có thể hiểu nôm na: Mảng 1 chiều là dãy số hữu hạn.
vd: nhiệt độ mỗi ngày trong tuần (tháng/năm), cấp số cộng, cấp số nhân...

- Chỉ số của mảng:
vd: Xét mảng: 10 20 30 5 6 7
là một dãy các số tự nhiên bất kì có 6 phần tử mà
phần tử thứ 1 là 10
phần tử thứ 2 là 20
phần tử thứ 3 là 30
phần tử thứ 4 là 5
phần tử thứ 5 là 6
phần tử thứ 6 là 7


Lưu ý!
Xét dãy: Ti Suu Dan Mao Thin Ti Ngo Mui Than Dau Tuat Hoi
cũng được coi là mảng 1 chiều, trong đó:
  • Phần tử 1 là Ti
  • Phần tử 2 là Suu
  • Phần tử 3 là Dan
  • Phần tử 4 là Mao
  • Phần tử 5 là Thin
  • ...

- Cách tham chiếu đến mảng: A[i] với i là chỉ số phân tử trong mảng.
vd: Vẫn xét mảng 10 20 30 5 6 7
A[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 <tên mảng>:array[kiểu chỉ số] of <kiểu phần tử>; 

vd:
a:array[1..100] of integer;
b,c:array[1..250] of integer;
  • Khai báo gián tiếp:
type <tên kiểu mảng>=array[kiểu phần tử] of <kiểu chỉ số>;
var <tên mảng>:<tên kiểu mảng>;

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

- Cách nhập/xuất mảng 1 chiều:
var a:array[1..100] of integer;
    n,i:integer; 
begin
    {Nhập số phần tử mảng}
     writeln('Nhap so phan tu cua mang:'); readln(n); 
    {Nhập mảng}
     for i:=1 to n do 
        begin
            write('A[',i,']='); readln(A[i]);
        end; 
    {Xuất mảng}
     for i:=1 to n do
        writeln(A[i]);
end.



2. Mảng 2 chiều:

- Khái niệm: Nếu mảng 1 chiều là dãy thì mảng 2 chiều là bảng các phần tử cùng kiểu (bảng các số).

- 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[i,j] 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ách nhập/xuất mảng 2 chiều:
var A:array[1..50,1..50] of Integer;
      i,j,N,Max,k,c,M:Integer;
begin
     write('So hang cot:');readln(N,M);Max:=0;
     for i:=1 to N do
      for j:=1 to M do
       begin
            write('A[',i,',',j,']=');readln(A[i,j]);
       end;
     for i:=1 to N do
       begin
            for j:=1 to M do
            write(A[i,j]);
       end;
end.


Tổng hợp và biên tập



huong lythi nói...

viết bằng chương trình con sẽ hay hơn!


14:34 Ngày 19 tháng 04 năm 2013
Nặc danh nói...

bài nỳ zất hay hihihi!!!!


16:35 Ngày 11 tháng 04 năm 2015
Ze cho d4ng ju nói...

hihihihi mjnh la ze ch0 đang ju lin lac vs so nay de l4m q3n zS mjk nhek: 0937888138


16:54 Ngày 11 tháng 04 năm 2015
Nặc danh nói...

rất có ích


07:44 Ngày 10 tháng 03 năm 2016
Châu Hảo Nhân Tô nói...

hinh nhu ad bo blog roi thi phai


15:49 Ngày 25 tháng 08 năm 2016
Unknown nói...

ủa mà a[i,j] thì cái nào là cột cái nào là hàng


12:09 Ngày 11 tháng 09 năm 2016
Nguyễn Hoàng Vũ nói...

k phân biệt cột với hàng đâu. mà thường thì tính từ trên xuống từ trái qua. nên có thể nói i là hàng


20:58 Ngày 23 tháng 11 năm 2016
minhtri lieu nói...

Lau r ko lm quen cmnr... :3


21:26 Ngày 24 tháng 11 năm 2016

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.