Chào mừng quý vị đến với Thư viện điện tử Sở GD&ĐT Nghệ An.
Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tư liệu của Thư viện về máy tính của mình.
Nếu chưa đăng ký, hãy đăng ký thành viên tại đây hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay ô bên phải.
Bài tập Pascal hay

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Nguyển Hoàng Hoa (trang riêng)
Ngày gửi: 20h:04' 16-09-2010
Dung lượng: 313.5 KB
Số lượt tải: 420
Nguồn:
Người gửi: Nguyển Hoàng Hoa (trang riêng)
Ngày gửi: 20h:04' 16-09-2010
Dung lượng: 313.5 KB
Số lượt tải: 420
Số lượt thích:
0 người
Chương 5
DỮ LIỆU KIỂU MẢNG (ARRAY)
I. KHAI BÁO MẢNG
Cú pháp:
TYPE
VAR
hoặc khai báo trực tiếp:
VAR
Ví dụ:
TYPE Mangnguyen = Array[1..100] of Integer;
Matrix = Array[1..10,1..10] of Integer;
MangKytu = Array[Byte] of Char;
VAR A: Mangnguyen;
M: Matrix;
C: MangKytu;
hoặc:
VAR A: Array[1..100] of Integer;
C: Array[Byte] of Char;
II. XUẤT NHẬP TRÊN DỮ LIỆU KIỂU MẢNG
- Để truy cập đến phần tử thứ k trong mảng một chiều A, ta sử dụng cú pháp: A[k].
- Để truy cập đến phần tử (i,j) trong mảng hai chiều M, ta sử dụng cú pháp: M[i,j].
- Có thể sử dụng các thủ tục READ(LN)/WRITE(LN) đối với các phần tử của biến kiểu mảng.
BÀI TẬP MẪU
Bài tập 5.1: Viết chương trình tìm giá trị lớn nhất của một mảng chứa các số nguyên gồm N phần tử.
Ý tưởng:
- Cho số lớn nhất là số đầu tiên: Max:=a[1].
- Duyệt qua các phần tử a[i], với i chạy từ 2 tới N: Nếu a[i]>Max thì thay Max:=a[i];
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,Max:Integer;
Begin
{Nhập mảng}
Write(‘Nhap N=’); Readln(N);
For i:=1 To N Do
Begin
Write(‘A[‘,i,’]=’); Readln(A[i]);
End;
{Tìm phần tử lớn nhất}
Max:=A[1];
For i:=2 To N Do
If Max {In kết quả ra màn hình}
Writeln(‘Phan tu lon nhat cua mang: ’, Max);
Readln;
End.
Bài tập 5.2: Viết chương trình tính tổng bình phương của các số âm trong một mảng gồm N phần tử.
Ý tưởng:
Duyệt qua tất cả các phần tử A[i] trong mảng: Nếu A[i]<0 thì cộng dồn (A[i])2 vào biến S.
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,S:Integer;
Begin
{Nhập mảng}
Write(‘Nhap N=’); Readln(N);
For i:=1 To N Do
Begin
Write(‘A[‘,i,’]=’); Readln(A[i]);
End;
{Tính tổng}
S:=0;
For i:=1 To N Do
If A[i]<0 Then S:=S+A[i]*A[i];
{In kết quả ra màn hình}
Writeln(‘S= ’, S);
Readln;
End.
Bài tập 5.3: Viết chương trình nhập vào một mảng gồm N số nguyên. Sắp xếp lại mảng theo thứ tự tăng dần và in kết quả ra màn hình.
Ý tưởng:
Cho biến i chạy từ 1 đến N-1, đồng thời cho biến j chạy từ i+1 đến N: Nếu A[i]>A[j] thì đổi chổ A[i], A[j].
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,j,Tam:Integer;
Begin
{Nhập mảng}
Write(‘Nhap N=’); Readln(N);
For i:=1 To N Do
Begin
Write(‘A[‘,i,’]=’); Readln(A[i]);
End;
{Sắp xếp}
For i:=1 To N-1 Do
For j:=i+1 To N Do
 





