KIỂU MẢNG

1. Mảng một chiều
a. Khái niệm: 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ố.
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ử.
b. Khai báo mảng một chiều:
+ Khai báo trực tiếp:
Var<tên biến mảng>: array[<kiểu chỉ số>]of <kiểu phần tử>;
+ Khai báo gián tiếp:
Type <tênkiểumảng>=array[<kiểu chỉ số>] of <kiểu phần tử>;
var <tên biến mảng>: <tên kiểu mảng>;
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). Nên đánh chỉ số từ 1;
+ 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 :
<tên biến mảng>[chỉ số]
VD:
Tham chiếu đến phần tử thứ 20 trong mảng A ta viết A[20].
2. Các thao tác với kiểu mảng một chiều.
a. Cách nhập mảng A:
write(‘Nhap so phan tu cua mang: ’); readln(n);
write(‘Nhap gia tri cho tung phan tu: ’);
for i:=1 to n do
    begin   
        write(‘Phan tu thu ’ , i , ‘ la: ’); {write(‘A[‘,I,’]=’);}
        readln(A[i]);
    end;
b. Cách in mảng A ra màn hình:
writeln(‘Mang vua nhap la: ’);
for i:=1 to n do write(A[i]:4);
3. Ví dụ về mảng một chiều
Bài 1: Nhập vào một dãy số nguyên, tìm số nhỏ nhất trong dãy?
Ý tưởng: Min:=A[1]; Duyệt từ đầu dãy đến cuối dãy, so sánh các phần tử với Min, nếu A[i]<min thì min:=A[i];
Giải quyết bài toán:
Var A:array[1..200] of integer;
          I, n: byte; min:integer;
Begin
write(‘Nhap so phan tu cua mang: ’); readln(n);
write(‘Nhap gia tri cho tung phan tu: ’);
for i:=1 to n do
    begin   
        write(‘Phan tu thu ’ , i , ‘ la: ’); {write(‘A[‘,I,’]=’);}
        readln(A[i]);
    end;
min:=A[1]; For i:=2 to n do
                   if A[i]<min then min:=A[i];
write(‘So nho nhat trong mang :’,min);
readln;
END.
Bài 1: Nhập vào một dãy số nguyên, sắp xếp dãy thành dãy không giảm (tăng dần) theo phương pháp nổi bọt (Bubble sort)
Ý tưởng: Để sắp dãy có n phần tử, thực hiện qua n-1 lượt. Ở mỗi lượt, duyệt từ đầu dãy đến cuối dãy (cần xét ở lượt đó), cứ so sánh 2 phần tử kề nhau, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng.
Giải quyết bài toán.
Var A:array[1..200] of integer;
          J,I, n: byte; tg:integer;
Begin
write(‘Nhap so phan tu cua mang: ’); readln(n);
write(‘Nhap gia tri cho tung phan tu: ’);
for i:=1 to n do
    begin   
        write(‘Phan tu thu ’ , i , ‘ la: ’); {write(‘A[‘,I,’]=’);}
        readln(A[i]);
    end;
For i:=n downto 2 do
For j:=1 to  to i-1 do
                   if A[j]>Ạ[j+1] then
begin tg:=A[j];A[j]:=A[j+1];A[j+1]:=tg;end;
writeln(‘Mang sau khi sap xep la: ’);
for i:=1 to n do write(A[i],’ ‘);
readln;
END.


