- 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



Unknown nói...

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


lúc 14:34 19 tháng 4, 2013
Nặc danh nói...

haizz


lúc 14:36 29 tháng 5, 2014
Nặc danh nói...

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


lúc 16:35 11 tháng 4, 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


lúc 16:54 11 tháng 4, 2015
Nặc danh nói...

rất có ích


lúc 07:44 10 tháng 3, 2016
Unknown nói...

hinh nhu ad bo blog roi thi phai


lúc 15:49 25 tháng 8, 2016
Nặc danh nói...

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


lúc 12:09 11 tháng 9, 2016
Blog test code 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


lúc 20:58 23 tháng 11, 2016
Unknown nói...

Lau r ko lm quen cmnr... :3


lúc 21:26 24 tháng 11, 2016
Nặc danh nói...

đc


lúc 05:41 30 tháng 11, 2016
Unknown nói...

I là hàng , j là cột


lúc 00:00 11 tháng 1, 2017
Nặc danh nói...

Hay


lúc 23:14 24 tháng 3, 2017
Nặc danh nói...

Có cách nào để nhập cột trước hàng sau không?


lúc 08:34 17 tháng 11, 2017
Nặc danh nói...

vai


lúc 08:13 19 tháng 3, 2018
Nặc danh nói...

mình không hiểu gì hết


lúc 21:12 22 tháng 11, 2018
Unknown nói...

Nhập mảng vào như ma trận thế nào mọi người


lúc 10:48 3 tháng 12, 2018
Unknown nói...

hay do sau lam them nhieu bai nua nha


lúc 14:56 30 tháng 12, 2019
Nặc danh nói...

hay


lúc 16:59 29 tháng 5, 2020
Nặc danh nói...

cktp


lúc 15:45 10 tháng 7, 2020

Đă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.