Hiển thị các bài đăng có nhãn Mảng 2 chiều. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Mảng 2 chiều. Hiển thị tất cả bài đăng

Thứ Ba, 24 tháng 4, 2012

Thuật toán tìm kiếm 1 số trong mảng 2 chiều (Pascal)


Viết chương trình Pascal tìm một số (phần tử) trong mảng hai chiều. In tổng số lần và vị trí xuất hiện của các phần tử ra màn hình.


Program Tim_so;
   Var
      a:Array[1..4,1..6] Of Integer;
      i,j,so,solan:Integer;
Begin
   Writeln('TIM MOT SO TRONG MANG');
   Writeln('---------------------');
   Writeln;
   For i:=1 To 4 Do
      For j:=1 to 6 Do
         Begin
            Write('-Phan tu A[',i,',',j,']= ');
            Readln(a[i,j]);
         End;
   Writeln;
   Write('-So muon tim: ');
   Readln(so);
   solan:=0;
   For i:=1 To 4 Do
      For j:=1 To 6 Do
         If so=a[i,j] Then
            Begin
               solan:=solan+1;
               Writeln('+Lan: ',solan,' tai hang: ',i,' cot: ',j);
            End;
   Writeln;
   Writeln('+Tong so lan xuat hien la: ',solan);
   For i:=1 To 4 Do
      Begin
         For j:=1 To 6 Do
            Write(a[i,j]:8);
            Writeln;
      End;
   Readln
End.

Thứ Năm, 23 tháng 2, 2012

In bảng cửu chương

Lập chương trình Pascal để in bảng cửu chương ra màn hình.

Uses crt;
Var
  a:array[1..9,1..9] of Integer ;
  i,j:byte ;
BEGIN
  Clrscr ;
  For i := 1 to 9 do
    For j := 1 to 9 do
      A[i,j] := i*j ;
  For i := 1 to 9 do
    Begin
      For j := 1 to 9 do Write(a[i,j]:5);
      Writeln ;
      Writeln ;
    End ;
  Readln ;
END.

Chủ Nhật, 12 tháng 2, 2012

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

Bài đăng phổ biến