30 nhận xét:

  1. Viết chương trình nhập vào một mảng có tối đa 100 số thực in mảng đó ra màn hình
    ai đó giup mk vs

    Trả lờiXóa
    Trả lời
    1. program bt1;
      uses crt;
      var A: array [1..100] of real;
      begin
      clrscr;
      write('nhap so phan tu mang: '); readln (n);
      for i:=1 to n do
      begin
      write('A[',i.']'); readln (A[i]);
      end;
      for i:=1 to n do write (A[i]:5);
      readln
      end.

      Xóa
    2. program bt1;
      uses crt;
      var A: array [1..100] of real;
      n,i:integer;
      begin
      clrscr;
      write('nhap so phan tu mang: '); readln (n);
      for i:=1 to n do
      begin
      write('A[',i,']'); readln (A[i]);
      end;
      for i:=1 to n do write (A[i]:5);
      readln
      end.

      Xóa
    3. VD4: viết chương trình nhập vào từ bàn phím lượng mưa trung bình các ngày trong tháng của huyện (mm), đưa ra nhận xét lượng mưa TB của tháng đó: nếu >50(mưa nhiều) nếu 40 đến dưới 50 (mưa via) nếu dưới 40 (mưa ít)

      Xóa
  2. Viết chương trình tính tổng các phần tử chẳn hoặc lẻ của mảng nhập bất kì từ bàn phím(Với N<= 100)
    Giúp mình với������

    Trả lờiXóa
    Trả lời
    1. Program bai_tap;
      Uses crt;
      Var A:array[1..100] of integer;
      Tong,i,n:integer;
      Begin
      Clrscr
      Writeln('Nhap mang A');
      Readln(A);
      Tong:=0;
      For i:=1 to N do
      Begin
      Writeln('nhap phan tu thu',i);
      Readln (A[i]);
      End;
      For i:=1 to N do
      If (A[i] mod 2 =0) or (A[i] mod 2 <>0) then tong:= tong+A[i];
      Writeln('ket qua la',tong);
      Readln;
      End.

      Xóa
  3. Nhập dãy số nguyên từ bànbphim n≤100 kiểm tra trong dãy có bao nhiêu phần tu không trùng nhau.Tim các số đó in ra màn hình tạo mảng B nhận tất cả các phần tử khác trong mảng A

    Trả lờiXóa
  4. Khai báo mảng 1 chiều 50 phần tử thực
    Giúp mình vs ạ

    Trả lờiXóa
    Trả lời
    1. Write('nhap số lượng phần tử:');
      For i=1 to n đó
      Begin
      ('
      Nhập phần tử thứ ',i,');readln(a[i]);

      Xóa
    2. Var A:array [1..50] of real;

      Xóa
  5. Ai giúp mình bài toán này với
    Nhập dữ liệu cho mảng 1 chiều có n phần tử
    1) đưa ra giá trị min của mảng
    2) tổng các phần tử thỏa mãn điều kiện là số chẵn trong mảng
    3) đếm số lượng các phần tử trong mảng là số nguyên
    Giúp mình nhanh nha cảm ơn rất nhiều huhuu cần gấp lắm

    Trả lờiXóa
  6. Viết ct nhập vào 1 mảng số nguyên A gồm 100 phần tử thực hiện 1 số yêu cầu sau:
    In ra mảng vừa nhập.
    Nhập vào 1 số nguyên x.
    Kiểm tra x có trong A hay không.Nếu có, in số lần x xuất hiện trong mảng A.
    Ai biết giúp mình với ạ.

    Trả lờiXóa
  7. ai đó làm
    dùm bài này ik

    Trả lờiXóa
  8. Viết chg trình khai báo và nhập mảng 1 chiều tối đa 10 phần tử là số nguyê . Hãy thông báo ra màn hình các phần tử của mảng là số nguyên tố.
    Giúp mk vs!!!! Cần gấp ạ!!!

    Trả lờiXóa
  9. Nhập một dãy số xuất số thứ ba trong dãy, sử dụng mảng.

    Trả lờiXóa
  10. Tôi cần giải giúp một bài tìm và sắp xếp số nguyên tố trong mảng một chiều


    Trả lờiXóa
  11. Cho mảng A gồm n số nguyên thực hiện tính tổng bội của số nguyên dương x cho trước.

    Trả lờiXóa
  12. VIẾT CHƯƠNG TRÌNH NHẬP VÀO MẢNG MỘT CHIỀU GỒM N PHẦN TỬ SỐ NGUYÊN. N ĐƯỢC NHẬP TỪ BÀN PHÍM, N NGUYÊN, DƯƠNG, N <=10
    A. In mảng vừa nhập ra màn hình
    B. Tính tổng các phần tử có giá trị chẳn in kết quả ra màn hình
    C. Đếm số lượng các phần tử có giá trị dương
    D. Tính trung bình cộng các phần tử có giá trị chẵn
    E. Đưa ra vị trí của phần tử có giá trị bé nhất


    Trả lờiXóa
  13. Cho đường tròn tâm I bán kính r, và điểm M. Viết chương trình sử dụng kiểu mảng 1 chiều khai báo cho toạ độ điểm cho biết điểm M có nằm trên đường tròn tâm I không?
    Giúp mình với

    Trả lờiXóa
  14. Viết chương trình nhập vào dãy số nguyên a có n phần tử(n<= 250) yêu cầu là:
    Tính tổng các phần tử dương
    Mong mọi người giúp

    Trả lờiXóa
  15. Viết chương trình mảng 1 chiều và số k. Hãy in ra các phần tử trong mảng là ước số của k ? Giúp mình bài này với :((( mình cần gấp lắm

    Trả lờiXóa
  16. viết chương trình nhập vào một mảng a gồm n số nguyên dương. kiểm tra xem mảng a có bao nhiêu số chẵn giúp em với ạ

    Trả lờiXóa
  17. VCT nhập vào một mảng gồm n số nguyên
    a.In ra mảng vừa nhập
    b.Tính và in ra màn hình tổng các căn bậc hai của các số nguyên âm trong mảng vừa nhập
    Giúp em vs ạ, e cảm ơn

    Trả lờiXóa
  18. Viết chương trình nhập vào mảng n số nguyên hãy đếm số lượng phần tử lẻ trong dãy và hiển thị số lượng đó lên màn hình

    Trả lờiXóa
  19. Viết chương trình nhập dãy n số từ bàn phím in ra màn hình số đầu tiên và số cuối cùng

    Trả lờiXóa